Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: partial note handling in aztec-nr #11641

Merged
merged 49 commits into from
Feb 6, 2025
Merged

Conversation

nventuro
Copy link
Contributor

@nventuro nventuro commented Jan 30, 2025

Closes a bunch of things from #9119. Leaves us well positioned to tackle #10723.

Currently in a draft status as I still need to adjust the #[partial_note] macro to produce the new structures (though these are simpler than the old one), update callsites, remove all of the code that dealt with partial note encoding etc. The new flow is complete already however, and I put together a (still under active development) small example of all we need to autogenerate to use this in PartialUintNote (which would eventually be autogenerated).

I moved some stuff around to places where I think it fits much better, but the diff does not look too bad. Most (all?) of the new stuff has extended explanations of what it does and how it's meant to be used, so this should be hopefully easy to follow. The basic flow is:

  1. a contract private or unconstrained function gets a call to note::discovery::discover_new_notes()
  2. this results in a call to the syncNotes oracle
  3. PXE finds logs based on the tagging scheme, updates indices
  4. PXE decrypts logs (soon to be moved to nr)
  5. PXE calls the process_log unconstrained contract function
  6. this autogenerated function calls note::discovery::private::do_process_log, which continues handling the log
  7. eventually we process all logs and note::discovery::partial:... runs, searching for public logs from inside noir (via a new getTaggedLog oracle call

The interface of PartialUintNote can be greatly improved, I'm thinking we may have UintNote::partial(recipient) return a struct similar to this one with some emit method for the log. We'd then put this in storage, retrieve it and call e.g. complete(amount). But these are ultimately small API details.

Copy link
Contributor

@iAmMichaelConnor iAmMichaelConnor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pressing "finish" because Nico just prompted me

@@ -81,6 +84,31 @@ comptime fn create_init_check(f: FunctionDefinition) -> Quoted {
.quoted_contents()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't comment on the line, and it's completely unrelated to this PR, but what does this empty-bodied function do? (I know what an internal function is for; I just don't understand this function).
image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's two paragraphs one line immediate above this that explain it. Searchin for 'marker attribute' also gets you to the right place.

/// Appends two `BoundedVec`s together, returning one that contains all of the elements of the first one followed by all
/// of the elements of the second one. The resulting `BoundedVec` can have any arbitrary maximum length, but it must be
/// large enough to fit all of the elements of both the first and second vectors.
pub fn append<T, let A_LEN: u32, let B_LEN: u32, let DST_LEN: u32>(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we make this a method on the noir stdlib BoundedVec type?
It's like a concat right? Why do you want the ability to specify a DST_LEN that isn't A_LEN + B_LEN

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's sort of like a concat, yes. I want a different DST_LEN because in my case the destination array is actually smaller than the sum of the max lens. e.g. a packed note can have a maximum len of private_log_size - header size, but the private fields can have a max len of private log size - header size - tag and the public fields can have a max len of public log size - tag - the sum would be larger than the original packed note len restriction.

Creating a destination vec with a different len using stdlib primitives is exactly what this fn does.

noir-projects/aztec-nr/uint-note/src/partial_uint_note.nr Outdated Show resolved Hide resolved

hiding_point_slot
partial.hiding_point.value.x
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please can we rename hiding_point to partial_note_commitment?
I don't think it should be renamed to "partial note", because a partial note is the underlying information (e.g. value, randomness). A partial note commitment is the commitment to the partial note, which is exactly what this so-called "hiding point" is.

Comment on lines 459 to 461
let partial = PartialUintNote::new(to, to_note_slot);
let encrypted_log = compute_log(*context, partial, to, from);
context.emit_private_log(encrypted_log);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, as discussed earlier, this will look neater, and avoid touching low-level functions if you use events instead.
Something roughly like:

let partial_note_event = PartialNoteEvent::new(...);
partial_note_event.emit(encode_and_encrypt_event(&mut context, to, from));

// where encode_and_encrypt_event is imported from the log assembly strategies dir

@nventuro nventuro marked this pull request as ready for review February 5, 2025 17:20
@nventuro
Copy link
Contributor Author

nventuro commented Feb 5, 2025

After some discussion we decided to merge this without it being used for partial delivery (though this has been tested and was working in commit 49488f3) to not have to wait for that. A separate PR will deal with integration of the feature, since the current and new approach are incompatible due to required changes in the archiver.

@nventuro nventuro enabled auto-merge (squash) February 6, 2025 14:50
Copy link
Contributor

github-actions bot commented Feb 6, 2025

Changes to public function bytecode sizes

Generated at commit: aec1b2bf62e00fc3b2044bdc6976bf08c48548ff, compared to commit: b212490adbaeead2d035b1533cddcd4ec59f81e5

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
Uniswap::public_dispatch +2,014 ❌ +8.30%
Crowdfunding::init +134 ❌ +4.29%
AppSubscription::constructor +149 ❌ +4.15%
Uniswap::swap_public +602 ❌ +3.99%
AppSubscription::public_dispatch +149 ❌ +3.15%
Crowdfunding::public_dispatch +134 ❌ +3.02%
TokenBridge::public_dispatch +627 ❌ +3.00%
TokenBridge::exit_to_l1_public +5 ❌ +0.06%
TokenBridge::claim_public +5 ❌ +0.04%
TokenBridge::constructor +1 ❌ +0.03%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
Uniswap::public_dispatch 26,288 (+2,014) +8.30%
Crowdfunding::init 3,257 (+134) +4.29%
AppSubscription::constructor 3,736 (+149) +4.15%
Uniswap::swap_public 15,686 (+602) +3.99%
AppSubscription::public_dispatch 4,880 (+149) +3.15%
Crowdfunding::public_dispatch 4,564 (+134) +3.02%
TokenBridge::public_dispatch 21,534 (+627) +3.00%
TokenBridge::exit_to_l1_public 7,991 (+5) +0.06%
TokenBridge::claim_public 12,716 (+5) +0.04%
TokenBridge::constructor 2,993 (+1) +0.03%

Copy link
Contributor

github-actions bot commented Feb 6, 2025

Changes to circuit sizes

Generated at commit: aec1b2bf62e00fc3b2044bdc6976bf08c48548ff, compared to commit: b212490adbaeead2d035b1533cddcd4ec59f81e5

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
parity_root 0 ➖ 0.00% +548,792 ❌ +18.67%
rollup_block_root_empty 0 ➖ 0.00% +137,198 ❌ +18.45%
rollup_merge 0 ➖ 0.00% +274,396 ❌ +17.94%
rollup_block_merge 0 ➖ 0.00% +274,396 ❌ +16.30%
rollup_block_root 0 ➖ 0.00% +411,594 ❌ +11.27%
rollup_block_root_single_tx 0 ➖ 0.00% +274,396 ❌ +9.61%
rollup_base_private 0 ➖ 0.00% +137,198 ❌ +8.38%
rollup_base_public 0 ➖ 0.00% +137,198 ❌ +4.53%
rollup_root 0 ➖ 0.00% +274,396 ❌ +1.02%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
parity_root 4,266 (0) 0.00% 3,487,851 (+548,792) +18.67%
rollup_block_root_empty 1,970 (0) 0.00% 880,961 (+137,198) +18.45%
rollup_merge 1,803 (0) 0.00% 1,803,677 (+274,396) +17.94%
rollup_block_merge 30,830 (0) 0.00% 1,957,786 (+274,396) +16.30%
rollup_block_root 473,390 (0) 0.00% 4,062,798 (+411,594) +11.27%
rollup_block_root_single_tx 471,893 (0) 0.00% 3,129,425 (+274,396) +9.61%
rollup_base_private 137,836 (0) 0.00% 1,775,147 (+137,198) +8.38%
rollup_base_public 357,055 (0) 0.00% 3,167,346 (+137,198) +4.53%
rollup_root 30,814 (0) 0.00% 27,213,935 (+274,396) +1.02%

@nventuro nventuro merged commit 1c1a33b into master Feb 6, 2025
52 checks passed
@nventuro nventuro deleted the nv/advanced_note_discovery branch February 6, 2025 18:09
nventuro added a commit that referenced this pull request Feb 7, 2025
ludamad pushed a commit that referenced this pull request Feb 7, 2025
#11641 caused some CI failures in tests that are only run under e2e-all,
so this went undetected. Reverting the changes to fix master until we
address them.
ludamad added a commit that referenced this pull request Feb 7, 2025
sklppy88 pushed a commit that referenced this pull request Feb 10, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.76.0</summary>

##
[0.76.0](aztec-package-v0.75.0...aztec-package-v0.76.0)
(2025-02-10)


### Features

* **spartan:** Blob sink in spartan
([#11307](#11307))
([d8e5bcc](d8e5bcc))


### Miscellaneous

* Check versioning
([#11611](#11611))
([b33f1da](b33f1da))
* **p2p:** Remove min peers option
([#11789](#11789))
([cfb6797](cfb6797))
</details>

<details><summary>barretenberg.js: 0.76.0</summary>

##
[0.76.0](barretenberg.js-v0.75.0...barretenberg.js-v0.76.0)
(2025-02-10)


### Bug Fixes

* **bb.js:** Make wasm imports bundleable
([#11812](#11812))
([1af69a9](1af69a9))
* Remove unnecessary console.log
([#11810](#11810))
([8a320bf](8a320bf))
</details>

<details><summary>aztec-packages: 0.76.0</summary>

##
[0.76.0](aztec-packages-v0.75.0...aztec-packages-v0.76.0)
(2025-02-10)


### ⚠ BREAKING CHANGES

* check abi integer input is within signed range
(noir-lang/noir#7316)
* using `WithHash<T>` in `SharedMutable` + fixing slot allocation
([#11716](#11716))

### Features

* `assert` and `assert_eq` are now expressions
(noir-lang/noir#7313)
([b883911](b883911))
* `assert` and `assert_eq` are now expressions
(noir-lang/noir#7313)
([3840e8e](3840e8e))
* **avm:** Add skippable condition for interactions
([#11800](#11800))
([67aec61](67aec61))
* **avm:** Range check opt via aliases
([#11846](#11846))
([ce6a5bf](ce6a5bf))
* **avm:** Restrict bytecode bytes
([#11798](#11798))
([be382bc](be382bc))
* **aztec-nr:** Do not compile functions with a private public macro and
unconstrained
([#11815](#11815))
([afb52e3](afb52e3))
* **blob-lib:** Make blob lib and fix encoding test flake
([#11782](#11782))
([753f505](753f505))
* Broker sends back job after accepting result
([#11754](#11754))
([62e5de7](62e5de7))
* **docs:** Notes page
([#11746](#11746))
([117200e](117200e))
* **docs:** Reindex typesense in CI
([#11791](#11791))
([6af8d54](6af8d54))
* Infer lambda parameter types from return type and let type
(noir-lang/noir#7267)
([b883911](b883911))
* Infer lambda parameter types from return type and let type
(noir-lang/noir#7267)
([3840e8e](3840e8e))
* Optimizing contract with config pattern
([#11756](#11756))
([7820cb7](7820cb7))
* **p2p:** Test bench scaffold
([#11758](#11758))
([48dc491](48dc491))
* Partial note handling in aztec-nr
([#11641](#11641))
([1c1a33b](1c1a33b))
* **perf:** Speed up TS AVM core simulator
([#11794](#11794))
([bb58c87](bb58c87))
* **reqresp:** Send status messages along with reqresp responses
([#11727](#11727))
([b212490](b212490))
* Simplify `Ord` implementation for arrays
(noir-lang/noir#7305)
([b883911](b883911))
* Simplify `Ord` implementation for arrays
(noir-lang/noir#7305)
([3840e8e](3840e8e))
* **spartan:** Blob sink in spartan
([#11307](#11307))
([d8e5bcc](d8e5bcc))
* Suport deploying contracts with public keys in txe
([#11882](#11882))
([94bdc85](94bdc85)),
closes
[#11881](#11881)
* Sync from aztec-packages (noir-lang/noir#7293)
([b883911](b883911))
* Sync from aztec-packages (noir-lang/noir#7293)
([3840e8e](3840e8e))
* Trust tree roots from the AVM in public base
([#11823](#11823))
([5d12f94](5d12f94))
* Using `WithHash&lt;T&gt;` in `SharedMutable` + fixing slot allocation
([#11716](#11716))
([952615b](952615b))


### Bug Fixes

* Add missing return in main
([#11786](#11786))
([8c1d477](8c1d477))
* Allows for infinite brillig loops
(noir-lang/noir#7296)
([b883911](b883911))
* Always normalize ssa when priting at least one pass
(noir-lang/noir#7299)
([b883911](b883911))
* Always normalize ssa when priting at least one pass
(noir-lang/noir#7299)
([3840e8e](3840e8e))
* Avoid recomputing contractclassid
([#11783](#11783))
([f8448bf](f8448bf))
* Avoid stack overflow on many comments in a row
(noir-lang/noir#7325)
([b883911](b883911))
* Aztec wallet partial address display on deployment
([#11866](#11866))
([eef5302](eef5302)),
closes
[#11864](#11864)
* **bb.js:** Make wasm imports bundleable
([#11812](#11812))
([1af69a9](1af69a9))
* Beacon chain doesn't eat mainframe
([#11854](#11854))
([ebbdbc7](ebbdbc7))
* Check abi integer input is within signed range
(noir-lang/noir#7316)
([b883911](b883911))
* **ci:** Enforce boxes-test on merge
([#11841](#11841))
([e26a288](e26a288))
* Downgrade to mainframe-compatible KIND
([#11883](#11883))
([9239b4f](9239b4f))
* Error on if without else when type mismatch
(noir-lang/noir#7302)
([b883911](b883911))
* Error on if without else when type mismatch
(noir-lang/noir#7302)
([3840e8e](3840e8e))
* Error on trailing doc comment
(noir-lang/noir#7300)
([b883911](b883911))
* Error on trailing doc comment
(noir-lang/noir#7300)
([3840e8e](3840e8e))
* Formatting in master
([#11879](#11879))
([fff0f04](fff0f04))
* Mark field division and modulo as requiring predicate for all
necessary types (noir-lang/noir#7290)
([b883911](b883911))
* Mark field division and modulo as requiring predicate for all
necessary types (noir-lang/noir#7290)
([3840e8e](3840e8e))
* Playground use new unbundled aztec.js
([#11780](#11780))
([fe2b666](fe2b666))
* Prover-client test
([#11853](#11853))
([e950c76](e950c76))
* Publish telemetry-client
([#11777](#11777))
([8634f6e](8634f6e))
* Pxe release
([#11877](#11877))
([4c0d2f2](4c0d2f2))
* Re exposing intent inner hash
([#11865](#11865))
([9638792](9638792)),
closes
[#11795](#11795)
* Remove unnecessary console.log
([#11810](#11810))
([8a320bf](8a320bf))
* Revert "feat: partial note handling in aztec-nr
([#11641](#11641))"
([#11797](#11797))
([c5c3f09](c5c3f09))
* Skip orchestrator_workflow test (see
[#11870](#11870))
([#11872](#11872))
([f8e7e4e](f8e7e4e))
* Skip vite browser test until
[#11874](#11874)
([#11876](#11876))
([e1adf23](e1adf23))
* **ssa:** Unused functions removals post folding constant Brillig calls
(noir-lang/noir#7265)
([b883911](b883911))
* **ssa:** Unused functions removals post folding constant Brillig calls
(noir-lang/noir#7265)
([3840e8e](3840e8e))
* Tracy run
([#11819](#11819))
([fde135d](fde135d))
* Txe block headers
([#11710](#11710))
([4f6b76f](4f6b76f))


### Miscellaneous

* Add sha256 library to test suite
(noir-lang/noir#7278)
([b883911](b883911))
* Add sha256 library to test suite
(noir-lang/noir#7278)
([3840e8e](3840e8e))
* Add timeouts to reports CI
(noir-lang/noir#7317)
([b883911](b883911))
* Aggregate with short scalars in UH Recursion
([#11478](#11478))
([a6fcdb0](a6fcdb0))
* **avm:** Remove some parentheses in codegen relations
([#11766](#11766))
([f2f2634](f2f2634))
* Bump noir_bigcurve timeout
(noir-lang/noir#7322)
([b883911](b883911))
* Check versioning
([#11611](#11611))
([b33f1da](b33f1da))
* Cleanup in AVM test fixture
([#11850](#11850))
([4526059](4526059))
* Create a CI action to download nargo and add to path
(noir-lang/noir#7281)
([b883911](b883911))
* Create a CI action to download nargo and add to path
(noir-lang/noir#7281)
([3840e8e](3840e8e))
* Disable exp-2 from nightly deployments
([#11880](#11880))
([bc42b60](bc42b60))
* Do not differentiate variable vs fixed length for Poseidon2
([#11740](#11740))
([ee5fc45](ee5fc45))
* Fix memory reports in CI (noir-lang/noir#7311)
([b883911](b883911))
* Fix memory reports in CI (noir-lang/noir#7311)
([3840e8e](3840e8e))
* **p2p:** Remove min peers option
([#11789](#11789))
([cfb6797](cfb6797))
* Push inlining info code into a submodule
(noir-lang/noir#7266)
([b883911](b883911))
* Push inlining info code into a submodule
(noir-lang/noir#7266)
([3840e8e](3840e8e))
* Reduce number of benchmarking scripts
(noir-lang/noir#7285)
([b883911](b883911))
* Reduce number of benchmarking scripts
(noir-lang/noir#7285)
([3840e8e](3840e8e))
* Remove dead code
([#11809](#11809))
([51ad298](51ad298))
* Remove Recoverable (noir-lang/noir#7307)
([b883911](b883911))
* Remove Recoverable (noir-lang/noir#7307)
([3840e8e](3840e8e))
* Replace benchmarks on fast test suites with a cut-off
(noir-lang/noir#7276)
([b883911](b883911))
* Replace benchmarks on fast test suites with a cut-off
(noir-lang/noir#7276)
([3840e8e](3840e8e))
* Replace relative paths to noir-protocol-circuits
([330f613](330f613))
* Replace relative paths to noir-protocol-circuits
([501ec66](501ec66))
* Replace relative paths to noir-protocol-circuits
([3fa986a](3fa986a))
* Sepolia mnemonic, e2e & ignition chain
([#11759](#11759))
([ff1536a](ff1536a))
* Simplify handling of pub inputs block
([#11747](#11747))
([4a8136c](4a8136c))
* **spartan:** Give services label names
([#11609](#11609))
([2da39df](2da39df))
* **spartan:** Update ethereum external host values
([#11590](#11590))
([f17a8f3](f17a8f3))
* Update migration_notes.md
([#11801](#11801))
([baa69a2](baa69a2))


### Documentation

* Some blob docs
([#11729](#11729))
([b1d65f1](b1d65f1))
</details>

<details><summary>barretenberg: 0.76.0</summary>

##
[0.76.0](barretenberg-v0.75.0...barretenberg-v0.76.0)
(2025-02-10)


### Features

* **avm:** Add skippable condition for interactions
([#11800](#11800))
([67aec61](67aec61))
* **avm:** Range check opt via aliases
([#11846](#11846))
([ce6a5bf](ce6a5bf))
* **avm:** Restrict bytecode bytes
([#11798](#11798))
([be382bc](be382bc))


### Bug Fixes

* Add missing return in main
([#11786](#11786))
([8c1d477](8c1d477))
* Tracy run
([#11819](#11819))
([fde135d](fde135d))


### Miscellaneous

* Aggregate with short scalars in UH Recursion
([#11478](#11478))
([a6fcdb0](a6fcdb0))
* **avm:** Remove some parentheses in codegen relations
([#11766](#11766))
([f2f2634](f2f2634))
* Do not differentiate variable vs fixed length for Poseidon2
([#11740](#11740))
([ee5fc45](ee5fc45))
* Simplify handling of pub inputs block
([#11747](#11747))
([4a8136c](4a8136c))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Feb 11, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>aztec-package: 0.76.0</summary>

##
[0.76.0](AztecProtocol/aztec-packages@aztec-package-v0.75.0...aztec-package-v0.76.0)
(2025-02-10)


### Features

* **spartan:** Blob sink in spartan
([#11307](AztecProtocol/aztec-packages#11307))
([d8e5bcc](AztecProtocol/aztec-packages@d8e5bcc))


### Miscellaneous

* Check versioning
([#11611](AztecProtocol/aztec-packages#11611))
([b33f1da](AztecProtocol/aztec-packages@b33f1da))
* **p2p:** Remove min peers option
([#11789](AztecProtocol/aztec-packages#11789))
([cfb6797](AztecProtocol/aztec-packages@cfb6797))
</details>

<details><summary>barretenberg.js: 0.76.0</summary>

##
[0.76.0](AztecProtocol/aztec-packages@barretenberg.js-v0.75.0...barretenberg.js-v0.76.0)
(2025-02-10)


### Bug Fixes

* **bb.js:** Make wasm imports bundleable
([#11812](AztecProtocol/aztec-packages#11812))
([1af69a9](AztecProtocol/aztec-packages@1af69a9))
* Remove unnecessary console.log
([#11810](AztecProtocol/aztec-packages#11810))
([8a320bf](AztecProtocol/aztec-packages@8a320bf))
</details>

<details><summary>aztec-packages: 0.76.0</summary>

##
[0.76.0](AztecProtocol/aztec-packages@aztec-packages-v0.75.0...aztec-packages-v0.76.0)
(2025-02-10)


### ⚠ BREAKING CHANGES

* check abi integer input is within signed range
(noir-lang/noir#7316)
* using `WithHash<T>` in `SharedMutable` + fixing slot allocation
([#11716](AztecProtocol/aztec-packages#11716))

### Features

* `assert` and `assert_eq` are now expressions
(noir-lang/noir#7313)
([b883911](AztecProtocol/aztec-packages@b883911))
* `assert` and `assert_eq` are now expressions
(noir-lang/noir#7313)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* **avm:** Add skippable condition for interactions
([#11800](AztecProtocol/aztec-packages#11800))
([67aec61](AztecProtocol/aztec-packages@67aec61))
* **avm:** Range check opt via aliases
([#11846](AztecProtocol/aztec-packages#11846))
([ce6a5bf](AztecProtocol/aztec-packages@ce6a5bf))
* **avm:** Restrict bytecode bytes
([#11798](AztecProtocol/aztec-packages#11798))
([be382bc](AztecProtocol/aztec-packages@be382bc))
* **aztec-nr:** Do not compile functions with a private public macro and
unconstrained
([#11815](AztecProtocol/aztec-packages#11815))
([afb52e3](AztecProtocol/aztec-packages@afb52e3))
* **blob-lib:** Make blob lib and fix encoding test flake
([#11782](AztecProtocol/aztec-packages#11782))
([753f505](AztecProtocol/aztec-packages@753f505))
* Broker sends back job after accepting result
([#11754](AztecProtocol/aztec-packages#11754))
([62e5de7](AztecProtocol/aztec-packages@62e5de7))
* **docs:** Notes page
([#11746](AztecProtocol/aztec-packages#11746))
([117200e](AztecProtocol/aztec-packages@117200e))
* **docs:** Reindex typesense in CI
([#11791](AztecProtocol/aztec-packages#11791))
([6af8d54](AztecProtocol/aztec-packages@6af8d54))
* Infer lambda parameter types from return type and let type
(noir-lang/noir#7267)
([b883911](AztecProtocol/aztec-packages@b883911))
* Infer lambda parameter types from return type and let type
(noir-lang/noir#7267)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Optimizing contract with config pattern
([#11756](AztecProtocol/aztec-packages#11756))
([7820cb7](AztecProtocol/aztec-packages@7820cb7))
* **p2p:** Test bench scaffold
([#11758](AztecProtocol/aztec-packages#11758))
([48dc491](AztecProtocol/aztec-packages@48dc491))
* Partial note handling in aztec-nr
([#11641](AztecProtocol/aztec-packages#11641))
([1c1a33b](AztecProtocol/aztec-packages@1c1a33b))
* **perf:** Speed up TS AVM core simulator
([#11794](AztecProtocol/aztec-packages#11794))
([bb58c87](AztecProtocol/aztec-packages@bb58c87))
* **reqresp:** Send status messages along with reqresp responses
([#11727](AztecProtocol/aztec-packages#11727))
([b212490](AztecProtocol/aztec-packages@b212490))
* Simplify `Ord` implementation for arrays
(noir-lang/noir#7305)
([b883911](AztecProtocol/aztec-packages@b883911))
* Simplify `Ord` implementation for arrays
(noir-lang/noir#7305)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* **spartan:** Blob sink in spartan
([#11307](AztecProtocol/aztec-packages#11307))
([d8e5bcc](AztecProtocol/aztec-packages@d8e5bcc))
* Suport deploying contracts with public keys in txe
([#11882](AztecProtocol/aztec-packages#11882))
([94bdc85](AztecProtocol/aztec-packages@94bdc85)),
closes
[#11881](AztecProtocol/aztec-packages#11881)
* Sync from aztec-packages (noir-lang/noir#7293)
([b883911](AztecProtocol/aztec-packages@b883911))
* Sync from aztec-packages (noir-lang/noir#7293)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Trust tree roots from the AVM in public base
([#11823](AztecProtocol/aztec-packages#11823))
([5d12f94](AztecProtocol/aztec-packages@5d12f94))
* Using `WithHash&lt;T&gt;` in `SharedMutable` + fixing slot allocation
([#11716](AztecProtocol/aztec-packages#11716))
([952615b](AztecProtocol/aztec-packages@952615b))


### Bug Fixes

* Add missing return in main
([#11786](AztecProtocol/aztec-packages#11786))
([8c1d477](AztecProtocol/aztec-packages@8c1d477))
* Allows for infinite brillig loops
(noir-lang/noir#7296)
([b883911](AztecProtocol/aztec-packages@b883911))
* Always normalize ssa when priting at least one pass
(noir-lang/noir#7299)
([b883911](AztecProtocol/aztec-packages@b883911))
* Always normalize ssa when priting at least one pass
(noir-lang/noir#7299)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Avoid recomputing contractclassid
([#11783](AztecProtocol/aztec-packages#11783))
([f8448bf](AztecProtocol/aztec-packages@f8448bf))
* Avoid stack overflow on many comments in a row
(noir-lang/noir#7325)
([b883911](AztecProtocol/aztec-packages@b883911))
* Aztec wallet partial address display on deployment
([#11866](AztecProtocol/aztec-packages#11866))
([eef5302](AztecProtocol/aztec-packages@eef5302)),
closes
[#11864](AztecProtocol/aztec-packages#11864)
* **bb.js:** Make wasm imports bundleable
([#11812](AztecProtocol/aztec-packages#11812))
([1af69a9](AztecProtocol/aztec-packages@1af69a9))
* Beacon chain doesn't eat mainframe
([#11854](AztecProtocol/aztec-packages#11854))
([ebbdbc7](AztecProtocol/aztec-packages@ebbdbc7))
* Check abi integer input is within signed range
(noir-lang/noir#7316)
([b883911](AztecProtocol/aztec-packages@b883911))
* **ci:** Enforce boxes-test on merge
([#11841](AztecProtocol/aztec-packages#11841))
([e26a288](AztecProtocol/aztec-packages@e26a288))
* Downgrade to mainframe-compatible KIND
([#11883](AztecProtocol/aztec-packages#11883))
([9239b4f](AztecProtocol/aztec-packages@9239b4f))
* Error on if without else when type mismatch
(noir-lang/noir#7302)
([b883911](AztecProtocol/aztec-packages@b883911))
* Error on if without else when type mismatch
(noir-lang/noir#7302)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Error on trailing doc comment
(noir-lang/noir#7300)
([b883911](AztecProtocol/aztec-packages@b883911))
* Error on trailing doc comment
(noir-lang/noir#7300)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Formatting in master
([#11879](AztecProtocol/aztec-packages#11879))
([fff0f04](AztecProtocol/aztec-packages@fff0f04))
* Mark field division and modulo as requiring predicate for all
necessary types (noir-lang/noir#7290)
([b883911](AztecProtocol/aztec-packages@b883911))
* Mark field division and modulo as requiring predicate for all
necessary types (noir-lang/noir#7290)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Playground use new unbundled aztec.js
([#11780](AztecProtocol/aztec-packages#11780))
([fe2b666](AztecProtocol/aztec-packages@fe2b666))
* Prover-client test
([#11853](AztecProtocol/aztec-packages#11853))
([e950c76](AztecProtocol/aztec-packages@e950c76))
* Publish telemetry-client
([#11777](AztecProtocol/aztec-packages#11777))
([8634f6e](AztecProtocol/aztec-packages@8634f6e))
* Pxe release
([#11877](AztecProtocol/aztec-packages#11877))
([4c0d2f2](AztecProtocol/aztec-packages@4c0d2f2))
* Re exposing intent inner hash
([#11865](AztecProtocol/aztec-packages#11865))
([9638792](AztecProtocol/aztec-packages@9638792)),
closes
[#11795](AztecProtocol/aztec-packages#11795)
* Remove unnecessary console.log
([#11810](AztecProtocol/aztec-packages#11810))
([8a320bf](AztecProtocol/aztec-packages@8a320bf))
* Revert "feat: partial note handling in aztec-nr
([#11641](AztecProtocol/aztec-packages#11641))"
([#11797](AztecProtocol/aztec-packages#11797))
([c5c3f09](AztecProtocol/aztec-packages@c5c3f09))
* Skip orchestrator_workflow test (see
[#11870](AztecProtocol/aztec-packages#11870))
([#11872](AztecProtocol/aztec-packages#11872))
([f8e7e4e](AztecProtocol/aztec-packages@f8e7e4e))
* Skip vite browser test until
[#11874](AztecProtocol/aztec-packages#11874)
([#11876](AztecProtocol/aztec-packages#11876))
([e1adf23](AztecProtocol/aztec-packages@e1adf23))
* **ssa:** Unused functions removals post folding constant Brillig calls
(noir-lang/noir#7265)
([b883911](AztecProtocol/aztec-packages@b883911))
* **ssa:** Unused functions removals post folding constant Brillig calls
(noir-lang/noir#7265)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Tracy run
([#11819](AztecProtocol/aztec-packages#11819))
([fde135d](AztecProtocol/aztec-packages@fde135d))
* Txe block headers
([#11710](AztecProtocol/aztec-packages#11710))
([4f6b76f](AztecProtocol/aztec-packages@4f6b76f))


### Miscellaneous

* Add sha256 library to test suite
(noir-lang/noir#7278)
([b883911](AztecProtocol/aztec-packages@b883911))
* Add sha256 library to test suite
(noir-lang/noir#7278)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Add timeouts to reports CI
(noir-lang/noir#7317)
([b883911](AztecProtocol/aztec-packages@b883911))
* Aggregate with short scalars in UH Recursion
([#11478](AztecProtocol/aztec-packages#11478))
([a6fcdb0](AztecProtocol/aztec-packages@a6fcdb0))
* **avm:** Remove some parentheses in codegen relations
([#11766](AztecProtocol/aztec-packages#11766))
([f2f2634](AztecProtocol/aztec-packages@f2f2634))
* Bump noir_bigcurve timeout
(noir-lang/noir#7322)
([b883911](AztecProtocol/aztec-packages@b883911))
* Check versioning
([#11611](AztecProtocol/aztec-packages#11611))
([b33f1da](AztecProtocol/aztec-packages@b33f1da))
* Cleanup in AVM test fixture
([#11850](AztecProtocol/aztec-packages#11850))
([4526059](AztecProtocol/aztec-packages@4526059))
* Create a CI action to download nargo and add to path
(noir-lang/noir#7281)
([b883911](AztecProtocol/aztec-packages@b883911))
* Create a CI action to download nargo and add to path
(noir-lang/noir#7281)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Disable exp-2 from nightly deployments
([#11880](AztecProtocol/aztec-packages#11880))
([bc42b60](AztecProtocol/aztec-packages@bc42b60))
* Do not differentiate variable vs fixed length for Poseidon2
([#11740](AztecProtocol/aztec-packages#11740))
([ee5fc45](AztecProtocol/aztec-packages@ee5fc45))
* Fix memory reports in CI (noir-lang/noir#7311)
([b883911](AztecProtocol/aztec-packages@b883911))
* Fix memory reports in CI (noir-lang/noir#7311)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* **p2p:** Remove min peers option
([#11789](AztecProtocol/aztec-packages#11789))
([cfb6797](AztecProtocol/aztec-packages@cfb6797))
* Push inlining info code into a submodule
(noir-lang/noir#7266)
([b883911](AztecProtocol/aztec-packages@b883911))
* Push inlining info code into a submodule
(noir-lang/noir#7266)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Reduce number of benchmarking scripts
(noir-lang/noir#7285)
([b883911](AztecProtocol/aztec-packages@b883911))
* Reduce number of benchmarking scripts
(noir-lang/noir#7285)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Remove dead code
([#11809](AztecProtocol/aztec-packages#11809))
([51ad298](AztecProtocol/aztec-packages@51ad298))
* Remove Recoverable (noir-lang/noir#7307)
([b883911](AztecProtocol/aztec-packages@b883911))
* Remove Recoverable (noir-lang/noir#7307)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Replace benchmarks on fast test suites with a cut-off
(noir-lang/noir#7276)
([b883911](AztecProtocol/aztec-packages@b883911))
* Replace benchmarks on fast test suites with a cut-off
(noir-lang/noir#7276)
([3840e8e](AztecProtocol/aztec-packages@3840e8e))
* Replace relative paths to noir-protocol-circuits
([330f613](AztecProtocol/aztec-packages@330f613))
* Replace relative paths to noir-protocol-circuits
([501ec66](AztecProtocol/aztec-packages@501ec66))
* Replace relative paths to noir-protocol-circuits
([3fa986a](AztecProtocol/aztec-packages@3fa986a))
* Sepolia mnemonic, e2e & ignition chain
([#11759](AztecProtocol/aztec-packages#11759))
([ff1536a](AztecProtocol/aztec-packages@ff1536a))
* Simplify handling of pub inputs block
([#11747](AztecProtocol/aztec-packages#11747))
([4a8136c](AztecProtocol/aztec-packages@4a8136c))
* **spartan:** Give services label names
([#11609](AztecProtocol/aztec-packages#11609))
([2da39df](AztecProtocol/aztec-packages@2da39df))
* **spartan:** Update ethereum external host values
([#11590](AztecProtocol/aztec-packages#11590))
([f17a8f3](AztecProtocol/aztec-packages@f17a8f3))
* Update migration_notes.md
([#11801](AztecProtocol/aztec-packages#11801))
([baa69a2](AztecProtocol/aztec-packages@baa69a2))


### Documentation

* Some blob docs
([#11729](AztecProtocol/aztec-packages#11729))
([b1d65f1](AztecProtocol/aztec-packages@b1d65f1))
</details>

<details><summary>barretenberg: 0.76.0</summary>

##
[0.76.0](AztecProtocol/aztec-packages@barretenberg-v0.75.0...barretenberg-v0.76.0)
(2025-02-10)


### Features

* **avm:** Add skippable condition for interactions
([#11800](AztecProtocol/aztec-packages#11800))
([67aec61](AztecProtocol/aztec-packages@67aec61))
* **avm:** Range check opt via aliases
([#11846](AztecProtocol/aztec-packages#11846))
([ce6a5bf](AztecProtocol/aztec-packages@ce6a5bf))
* **avm:** Restrict bytecode bytes
([#11798](AztecProtocol/aztec-packages#11798))
([be382bc](AztecProtocol/aztec-packages@be382bc))


### Bug Fixes

* Add missing return in main
([#11786](AztecProtocol/aztec-packages#11786))
([8c1d477](AztecProtocol/aztec-packages@8c1d477))
* Tracy run
([#11819](AztecProtocol/aztec-packages#11819))
([fde135d](AztecProtocol/aztec-packages@fde135d))


### Miscellaneous

* Aggregate with short scalars in UH Recursion
([#11478](AztecProtocol/aztec-packages#11478))
([a6fcdb0](AztecProtocol/aztec-packages@a6fcdb0))
* **avm:** Remove some parentheses in codegen relations
([#11766](AztecProtocol/aztec-packages#11766))
([f2f2634](AztecProtocol/aztec-packages@f2f2634))
* Do not differentiate variable vs fixed length for Poseidon2
([#11740](AztecProtocol/aztec-packages#11740))
([ee5fc45](AztecProtocol/aztec-packages@ee5fc45))
* Simplify handling of pub inputs block
([#11747](AztecProtocol/aztec-packages#11747))
([4a8136c](AztecProtocol/aztec-packages@4a8136c))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants