Back to list
critesjosh

aztec-e2e-testing

by critesjosh

Claude Code plugin for Aztec smart contract development

2🍴 0📅 Jan 22, 2026

SKILL.md


name: aztec-e2e-testing description: Generate Jest end-to-end tests for Aztec contracts with real network interaction. Use when writing integration tests, testing contract deployments, or validating full transaction flows. allowed-tools: Read, Grep, Glob, Edit, Write, Bash

Aztec E2E Testing Skill

Generate Jest end-to-end tests for Aztec contracts against live networks.

Subskills

Quick Start: Basic E2E Test

import { MyContract } from "../../artifacts/MyContract.js";
import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee/testing';
import { setupWallet } from "../../utils/setup_wallet.js";
import { getSponsoredFPCInstance } from "../../utils/sponsored_fpc.js";
import { SponsoredFPCContract } from "@aztec/noir-contracts.js/SponsoredFPC";
import { Fr, GrumpkinScalar } from "@aztec/aztec.js/fields";
import { AztecAddress } from "@aztec/stdlib/aztec-address";
import { TxStatus } from "@aztec/stdlib/tx";
import { TestWallet } from '@aztec/test-wallet/server';
import { AccountManager } from "@aztec/aztec.js/wallet";
import { getTimeouts } from "../../../config/config.js";

describe("MyContract", () => {
    let wallet: TestWallet;
    let account: AccountManager;
    let contract: MyContract;
    let paymentMethod: SponsoredFeePaymentMethod;

    beforeAll(async () => {
        // Setup wallet
        wallet = await setupWallet();

        // Setup sponsored fees
        const sponsoredFPC = await getSponsoredFPCInstance();
        await wallet.registerContract(sponsoredFPC, SponsoredFPCContract.artifact);
        paymentMethod = new SponsoredFeePaymentMethod(sponsoredFPC.address);

        // Create and deploy account
        const secretKey = Fr.random();
        const signingKey = GrumpkinScalar.random();
        const salt = Fr.random();
        account = await wallet.createSchnorrAccount(secretKey, salt, signingKey);
        await (await account.getDeployMethod()).send({
            from: AztecAddress.ZERO,
            fee: { paymentMethod }
        }).wait({ timeout: getTimeouts().deployTimeout });

        // Deploy contract
        contract = await MyContract.deploy(wallet, account.address).send({
            from: account.address,
            fee: { paymentMethod }
        }).deployed({ timeout: getTimeouts().deployTimeout });
    }, 600000);

    it("should perform an action", async () => {
        const tx = await contract.methods.myMethod(args).send({
            from: account.address,
            fee: { paymentMethod }
        }).wait({ timeout: getTimeouts().txTimeout });

        expect(tx.status).toBe(TxStatus.SUCCESS);
    }, 60000);
});

Key Differences from Noir Tests

AspectNoir (TestEnvironment)TypeScript (Jest)
NetworkSimulatedReal (local/devnet)
FeesNot requiredRequired
ProofsSimulatedReal (on devnet)
SpeedFastSlower
StateIn-memoryPersistent

When to Use E2E Tests

  • Integration with real network behavior
  • Fee payment verification
  • Multi-account scenarios
  • Full deployment pipeline testing
  • Cross-contract interactions
  • Production readiness validation

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon