0.56.0 (2024-09-25)
⚠ BREAKING CHANGES
- make compute_nullifier_without_context unconstrained (#8742)
- remove PublicContextInputs (#8770)
- make TestEnvironment be unconstrained (#8747)
- change ec_add to unsafe implementation (but much better perf) (#8374)
aztec_macros
are dead, long liveaztec::macros
(#8438)- avm: GETENVVAR + ISSTATICCALL (#8692)
- remove sha256 opcode (#4571)
- removing implicit numeric generics (noir-lang/noir#5837)
- Infer globals to be u32 when used in a type (noir-lang/noir#6083)
- add support for u1 in the avm, ToRadix's radix arg is a memory addr (#8570)
- remove key registry (#8613)
- avm: dont compress public bytecode (#8623)
- avm: remove tag in NOT (#8606)
Features
- (LSP) if in runtime code, always suggest functions that return Quoted as macro calls (noir-lang/noir#6098) (7fb2a45)
- (LSP) remove unused imports (noir-lang/noir#6129) (4522c4f)
- (LSP) show global value on hover (noir-lang/noir#6097) (7fb2a45)
- (LSP) suggest $vars inside
quote { ... }
(noir-lang/noir#6114) (7a87314) aztec_macros
are dead, long liveaztec::macros
(#8438) (7cbabd6)- Add
Expr::as_constructor
(noir-lang/noir#5980) (7ea4709) - Add
Expr::as_for
andExpr::as_for_range
(noir-lang/noir#6039) (7ea4709) - Add
Expr::as_lambda
(noir-lang/noir#6048) (7ea4709) - Add Aztec Bot to helm testnet package (#8702) (982a04e)
- Add epochs to existing orchestrator (#8675) (0337fe9)
- Add epochs to existing orchestrator v2 (#8732) (cec4d3f)
- Add initial integration of databus (#8710) (779e104)
- Add peer scoring to req resp rate limits (#8633) (b015a79)
- Add separate report for public function bytecode sizes (#8750) (d3c102f)
- Add support for u1 in the avm, ToRadix's radix arg is a memory addr (#8570) (1785737)
- Add validation to request / response interactions + adjust scoring appropiately (#8641) (8dfdebc)
- Aggregate honk and avm recursion constraints together (#8696) (3fa9e83)
- Allow visibility modifiers in struct definitions (noir-lang/noir#6054) (7ea4709)
- avm: Avm recursive TS/Noir integration (#8531) (dd09f05), closes #7791
- avm: Avm recursive TS/Noir integration (#8611) (e417231)
- avm: Bounded mle implementation (#8668) (aa85f2a), closes #8651
- avm: GETENVVAR + ISSTATICCALL (#8692) (02cff0b)
- avm: Opcode STATICCALL - stubbed (#8601) (facff7f), closes #8596
- avm: Remove tag in NOT (#8606) (d5695fc)
- avm: Return oracle (#8629) (b6bc7c3)
- avm: Set avm circuit subgroup size (#8537) (3b78058)
- Benchmark compute_row_evaluations and update analysis script (#8673) (c738c47)
- Check unconstrained trait impl method matches (noir-lang/noir#6057) (3e0067a)
- Compute args hash with comptime length (#8736) (dae82d8)
- Constant sized PG proofs and const sized PG rec verifier (#8605) (09e2f44)
- Do not double error on import with error (noir-lang/noir#6131) (0d9f547)
- docs: Getting started, portals page, some other nits (#8515) (9632e0d)
- docs: Some small custom note stuff (#8518) (a098d41)
- EpochProofQuote implementation in TS (#8689) (1aad110)
- Faster LSP by caching file managers (noir-lang/noir#6047) (7ea4709)
- Implement
to_be_radix
in the comptime interpreter (noir-lang/noir#6043) (7ea4709) - Implement solver for mov_registers_to_registers (noir-lang/noir#6089) (03b9e71)
- Implement type paths (noir-lang/noir#6093) (b330e87)
- Let LSP suggest macro calls too (noir-lang/noir#6090) (b330e87)
- Light block builder (#8662) (1e922a5)
- LSP autocompletion for
TypePath
(noir-lang/noir#6117) (7a87314) - Make compute_nullifier_without_context unconstrained (#8742) (e30a743)
- Make TestEnvironment be unconstrained (#8747) (b9a1f59)
- Make UltraKeccak work with Shplemini at bb-level (#8646) (82b60eb)
- metaprogramming: Add
#[use_callers_scope]
(noir-lang/noir#6050) (7ea4709) - More robust recursion input generator (#8634) (020d4fd)
- Only download non-pruned blocks (#8578) (ae26474)
- Optimize constraints in sha256 (noir-lang/noir#6145) (0d9f547)
- Partial notes log encoding (#8538) (5f5ec20)
- perf: Allow array set last uses optimization in return block of Brillig functions (noir-lang/noir#6119) (7a87314)
- perf: Remove unused loads in mem2reg and last stores per function (noir-lang/noir#5925) (3e0067a)
- Pretty print Quoted token stream (noir-lang/noir#6111) (7a87314)
- Prune if needed (#8617) (49b17d0), closes #8608
- Public kernel handles enqueued calls (#8523) (6303b4a)
- Reduce max memory in translator by freeing accumulator and eccvm (#8253) (7247ddb)
- Remove aztec macros (noir-lang/noir#6087) (0d9f547)
- Remove key registry (#8613) (a668506)
- Remove sha256 opcode (#4571) (4b4a0bf)
- Remove unnecessary branching in keccak impl (noir-lang/noir#6133) (0d9f547)
- Represent assertions more similarly to function calls (noir-lang/noir#6103) (7a87314)
- Show test output when running via LSP (noir-lang/noir#6049) (7ea4709)
- Swap endianness in-place in keccak implementation (noir-lang/noir#6128) (4522c4f)
- Update rollup storage to hold pending/proven tips (#8583) (38e3051)
- Use new IVC scheme (#8480) (1c7b06d)
- vc: Remove viem signers from validator client (#8517) (8244fa2)
- Visibility for traits (noir-lang/noir#6056) (7ea4709)
Bug Fixes
- Address a bunch of issues with generics (#8625) (94718f1)
- Allow macros to change types on each iteration of a comptime loop (noir-lang/noir#6105) (03b9e71)
- Allow providing default implementations of unconstrained trait methods (noir-lang/noir#6138) (0d9f547)
- Always parse all tokens from quoted token streams (noir-lang/noir#6064) (3e0067a)
- avm: Fix tests under proving (#8640) (8bfc769)
- Be more lenient with semicolons on interned expressions (noir-lang/noir#6062) (3e0067a)
- Boomerang variable in sha256 hash function (#8581) (f2a1330)
- ci: Rerun.yml should not trigger if a commit has been pushed (#8735) (39fbf92)
- Consider constants as used values to keep their rc ops (noir-lang/noir#6122) (4522c4f)
- Correct stack trace order in comptime assertion failures (noir-lang/noir#6066) (3e0067a)
- Decode databus return values (noir-lang/noir#6095) (7a87314)
- Delete database file from disk on db.delete (#8693) (07d43ea)
- Delete temp lmdb stores + close db connection (#8778) (9321cbc)
- Disambiguate field or int static trait method call (noir-lang/noir#6112) (7a87314)
- Do not prune if we are behind the assumed proven block (#8744) (e85bee5)
- docs: Simplify home page (#8630) (87e0a17)
- Don't crash on untyped global used as array length (noir-lang/noir#6076) (3e0067a)
- Don't prune while proposing or proving. (#8739) (5854879)
- Error on
&mut x
whenx
is not mutable (noir-lang/noir#6037) (7ea4709) - Fix canonicalization bug (noir-lang/noir#6033) (7ea4709)
- Fix comptime type formatting (noir-lang/noir#6079) (3e0067a)
- Fixes mapTuple typing (#8615) (25d5805)
- Handle multi-byte utf8 characters in formatter (noir-lang/noir#6118) (0d9f547)
- Handle parenthesized expressions in array length (noir-lang/noir#6132) (4522c4f)
- Infer globals to be u32 when used in a type (noir-lang/noir#6083) (3e0067a)
- Initialise databus using return values (noir-lang/noir#6074) (b330e87)
- Let LSP suggest fields and methods in LValue chains (noir-lang/noir#6051) (7ea4709)
- Let token pretty printer handle
+=
and similar token sequences (noir-lang/noir#6135) (0d9f547) - mem2reg: Remove possibility of underflow (noir-lang/noir#6107) (7a87314)
- New commit_sparse bug and new tests (#8649) (5818018)
- Parse a statement as an expression (noir-lang/noir#6040) (7ea4709)
- Preserve generic kind on trait methods (noir-lang/noir#6099) (7fb2a45)
- Prevent check_can_mutate crashing on undefined variable (noir-lang/noir#6044) (7ea4709)
- Quick TXE after public executor changes (#8661) (48a715b)
- revert: "chore!: change ec_add to unsafe implementation (but much better perf)" (#8722) (9a1b5b5)
- revert: "feat: Add epochs to existing orchestrator" (#8727) (ff8e1ed)
- Skip G1 SRS download if numPoints is zero (#8717) (753cdf8)
- ssa: RC correctness issue (noir-lang/noir#6134) (0d9f547)
- Unencryptedlogs witgen (#8669) (aee4c2d)
- Unify macro result type with actual type (noir-lang/noir#6086) (b330e87)
- Update databus in flattening (noir-lang/noir#6063) (3e0067a)
- world_state: Fix race conditions in WorldState and IndexedTree (#8612) (6797525)
Miscellaneous
- Add more cases for assert_equal conversion (#8446) (e3ea298)
- Archiver cleanup (#8599) (184cc88)
- avm: Dont compress public bytecode (#8623) (353da3f)
- avm: Simplify bb-prover and other AVM tests (#8627) (0d75363)
- avm: Smaller skippable test (#8664) (2418977)
- bb readme: Document how to Honk Noir programs (#7638) (cd46ddd)
- Bye bye Zeromorph in Solidity (#8678) (74182c4)
- Change ec_add to unsafe implementation (but much better perf) (#8374) (aabd2d8)
- ci: Bump noir compile tests (#8705) (4121ef3)
- ci: Make boxes only run on master (#8604) (07e6a7e)
- ci: More lenient recovery (#8462) (5d9a2fe)
- ci: Reinstate a bunch of tests in e2e list (#8737) (226f311)
- ci: Remove deleted e2e (#8600) (03127b2)
- ci: Remove e2e-prover-full from default set (#8697) (8dcc3bd)
- ci: Run noir-projects on txe changes (#8660) (22f6084)
- ci: Scriptify local earthfile (#8709) (aacd238)
- ci: Slightly safer default e2e jobs (#8729) (80acfd9)
- Cleanup call interfaces and calldata_copy warnings (#8777) (633a3a0)
- Consolidate aztec node configurations (helm refactor) (#8731) (9d248a2)
- Create a Gemini prover (#8622) (94339fb)
- Delete .gitattributes in aztec-nr (#8670) (bc6d7ee)
- Delete duplicated test (noir-lang/noir#6113) (7a87314)
- Delete eth-log-hander (#8598) (4064e90)
- Delete poseidon2 from
bn254_blackbox_solver
(#8741) (02fea6a) - docs: Fix migration notes (#8713) (d5fd155)
- docs: Protocol-specs typos (#8706) (48de163)
- docs: Removing old versions (noir-lang/noir#6075) (7a87314)
- Document array methods (noir-lang/noir#6034) (7ea4709)
- Ec addition for non-zero points (noir-lang/noir#5858) (7a87314)
- Fix broken formatting on master (noir-lang/noir#6096) (7fb2a45)
- Fix docs (noir-lang/noir#6035) (7ea4709)
- Fixing MacOS build - static_cast from field issue (#8642) (14ff3cf)
- Gas premiums for AVM side effects, DA gas in AVM (#8632) (d5f16cc)
- Make structs pub (#8760) (7bb2a38)
- Migrate higher-level APIs for barretenberg to bb.js (#8677) (0237a20)
- Misc cleanup (#8748) (e92da1f)
- Protogalaxy recursive verifier matches native verifier (#8568) (a4f61b3)
- Re-add blob library to CI (#8734) (4615fcc)
- Reduce redundant event fetching (#8628) (6903291)
- Reinstate skipped tests (#8743) (18e2697)
- Remove bubble_up_constrains (noir-lang/noir#6127) (4522c4f)
- Remove creation of extra toml file in recursion inputs flow (#8700) (014bacc)
- Remove empty file (#8724) (d5b91b8)
- Remove key rotation from the key store (#8645) (d8bcb9f)
- Remove multiple public dbs (#8585) (75b7b60)
- Remove PublicContextInputs (#8770) (1507762)
- Remove special sync behaviour of
verify_honk_proof
(#8676) (a9e412b) - Remove unnecessary
Prover.toml
s (noir-lang/noir#6140) (0d9f547) - Remove unused imports (#8766) (420dd64)
- Remove unused TypeVariableKind::Constant (noir-lang/noir#6053) (3e0067a)
- Removing implicit numeric generics (noir-lang/noir#5837) (3e0067a)
- Rename CustomAtrribute to CustomAttribute (noir-lang/noir#6038) (7ea4709)
- Replace relative paths to noir-protocol-circuits (00b1e61)
- Replace relative paths to noir-protocol-circuits (d031f8f)
- Replace relative paths to noir-protocol-circuits (0f5dd09)
- Replace relative paths to noir-protocol-circuits (755f484)
- Replace relative paths to noir-protocol-circuits (3d4e79a)
- Replace relative paths to noir-protocol-circuits (1bd828f)
- Schnorr signature verification in Noir (noir-lang/noir#5437) (03b9e71)
- Skip p2p integration (#8779) (48de45d)
- Skip some tests in CI (#8738) (251db7b)
- Split
noirc_frontend/src/tests.rs
into submodules (noir-lang/noir#6139) (0d9f547) - Use config object to make phase manager less noisy (#8586) (5a5f2b2)
- Use panic instead of assert (#8703) (c96d923)
- Use random ports in p2p_client tests (#8624) (650a241)