Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion .claude/skills/bump-aztec-version/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,14 @@ export PATH="$HOME/.aztec/current/bin:$PATH"
Confirm: `aztec --version`. If a local aztec-packages checkout was given, its toolchain can be used instead.

## Step 4 — local validation (prove the bump)
Before running the checks, audit every local type/cast that exposes non-public Aztec APIs. These
shims are not checked against the upstream class, so a normal TypeScript build can stay green after
the real method signature changes:
```bash
rg -n 'WalletWithInternals|as unknown as.*Wallet|scopesFrom\(' src benchmarks scripts
# Compare every matching shim/method with the target version in the aztec-packages source checkout.
```

Run in order; stop and diagnose on the first failure:
```bash
yarn ccc # clean + compile + codegen against the new deps
Expand All @@ -59,8 +67,14 @@ yarn format:check
yarn install --frozen-lockfile # lockfile matches package.json
yarn build # assembles export/<pkg>
(cd export/@aztec-foundation/aztec-standards && npm publish --dry-run --access public) # tarball sanity
# yarn test:js — only if a local network is up (aztec start --local-network); needs no npm creds
# With a local network up (aztec start --local-network; no npm creds needed):
yarn test:js
yarn bench
```
If a local network is unavailable, record both commands as deferred and keep the PR in draft until
the CI **JS Tests** and **Benchmark** jobs pass. Do not describe the bump as fully validated before
those runtime checks are green.

