Repository navigation
chore!: bump Aztec to 6.0.0-rc.4 and noir-bignum to v0.11.0 - #61
Merged
Merged
Conversation
Moves aztec-nr to v6.0.0-rc.4 and the SDK to @aztec-labs/*@6.0.0-rc.4, with bb.js 6.0.0-rc.7 and upstream viem 2.57.1, the versions the rc.4 SDK pins. Re-pins sha512 master, whose one new commit touches no Noir source. An rc.4 PXE only runs contracts built for oracle interface major 33. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gotchas The bump skill told the next bump to keep the @aztec/viem alias, which the rc.4 SDK dropped. It also gains rc.4's Node 24.15 floor, the foundryup refusal next to a running anvil, and the TXE's lost-session failure on a loaded host. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This comment has been minimized.
This comment has been minimized.
v0.11.0 is noir-bignum's audit-fix release (noir-lang/noir-bignum#270). Its methods borrow, so Vault's share/asset math and Escrow's key derivation pass the udiv_mod divisor by reference. Its checked API also validates inputs now (from_limbs range-checks limbs; from_be_bytes and constrained udiv_mod require canonical values). Every input here is canonical by construction, so no result changes. Vault's public bytecode changes, and with it its class id. Escrow's bytecode does not: only the Logic contracts that compile in its library derive keys, and they pick up the new checks when they rebuild. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
alejoamiras
marked this pull request as ready for review
October 21, 2026 19:35
Benchmark Comparison
Contract: escrow
Contract: logic
Contract: multitoken
Contract: nft
Contract: token
Contract: vault
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the contracts and the SDK from Aztec 6.0.0-rc.3 to 6.0.0-rc.4, and noir-bignum to its audit-fix release. An rc.4 PXE won't execute the private or utility functions of contracts compiled against rc.3 (their oracle interface is major 32, it expects 33), so the next rc of this package needs this.
What changed
v6.0.0-rc.4, and the SDK to@aztec-labs/*@6.0.0-rc.4, pinned exactly.config.aztecVersionand the package version follow, so CI and the release job install the rc.4 toolchain.@aztec-foundation/bb.jsmoves to6.0.0-rc.7, the version the rc.4 SDK depends on (aztec-nr rc.4 likewise builds on aztec-packagesv6.0.0-rc.7).udiv_modcalls pass the divisor by reference, and its checked API validates inputs:from_limbsrange-checks the limbs,from_be_bytesand constrainedudiv_modreject non-canonical values. Every input here is canonical by construction (au128split into limbs, a SHA-512 digest under a zero byte, the Grumpkin scalar modulus), so no result changes. Look hardest here, the PR's only change to contract code. No finding applies to these inputs: Escrow's operands are a constant and a digest whose encoding keeps it below U512's modulus, and Vault's math runs only in public functions, where bignum computes the result directly instead of checking a prover's hint. Vault's public bytecode changes; Escrow's does not, since only the Logic contracts that compile in its library derive keys. In the benchmarks, the bump adds 4,050 L2 gas (+0.4%) to each Vault transaction that converts shares or assets, and 220 gates (+0.07%) to each TestLogic call that derives a key set.viemmoves from the@aztec/viem@2.38.3fork to upstreamviem@2.57.1, because the rc.4 SDK switched to it, and keeping the fork would install a second viem next to the SDK's. Only the benchmarks import it, forparseUnits. Look hard at the lockfile too: besides the 40 Aztec packages it changes only viem's tree (viem, ox, abitype) and addsundici@6.29.1, which@aztec-labs/foundationnow requires (a High-CVE security release, six days old).811b378. Itsmastergained one commit that touches only CI files, the LICENSE copyright line and the README, so escrow compiles from the same Noir sources. Without the re-pin,check:noir-depsand the release job's dependency guard fail.Breaking changes
@aztec-labs/aztec.js@6.0.0-rc.4(the package'sconfig.aztecVersion) next to the package.rc.4 migration notes against this repo
FactScope(oracle 32 to 33): applies through the recompile; nothing here callsaztec::facts.PublicImmutablereads in private and utility functions now cache the value in the PXE's fact store. Private reads still prove the value against the anchor block, so the cache cannot change their result, and no utility function here reads aPublicImmutable. The standard-contract addresses move again (above).Writer::advance_offsetis now really gone,Optionserialization rejects aNonewith a non-zero payload, andBoundedVecserialization asserts its length. Nothing here calls the first. Of the other two, only the macro-generatedoffchain_receiveentrypoint takes them (aBoundedVecof messages carryingOptiontx hashes), and their canonical encodings are unchanged; no handwritten entrypoint, note or event does.typesalso moves to noir-lang/poseidon v0.4.0, where only the incremental sponge changed: the array hash the protocol crates call is identical.OriginBlock,getBlockHashMembershipWitness) shipped in rc.3 and were covered by chore!: bump Aztec to 6.0.0-rc.3 #57.Not in this PR
v6.0.0-rc.4and publishing to npm follow the merge.>=6.0.0-0 <7) accepts rc.4. The other Noir dependencies are already at their latest: aztec-nr at the newest rc, sha512 atmaster.setup-aztecstill pins Node 24.0.0 under rc.4's 24.15 floor (rc.1 and rc.3 CI passed regardless), and the Benchmark job compares againstmain's rc.3 baseline.Upstream pins: aztec-nr
v6.0.0-rc.4is 208255fe28acd6582b2adbb49f4d2b681c1ab0e1, aztec-packagesv6.0.0-rc.7is 0219f11d8133970df3974fe5ae65e006bf8c193a, noir-bignumv0.11.0is c2767065cc9012e1b6201edec14acc92cb2a4a68.Evidence: CI passes every job on the final commit, all 449 Noir tests in one run included. Against
main's rc.3 baseline, its benchmark shows +0.10% to +0.31% gates on all 56 transactions, and gas unchanged except Vault's +4,050 L2 gas. Locally against an rc.4 network, the Vault, Escrow and TestLogic Noir tests (TestLogic holds the key-derivation vectors), the 22 Vault and Escrow JS tests, typecheck, build,npm publish --dry-run --tag rcand the release smoke test pass with noir-bignum v0.11.0, and Escrow compiles to the same bytecode under both bignum versions. No test was added. Codex (GPT-6 Astra, xhigh) found no blocker in four rounds; its findings are the skill's viem line and the ABI, soundness, class-id and cost wording above.🤖 Generated with Claude Code