aztec-packages: v0.36.0
Pre-release
Pre-release
0.36.0 (2024-04-30)
⚠ BREAKING CHANGES
- remove
Opcode::Brillig
from ACIR (#5995) - delete field note (#5959)
- remove slow updates tree (#5954)
- Add
as_array
and remove_slice
variants of hash functions (noir-lang/noir#4675) - reserve keyword
super
(noir-lang/noir#4836) - aztec-nr: unencrypted logs go behind context (#5871)
- move fixtures to @aztec/circuits.js/testing/fixtures (#5826)
- contract interfaces and better function calls (#5687)
- change backend width to 4 (#5374)
Features
variable_base_scalar_mul
blackbox func (#6039) (81142fe)- acir_gen: Brillig stdlib (noir-lang/noir#4848) (8f73f18)
- Add
#[inline(tag)]
attribute and codegen (noir-lang/noir#4913) (e615a83) - Add
min
andmax
functions to the stdlib (noir-lang/noir#4839) (cea5107) - Add
NARGO_FOREIGN_CALL_TIMEOUT
environment variable (noir-lang/noir#4780) (84c930a) - Add comptime Interpreter (noir-lang/noir#4821) (cea5107)
- Add key registry to deployment (e2e & sandbox) (#5875) (0881cd3), closes #5611
- Add promiseWithResolvers (#5808) (afeef17)
- Add proving queue (#5754) (a0a9668)
- Add side effect counter to logs (#5718) (d7486a6)
- Add the storage layout to the contract artifact (#5952) (88ee0af)
- Add TimeoutError (#5751) (741fdf1)
- Add variable size sha256 (noir-lang/noir#4920) (e615a83)
- Add variable size sha256 (noir-lang/noir#4920) (078aa61)
- AES oracle (#5996) (8e0a563), closes #5895
- AES oracle padding (#6013) (4b563cd)
- Allow numeric generics to non inlined ACIR functions (noir-lang/noir#4834) (cea5107)
- Avm mem trace validation (#6025) (3a3afb5), closes #5950
- avm: Avm circuit FDIV opcode (#5958) (fed5b6d), closes #5953
- avm: CAST opcode implementation (#5477) (a821bcc), closes #5466
- avm: Negative tests (#5919) (8a5ece7)
- avm: Shift relations (#5716) (a516637)
- Avoiding redundant computation in PG (#5844) (9f57733)
- Brillig pointer codegen and execution (#5737) (a7b9d20)
- Bump lmdb (#5783) (f7d5cf2)
- Change backend width to 4 (#5374) (3f24fc2)
- Circuit simulator for Ultra and GoblinUltra verifiers (#1195) (0032a3a)
- Computing sym key for incoming ciphertext (#6020) (1904fa8)
- Configure prover as separate process (#5973) (c0dd7b2)
- Contract interfaces and better function calls (#5687) (274f7d9)
- Decoded return values (#5762) (03e693a)
- Delete field note (#5959) (ae18396)
- docs: Nuke CLI from docs (#5936) (9af68d8)
- Dynamic assertion payloads v2 (#5949) (405bdf6)
- experimental: Add
comptime
keyword (noir-lang/noir#4840) (cea5107) - Handle
BrilligCall
opcodes in the debugger (noir-lang/noir#4897) (3b91791) - Implement
Eq
trait onBoundedVec
(noir-lang/noir#4830) (cea5107) - Implement canonical key registry 5609 and implement shared mutable getter from another contract 5689 (#5723) (15b569f)
- Implement recursive verification in the parity circuits (#6006) (a5b6dac)
- Keshas skipping plus conditions for grand prod relations (#5766) (d8fcfb5)
- Lalrpop lexer prototype (noir-lang/noir#4656) (84c930a)
- Make public l1tol2 message consumption take leafIndex (#5805) (302e3bb)
- More robust spot shutdown + CI commandline (#5825) (12064f9)
- Naive structured execution trace (#5853) (23aab17)
- nargo: Handle call stacks for multiple Acir calls (noir-lang/noir#4711) (84c930a)
- Narrow ABI encoding errors down to target problem argument/field (noir-lang/noir#4798) (84c930a)
- p2p: DiscV5 Peer Discovery (#5652) (0e81642)
- Prove the public kernel circuits (#5778) (f9a843a)
- Prove then verify flow for honk (#5957) (099346e)
- Re-introducing update command (#5946) (13153d0)
- Remove slow updates tree (#5954) (52a1631)
- Reserve keyword
super
(noir-lang/noir#4836) (cea5107) - Serialize public kernel private inputs (#5971) (0c712b9)
- Simplify
BoundedVec::eq
(noir-lang/noir#4838) (cea5107) - Squashing transient note hashes and nullifiers (#6059) (2b8b2c3)
- Sync from aztec-packages (noir-lang/noir#4792) (84c930a)
- Sync from aztec-packages (noir-lang/noir#4833) (cea5107)
- Sync from aztec-packages (noir-lang/noir#4902) (3b91791)
- Validate globals in public kernel (#6031) (82b17c8)
- Verify public data reads (#5701) (323f59f)
- Wire gas from public execution to kernels (#5941) (6894fc7)
Bug Fixes
test_native.sh
not running all noir tests (#6075) (cc7676e)- Args + selector in deploy.nr (#5948) (100744f)
- avm-simulator: L1TOL2MESSAGEEXISTS opcode (#5807) (71b60f3)
- avm: Comments and assert (#5956) (ae50219)
- avm: Do not scale CALLDATACOPY base cost with size (#5879) (99e12b1)
- Bigint corruption in lmdb (#6002) (703e0c1)
- Calculate tx fee using current constants in public kernel (#6066) (c359d79)
- Catch panics from EC point creation (e.g. the point is at infinity) (noir-lang/noir#4790) (84c930a)
- Check if a runner is available + safer refcount for spot life (#5793) (67077a1)
- ci: Always run merge-check (#6065) (b43b84f)
- ci: Deploy_npm script (#5817) (df1c3c4)
- ci: Merge check fails ungracefully on spot issues (#5887) (3683f0b)
- ci: Race condition when making spot in multiple PRs (#5798) (18e75b8)
- Deploy L1 contracts before starting node (#5969) (1908139)
- docs: Fix admonition in contract class protocol spec (#6017) (12bfc15)
- docs: Fix formatting in protocol specs (#5882) (07fc143)
- docs: Tutorial fixes (#5600) (6421467)
- Don't refcount spot (#5812) (98e8da0)
- Don't reuse brillig with slice arguments (#5800) (be9f24c)
- experimental: Skip over comptime functions in scan pass (noir-lang/noir#4893) (2e64428)
- Fix and reenable fees e2e tests (#5877) (165e62f)
- Fix curve parameters for bigints (noir-lang/noir#4900) (2e64428)
- Fix panic when returning a zeroed unit value (noir-lang/noir#4797) (84c930a)
- Fix relation skipping for sumcheck (#6092) (1449c33)
- Hotfix stopped instance terminate (#6037) (005c71c)
- Issue 4682 and add solver for unconstrained bigintegers (noir-lang/noir#4729) (beab8c9)
- Make discv5 test deterministic (#5968) (41749a5)
- MemoryFifo return null when empty and timeout 0 (#5753) (27129e6)
- Merge-check (#5873) (c999dae)
- Move fixtures to @aztec/circuits.js/testing/fixtures (#5826) (fb7a617)
- Nested array equality (noir-lang/noir#4903) (3b91791)
- Proper field inversion for bigints (noir-lang/noir#4802) (84c930a)
- Refuse to start sequencer without a prover (#6000) (b30d0b6)
- Remove tx.origin (#5765) (c8784d7), closes #5756
- Reset the noir-gates-diff report on master (noir-lang/noir#4878) (2e64428)
- Revert "feat: Sync from noir" (#6034) (6383a09)
- Revert: "refactor: purge unconstrained functions where possible" (#5911) (c36246b)
- Set gas settings in bench (#5796) (86d8176)
- Start spot label (#5810) (96da333)
- Start-spot.yml (#5824) (3cf9c2c)
- Temporarily exclude bytecode from class id computation (#5857) (55ff125)
- Update noir-gates-diff commit to use master reference report (noir-lang/noir#4891) (2e64428)
- Use correct gates diff commit now that master has been reset (#6004) (d8e5af4)
Miscellaneous
create_fixed_base_constraint
cleanup (#6047) (e1d6526)TransparentNote
cleanup (#5904) (febf00f)- Add
as_array
and remove_slice
variants of hash functions (noir-lang/noir#4675) (cea5107) - Add benchmarks for serializing a dummy program (noir-lang/noir#4813) (cea5107)
- Add error conversion from
InterpreterError
(noir-lang/noir#4896) (e615a83) - Add error conversion from
InterpreterError
(noir-lang/noir#4896) (078aa61) - Add Hir -> Ast conversion (noir-lang/noir#4788) (84c930a)
- Add target for individual e2e tests (#6009) (e2842a6)
- Adding devcontainer with create aztec app (#5752) (c72f34e)
- Adding devcontainer with create aztec app (#5849) (eb1cfef)
- Allow expressions in constant generation (#5839) (cb1e25b)
- avm-simulator: Remove AvmContext::raw_* external calls (#5869) (0c9d0b4)
- avm: More test cleanup (#5771) (23d0070)
- avm: Negative unit tests for AVM CAST opcode (#5907) (4465e3b), closes #5908
- avm: Re-enable proof in some unit tests (#6056) (0ebee28), closes #6019
- aztec-nr: Unencrypted logs go behind context (#5871) (6a5ad7c)
- Bump
rustls
to v0.21.11 (noir-lang/noir#4895) (2e64428) - Bump MSRV to
1.74.1
(noir-lang/noir#4873) (cea5107) - Bump public call depth (#5845) (b61502f)
- Bundle spot runner + target more spot types (#6012) (d51c8b8)
- Check working copy is clean before extract-repo (#5851) (8ff9767)
- ci: Address start-runner edge-cases (#5888) (564b893)
- ci: Back to on-demand (#5998) (f2f15f0)
- ci: Better docker prune (#5889) (b5a8e02)
- ci: Don't interleave docker prunes (#5914) (2b51fee)
- ci: Don't use redirected earthly (#5909) (2e55713)
- ci: Fix alerts on msrv issues (noir-lang/noir#4816) (84c930a)
- ci: Fix concurrency key (#5962) (7eb164f)
- ci: Hotfix runners not starting (067e460)
- ci: Make syncing out to Noir manual (#5997) (1801db8)
- ci: Move yarn-project-test to new CI (#5850) (d8254ef)
- ci: Notify internal Slack channel when CI breaks on master (#5788) (70b3f3f)
- ci: Notify on ARM failures (#5847) (bdb59cb)
- ci: Prevent haywire logs (#5966) (b12f609)
- ci: Reenable deploy tests (#6011) (087a624)
- ci: Reenable spot (348b34f)
- ci: Remove devnet deployments (for now) (#5912) (d9c1ee9)
- ci: Use on-demand for now (#5933) (f77636f)
- Clean up and clarify some translator flavor logic (#5965) (242b364)
- Clean up stopped instances (#6030) (1318bd5)
- debugger: Docs (noir-lang/noir#4145) (84c930a)
- Delete dead code (noir-lang/noir#4906) (e615a83)
- Delete dead code (noir-lang/noir#4906) (078aa61)
- Delete flake.lock (noir-lang/noir#4855) (e615a83)
- Delete flake.lock (noir-lang/noir#4855) (078aa61)
- Delete unnecessary Prover.toml file (noir-lang/noir#4829) (beab8c9)
- Delete unused brillig methods (noir-lang/noir#4887) (8f73f18)
- Do not aggregate note decryption time for benchmarks (#6032) (658a880)
- Do not bootstrap cache if working copy is dirty (#6033) (3671932)
- docs: Fix migration notes (#6083) (e1f3e32)
- docs: Fix wrong Nargo.toml workspace examples (noir-lang/noir#4822) (beab8c9)
- docs: Remove 'yellow paper' reference from protocol specs (#5872) (b348ec1)
- docs: Remove link to play.noir-lang.org (noir-lang/noir#4872) (cea5107)
- experimental: Add scan pass and
into_expression
for comptime interpreter (noir-lang/noir#4884) (2e64428) - experimental: Improve variable not defined error message in comptime interpreter (noir-lang/noir#4889) (2e64428)
- Extend SharedMutable tests (#6005) (4cee8e0)
- Fix alerts on rust msrv (noir-lang/noir#4817) (84c930a)
- Fix and reenable e2e account init fees test (#5878) (cec8191)
- Fix formatting and serialization that fails CI run (#5942) (da67f18)
- Fix typo in error message (#5139) (b194f83)
- Flag account init test as flakey (ea030e5)
- Flag two failing e2e tests as flakey until we fix them (901ae87)
- Improve
compute_note_hash_and_nullifier
autogeneration andNoteProcessor
warnings (#5838) (566f25c) - Improved naming in
TxExecutionRequest
(#6014) (f2364d4) - Integrate new key store (#5731) (ab9fe78), closes #5720
- Introducing re-export for poseidon2 (#5898) (03a87b8), closes #5863
- Lift run-e2e to yarn-project earthfile (#6018) (b7900b8)
- Migrate blacklist token to use shared mutable (#5885) (26c1eec)
- More explicit
self
parameter inInto
trait (noir-lang/noir#4867) (cea5107) - No implicit overrides (#5792) (0fafaef)
- Nuking CLI (#5865) (c48c913), closes #5894
- Nuking unused keys.nr (#5910) (1d3af93)
- Optimize poseidon2 implementation (noir-lang/noir#4807) (84c930a)
- Patch jest to not use JSON serialization in message passing (#5883) (1c24c8e)
- Prepare ScheduledValueChange for mutable delays. (#6085) (cfa850b)
- ProvingKey has ProverPolynomials (#5940) (0a64279)
- Purge unconstrained functions where possible (#5819) (ce84161), closes #5451
- Purging portal addresses (#5842) (4faccad)
- Redo typo PR by dockercui (#5930) (b23e42f)
- Redo typo PR by satyambnsal (#5929) (d28b1cb)
- Redo typo PR by socialsister (#5931) (e817f78)
- Redo typo script (#5926) (41fa87e)
- Reenable account init fees e2e (#5938) (49c45c3)
- Refactor e2e tests to use the new simulate fn (#5854) (e7d2aff)
- Refactor public cross chain tests for speed (#6082) (6065a6c)
- Refactor recursive verifier tests (#6063) (94a2d61)
- Refactor token blacklist test for speed (#6054) (ab36d7e)
- Release Noir(0.28.0) (noir-lang/noir#4776) (3b91791)
- Remove
Opcode::Brillig
from ACIR (#5995) (ffd5f46) - Remove
SecondaryAttribute::Event
(noir-lang/noir#4868) (cea5107) - Remove empty yarn.lock (#5835) (c3dd039)
- Remove get_portal_address oracle (#5816) (67c2823)
- Remove initialisation of logger in
acvm_js
tests (noir-lang/noir#4850) (cea5107) - Remove l1 gas (#6069) (0e3705f)
- Remove private kernel snapshot test (#5829) (9434784)
- Remove pub wildcard import of ast into
noirc_frontend
root (noir-lang/noir#4862) (cea5107) - Remove unnecessary casts in
BoundedVec
(noir-lang/noir#4831) (beab8c9) - Rename 'global' to 'function' in the monomorphization pass (noir-lang/noir#4774) (84c930a)
- Rename capture to end_setup (#6008) (61e61ab)
- Renaming
noir-compiler
asbuilder
(#5951) (185e57d) - Reorganize gas fields in structs (#5828) (e26d342)
- Replace queue with facade over CircuitProver (#5972) (dafb3ed)
- Replace relative paths to noir-protocol-circuits (b723534)
- Replace relative paths to noir-protocol-circuits (20057b2)
- Replace relative paths to noir-protocol-circuits (543ff13)
- Replace relative paths to noir-protocol-circuits (d0622cf)
- Replace relative paths to noir-protocol-circuits (41d6e81)
- Replace relative paths to noir-protocol-circuits (c0c8e3f)
- Replace relative paths to noir-protocol-circuits (8b33a58)
- Replace relative paths to noir-protocol-circuits (ce4a010)
- Replace use of PublicContext with interface (#5840) (834067f)
- Reset noir-gates-diff report on master (#6003) (7f01f7d)
- Revert "Check working copy is clean before extract-repo (#5851)" (ec21fb8)
- revert: "chore(ci): don't use redirected earthly" (#6062) (26cba9e)
- Rework workspace structure for utils crates (noir-lang/noir#4886) (e615a83)
- Rework workspace structure for utils crates (noir-lang/noir#4886) (078aa61)
- Run clippy (noir-lang/noir#4810) (84c930a)
- Run flakey e2e tests on CI but allow failure (#5937) (a074251)
- Run noir projects tests in earthly (#6024) (e950433)
- Simplify computation of pow for each sumcheck round (#5903) (74a9d5d)
- Temporarily skip failing gas tests (#5874) (ad55af0)
- Update noir README (noir-lang/noir#4856) (cea5107)
- Update NoirJS tutorial (noir-lang/noir#4861) (cea5107)
- Use BrilligCall for unconstrained main and update AVM transpiler (#5797) (3fb94c0)
- Use new mock.get_last_params() for public storage writes (#5823) (6b0f919)
- Using poseidon2 when computing a nullifier (#5906) (3a10e5e), closes #5832 #1205
- Validate instance deployer address every time we request it (#5848) (2422891)
- Workaround earthly flake (#5811) (dd3a521)
- Yarn build:dev don't clear terminal (#5970) (b3fdb3b)
Documentation
- Addition around Nargo.toml search (#5943) (d1350da)
- Aztec smart contract tutorial - crowdfunding (#5786) (91cc0a4)
- Gas and accounting (#5855) (d0b3f06)
- Migration notes for GasOpts in public calls (#5822) (edeea3d)
- Remove mentions of slow updates (#5884) (029d1e5)
- Shared state (#5963) (86c106f)
- Update emit_event.md (#5964) (616a8f3)
- Update info around VERSION (#5891) (e1eb98e)