aztec-packages: v0.45.0
Pre-release
Pre-release
0.45.0 (2024-07-02)
⚠ BREAKING CHANGES
- error on too large integer value (noir-lang/noir#5371)
- rename struct-specific TypeDefinition -> StructDefinition (noir-lang/noir#5356)
- extend storage read oracle to receive address and block number (#7243)
- split storage access oracles (#7237)
- remove
dep::
prefix (noir-lang/noir#4946)
Features
mod.nr
entrypoint (noir-lang/noir#5039) (bb5cbab)static_assert
builtin (noir-lang/noir#5342) (eb9e9f6)- Add
map
,fold
,reduce
,any
, andall
for slices (noir-lang/noir#5331) (f2abb4e) - Add
set
andset_unchecked
methods toVec
andBoundedVec
(noir-lang/noir#5241) (ed815a3) - Add BoundedVec::map (noir-lang/noir#5250) (ed815a3)
- Add fuzzer for Noir programs (noir-lang/noir#5251) (ed815a3)
- Add new lenses for encryted notes (#7238) (c07cf2c)
- Add opcodes flamegraph and refactor gates flamegraph (#7282) (df3b27b)
- Add outgoing keys support to getEvents (#7239) (77c304e)
- Add support for wildcard types (noir-lang/noir#5275) (ed815a3)
- avm: Calldata gadget preliminaries (#7227) (79e8588)
- Build simple dictionary from inspecting ACIR program (noir-lang/noir#5264) (ed815a3)
- Constant Honk proof sizes (#6954) (17c8d3a)
- Disable nargo color output if stderr is tty (noir-lang/noir#5346) (eb9e9f6)
- docs: Macros explainer (#7172) (bb2ebfc)
- Error on too large integer value (noir-lang/noir#5371) (bb5cbab)
- Example of private token transfer event (#7242) (99ce26f)
- experimental: Implement macro calls & splicing into
Expr
values (noir-lang/noir#5203) (ed815a3) - Extend storage read oracle to receive address and block number (#7243) (153b201)
- frontend: Explicit numeric generics and type kinds (noir-lang/noir#5155) (f2abb4e)
- frontend: Where clause on impl (noir-lang/noir#5320) (f2abb4e)
- Function selector opcode in AVM (#7244) (dde47e9)
- Implement comptime support for
array_len
builtin (noir-lang/noir#5272) (ed815a3) - Implement comptime support for
as_slice
builtin (noir-lang/noir#5276) (ed815a3) - Insert trait impls into the program from type annotations (noir-lang/noir#5327) (f2abb4e)
- Let
should_fail_with
check that the failure reason contains the expected message (noir-lang/noir#5319) (f2abb4e) - Make macros operate on token streams instead of AST nodes (noir-lang/noir#5301) (ed815a3)
- Private refunds (#7226) (6fafff6)
- Remove
dep::
prefix (noir-lang/noir#4946) (ed815a3) - Remove event selector in logs from public context (#7192) (646d45a)
- Rename struct-specific TypeDefinition -> StructDefinition (noir-lang/noir#5356) (bb5cbab)
- Run
comptime
code from annotations on a type definition (noir-lang/noir#5256) (ed815a3) - Split storage access oracles (#7237) (51f7d65)
- stdlib: Update stdlib to use explicit numeric generics (noir-lang/noir#5306) (f2abb4e)
- Store shared mutable hash (#7169) (868606e)
- Sync from aztec-packages (noir-lang/noir#5242) (ed815a3)
- Sync from aztec-packages (noir-lang/noir#5340) (f2abb4e)
- Sync from aztec-packages (noir-lang/noir#5347) (eb9e9f6)
- Sync from aztec-packages (noir-lang/noir#5377) (bb5cbab)
- TXE fixes to avm opcodes and missing oracles, forced ci failure (#7252) (de303e2)
- Unconstrained variants for event emission (#7251) (6d093e3)
- Unify unencrypted log emission and decoding (#7232) (354dba2)
- Update rebuild script (#7225) (af59247)
- Use runtime loops for brillig array initialization (noir-lang/noir#5243) (f2abb4e)
- Wonky rollups (#7189) (1de3746)
Bug Fixes
- Add more thorough check for whether a type is valid when passing it from constrained code to unconstrained code (noir-lang/noir#5009) (ed815a3)
- Add support for nested arrays returned by oracles (noir-lang/noir#5132) (ed815a3)
- Address compiler warnings coming from stdlib (noir-lang/noir#5351) (eb9e9f6)
- Avoid duplicating constant arrays (noir-lang/noir#5287) (ed815a3)
- Avoid panic in type system (noir-lang/noir#5332) (f2abb4e)
- Avoid unnecessarily splitting expressions with multiplication terms with a shared term (noir-lang/noir#5291) (ed815a3)
- Benchmark prover e2e test with proving (#7175) (431c14c)
- Devnet deployment issues (#7197) (9cf4904)
- Disable
if
optimization (noir-lang/noir#5240) (ed815a3) - docs: Check for already deployed account contracts in token bridge tutorial (#7234) (d9efaf7)
- docs: Historical reference library updates (#7166) (b3409c4)
- Don't benchmark the "prove" command as it doesn't exist anymore (noir-lang/noir#5323) (f2abb4e)
- Don't lazily elaborate functions (noir-lang/noir#5282) (ed815a3)
- elaborator: Fix duplicate methods error (noir-lang/noir#5225) (ed815a3)
- elaborator: Fix regression introduced by lazy-global changes (noir-lang/noir#5223) (ed815a3)
- Error when a local function is called in a comptime context (noir-lang/noir#5334) (f2abb4e)
- Fix authwit package (#7204) (98ccd41)
- Fix incorrect return type being applied to stdlib functions
modulus_be_bytes()
,modulus_be_bits()
, etc. (noir-lang/noir#5278) (ed815a3) - Fix test to accomodate new max read requests (#7286) (a023367)
- Fix tokenization of unquoted types in macros (noir-lang/noir#5326) (f2abb4e)
- Fix usage of
#[abi(tag)]
attribute with elaborator (noir-lang/noir#5298) (f2abb4e) - Handle struct with nested arrays in oracle return values (noir-lang/noir#5244) (ed815a3)
- Ignore calls to
Intrinsic::AsWitness
during brillig codegen (noir-lang/noir#5350) (eb9e9f6) - Implement generic functions in the interpreter (noir-lang/noir#5330) (f2abb4e)
- nargo_fmt: Account for spaces before the generic list of a function (noir-lang/noir#5303) (ed815a3)
- Replace panic in monomorphization with an error (noir-lang/noir#5305) (ed815a3)
- Reran pil->cpp codegen & encode_and_encrypt_event_with_randomness fix (#7247) (fa15a45)
- Runtime brillig bigint id assignment (noir-lang/noir#5369) (bb5cbab)
- Skip emission of brillig calls which will never be executed (noir-lang/noir#5314) (ed815a3)
- TS LSP being slow (#7181) (e934e87)
- Update
in_contract
flag before handling function metadata in elaborator (noir-lang/noir#5292) (ed815a3) - Use proper serialization in
AbiValue
(noir-lang/noir#5270) (ed815a3)
Miscellaneous
static_assert
error message fix and split into is-dynamic and is-false (noir-lang/noir#5353) (eb9e9f6)- Add back Pedersen blackbox functions (revert PR 5221) (noir-lang/noir#5318) (ed815a3)
- Add log_hash as input in log emission in private context (#7249) (8b3dfe9)
- Add no predicate to poseidon2 (noir-lang/noir#5252) (ed815a3)
- Add no-predicate to hash implementations (noir-lang/noir#5253) (ed815a3)
- Add property tests for ABI encoding (noir-lang/noir#5216) (ed815a3)
- Address TODO in
compat.nr
(noir-lang/noir#5339) (f2abb4e) - avm-transpiler: Better error messages (#7217) (27051ad)
- avm: Remove trailing minus zero in codegen (#7185) (f3c8166)
- Avoid building contracts when producing gates report (#7136) (25507e6)
- Bump
bb
to 0.43.0 (noir-lang/noir#5321) (f2abb4e) - Bundle SSA Evaluator Options (noir-lang/noir#5317) (ed815a3)
- ci: Trigger a noir sync every morning at 8am (#7280) (412c016)
- Copy across typo PR script from aztec-packages (noir-lang/noir#5235) (ed815a3)
- Create separate crate just for noir artifacts (noir-lang/noir#5162) (ed815a3)
- docs: Fixing trailing slash issue (noir-lang/noir#5233) (ed815a3)
- Fix examples (noir-lang/noir#5357) (eb9e9f6)
- Fix migration notes (#7279) (51d93eb)
- Fix negative tests in AVM circuit for context input lookups (#7261) (ad2f654)
- Fixing all relative paths (noir-lang/noir#5220) (ed815a3)
- Generate PIL constants from via constants gen (#7258) (244ef7e)
- Gets rid of unencrypted emit in private_context (#7236) (3e6d88e)
- Improve authwit comments/docs (#7180) (051ab9e)
- Misc cleanup in simulator (#7203) (eb00830)
- Optimize the elaborator (noir-lang/noir#5230) (ed815a3)
- Parse macros (noir-lang/noir#5229) (ed815a3)
- Pedersen commitment in Noir (noir-lang/noir#5221) (ed815a3)
- Pedersen hash in Noir (noir-lang/noir#5217) (ed815a3)
- Private tail circuits (#7148) (9e67e7d)
- Pull out change to expression splitting from sync PR (#7215) (b4f50a5)
- Pull out foreign call nested array changes (#7216) (1faaaf5)
- Pull out noir-lang/noir#5120 (#7205) (c5dc094)
- Pull out pedersen generator builtin from sync PR (#7210) (412f02e)
- Pull out SSA changes from sync PR (#7209) (141e137)
- Push code related to ABI gen into
noirc_driver
(noir-lang/noir#5218) (ed815a3) - Redo typo PR by dropbigfish (noir-lang/noir#5234) (ed815a3)
- Reduce note and nullifier constants (#7255) (4637304)
- Refactor test case generation in build.rs (noir-lang/noir#5280) (ed815a3)
- Refactor to use
mod.nr
support (#7259) (cda45db) - Release Noir(0.31.0) (noir-lang/noir#5166) (ed815a3)
- Remove
is_unconstrained_fn
field from elaborator (noir-lang/noir#5335) (f2abb4e) - Remove 4738 ref (#7254) (97d997c)
- Remove a log file (#7201) (83bb218)
- Remove commented code (#7231) (2740d60)
- Remove panic for unimplemented trait dispatch (noir-lang/noir#5329) (f2abb4e)
- Replace
is_bn254
implementation to not rely on truncation of literals (noir-lang/noir#5247) (ed815a3) - Replace
regression_5202
with more manageably sized program (noir-lang/noir#5345) (eb9e9f6) - Replace cached
in_contract
within_contract()
method (noir-lang/noir#5324) (f2abb4e) - Replace logical operators with bitwise in
DebugToString
(noir-lang/noir#5236) (ed815a3) - Replace relative paths to noir-protocol-circuits (e83b07b)
- Replace relative paths to noir-protocol-circuits (eca8587)
- Replace relative paths to noir-protocol-circuits (b9ddf43)
- Replace relative paths to noir-protocol-circuits (6f817e8)
- Replace relative paths to noir-protocol-circuits (f9bf0a4)
- Replicate noir-lang/noir#4946 (#7202) (b5c07d8)
- Simplify compilation flow to write to file immediately (noir-lang/noir#5265) (ed815a3)
- Split off fuzzer, abi changes and
noirc_artifacts
from sync (#7208) (255d752) - Thread generics through ACIR/brillig gen (noir-lang/noir#5120) (ed815a3)
- Use
push_err
more in elaborator (noir-lang/noir#5336) (f2abb4e) - Use options.limit as upper limit for note-getter loop (#7253) (8ff669b)
- Use prefix op_ for every instruction in avm_trace.hpp (#7214) (7ed7558)
- Use the elaborator by default (noir-lang/noir#5246) (ed815a3)