0.42.0 (2024-06-04)
� BREAKING CHANGES
- introduce UnconstrainedContext (#6752)
- integrate AVM proving (#6775)
- constrain note_getter filter (#6703)
- stdlib: eddsa function using turbofish (noir-lang/noir#5050)
- migrate public to avm simulator (#6448)
Features
- ACIR integration tests in Bb (#6607) (ca89670)
- Activate return_data in ACIR opcodes (noir-lang/noir#5080) (17f6e1d)
- Add
as_witness
builtin function in order to constrain a witness to be equal to a variable (noir-lang/noir#4641) (221e247) - Add cli to published image (#6758) (1e45400)
- Add code-workspace and update build dirs (#6723) (c373d15)
- Add estimateGas to aztec-js (#6701) (cf603df)
- Add flag to not mask address in siloing enc log (#6668) (73708ee)
- Add goblin recursive verifier to ClientIVC recursive verifier (#6811) (bd795c7)
- Add intrinsic to get if running inside an unconstrained context (noir-lang/noir#5098) (17f6e1d)
- Add native rust implementation of schnorr signature verification (noir-lang/noir#5053) (221e247)
- avm executor: Kernel outputs & execution hints in executor (#6769) (6ab7360)
- Avm unconstrained external call (#6846) (5a65ffc)
- avm: Add storage address kernel opcode (#6863) (19aba3e)
- avm: Add temporary sha256 execution (#6604) (34088b4)
- avm: Avm keccak permutation (#6596) (c0917e4)
- avm: Handle debuglog (#6630) (eba345b)
- avm: In vm static gas accounting (#6542) (6b88ae0)
- avm: Internal call stack dedicated memory (#6503) (d3c3d4a), closes #6245
- avm: JUMPI opcode in AVM circuit (#6800) (64d4ba9), closes #6795
- avm: Kernel output opcodes (#6416) (0281b8f)
- avm: Pedersen ops (#6765) (7b3a72c)
- avm: Plumb execution hints from TS to AVM prover (#6806) (f3234f1)
- avm: Poseidon2 gadget (#6504) (9e8cba1)
- avm: Sha256_compression (#6452) (5596bb3)
- Batch simulate (#6599) (8d54ac1)
- Bench uploading (#5787) (bd64ceb)
- Biggroup handles points at infinity (#6391) (bd72db5)
- Bump prover concurrency (#6814) (a543675)
- Changing finite field arithmetic in wasm to 29 bits for multiplications (second try, disabled AVM build in wasm) (#6027) (c3fa366)
- Claim and pay fee on the same tx (#6579) (4c09894), closes #6562
- ClientIvc recursive verifier (#6721) (ceec7e2)
- Complete ECCVM recursive verifier (#6720) (a98d30b)
- Consider block parameters in variable liveness (noir-lang/noir#5097) (17f6e1d)
- Constrain note_getter filter (#6703) (545da36)
- Cycle scalar <> bigfield interactions (#6744) (6e363ec)
- Devnet docker compose (#6761) (c62dfee)
- Do not build L2 blocks over 1mb (#6829) (ce23a15)
- docs: How to Test (#6186) (172e415)
- Emit note logs linked to note hash counters, header.is_transient -> note_hash_counter (#6728) (dd1e85c)
- Enable honk_recursion through acir (#6719) (7ce4cbe)
- Fold acir programs (#6563) (f7d6541)
- Folding acir programs (#6685) (8d1788d)
- Generate vks and verifier contract in CI (#6627) (523905f)
- Get protocol contract addresses (#6852) (b540fdd)
- Goblin Recursive Verifier (#6778) (53d0d55)
- Historical access of key getters, fixing logic in contracts after rotation (#6656) (d9d0193)
- Implement turbofish operator (noir-lang/noir#3542) (221e247)
- Increasing MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL, removing hack (#6739) (d5550c6)
- Inject fee payment update in base rollup (#6403) (4991188)
- Instantiate ECCVM relations on bigfield (#6647) (0ee6ef9)
- Integrate AVM proving (#6775) (f1512a2)
- Introduce initialize_or_replace (#6519) (b59cd4c)
- Introduce UnconstrainedContext (#6752) (e00b251)
- Make ACVM generic across fields (noir-lang/noir#5114) (a37895c)
- Meaningful outgoing (#6560) (3f93757), closes #6410
- Migrate public to avm simulator (#6448) (c45e8c2)
- Misc: Multi wallet token simulator (#6763) (3d376f2)
- nargo: Hidden option to show contract artifact paths written by
nargo compile
(#6131) (d4377ee) - New test program for verifying honk (#6781) (1324d58)
- Node verifies proofs (#6735) (3a215ed)
- Pow method for bigfield (#6725) (e4feb80)
- Prepare circuit output for validation (#6678) (03511f5)
- Prototype for using the databus with ACIR opcode (#6366) (9f746d9)
- Prove padding tx for block building (#6759) (0921401)
- Re-introduced Aztec CLI (#6734) (a120015)
- Recursion in public kernels and rollup circuits (#6425) (86fb999)
- Reduce stack size after optimizations (#6698) (3502ccd)
- Reenable native fee payment (#6571) (78f8cbe)
- Remove conditional compilation of
bn254_blackbox_solver
(noir-lang/noir#5058) (17f6e1d) - Remove external blackbox solver from acir simulator (#6586) (9c54590)
- Replace stdlib poseidon implementation with optimized version (noir-lang/noir#5122) (46c2ad0)
- Representation of a grumpkin verifier commitment key inside a bn254 circuit (#6593) (1d84975)
- Revertible teardown (#6490) (288231b)
- Run kernel reset between iterations as needed (#6554) (d2ab01d)
- sandbox: Auto transpile public contract functions in sandbox (#6140) (9639f34)
- Silo logs hashes in tail circuit (#6536) (0f45b77)
- stdlib: Eddsa function using turbofish (noir-lang/noir#5050) (17f6e1d)
- Sumcheck part of ECCVM recursive verifier instantiated as an UltraCircuit (#6413) (afe84a2)
- Support AVM in bb-prover-exec (#6666) (a64a921)
- Sync from aztec-packages (noir-lang/noir#5070) (17f6e1d)
- Sync from aztec-packages (noir-lang/noir#5125) (a37895c)
- Track per function sim/witgen time (#6498) (d49acaf)
- Update honk recursion constraint (#6545) (6f86352)
Bug Fixes
- Add cbind declarations for new methods to fix autogen (#6622) (2429cd8)
- Add missing initializers (#6591) (a575708)
- Allow end-setup from any private function (#6692) (1512017)
- Apply self type from generic trait constraint before instantiating identifiers (noir-lang/noir#5087) (17f6e1d)
- Auto dereference trait methods in the elaborator (noir-lang/noir#5124) (a37895c)
- Bad merge (#6767) (c745b7b)
- Build initial header from committed data (#6826) (1f760e7)
- Bump timeouts in fetch. enable logging. no retry (#6831) (dd0c810)
- CCI jobs for avm-transpiler and aztec-nargo should require job noir as prereq (#6743) (76b0981)
- Ci retry (#6619) (25fd783)
- ci: Disable firefox box tests for now (#6677) (eadcc6f)
- ci: Only retry on actual fail (#6625) (8604f9b)
- ci: Remove disk-having instance type (#6592) (f912ba3)
- ci: Remove instance types with a disk (#6587) (c18de5b)
- ci: Rerun check (#6637) (5ba48fc)
- Cleaning up tx effects related comments (#6790) (fc61d92)
- Configurable ttl for test runners (#6629) (de50ddd)
- Constraining app_secret_keys_generators (#6603) (be2adc3)
- Disable redundant failing acir tests (#6700) (00eed94)
- Do not use kernel constants for computing tx fee (#6635) (8c1ecf0)
- docs: Link source code snippets to appropriate version (#6828) (40ec691)
- docs: Update links (#6776) (df86a55)
- docs: Update token bridge tutorial (#6809) (2a3a098)
- Don't always run CCI (#6847) (63919d2)
- Don't filter AVM changes for running e2e (#6797) (ca2fbf4)
- Dont take down ensure-builder runs early (#6526) (2e8351d)
- ECCVM correctly handles points at infinity and group operation edge cases (#6388) (a022220)
- Estimate gas cost of contract deployment (#6710) (0f86674)
- experimental elaborator: Avoid calling
add_generics
twice on trait methods (noir-lang/noir#5108) (46c2ad0) - experimental elaborator: Fix duplicate
resolve_type
on self type and don't leak a trait impl's generics (noir-lang/noir#5102) (46c2ad0) - experimental elaborator: Fix panic in the elaborator (noir-lang/noir#5082) (46c2ad0)
- experimental elaborator: Only call
add_generics
once (noir-lang/noir#5091) (46c2ad0) - Fix boxes after npk changes (#6609) (d504c03)
- frontend: Call trait method with mut self from generic definition (noir-lang/noir#5041) (221e247)
- frontend: Correctly monomorphize turbofish functions (noir-lang/noir#5049) (17f6e1d)
- Hotfix paths-filter change (#6737) (ded4e22)
- P2p dial (#6695) (8d6d42e)
- p2p: IP Query bool check (#6833) (4dc6938)
- Proving-friendly bootstrap (#6791) (008cea1)
- Read node url (#6793) (7f4051d)
- Refreshing constants (#6786) (49a3b1d)
- Release from CCI for 0.42.0 (#6825) (f9d5626)
- Remove finalize from acir create circuit (#6585) (f45d20d)
- Restore boxes in ci workflow (#6395) (aab288b)
- Run more Bb CI (#6812) (67a8f8a)
- Run x86 pxe image (#6784) (389d888)
- Serialise Fr and Avm inputs (#6843) (2c38f52)
- Shared mutable private getter fixes (#6652) (a28cd0a)
- Show account info before proving tx (#6854) (3eb7a98)
- Specify timeout in avm_proving.test.ts (#6689) (fbe9fc1)
- Tx receipt serialization to JSON (#6711) (1d785fd)
- UDP comms for AWS (#6827) (f4814d3)
- Use plain integer addresses for opcodes in DAP disassembly view (noir-lang/noir#4941) (17f6e1d)
- Use sh-friendly test (#6792) (b359639)
- Yarn project arm image (#6782) (f0ceca5)
Miscellaneous
- Acir tests in bb (#6620) (a4e001e)
- Add bench programs (#6566) (edb6db6)
- Add e2e full proving tests with padding txs (#6787) (4441e21)
- Add earthly prune workflow (#6838) (eb3d657)
- Add example for recursion on the CLI (#6389) (e704ff6)
- Add l1 to l2 msg read requests to public circuit public inputs (#6762) (69d90c4)
- Add linting to avm-transpiler CI (#6732) (57864f9)
- Add note hash read requests to public circuit public inputs (#6754) (42e492e)
- Add retries to noir tests (#6606) (15b0ed5)
- Add script to apply sync fixes (#6731) (68e1a08)
- Add serde traits to compressed string (#6569) (65ee122)
- Add simple
bb
installer script (#6376) (51bc682) - Automatically clear any unwanted directories in
test_programs
(noir-lang/noir#5081) (17f6e1d) - avm: AVM Minimial lookup table for testing (#6641) (79beef1)
- avm: Better error msgs and some cpp nits (#6796) (f8a9452)
- avm: Disable mem gas accounting (#6862) (12b1b0e)
- avm: Remove portal opcode from avm circuit (#6706) (a790d24)
- Avoid creating witness for simple multiplications (noir-lang/noir#5100) (17f6e1d)
- aztec-nr: Cleanup context interfaces (#6799) (e37cbbd)
- Bb changes dont run e2e (#6794) (a728858)
- bb: -30% compile time (#6610) (d6838a1)
- bb: Better AVM disable in WASM (#6683) (d3cfc4c)
- bb: Reduce and smooth compile time (#6688) (1253330)
- bb: Small compile improvements (#6665) (61f27b7)
- Bump boxes timeout (#6636) (7dfc369)
- Checkout sync fix script from master (#6745) (696c03c)
- Chopping transient logs in ts (#6708) (b9a0d93)
- ci: Allow updating lockfile in
sync-fixup.sh
(#6746) (2a16b91) - ci: Always show build summary (#6612) (d606c21)
- ci: Automatically retry from failed once (#6614) (fd74b06)
- ci: Better runner recovery from docker image corruption (#6687) (28a20fc)
- ci: Delay heavy bb compilation (#6613) (acd07f8)
- ci: Don't fail creating launch template (#6595) (2d10848)
- ci: Ensure ad-hoc apt doesnt time out (#6755) (12921d4)
- ci: Fix bad image download rescue script (#6663) (1c00cad)
- ci: Fix running out of disk (#6597) (f45eb94)
- ci: Merge-check fixes (#6485) (bd0ae42)
- ci: More spot retry (#6617) (672329f)
- ci: Paths filter fixup (#6675) (33c07a1)
- ci: Rebuild less (#6670) (ffbf416)
- ci: Recover from docker image corruption (#6638) (0750132)
- ci: Remove invalid input from boxes jobs (#6733) (0d894fa)
- ci: Try a different ubuntu runner (#6740) (2e89ae6)
- ci: Update graph bug advice (#6621) (131bbfa)
- Clarify that ci-consistency is a warning (#6567) (7720ea9)
- Cleanup after outgoing (#6736) (1741b1a), closes #6640
- Dedup public data writes in kernel (#6749) (e4d75e5)
- Deduplicate
ReturnConstant
warning (noir-lang/noir#5109) (a37895c) - Delete redundant CircleCI GCC job (#6712) (3e786de)
- Delete spike vm (#6818) (5633ee9)
- Devnet setup for p2p bootstrap node (#6660) (e0bb743), closes #6513
- Do less in bench prover (#6771) (b75bbdc)
- docs: Add redirects (#6581) (432cec0)
- docs: Link to evmdiff for supported EVM chains (noir-lang/noir#5107) (17f6e1d)
- docs: Rewriting absolute paths (#6511) (7aec973)
- docs: Zp's nits (#6608) (defd2ba)
- Don't skip docs-preview (#6602) (e51726e)
- Dont notify on arm failures for now (#6680) (09cfff4)
- Evaluate expressions in constant gen (#6813) (c2a50f4)
- experimental: Add types and traits to the elaborator (noir-lang/noir#5066) (17f6e1d)
- experimental: Elaborate globals (noir-lang/noir#5069) (17f6e1d)
- experimental: Elaborate impls & non-trait impls (noir-lang/noir#5007) (221e247)
- Fix 0.42 migration notes (#6785) (058856e)
- Fix benchmark comparison with master (#6598) (a30bcc5)
- Fix compilation error due to missing import (#6815) (98ba899)
- Fix unencrypted logs mismatch for AVM with a +4 (#6580) (da82b58)
- Goblin cleanup (#6722) (8e9ab3d)
- Historical apis available on header (#6601) (0b95eb3), closes #6589
- Improve aztec-nr testing infra (#6611) (c6f37a1)
- Make public data update requests, note hashes, and unencrypted logs readonly in TS (#6658) (1230e56)
- Move
is_native_field
up intonoirc_frontend
(noir-lang/noir#5119) (46c2ad0) - Move turbofish changes to the elaborator (noir-lang/noir#5094) (17f6e1d)
- Note processor test rewrite (#6836) (dbef5e4)
- Notify Noir team on changes to ACIR format (#6582) (b826310)
- Nuking broadcast param (#6741) (2d69253)
- Optimizing inclusion proofs tests with historical apis (#6616) (d861364), closes #6615
- Perform dead instruction elimination through
std::as_witness
(noir-lang/noir#5123) (a37895c) - Purge unconstrained + batch simulate improvements (#6639) (1945ed9)
- Quick revert (#6623) (94aadbd)
- Reactivate gates report (noir-lang/noir#5084) (17f6e1d)
- Redo typo PR by dufucun (#6822) (6bd94ff)
- Reduce bench history from 10 to 5 blocks (#6634) (c40f8df)
- Reduce compilation by breaking up acir types.hpp (#6816) (d9f7da3)
- Reduce p2p bootnode machine requirements (#6841) (f0a5c49)
- Refactor and reenable account init fees tests (#6691) (8bb658d)
- Release Noir(0.30.0) (noir-lang/noir#4981) (221e247)
- Remove acir goblin flow (#6724) (f035231)
- Remove ACIR public execution simulator tests (#6805) (e1f73e1)
- Remove aes slice (#6550) (f44d567)
- Remove CLI register-account (#6853) (5f00f17)
- Remove duplicated code from LSP (noir-lang/noir#5116) (46c2ad0)
- Remove prover-pool (#6727) (5833f29)
- Remove public_execution_context (#6804) (b78695a)
- Remove unused closing tag from
indexed_merkle_tree.mdx
(#6729) (03fa925) - Remove warnings field from
DebugArtifact
(noir-lang/noir#5118) (a37895c) - Replace relative paths to noir-protocol-circuits (8c71587)
- Replace relative paths to noir-protocol-circuits (0b1dba8)
- Replace relative paths to noir-protocol-circuits (ac365a0)
- Replace relative paths to noir-protocol-circuits (735eed4)
- Replace relative paths to noir-protocol-circuits (f18deec)
- Replace relative paths to noir-protocol-circuits (8fbf439)
- Replace relative paths to noir-protocol-circuits (2979aa9)
- Replace relative paths to noir-protocol-circuits (72b9ddb)
- Replace relative paths to noir-protocol-circuits (66f213e)
- Replace relative paths to noir-protocol-circuits (681ef79)
- Replace relative paths to noir-protocol-circuits (7d19259)
- Replace relative paths to noir-protocol-circuits (2b8dc76)
- Replace relative paths to noir-protocol-circuits (5708181)
- Sort public call requests in the circuits (#6650) (f67d6f3)
- Stop building/publishing
acvm_backend.wasm
(#6584) (7a3a491) - Test cleanup (#6649) (a90370d)
- Tool to analyze C++ compilation time (#6823) (101e966)
- Try to improve boxes caching (#6664) (b12aa40)
- Try to lower CI costs (#6645) (069a407)
- Ultra goblin --> mega (#6674) (d272abd)
- Update
nargo info
table to remove circuit size column (17f6e1d) - Update docs to represent zksync supporting necessary precompiles (noir-lang/noir#5071) (17f6e1d)
- Updated image hash (#6842) (4133e06)
- Use
bbup
to installbb
(noir-lang/noir#5073) (17f6e1d) - Use only 1 tx in e2e avm proving (#6832) (7f1c302)
- Workaround earthly graph bug (#6789) (10e822a)