**Diagnosing failures:** a compile/test break is often a real API change in the new aztec version,
not a repo bug. Use the **local aztec-packages checkout / `gh api` at the target ref** to diff the
relevant internals and fix. See Gotchas.
Expand All @@ -81,6 +95,16 @@ When everything is green: commit, open a PR to `main`, let CI pass, merge. Then
- **v5 wallet API.** `createSchnorrAccount(secret, salt)` → now needs a 3rd `GrumpkinScalar` signing key;
`Wallet` context types may need `EmbeddedWallet`. Deploy scripts derive the secret from the signing key
(`deriveSecretKeyFromSigningKey`).
- **Local wallet-internals shims hide upstream API drift.** `src/ts/test/utils.ts` casts wallets through
`unknown` to a hand-written `WalletWithInternals`, so typechecking only verifies that local interface —
not the real protected `BaseWallet` methods. Diff every shimmed method against both the old and target
aztec-packages tags. In v5.1, `scopesFrom(from, additionalScopes = [])` became
`scopesFrom(from, additionalScopes, sendMessagesAs)`; a stale one-argument shim compiled but crashed at
runtime with `additionalScopes is not iterable`. Prefer constructing simple scopes directly (for a
concrete `caller`, `[caller]`) instead of reaching through to this protected helper.
- **Network-only checks catch what typechecking cannot.** Both JS tests and benchmarks execute the wallet
internals used by commitment helpers. Run `yarn test:js` and `yarn bench` against a local network, or
require their CI jobs to pass before calling the bump validated.
- **Benchmark peerDep / duplicate tree.** If `benchmarks/*.ts` typecheck shows `_branding` /
`.../aztec-benchmark/node_modules/@aztec/...` errors, the benchmark pulled a *second* `@aztec` tree —
it must be on a version whose `@aztec/*` are `peerDependencies` matching this repo's aztec version.
20 changes: 10 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@aztec-foundation/aztec-standards",
"version": "5.0.1",
"version": "5.1.0",
"repository": {
"type": "git",
"url": "git+https://github.com/AztecProtocol/aztec-standards.git"
Expand All @@ -27,14 +27,14 @@
"*.ts": "prettier --write -u"
},
"dependencies": {
"@aztec/accounts": "5.0.1",
"@aztec/aztec.js": "5.0.1",
"@aztec/noir-contracts.js": "5.0.1",
"@aztec/protocol-contracts": "5.0.1",
"@aztec/pxe": "5.0.1",
"@aztec/stdlib": "5.0.1",
"@aztec/wallet-sdk": "5.0.1",
"@aztec/wallets": "5.0.1",
"@aztec/accounts": "5.1.0",
"@aztec/aztec.js": "5.1.0",
"@aztec/noir-contracts.js": "5.1.0",
"@aztec/protocol-contracts": "5.1.0",
"@aztec/pxe": "5.1.0",
"@aztec/stdlib": "5.1.0",
"@aztec/wallet-sdk": "5.1.0",
"@aztec/wallets": "5.1.0",
"@aztec-foundation/aztec-benchmark": "5.0.1",
"commander": "14.0.1",
"dotenv": "16.4.7"
Expand All @@ -51,7 +51,7 @@
"vitest": "4.0.17"
},
"config": {
"aztecVersion": "5.0.1"
"aztecVersion": "5.1.0"
},
"engines": {
"node": ">=22"
Expand Down
2 changes: 1 addition & 1 deletion src/dripper/Nargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ compiler_version = ">=1.0.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
token = { path = "../token_contract" }
4 changes: 2 additions & 2 deletions src/escrow_contract/Nargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ compiler_version = ">=1.0.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
serde = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/noir-protocol-circuits/crates/serde" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
serde = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/noir-protocol-circuits/crates/serde" }
token = { path = "../token_contract" }
nft = { path = "../nft_contract" }
sha512 = { git = "https://github.com/noir-lang/sha512", tag = "mv/use-bool-over-u1" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ compiler_version = ">=1.0.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
escrow_contract = { path = "../../../" }
token = { path = "../../../../token_contract" }
nft = { path = "../../../../nft_contract" }
2 changes: 1 addition & 1 deletion src/generic_proxy/Nargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ compiler_version = ">=0.25.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
4 changes: 2 additions & 2 deletions src/multitoken_contract/Nargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ compiler_version = ">=1.0.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
compressed_string = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/compressed-string" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
compressed_string = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/compressed-string" }
multitoken_authorization_contract = { path = "src/test/multitoken_authorization_contract" }
generic_proxy = { path = "../generic_proxy" }
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ compiler_version = ">=1.0.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
4 changes: 2 additions & 2 deletions src/nft_contract/Nargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ compiler_version = ">=1.0.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
compressed_string = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/compressed-string" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
compressed_string = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/compressed-string" }
generic_proxy = { path = "../generic_proxy" }
10 changes: 5 additions & 5 deletions src/token_contract/Nargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ compiler_version = ">=1.0.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
uint_note = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/uint-note" }
balance_set = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/balance-set" }
compressed_string = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/compressed-string" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
uint_note = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/uint-note" }
balance_set = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/balance-set" }
compressed_string = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/compressed-string" }
generic_proxy = { path = "../generic_proxy" }
authorization_contract = { path = "src/test/test_authorization_contract" }
authorization_contract = { path = "src/test/test_authorization_contract" }
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ compiler_version = ">=1.0.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
7 changes: 3 additions & 4 deletions src/ts/test/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ interface WalletWithInternals {
from: AztecAddress,
feeOptions: FeeOptions,
): Promise<TxExecutionRequest>;
scopesFrom(from: AztecAddress): AztecAddress[];
pxe: {
proveTx(
txRequest: TxExecutionRequest,
Expand Down Expand Up @@ -450,7 +449,7 @@ export async function initializeTransferCommitment(
const w = token.wallet as unknown as WalletWithInternals;
const feeOptions = await w.completeFeeOptions(caller, executionPayload.feePayer, undefined);
const txRequest = await w.createTxExecutionRequestFromPayloadAndFee(executionPayload, caller, feeOptions);
const provenTx = await w.pxe.proveTx(txRequest, { scopes: w.scopesFrom(caller), senderForTags: caller });
const provenTx = await w.pxe.proveTx(txRequest, { scopes: [caller], senderForTags: caller });

// Extract the commitment from the nested private execution results
const entrypoint = provenTx.privateExecutionResult.entrypoint;
Expand Down Expand Up @@ -488,7 +487,7 @@ export async function initializeTransferCommitmentNFT(
const w = nft.wallet as unknown as WalletWithInternals;
const feeOptions = await w.completeFeeOptions(caller, executionPayload.feePayer, undefined);
const txRequest = await w.createTxExecutionRequestFromPayloadAndFee(executionPayload, caller, feeOptions);
const provenTx = await w.pxe.proveTx(txRequest, { scopes: w.scopesFrom(caller), senderForTags: caller });
const provenTx = await w.pxe.proveTx(txRequest, { scopes: [caller], senderForTags: caller });

const entrypoint = provenTx.privateExecutionResult.entrypoint;
const nestedResults = entrypoint.nestedExecutionResults;
Expand Down Expand Up @@ -839,7 +838,7 @@ export async function initializeMultiTokenTransferCommitment(
const w = token.wallet as unknown as WalletWithInternals;
const feeOptions = await w.completeFeeOptions(caller, executionPayload.feePayer, undefined);
const txRequest = await w.createTxExecutionRequestFromPayloadAndFee(executionPayload, caller, feeOptions);
const provenTx = await w.pxe.proveTx(txRequest, { scopes: w.scopesFrom(caller), senderForTags: caller });
const provenTx = await w.pxe.proveTx(txRequest, { scopes: [caller], senderForTags: caller });

const entrypoint = provenTx.privateExecutionResult.entrypoint;
const nestedResults = entrypoint.nestedExecutionResults;
Expand Down
2 changes: 1 addition & 1 deletion src/vault_contract/Nargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ compiler_version = ">=1.0.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
token_contract = { path = "../token_contract" }
generic_proxy = { path = "../generic_proxy" }
2 changes: 1 addition & 1 deletion src/vault_deployer/Nargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ compiler_version = ">=1.0.0"
type = "contract"

[dependencies]
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.0.1", directory = "noir-projects/aztec-nr/aztec" }
aztec = { git = "https://github.com/AztecProtocol/aztec-packages/", tag = "v5.1.0", directory = "noir-projects/aztec-nr/aztec" }
vault_contract = { path = "../vault_contract" }
token_contract = { path = "../token_contract" }
Loading
Loading