0.85.0 (2025-04-15)
⚠ BREAKING CHANGES
- remove PXE starting block (#13504)
- rename encrypted_logs to messages (#13496)
- remove poseidon from stdlib (noir-lang/noir#7650)
Features
ssa::create_program_with_passes
(noir-lang/noir#8035) (b184863)- acir_formal_proofs: formal proofs for Noir cast (#13467) (68bf6ed)
- add
loop
generator to AST fuzzer (noir-lang/noir#7985) (cf18f8e) - add
while
generator to AST fuzzer (noir-lang/noir#8021) (b184863) - add basic comptime correctness tests (noir-lang/noir#7825) (f9d3c38)
- add CapsuleArray::for_each (#13425) (24b6ed3)
- Add nullifier read gadget (#13403) (ac97b24)
- Add rollup IVC testing suite (#13371) (0ec1917)
- add simplified OR when
rhs
orlhs
is all 1s (noir-lang/noir#7880) (f9d3c38) - allow splicing a resolved function into an attribute name (noir-lang/noir#7956) (cf18f8e)
- attribute locations (noir-lang/noir#8006) (cf18f8e)
- avm: appendLeaves hints (#13312) (869dc1f)
- avm: checkpointing hints (#13302) (81f3d7d)
- avm: standard AVM recursive verifier v2 (#13234) (5941c82)
- avm: tree padding (#13394) (3f11060)
- compute padding indicator array in-circuit (#13417) (39f4ec0)
- Contract updates checker gadget (#13236) (fd9264d)
- dsl layer for recursive avm verifier v2 (#13362) (e9922dc)
- error if generic type parameter in impl is not mentioned in self type (noir-lang/noir#6388) (f9d3c38)
- Evolve nullifier read gadget into a read/write gadget (#13440) (73d6cf7)
- fast PXE sync (#13475) (c580e8b)
- fee asset handler update (#13493) (cd091db)
- formatter: improved formatting of long struct patterns (noir-lang/noir#7899) (f9d3c38)
- fuzz: AST function body (noir-lang/noir#7890) (f9d3c38)
- fuzz: AST fuzzer skeleton (noir-lang/noir#7865) (f9d3c38)
- fuzz: Generate arbitrary
Call
in function body (noir-lang/noir#7987) (b184863) - Generate verification keys in parallel in aztec-nargo (#13307) (8fd4b8b)
- generic trait bounds (noir-lang/noir#7891) (f9d3c38)
- Honk solidity verifier takes the pairing point obj as part of the proof (#13322) (9b99f9a)
- Honk will always have pairing point object (#13217) (1704145)
- improved pairing point accumulator (#13226) (8c58c96)
- LSP: Workspace Symbol (noir-lang/noir#7953) (f9d3c38)
- MessagePack serialisation for circuits (noir-lang/noir#7690) (f9d3c38)
- more blob sink metrics (#13413) (8dc17ec)
- more tests for pairing point object (#13500) (5e8b092)
- node mempool limiting (#13247) (4899d3f)
- parser: better error recovery when identifier doesn't come in constructor (noir-lang/noir#7887) (f9d3c38)
- parser: improve error recovery when
fn
is missing between mod… (noir-lang/noir#7884) (f9d3c38) - perf: optimise array index checks in loops (noir-lang/noir#7893) (f9d3c38)
- persist the bot and enable simulation capturing (#13276) (4247bb6)
- playground (#12965) (64bbf42)
- playground improvements (#13492) (004dea3)
- preload CRS files once in GKE (#13093) (7463538)
- print initialization witnesses and show all blackbox witnesses (noir-lang/noir#7919) (f9d3c38)
- remove PXE starting block (#13504) (e09699f)
- Remove range constraints on witnesses when use as array index is more restrictive (noir-lang/noir#7848) (f9d3c38)
- rename encrypted_logs to messages (#13496) (09a2b2e)
- Reorg cheat codes (#13367) (29d737e)
- rough break up of inner and outer circuits in rev verifier (#13330) (be47b59)
- show which generic argument cannot be inferred when it's on the… (noir-lang/noir#7914) (f9d3c38)
- SSA gen unit tests (noir-lang/noir#7868) (f9d3c38)
- statically defined ECCVM/Translator VK data (#13395) (507b68b)
- stdlib: Expose the times a mock oracle is called (noir-lang/noir#7996) (cf18f8e)
- support HonkRecursionConstraints in ClientIVC (#13401) (927e80d)
- txIndexInBlock in response of getTxEffect (#13336) (bf7882d)
- type path for any type (noir-lang/noir#7824) (f9d3c38)
- unify opcode API between ultra and eccvm ops (#13376) (8c58b76)
- Validator waits for archiver sync (#13497) (1b97cd2)
Bug Fixes
PXE::getPrivateEvents(...)
ordering (#13363) (5b4848f)- avm: request paths for appendLeaves (#13389) (c4efcb3)
- Aztec node throws on receiving an invalid tx (#13288) (42b9f7d), closes #10967
- Barretenberg: shplemini variables in one gate fixes (#13290) (15d2633)
- better logic for determining whether a struct is constructed or not (noir-lang/noir#7806) (f9d3c38)
- better tests to check for unused struct error (noir-lang/noir#8007) (cf18f8e)
- Block stream fails when pruning to a block before its start (#13473) (b49184f)
- bump tokio to 1.44.2 (noir-lang/noir#7950) (f9d3c38)
- check genesis state before starting node (#13121) (d5ce03a), closes #13020
- checks for index out of bounds also for arrays (noir-lang/noir#7827) (cf18f8e)
- correct proptest Arbitrary for NumericType (noir-lang/noir#7945) (f9d3c38)
- cpp bench ci (#13565) (a7cfbbe)
- debug: Fix RC underflow check (noir-lang/noir#7849) (f9d3c38)
- debugger: improve debugger_expected_call_stack test (noir-lang/noir#7769) (f9d3c38)
- deployments: incorrect value in yaml (#13483) (1bf2327)
- deprecate witness circuit size from ECCVM and Translator (#13133) (915841b)
- disable unbuffered output (#13422) (8200147)
- docs: fix proof splitting script in solidity guide (noir-lang/noir#8033) (b184863)
- docs: fix release-please parse error for cutting docs version (#13495) (360a5f6)
- docs: Make update_versions behave as expected (#13535) (bcc5182)
- docs: Reduce header image size (noir-lang/noir#7988) (f9d3c38)
- don't solve
Self
in trait impl method via trait method lookup (noir-lang/noir#7974) (f9d3c38) - don't use relative path in nargo_cli build script (noir-lang/noir#7982) (f9d3c38)
- easier description of how to use multiple authwitnesses with cli wallet (#13412) (33286ae)
- Fix for the deploy L1 verifier script (#13347) (1701b52)
- Fix nondeterminsm on aarch64 vs amd64 (noir-lang/noir#7942) (f9d3c38)
- Fix type of internal variable created while destructuring tuples and structs during monomorphization (noir-lang/noir#7916) (f9d3c38)
- fuzz: remove duplicate gen_loop, move unconstrained generators up (noir-lang/noir#8029) (b184863)
- IVC integration native (#13343) (a84a30c)
- logging ABI in errors + more aggressive hex truncation (#12715) (20a0aaa)
- LSP: implement missing members associated constants (noir-lang/noir#8016) (cf18f8e)
- mapping P2P port via
--p2p.p2pPort
(#13457) (aedeaba) - mega zk in hiding circuit + bug fixes (#13262) (d68800a)
- Might fix some npm install issues. (#13339) (48e17a4)
- nargo-rpc: restart http-client on ClientError::Transport error (noir-lang/noir#7954) (f9d3c38)
- Nondeterminism in constant allocation (#13340) (ff2e738)
- omit p2p options from prover & bootstrap nodes (#13441) (220e82b)
- p2p: persist p2p private key on rollup address change (#13529) (0faedc4)
- parser: error on missing function body (noir-lang/noir#8001) (cf18f8e)
- parser: parse double
&
in type (noir-lang/noir#7867) (f9d3c38) - port_change test + testbench (#13326) (b4221ef)
- properly constrain quotient during field truncation (noir-lang/noir#7895) (f9d3c38)
- PXE sync batch and plantext deploy sent tx (#13476) (95b199e)
- quote (#13521) (bc4d143)
- remove docs from build & release steps in bootstrap.sh (#13528) (0caed71)
- remove second msg discovery call in sync_notes (#13328) (8dcebac)
- removeNullifiedNotes respecting only synced nullifiers (#13334) (29856a8)
- replace one more path pattern when producing stderr.txt (noir-lang/noir#7970) (f9d3c38)
- retry download old crs (#13350) (1ad4368)
- set default P2P port (#13449) (e7b285a)
- Shorten the name of a cron job to please terraform (#13308) (e524741)
- source is not available in sh (#13444) (86e7499)
- ssa: Map terminator instructions after constant folding (noir-lang/noir#8019) (b184863)
- ssa: Remove OOB checks inserted during DIE (noir-lang/noir#7995) (b184863)
- store shared crs in premium storage class (#13451) (e0d5632)
- suppress mock call warnings (#13443) (391bc72)
- txe node should not use base fork for find_leaves_indexes (#13341) (ca6c7a7)
- Use API keys when fetching blobs on missed slot (#13418) (5935417), closes #13415
- use generics from self type when using
Self
(noir-lang/noir#7897) (f9d3c38) - Use proof submission window for prover node deadline (#13321) (405a515), closes #13320
- use proper max bit size during truncation (noir-lang/noir#8010) (b184863)
- Wait for L1 mint tx on cross chain test harness (#13344) (37001ab)
- Wait for world-state to start before starting p2p (#13400) (c8a766e)
- warn if blob sink server can't be reached (#13419) (ca81e65)
- Warn when inconsistent gas limit (#13348) (79c8829)
- workaround npm install deps cache issue (#13327) (a0acbaf)
Miscellaneous
e2e_note_getter
not usingDocsExampleContract
(#13366) (236e9e5)e2e_state_vars
not usingDocsExampleContract
(#13368) (bf966fc)getLogByTag
andremoveNullifiedNotes
onPXEOracleInterface
(#13323) (5026c62)PXEOracleInterface::deliverNote
(#13316) (4a64f89)- 1tps kind test + nightly updates (#12946) (b8aabec)
- add
teddav/tdd.nr
to external repo checks (noir-lang/noir#7994) (cf18f8e) - add 1.0.0-beta.4 docs (noir-lang/noir#7972) (f9d3c38)
- add benchmark for ACVM arithmetic solver (noir-lang/noir#8003) (cf18f8e)
- add cast to aztec base image (#13465) (910b301)
- add ci logging to discv5 test (#13306) (d4f45c7)
- add default native proving for cli-wallet (#13129) (ca3da0c)
- add encode/decode fns (#13369) (7aabf7c)
- add get canonical sponsored fpc and cleanup fee opts in cli wallet (#13319) (829a315)
- add helper script for gov (#13385) (b29b358)
- add higher performance node pool for exp clusters (#13485) (140b483)
- add nonce discovery tests (#13470) (e7e55ff)
- add option to register contract class to deploy account in cli-wallet (#13359) (1c3d70b)
- add snapshot tests for the build artifacts as produced by test_programs (noir-lang/noir#7986) (b184863)
- add timeouts to rust CI (noir-lang/noir#7923) (f9d3c38)
- add workflow to run nightly tests on ARM64 (noir-lang/noir#8027) (b184863)
- allow injecting custom brillig stdlib implementations in ACIRgen (noir-lang/noir#7894) (f9d3c38)
- avm: check full tuple after find_in_dst (#13397) (9eadf18)
- avm: dont use PIs in simulation (#13409) (1994b2c)
- avm: getNullifierIndex -> checkNullifierExists (#13414) (ea7eaf5)
- avm: nuke vm1 (#13484) (ebe68db)
- avm: use tx hash as avm proof identifier (#13304) (d888d0e)
- bb: add fr container hashing benchmark (#13295) (5425d16)
- bench ivc in native/wasm with memory/time (#13186) (9a5dc93)
- BoundedVec::for_each (#13426) (866968a)
- bump
crossbeam-channel
tov0.5.15
(noir-lang/noir#8005) (cf18f8e) - bump a few versions in yarn.lock (noir-lang/noir#8014) (cf18f8e)
- bump external pinned commits (noir-lang/noir#7856) (f9d3c38)
- bump external pinned commits (noir-lang/noir#7870) (f9d3c38)
- bump external pinned commits (noir-lang/noir#7940) (f9d3c38)
- bump external pinned commits (noir-lang/noir#8015) (cf18f8e)
- bump foundry version to get around docker pull issues (#13438) (1114b03)
- bump high mem node pool (#13482) (ee01fe9)
- bump noir (#13345) (3207bc3)
- bump to forge nightly 2025-04-08 (#12799) (6c23db4)
- check test_programs/compile_failure stderr (noir-lang/noir#7869) (f9d3c38)
- civc: Rename e2e trace to aztec trace (#13399) (ca708e7)
- Cleanup sequencer block sync check (#13289) (7db2247), closes #9316
- clippy fixes (noir-lang/noir#8002) (cf18f8e)
- clippy fixes (noir-lang/noir#8020) (b184863)
- cluster changes for exp3 (#13398) (eeb5aaf)
- cluster: increase 2 core node pool size (#13351) (064d83d)
- const proof sizes clean-up (#13005) (bc0a0ca)
- Contract addresses for alpha-testnet (#13303) (65cfdf5)
- correct name of acvm benchmark (noir-lang/noir#8032) (b184863)
- debug: Add ownership analysis pass (noir-lang/noir#7860) (f9d3c38)
- Deflake p2p client unit test (#13387) (6686168)
- delete dead code (noir-lang/noir#7901) (f9d3c38)
- delete ns after running tf destroy (#13439) (303ea85)
- dep: bump crypto polyfill (#13466) (a045f78)
- deps: bump koa from 2.14.2 to 2.16.1 (noir-lang/noir#8013) (cf18f8e)
- deps: remove elliptic (#13446) (038c4a6)
- disable kind smoke test (#13533) (47afdab)
- disable shared crs (#13477) (ed23b8f)
- discv: improve flakey self update ip test (#13317) (a4d33f6)
- doc: document embedded_curve_add (noir-lang/noir#7833) (f9d3c38)
- docs: 0.84.0-alpha-testnet.1 docs (#13354) (1c370fa)
- docs: Add 0.84.0-alpha-testnet.2 docs (#13420) (ab55ba2)
- docs: alpha testnet 3 docs (#13445) (8f931d7)
- docs: docs versioning (#13424) (b0fa31b)
- docs: docs versioning nits - round 4 (#13472) (c5d5d01)
- docs: fixing include_macro misversioning (#13257) (3b8aff0)
- docs: making release-please cut the right version (#13458) (4bda2d0)
- docs: making RP docs action work on its branch (#13447) (45b6ef8)
- docs: making RP run the docs deps on master (#13490) (6af7019)
- docs: New version script for release-please (#13503) (e35e1b0)
- docs: Remove outdated BigInt library reference (noir-lang/noir#7969) (f9d3c38)
- docs: rp round 3 (#13468) (f920507)
- docs: Touch up profiler docs (noir-lang/noir#7524) (f9d3c38)
- Don't spam logs when peers don't have an aztec key set (#13509) (d110028)
- don't use
set_value_from_id
inremove_truncate_after_range_checks
(noir-lang/noir#8037) (b184863) - Dump container netstat on address in use (#13396) (1b09e55)
- fix documentation nits (noir-lang/noir#7971) (f9d3c38)
- Fix expected revert reason in private payment test (#13331) (ac55a5f)
- fix failing test on MacOS (noir-lang/noir#8030) (b184863)
- Fix flake in reqresp p2p test (#13333) (be31389)
- fix mistery irreproducible bug (#13494) (afd3578)
- fix yarn.lock (#13455) (7c00e11)
- generate compilation tests from frontend tests (noir-lang/noir#7753) (f9d3c38)
- give port change test more resources (#13266) (69c3168)
- grouping noir contracts (#13337) (507c5a6)
- Handle docker-in-docker when netstatting via nsenter (#13502) (59fc620)
- improve capsule performance and add tests (#13284) (0d5add0)
- improve checking of github urls in
noir_wasm
(noir-lang/noir#8012) (cf18f8e) - improve re-ex flake (#13301) (2e6cebd)
- kind: add control pane logging (#13279) (6b7f41d)
- Less strict block proposal init deadline (#13522) (89462d5), closes #13511
- let
nargo test
write to stdout, not stderr (noir-lang/noir#7944) (f9d3c38) - lint helm chart (#13384) (92b48f2)
- Log containers if failed cid not found (#13456) (f80d773)
- log metadata cleanup (#13346) (63b5bf3)
- move aes code to aes file (#13332) (e3b3b1c)
- nargo: extract common functions (noir-lang/noir#7957) (f9d3c38)
- p2p: fix gas message validator (#13299) (c79402b)
- parse IfElse in SSA parser (noir-lang/noir#8043) (b184863)
- redo typo PR by gasaicrypto (#13300) (d4ae339)
- Release Noir(1.0.0-beta.4) (noir-lang/noir#7475) (f9d3c38)
- remove foundry image from k8s deployment (#13480) (057eb8a)
- remove lingering log (#13408) (40b34ef)
- remove poseidon from stdlib (noir-lang/noir#7650) (f9d3c38)
- remove setup-l2 job as it's not needed anymore (#13375) (0e30b2c)
- remove unnecessary double compilation (noir-lang/noir#8031) (b184863)
- remove unused deps (#13460) (34cd110)
- rename logs to msg (#13364) (64675db)
- renaming unconstrained to utility in registerer (#13287) (94f46d6)
- replace
PrintOutput
with usage ofstd::io::Write
(noir-lang/noir#7911) (f9d3c38) - replace relative paths to noir-protocol-circuits (51fe033)
- replace relative paths to noir-protocol-circuits (7a36459)
- replace relative paths to noir-protocol-circuits (d41d09c)
- replace relative paths to noir-protocol-circuits (bc290fa)
- replace relative paths to noir-protocol-circuits (4c52357)
- replace relative paths to noir-protocol-circuits (f15ea02)
- replace relative paths to noir-protocol-circuits (404eab7)
- replace relative paths to noir-protocol-circuits (150dc06)
- replace relative paths to noir-protocol-circuits (2eefadf)
- replace ssa builder usage with parser in test (noir-lang/noir#7863) (f9d3c38)
- replacing remaining use of DocsExampleContract (#13388) (d656743)
- restructure ACIR-gen code (noir-lang/noir#7864) (f9d3c38)
- revert: fix kind transfer test (master) (#13313) (a75ff87)
- run corepack enable on release please (#13349) (630d28e)
- set bbup version for noir 1.0.0-beta4 (#13518) (c87685f)
- set random container names on aztec start (#13242) (78857fa), closes #12905
- shorter ci links (#13311) (6a6d38a)
- sol: fix off by one in test gen (#13410) (16aa932)
- spartan: enable pointing at a different metrics instance (#13481) (510dc20)
- Support printing the AST without variable IDs (noir-lang/noir#7983) (f9d3c38)
- Test that a contract without initializer can still be called (#13324) (7f9af7c)
- Try fix flake in reorg tests (#13498) (29302c4)
- txe: no custom public merkle db (#13508) (e3a337b)
- update bb commands in beta2 and beta3 versioned docs (noir-lang/noir#7888) (f9d3c38)
- update dashboards (#13487) (97889d2)
- update foundry image (#13431) (3bdabc6)
- update hash to fix test and dont skip join split tests (#13175) (76a4525)
- update koa dependency (#13452) (148ff8d)
- update yp lock (#13491) (c33d04c)
- upload aztec-up nightly (#13479) (753be0d)
- use a deployment instead of a replicaset for agents (#13416) (eafce9b)
- use heap buffer methods for civc proof in bbjs (#13541) (f7fb5e6)
- use insta snapshots for ssa tests (noir-lang/noir#7989) (b184863)
- using Txhash type (#13318) (ab0d6c6)