-
Notifications
You must be signed in to change notification settings - Fork 310
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
Conversation
Co-authored-by: Jan Beneš <[email protected]>
There was a problem hiding this 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() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
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>( |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
|
||
hiding_point_slot | ||
partial.hiding_point.value.x |
There was a problem hiding this comment.
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.
let partial = PartialUintNote::new(to, to_note_slot); | ||
let encrypted_log = compute_log(*context, partial, to, from); | ||
context.emit_private_log(encrypted_log); |
There was a problem hiding this comment.
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
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. |
Changes to public function bytecode sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
Changes to circuit sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
🤖 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<T>` 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).
🤖 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<T>` 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).
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 inPartialUintNote
(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:
note::discovery::discover_new_notes()
syncNotes
oracleprocess_log
unconstrained contract functionnote::discovery::private::do_process_log
, which continues handling the lognote::discovery::partial:...
runs, searching for public logs from inside noir (via a newgetTaggedLog
oracle callThe interface of
PartialUintNote
can be greatly improved, I'm thinking we may haveUintNote::partial(recipient)
return a struct similar to this one with someemit
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.