-
Notifications
You must be signed in to change notification settings - Fork 234
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: npk_m_hash
in all notes + key rotation test
#6405
Conversation
Co-authored-by: Jan Beneš <janbenes1234@gmail.com>
This stack of pull requests is managed by Graphite. Learn more about stacking. |
npk_m_hash
in all notes + key rotation test
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.
LGTM
@@ -9,7 +10,8 @@ pub fn create_note<Note, N>( | |||
context: &mut PrivateContext, | |||
storage_slot: Field, | |||
note: &mut Note, | |||
broadcast: bool | |||
broadcast: bool, |
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.
I think we should get rid of the bool. To follow the spec idea that it is always emitting, but that can be addressed in #6440.
@@ -10,18 +12,31 @@ pub fn create_note_getter_options_for_decreasing_balance(amount: Field) -> NoteG | |||
|
|||
// Creates a new note for the recipient. | |||
// Inserts it to the recipient's set of notes. | |||
pub fn increment(balance: PrivateSet<ValueNote>, amount: Field, recipient: AztecAddress) { | |||
let mut note = ValueNote::new(amount, recipient); | |||
pub fn increment( |
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.
Unrelated to this pr, but always found this one fairly strange (the utils file). It assumes that you use very specific structures, e.g., a privateset of valuenotes, so it just seems more straight forward wrapping it in a struct similar to what was done in the balances map etc 🤷.
noir-projects/noir-contracts/contracts/docs_example_contract/src/options.nr
Show resolved
Hide resolved
noir-projects/noir-contracts/contracts/docs_example_contract/src/options.nr
Show resolved
Hide resolved
@LHerskind talked with Esau and he will address your last comments in #6417 to no longer slow down getting this one in which I think is fine given that your last comments are not that severe. |
😬 the idea was to wait slightly on #6268 before merging this one to not cause them a lot of merge conflicts. Should have marked it on this pr. My bad. |
…ment() (#6523) #6405 added a very complicated call (`get_npk_m_hash`) to `destroy_note`, not realizing that `destroy_note` is called in a loop by `decrement`. The loop unrolling caused multiple calls to this function, even though they all had the same arguments, ultimately resulting in humongous RAM usage during compilation (over 40GB just for this contract) and very compilation times (from 30s to multiple minutes). This PR fixes this simply inlining the code for `destroy_note` and fetching the key once at the beginning. It does worry me slightly however that such a large performance hit was not noticed - this likely affected test times as well.
…ment() (AztecProtocol/aztec-packages#6523) AztecProtocol/aztec-packages#6405 added a very complicated call (`get_npk_m_hash`) to `destroy_note`, not realizing that `destroy_note` is called in a loop by `decrement`. The loop unrolling caused multiple calls to this function, even though they all had the same arguments, ultimately resulting in humongous RAM usage during compilation (over 40GB just for this contract) and very compilation times (from 30s to multiple minutes). This PR fixes this simply inlining the code for `destroy_note` and fetching the key once at the beginning. It does worry me slightly however that such a large performance hit was not noticed - this likely affected test times as well.
…ment() (#6523) AztecProtocol/aztec-packages#6405 added a very complicated call (`get_npk_m_hash`) to `destroy_note`, not realizing that `destroy_note` is called in a loop by `decrement`. The loop unrolling caused multiple calls to this function, even though they all had the same arguments, ultimately resulting in humongous RAM usage during compilation (over 40GB just for this contract) and very compilation times (from 30s to multiple minutes). This PR fixes this simply inlining the code for `destroy_note` and fetching the key once at the beginning. It does worry me slightly however that such a large performance hit was not noticed - this likely affected test times as well.
…ment() (#6523) #6405 added a very complicated call (`get_npk_m_hash`) to `destroy_note`, not realizing that `destroy_note` is called in a loop by `decrement`. The loop unrolling caused multiple calls to this function, even though they all had the same arguments, ultimately resulting in humongous RAM usage during compilation (over 40GB just for this contract) and very compilation times (from 30s to multiple minutes). This PR fixes this simply inlining the code for `destroy_note` and fetching the key once at the beginning. It does worry me slightly however that such a large performance hit was not noticed - this likely affected test times as well.
Addresses comments from #6405, refactors key rotate --------- Co-authored-by: Jan Beneš <janbenes1234@gmail.com>
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.41.0</summary> ## [0.41.0](aztec-package-v0.40.1...aztec-package-v0.41.0) (2024-05-21) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.41.0</summary> ## [0.41.0](barretenberg.js-v0.40.1...barretenberg.js-v0.41.0) (2024-05-21) ### Features * Vk_as_fields, proof_as_fields flows for honk ([#6406](#6406)) ([a6100ad](a6100ad)) ### Miscellaneous * Remove acvmInfo from bb.js CLI ([#6507](#6507)) ([e298c76](e298c76)) </details> <details><summary>aztec-packages: 0.41.0</summary> ## [0.41.0](aztec-packages-v0.40.1...aztec-packages-v0.41.0) (2024-05-21) ### ⚠ BREAKING CHANGES * compile-time incorrect exec environment errors ([#6442](#6442)) * add is_infinite to curve addition opcode ([#6384](#6384)) * remove backend interactions from `nargo` ([#6320](#6320)) ### Features * `npk_m_hash` in all notes + key rotation test ([#6405](#6405)) ([74e98d4](74e98d4)) * Add encrypted log outgoing body ([#6334](#6334)) ([fa9f442](fa9f442)) * Add first version of kernel reset circuit ([#6393](#6393)) ([ed6df8e](ed6df8e)) * Add is_infinite to curve addition opcode ([#6384](#6384)) ([75d81c5](75d81c5)) * Add native rust implementations of pedersen functions (noir-lang/noir#4871) ([8bbbbb6](8bbbbb6)) * Add nullifying key to Token Note ([#6130](#6130)) ([95c6b4a](95c6b4a)) * Adding autogenerated variants for the reset circuit ([#6508](#6508)) ([8e8d2dd](8e8d2dd)) * **avm-simulator:** Cap gas for external calls ([#6479](#6479)) ([c8771ba](c8771ba)) * **avm:** Gzip avm bytecode ([#6475](#6475)) ([29559bd](29559bd)) * **avm:** To_radix gadget ([#6368](#6368)) ([89dd25f](89dd25f)) * Benchmark private proving ([#6409](#6409)) ([e9e5526](e9e5526)) * Compile-time incorrect exec environment errors ([#6442](#6442)) ([0f75efd](0f75efd)) * Do not return databus returndata, keep it private. (noir-lang/noir#5023) ([26f2197](26f2197)) * **docs:** Authwit how tos ([#6220](#6220)) ([78f13d9](78f13d9)) * **docs:** Key rotation / owner -> nullifier key docs ([#6538](#6538)) ([2453ba8](2453ba8)) * Full encryption and decryption of log in ts ([#6348](#6348)) ([0ac83dc](0ac83dc)) * Generic key validation request ([#6474](#6474)) ([948ec38](948ec38)) * Improved ClientIvc ([#6429](#6429)) ([f360b3f](f360b3f)) * Laying out a new recursion constraint for honk ([#6489](#6489)) ([af9fea4](af9fea4)) * New docs structure ([#6195](#6195)) ([9cca814](9cca814)) * Pay out arbitrary fee to coinbase on L1 ([#6436](#6436)) ([1b99de8](1b99de8)) * Remove total logs len from pre tail kernels + add to L1 ([#6466](#6466)) ([66a2d43](66a2d43)) * Run benchmarks for ACIR proving ([#6155](#6155)) ([ebf6fc2](ebf6fc2)) * Squash transient note logs ([#6268](#6268)) ([4574877](4574877)) * Sum transaction fees and pay on l1 ([#6522](#6522)) ([bf441da](bf441da)) * Translator recursive verifier ([#6327](#6327)) ([9321aef](9321aef)) * Update the encrypted note log format ([#6411](#6411)) ([e5cc9dc](e5cc9dc)) * Validate counters ([#6365](#6365)) ([1f28b3a](1f28b3a)) * View functions with static context enforcing ([#6338](#6338)) ([22ad5a5](22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([#6406](#6406)) ([a6100ad](a6100ad)) ### Bug Fixes * Arm ci ([#6480](#6480)) ([237952e](237952e)) * Asset struct serialization does not match Noir internal serialization ([#6494](#6494)) ([9e6a4c3](9e6a4c3)) * **avm-simulator:** Actually wrap oracles ([#6449](#6449)) ([8685acc](8685acc)) * **avm-simulator:** Nested calls should preserve static context ([#6414](#6414)) ([44d7916](44d7916)) * **avm-simulator:** Pending storage and nullifiers should be accessible in grandchild nested calls ([#6428](#6428)) ([84d2e1f](84d2e1f)) * Buggy e2e key registry test setup ([#6496](#6496)) ([52d85d1](52d85d1)) * **ci:** ARM ([#6521](#6521)) ([d1095f6](d1095f6)) * **ci:** Arm concurrency ([#6564](#6564)) ([a265da0](a265da0)) * Disable buggy ClientIVC tests ([#6546](#6546)) ([b61dea3](b61dea3)) * Disk attach edge case ([#6430](#6430)) ([2366ad3](2366ad3)) * **docs:** Clarify content on portals ([#6431](#6431)) ([869df4d](869df4d)) * Don't start multiple runners during RequestLimitExceeded ([#6444](#6444)) ([7c4c822](7c4c822)) * Dont start multiple builders ([#6437](#6437)) ([d67ab1c](d67ab1c)) * Fix no predicates for brillig with intermediate functions (noir-lang/noir#5015) ([26f2197](26f2197)) * Fixed several vulnerabilities in U128, added some tests (noir-lang/noir#5024) ([26f2197](26f2197)) * Increase N_max in Zeromorph ([#6415](#6415)) ([9e643b4](9e643b4)) * Quick fix of [#6405](#6405) by removing context from value note utils ([#6509](#6509)) ([3a4d828](3a4d828)) * Removed plain from path in array args of contract interfaces ([#6497](#6497)) ([2b37729](2b37729)) * Runs-on inconsistency and simplify concurrency keys ([#6433](#6433)) ([80674d9](80674d9)) * Spot retry fixup ([#6476](#6476)) ([784d784](784d784)) ### Miscellaneous * Add benchmarks for pedersen and schnorr verification (noir-lang/noir#5056) ([8bbbbb6](8bbbbb6)) * Add c++ tests for generator derivation ([#6528](#6528)) ([72931bd](72931bd)) * Add script to print lines of code (noir-lang/noir#4991) ([26f2197](26f2197)) * Add some docs on syncing noir ([#6340](#6340)) ([bb68fcd](bb68fcd)) * Anvil kill wrapper now supports mac ([#6520](#6520)) ([2a5d975](2a5d975)) * **avm:** Wrap oracles with unconstrained fns ([#6421](#6421)) ([3e7e094](3e7e094)) * Bump earthly ([#6419](#6419)) ([3d78751](3d78751)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6462](#6462)) ([26eac62](26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6495](#6495)) ([90d8092](90d8092)) * Change some error messages for avm switch ([#6447](#6447)) ([74d6519](74d6519)) * **ci:** Better retry defaults ([#6472](#6472)) ([b23f1fd](b23f1fd)) * **ci:** Consistency as external check ([#6460](#6460)) ([6793a75](6793a75)) * **ci:** Dont detach ebs ([#6441](#6441)) ([f933fc0](f933fc0)) * **ci:** Fix on-demand starting ([#6434](#6434)) ([c3efb9c](c3efb9c)) * **ci:** Increase timeouts ([#6426](#6426)) ([44986fe](44986fe)) * **ci:** Only run circleci on master ([#6525](#6525)) ([c75fbd4](c75fbd4)) * **ci:** Push l1-contracts tests off of critical path ([#6400](#6400)) ([ce0ae6d](ce0ae6d)) * **ci:** Reenable arm build ([#6455](#6455)) ([2862767](2862767)) * **ci:** Require setup in merge-check ([#6454](#6454)) ([ad73061](ad73061)) * **ci:** Spot capacity and reaping ([#6561](#6561)) ([8c639b5](8c639b5)) * Clean up kernel types by removing is_static from function_data ([#6557](#6557)) ([83ba29f](83ba29f)) * Cleanup the encrypted log incoming body ([#6325](#6325)) ([e88c209](e88c209)) * Copy subset of constants to cpp ([#6544](#6544)) ([21dc72a](21dc72a)) * Do not rebuild yarn-projects on bench-comment ([#6396](#6396)) ([797115b](797115b)) * **docs:** Adding analytics ([#6350](#6350)) ([6417cd9](6417cd9)) * **docs:** Restructure improvs ([#6502](#6502)) ([c3b573e](c3b573e)) * Fix linter issues in AVM ([#6057](#6057)) ([c2e72b1](c2e72b1)) * Fix logs upload to S3 ([#6401](#6401)) ([9df0602](9df0602)) * Fix migration notes ([#6458](#6458)) ([bee85a9](bee85a9)) * Fix migration notes ([#6551](#6551)) ([89bc350](89bc350)) * Fix notes 0.41.0 ([#6461](#6461)) ([04b0ec5](04b0ec5)) * Fix poor performance and long compile times in value_note.derement() ([#6523](#6523)) ([002b4aa](002b4aa)) * Fix tester image copy pattern ([#6438](#6438)) ([b892eae](b892eae)) * Get_nullifier_keys cleanup ([#6451](#6451)) ([8a71fd5](8a71fd5)) * Lower max public bytecode to 20k ([#6477](#6477)) ([ce192f0](ce192f0)) * Move `UPLOAD_LOGS` into root earthfile ([#6424](#6424)) ([d723da9](d723da9)) * Nuking `KeyStore` and `KeyPair` interfaces ([#6553](#6553)) ([23e0518](23e0518)) * Parameterise cycle_group by `Builder` rather than `Composer` ([#6565](#6565)) ([ea36bf9](ea36bf9)) * Prefetch noir deps in earthly for caching ([#6556](#6556)) ([8ee9060](8ee9060)) * Private call validation ([#6510](#6510)) ([07dc072](07dc072)) * Purge secret and open keywords ([#6501](#6501)) ([f9c74c4](f9c74c4)), closes [#5538](#5538) * Recommend Noir and rust plugin ([#6558](#6558)) ([298561f](298561f)) * Refactor key rotate and address comments from 6405 ([#6450](#6450)) ([6f3dab8](6f3dab8)) * Remove acvmInfo from bb.js CLI ([#6507](#6507)) ([e298c76](e298c76)) * Remove backend interactions from `nargo` ([#6320](#6320)) ([7a31896](7a31896)) * Replace relative paths to noir-protocol-circuits ([94ab877](94ab877)) * Replace relative paths to noir-protocol-circuits ([9f04bfe](9f04bfe)) * Replace relative paths to noir-protocol-circuits ([67f29e5](67f29e5)) * Replace relative paths to noir-protocol-circuits ([a7a4b86](a7a4b86)) * Replace relative paths to noir-protocol-circuits ([c6f61a4](c6f61a4)) * Share decider with ultra_prover ([#5467](#5467)) ([b3b7376](b3b7376)) * Switch over to constructing gates report in bash ([#6491](#6491)) ([1fa5963](1fa5963)) * **tests:** Change error messages in preparation for AVM ([#6422](#6422)) ([6616dc6](6616dc6)) ### Documentation * Sumcheck documentation ([#5841](#5841)) ([116eef0](116eef0)) * Updating key docs in concepts section ([#6387](#6387)) ([921a7f4](921a7f4)) </details> <details><summary>barretenberg: 0.41.0</summary> ## [0.41.0](barretenberg-v0.40.1...barretenberg-v0.41.0) (2024-05-21) ### ⚠ BREAKING CHANGES * add is_infinite to curve addition opcode ([#6384](#6384)) ### Features * Add is_infinite to curve addition opcode ([#6384](#6384)) ([75d81c5](75d81c5)) * **avm-simulator:** Cap gas for external calls ([#6479](#6479)) ([c8771ba](c8771ba)) * **avm:** Gzip avm bytecode ([#6475](#6475)) ([29559bd](29559bd)) * **avm:** To_radix gadget ([#6368](#6368)) ([89dd25f](89dd25f)) * Full encryption and decryption of log in ts ([#6348](#6348)) ([0ac83dc](0ac83dc)) * Improved ClientIvc ([#6429](#6429)) ([f360b3f](f360b3f)) * Laying out a new recursion constraint for honk ([#6489](#6489)) ([af9fea4](af9fea4)) * Remove total logs len from pre tail kernels + add to L1 ([#6466](#6466)) ([66a2d43](66a2d43)) * Run benchmarks for ACIR proving ([#6155](#6155)) ([ebf6fc2](ebf6fc2)) * Squash transient note logs ([#6268](#6268)) ([4574877](4574877)) * Sum transaction fees and pay on l1 ([#6522](#6522)) ([bf441da](bf441da)) * Translator recursive verifier ([#6327](#6327)) ([9321aef](9321aef)) * View functions with static context enforcing ([#6338](#6338)) ([22ad5a5](22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([#6406](#6406)) ([a6100ad](a6100ad)) ### Bug Fixes * Disable buggy ClientIVC tests ([#6546](#6546)) ([b61dea3](b61dea3)) * Increase N_max in Zeromorph ([#6415](#6415)) ([9e643b4](9e643b4)) ### Miscellaneous * Add c++ tests for generator derivation ([#6528](#6528)) ([72931bd](72931bd)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6462](#6462)) ([26eac62](26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6495](#6495)) ([90d8092](90d8092)) * Copy subset of constants to cpp ([#6544](#6544)) ([21dc72a](21dc72a)) * Lower max public bytecode to 20k ([#6477](#6477)) ([ce192f0](ce192f0)) * Parameterise cycle_group by `Builder` rather than `Composer` ([#6565](#6565)) ([ea36bf9](ea36bf9)) * Private call validation ([#6510](#6510)) ([07dc072](07dc072)) * Share decider with ultra_prover ([#5467](#5467)) ([b3b7376](b3b7376)) ### Documentation * Sumcheck documentation ([#5841](#5841)) ([116eef0](116eef0)) </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.41.0</summary> ## [0.41.0](AztecProtocol/aztec-packages@aztec-package-v0.40.1...aztec-package-v0.41.0) (2024-05-21) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.41.0</summary> ## [0.41.0](AztecProtocol/aztec-packages@barretenberg.js-v0.40.1...barretenberg.js-v0.41.0) (2024-05-21) ### Features * Vk_as_fields, proof_as_fields flows for honk ([#6406](AztecProtocol/aztec-packages#6406)) ([a6100ad](AztecProtocol/aztec-packages@a6100ad)) ### Miscellaneous * Remove acvmInfo from bb.js CLI ([#6507](AztecProtocol/aztec-packages#6507)) ([e298c76](AztecProtocol/aztec-packages@e298c76)) </details> <details><summary>aztec-packages: 0.41.0</summary> ## [0.41.0](AztecProtocol/aztec-packages@aztec-packages-v0.40.1...aztec-packages-v0.41.0) (2024-05-21) ### ⚠ BREAKING CHANGES * compile-time incorrect exec environment errors ([#6442](AztecProtocol/aztec-packages#6442)) * add is_infinite to curve addition opcode ([#6384](AztecProtocol/aztec-packages#6384)) * remove backend interactions from `nargo` ([#6320](AztecProtocol/aztec-packages#6320)) ### Features * `npk_m_hash` in all notes + key rotation test ([#6405](AztecProtocol/aztec-packages#6405)) ([74e98d4](AztecProtocol/aztec-packages@74e98d4)) * Add encrypted log outgoing body ([#6334](AztecProtocol/aztec-packages#6334)) ([fa9f442](AztecProtocol/aztec-packages@fa9f442)) * Add first version of kernel reset circuit ([#6393](AztecProtocol/aztec-packages#6393)) ([ed6df8e](AztecProtocol/aztec-packages@ed6df8e)) * Add is_infinite to curve addition opcode ([#6384](AztecProtocol/aztec-packages#6384)) ([75d81c5](AztecProtocol/aztec-packages@75d81c5)) * Add native rust implementations of pedersen functions (noir-lang/noir#4871) ([8bbbbb6](AztecProtocol/aztec-packages@8bbbbb6)) * Add nullifying key to Token Note ([#6130](AztecProtocol/aztec-packages#6130)) ([95c6b4a](AztecProtocol/aztec-packages@95c6b4a)) * Adding autogenerated variants for the reset circuit ([#6508](AztecProtocol/aztec-packages#6508)) ([8e8d2dd](AztecProtocol/aztec-packages@8e8d2dd)) * **avm-simulator:** Cap gas for external calls ([#6479](AztecProtocol/aztec-packages#6479)) ([c8771ba](AztecProtocol/aztec-packages@c8771ba)) * **avm:** Gzip avm bytecode ([#6475](AztecProtocol/aztec-packages#6475)) ([29559bd](AztecProtocol/aztec-packages@29559bd)) * **avm:** To_radix gadget ([#6368](AztecProtocol/aztec-packages#6368)) ([89dd25f](AztecProtocol/aztec-packages@89dd25f)) * Benchmark private proving ([#6409](AztecProtocol/aztec-packages#6409)) ([e9e5526](AztecProtocol/aztec-packages@e9e5526)) * Compile-time incorrect exec environment errors ([#6442](AztecProtocol/aztec-packages#6442)) ([0f75efd](AztecProtocol/aztec-packages@0f75efd)) * Do not return databus returndata, keep it private. (noir-lang/noir#5023) ([26f2197](AztecProtocol/aztec-packages@26f2197)) * **docs:** Authwit how tos ([#6220](AztecProtocol/aztec-packages#6220)) ([78f13d9](AztecProtocol/aztec-packages@78f13d9)) * **docs:** Key rotation / owner -> nullifier key docs ([#6538](AztecProtocol/aztec-packages#6538)) ([2453ba8](AztecProtocol/aztec-packages@2453ba8)) * Full encryption and decryption of log in ts ([#6348](AztecProtocol/aztec-packages#6348)) ([0ac83dc](AztecProtocol/aztec-packages@0ac83dc)) * Generic key validation request ([#6474](AztecProtocol/aztec-packages#6474)) ([948ec38](AztecProtocol/aztec-packages@948ec38)) * Improved ClientIvc ([#6429](AztecProtocol/aztec-packages#6429)) ([f360b3f](AztecProtocol/aztec-packages@f360b3f)) * Laying out a new recursion constraint for honk ([#6489](AztecProtocol/aztec-packages#6489)) ([af9fea4](AztecProtocol/aztec-packages@af9fea4)) * New docs structure ([#6195](AztecProtocol/aztec-packages#6195)) ([9cca814](AztecProtocol/aztec-packages@9cca814)) * Pay out arbitrary fee to coinbase on L1 ([#6436](AztecProtocol/aztec-packages#6436)) ([1b99de8](AztecProtocol/aztec-packages@1b99de8)) * Remove total logs len from pre tail kernels + add to L1 ([#6466](AztecProtocol/aztec-packages#6466)) ([66a2d43](AztecProtocol/aztec-packages@66a2d43)) * Run benchmarks for ACIR proving ([#6155](AztecProtocol/aztec-packages#6155)) ([ebf6fc2](AztecProtocol/aztec-packages@ebf6fc2)) * Squash transient note logs ([#6268](AztecProtocol/aztec-packages#6268)) ([4574877](AztecProtocol/aztec-packages@4574877)) * Sum transaction fees and pay on l1 ([#6522](AztecProtocol/aztec-packages#6522)) ([bf441da](AztecProtocol/aztec-packages@bf441da)) * Translator recursive verifier ([#6327](AztecProtocol/aztec-packages#6327)) ([9321aef](AztecProtocol/aztec-packages@9321aef)) * Update the encrypted note log format ([#6411](AztecProtocol/aztec-packages#6411)) ([e5cc9dc](AztecProtocol/aztec-packages@e5cc9dc)) * Validate counters ([#6365](AztecProtocol/aztec-packages#6365)) ([1f28b3a](AztecProtocol/aztec-packages@1f28b3a)) * View functions with static context enforcing ([#6338](AztecProtocol/aztec-packages#6338)) ([22ad5a5](AztecProtocol/aztec-packages@22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([#6406](AztecProtocol/aztec-packages#6406)) ([a6100ad](AztecProtocol/aztec-packages@a6100ad)) ### Bug Fixes * Arm ci ([#6480](AztecProtocol/aztec-packages#6480)) ([237952e](AztecProtocol/aztec-packages@237952e)) * Asset struct serialization does not match Noir internal serialization ([#6494](AztecProtocol/aztec-packages#6494)) ([9e6a4c3](AztecProtocol/aztec-packages@9e6a4c3)) * **avm-simulator:** Actually wrap oracles ([#6449](AztecProtocol/aztec-packages#6449)) ([8685acc](AztecProtocol/aztec-packages@8685acc)) * **avm-simulator:** Nested calls should preserve static context ([#6414](AztecProtocol/aztec-packages#6414)) ([44d7916](AztecProtocol/aztec-packages@44d7916)) * **avm-simulator:** Pending storage and nullifiers should be accessible in grandchild nested calls ([#6428](AztecProtocol/aztec-packages#6428)) ([84d2e1f](AztecProtocol/aztec-packages@84d2e1f)) * Buggy e2e key registry test setup ([#6496](AztecProtocol/aztec-packages#6496)) ([52d85d1](AztecProtocol/aztec-packages@52d85d1)) * **ci:** ARM ([#6521](AztecProtocol/aztec-packages#6521)) ([d1095f6](AztecProtocol/aztec-packages@d1095f6)) * **ci:** Arm concurrency ([#6564](AztecProtocol/aztec-packages#6564)) ([a265da0](AztecProtocol/aztec-packages@a265da0)) * Disable buggy ClientIVC tests ([#6546](AztecProtocol/aztec-packages#6546)) ([b61dea3](AztecProtocol/aztec-packages@b61dea3)) * Disk attach edge case ([#6430](AztecProtocol/aztec-packages#6430)) ([2366ad3](AztecProtocol/aztec-packages@2366ad3)) * **docs:** Clarify content on portals ([#6431](AztecProtocol/aztec-packages#6431)) ([869df4d](AztecProtocol/aztec-packages@869df4d)) * Don't start multiple runners during RequestLimitExceeded ([#6444](AztecProtocol/aztec-packages#6444)) ([7c4c822](AztecProtocol/aztec-packages@7c4c822)) * Dont start multiple builders ([#6437](AztecProtocol/aztec-packages#6437)) ([d67ab1c](AztecProtocol/aztec-packages@d67ab1c)) * Fix no predicates for brillig with intermediate functions (noir-lang/noir#5015) ([26f2197](AztecProtocol/aztec-packages@26f2197)) * Fixed several vulnerabilities in U128, added some tests (noir-lang/noir#5024) ([26f2197](AztecProtocol/aztec-packages@26f2197)) * Increase N_max in Zeromorph ([#6415](AztecProtocol/aztec-packages#6415)) ([9e643b4](AztecProtocol/aztec-packages@9e643b4)) * Quick fix of [#6405](AztecProtocol/aztec-packages#6405) by removing context from value note utils ([#6509](AztecProtocol/aztec-packages#6509)) ([3a4d828](AztecProtocol/aztec-packages@3a4d828)) * Removed plain from path in array args of contract interfaces ([#6497](AztecProtocol/aztec-packages#6497)) ([2b37729](AztecProtocol/aztec-packages@2b37729)) * Runs-on inconsistency and simplify concurrency keys ([#6433](AztecProtocol/aztec-packages#6433)) ([80674d9](AztecProtocol/aztec-packages@80674d9)) * Spot retry fixup ([#6476](AztecProtocol/aztec-packages#6476)) ([784d784](AztecProtocol/aztec-packages@784d784)) ### Miscellaneous * Add benchmarks for pedersen and schnorr verification (noir-lang/noir#5056) ([8bbbbb6](AztecProtocol/aztec-packages@8bbbbb6)) * Add c++ tests for generator derivation ([#6528](AztecProtocol/aztec-packages#6528)) ([72931bd](AztecProtocol/aztec-packages@72931bd)) * Add script to print lines of code (noir-lang/noir#4991) ([26f2197](AztecProtocol/aztec-packages@26f2197)) * Add some docs on syncing noir ([#6340](AztecProtocol/aztec-packages#6340)) ([bb68fcd](AztecProtocol/aztec-packages@bb68fcd)) * Anvil kill wrapper now supports mac ([#6520](AztecProtocol/aztec-packages#6520)) ([2a5d975](AztecProtocol/aztec-packages@2a5d975)) * **avm:** Wrap oracles with unconstrained fns ([#6421](AztecProtocol/aztec-packages#6421)) ([3e7e094](AztecProtocol/aztec-packages@3e7e094)) * Bump earthly ([#6419](AztecProtocol/aztec-packages#6419)) ([3d78751](AztecProtocol/aztec-packages@3d78751)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6462](AztecProtocol/aztec-packages#6462)) ([26eac62](AztecProtocol/aztec-packages@26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6495](AztecProtocol/aztec-packages#6495)) ([90d8092](AztecProtocol/aztec-packages@90d8092)) * Change some error messages for avm switch ([#6447](AztecProtocol/aztec-packages#6447)) ([74d6519](AztecProtocol/aztec-packages@74d6519)) * **ci:** Better retry defaults ([#6472](AztecProtocol/aztec-packages#6472)) ([b23f1fd](AztecProtocol/aztec-packages@b23f1fd)) * **ci:** Consistency as external check ([#6460](AztecProtocol/aztec-packages#6460)) ([6793a75](AztecProtocol/aztec-packages@6793a75)) * **ci:** Dont detach ebs ([#6441](AztecProtocol/aztec-packages#6441)) ([f933fc0](AztecProtocol/aztec-packages@f933fc0)) * **ci:** Fix on-demand starting ([#6434](AztecProtocol/aztec-packages#6434)) ([c3efb9c](AztecProtocol/aztec-packages@c3efb9c)) * **ci:** Increase timeouts ([#6426](AztecProtocol/aztec-packages#6426)) ([44986fe](AztecProtocol/aztec-packages@44986fe)) * **ci:** Only run circleci on master ([#6525](AztecProtocol/aztec-packages#6525)) ([c75fbd4](AztecProtocol/aztec-packages@c75fbd4)) * **ci:** Push l1-contracts tests off of critical path ([#6400](AztecProtocol/aztec-packages#6400)) ([ce0ae6d](AztecProtocol/aztec-packages@ce0ae6d)) * **ci:** Reenable arm build ([#6455](AztecProtocol/aztec-packages#6455)) ([2862767](AztecProtocol/aztec-packages@2862767)) * **ci:** Require setup in merge-check ([#6454](AztecProtocol/aztec-packages#6454)) ([ad73061](AztecProtocol/aztec-packages@ad73061)) * **ci:** Spot capacity and reaping ([#6561](AztecProtocol/aztec-packages#6561)) ([8c639b5](AztecProtocol/aztec-packages@8c639b5)) * Clean up kernel types by removing is_static from function_data ([#6557](AztecProtocol/aztec-packages#6557)) ([83ba29f](AztecProtocol/aztec-packages@83ba29f)) * Cleanup the encrypted log incoming body ([#6325](AztecProtocol/aztec-packages#6325)) ([e88c209](AztecProtocol/aztec-packages@e88c209)) * Copy subset of constants to cpp ([#6544](AztecProtocol/aztec-packages#6544)) ([21dc72a](AztecProtocol/aztec-packages@21dc72a)) * Do not rebuild yarn-projects on bench-comment ([#6396](AztecProtocol/aztec-packages#6396)) ([797115b](AztecProtocol/aztec-packages@797115b)) * **docs:** Adding analytics ([#6350](AztecProtocol/aztec-packages#6350)) ([6417cd9](AztecProtocol/aztec-packages@6417cd9)) * **docs:** Restructure improvs ([#6502](AztecProtocol/aztec-packages#6502)) ([c3b573e](AztecProtocol/aztec-packages@c3b573e)) * Fix linter issues in AVM ([#6057](AztecProtocol/aztec-packages#6057)) ([c2e72b1](AztecProtocol/aztec-packages@c2e72b1)) * Fix logs upload to S3 ([#6401](AztecProtocol/aztec-packages#6401)) ([9df0602](AztecProtocol/aztec-packages@9df0602)) * Fix migration notes ([#6458](AztecProtocol/aztec-packages#6458)) ([bee85a9](AztecProtocol/aztec-packages@bee85a9)) * Fix migration notes ([#6551](AztecProtocol/aztec-packages#6551)) ([89bc350](AztecProtocol/aztec-packages@89bc350)) * Fix notes 0.41.0 ([#6461](AztecProtocol/aztec-packages#6461)) ([04b0ec5](AztecProtocol/aztec-packages@04b0ec5)) * Fix poor performance and long compile times in value_note.derement() ([#6523](AztecProtocol/aztec-packages#6523)) ([002b4aa](AztecProtocol/aztec-packages@002b4aa)) * Fix tester image copy pattern ([#6438](AztecProtocol/aztec-packages#6438)) ([b892eae](AztecProtocol/aztec-packages@b892eae)) * Get_nullifier_keys cleanup ([#6451](AztecProtocol/aztec-packages#6451)) ([8a71fd5](AztecProtocol/aztec-packages@8a71fd5)) * Lower max public bytecode to 20k ([#6477](AztecProtocol/aztec-packages#6477)) ([ce192f0](AztecProtocol/aztec-packages@ce192f0)) * Move `UPLOAD_LOGS` into root earthfile ([#6424](AztecProtocol/aztec-packages#6424)) ([d723da9](AztecProtocol/aztec-packages@d723da9)) * Nuking `KeyStore` and `KeyPair` interfaces ([#6553](AztecProtocol/aztec-packages#6553)) ([23e0518](AztecProtocol/aztec-packages@23e0518)) * Parameterise cycle_group by `Builder` rather than `Composer` ([#6565](AztecProtocol/aztec-packages#6565)) ([ea36bf9](AztecProtocol/aztec-packages@ea36bf9)) * Prefetch noir deps in earthly for caching ([#6556](AztecProtocol/aztec-packages#6556)) ([8ee9060](AztecProtocol/aztec-packages@8ee9060)) * Private call validation ([#6510](AztecProtocol/aztec-packages#6510)) ([07dc072](AztecProtocol/aztec-packages@07dc072)) * Purge secret and open keywords ([#6501](AztecProtocol/aztec-packages#6501)) ([f9c74c4](AztecProtocol/aztec-packages@f9c74c4)), closes [#5538](AztecProtocol/aztec-packages#5538) * Recommend Noir and rust plugin ([#6558](AztecProtocol/aztec-packages#6558)) ([298561f](AztecProtocol/aztec-packages@298561f)) * Refactor key rotate and address comments from 6405 ([#6450](AztecProtocol/aztec-packages#6450)) ([6f3dab8](AztecProtocol/aztec-packages@6f3dab8)) * Remove acvmInfo from bb.js CLI ([#6507](AztecProtocol/aztec-packages#6507)) ([e298c76](AztecProtocol/aztec-packages@e298c76)) * Remove backend interactions from `nargo` ([#6320](AztecProtocol/aztec-packages#6320)) ([7a31896](AztecProtocol/aztec-packages@7a31896)) * Replace relative paths to noir-protocol-circuits ([94ab877](AztecProtocol/aztec-packages@94ab877)) * Replace relative paths to noir-protocol-circuits ([9f04bfe](AztecProtocol/aztec-packages@9f04bfe)) * Replace relative paths to noir-protocol-circuits ([67f29e5](AztecProtocol/aztec-packages@67f29e5)) * Replace relative paths to noir-protocol-circuits ([a7a4b86](AztecProtocol/aztec-packages@a7a4b86)) * Replace relative paths to noir-protocol-circuits ([c6f61a4](AztecProtocol/aztec-packages@c6f61a4)) * Share decider with ultra_prover ([#5467](AztecProtocol/aztec-packages#5467)) ([b3b7376](AztecProtocol/aztec-packages@b3b7376)) * Switch over to constructing gates report in bash ([#6491](AztecProtocol/aztec-packages#6491)) ([1fa5963](AztecProtocol/aztec-packages@1fa5963)) * **tests:** Change error messages in preparation for AVM ([#6422](AztecProtocol/aztec-packages#6422)) ([6616dc6](AztecProtocol/aztec-packages@6616dc6)) ### Documentation * Sumcheck documentation ([#5841](AztecProtocol/aztec-packages#5841)) ([116eef0](AztecProtocol/aztec-packages@116eef0)) * Updating key docs in concepts section ([#6387](AztecProtocol/aztec-packages#6387)) ([921a7f4](AztecProtocol/aztec-packages@921a7f4)) </details> <details><summary>barretenberg: 0.41.0</summary> ## [0.41.0](AztecProtocol/aztec-packages@barretenberg-v0.40.1...barretenberg-v0.41.0) (2024-05-21) ### ⚠ BREAKING CHANGES * add is_infinite to curve addition opcode ([#6384](AztecProtocol/aztec-packages#6384)) ### Features * Add is_infinite to curve addition opcode ([#6384](AztecProtocol/aztec-packages#6384)) ([75d81c5](AztecProtocol/aztec-packages@75d81c5)) * **avm-simulator:** Cap gas for external calls ([#6479](AztecProtocol/aztec-packages#6479)) ([c8771ba](AztecProtocol/aztec-packages@c8771ba)) * **avm:** Gzip avm bytecode ([#6475](AztecProtocol/aztec-packages#6475)) ([29559bd](AztecProtocol/aztec-packages@29559bd)) * **avm:** To_radix gadget ([#6368](AztecProtocol/aztec-packages#6368)) ([89dd25f](AztecProtocol/aztec-packages@89dd25f)) * Full encryption and decryption of log in ts ([#6348](AztecProtocol/aztec-packages#6348)) ([0ac83dc](AztecProtocol/aztec-packages@0ac83dc)) * Improved ClientIvc ([#6429](AztecProtocol/aztec-packages#6429)) ([f360b3f](AztecProtocol/aztec-packages@f360b3f)) * Laying out a new recursion constraint for honk ([#6489](AztecProtocol/aztec-packages#6489)) ([af9fea4](AztecProtocol/aztec-packages@af9fea4)) * Remove total logs len from pre tail kernels + add to L1 ([#6466](AztecProtocol/aztec-packages#6466)) ([66a2d43](AztecProtocol/aztec-packages@66a2d43)) * Run benchmarks for ACIR proving ([#6155](AztecProtocol/aztec-packages#6155)) ([ebf6fc2](AztecProtocol/aztec-packages@ebf6fc2)) * Squash transient note logs ([#6268](AztecProtocol/aztec-packages#6268)) ([4574877](AztecProtocol/aztec-packages@4574877)) * Sum transaction fees and pay on l1 ([#6522](AztecProtocol/aztec-packages#6522)) ([bf441da](AztecProtocol/aztec-packages@bf441da)) * Translator recursive verifier ([#6327](AztecProtocol/aztec-packages#6327)) ([9321aef](AztecProtocol/aztec-packages@9321aef)) * View functions with static context enforcing ([#6338](AztecProtocol/aztec-packages#6338)) ([22ad5a5](AztecProtocol/aztec-packages@22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([#6406](AztecProtocol/aztec-packages#6406)) ([a6100ad](AztecProtocol/aztec-packages@a6100ad)) ### Bug Fixes * Disable buggy ClientIVC tests ([#6546](AztecProtocol/aztec-packages#6546)) ([b61dea3](AztecProtocol/aztec-packages@b61dea3)) * Increase N_max in Zeromorph ([#6415](AztecProtocol/aztec-packages#6415)) ([9e643b4](AztecProtocol/aztec-packages@9e643b4)) ### Miscellaneous * Add c++ tests for generator derivation ([#6528](AztecProtocol/aztec-packages#6528)) ([72931bd](AztecProtocol/aztec-packages@72931bd)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6462](AztecProtocol/aztec-packages#6462)) ([26eac62](AztecProtocol/aztec-packages@26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([#6495](AztecProtocol/aztec-packages#6495)) ([90d8092](AztecProtocol/aztec-packages@90d8092)) * Copy subset of constants to cpp ([#6544](AztecProtocol/aztec-packages#6544)) ([21dc72a](AztecProtocol/aztec-packages@21dc72a)) * Lower max public bytecode to 20k ([#6477](AztecProtocol/aztec-packages#6477)) ([ce192f0](AztecProtocol/aztec-packages@ce192f0)) * Parameterise cycle_group by `Builder` rather than `Composer` ([#6565](AztecProtocol/aztec-packages#6565)) ([ea36bf9](AztecProtocol/aztec-packages@ea36bf9)) * Private call validation ([#6510](AztecProtocol/aztec-packages#6510)) ([07dc072](AztecProtocol/aztec-packages@07dc072)) * Share decider with ultra_prover ([#5467](AztecProtocol/aztec-packages#5467)) ([b3b7376](AztecProtocol/aztec-packages@b3b7376)) ### Documentation * Sumcheck documentation ([#5841](AztecProtocol/aztec-packages#5841)) ([116eef0](AztecProtocol/aztec-packages@116eef0)) </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.41.0</summary> [0.41.0](AztecProtocol/aztec-packages@aztec-package-v0.40.1...aztec-package-v0.41.0) (2024-05-21) * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.41.0</summary> [0.41.0](AztecProtocol/aztec-packages@barretenberg.js-v0.40.1...barretenberg.js-v0.41.0) (2024-05-21) * Vk_as_fields, proof_as_fields flows for honk ([AztecProtocol#6406](AztecProtocol#6406)) ([a6100ad](AztecProtocol@a6100ad)) * Remove acvmInfo from bb.js CLI ([AztecProtocol#6507](AztecProtocol#6507)) ([e298c76](AztecProtocol@e298c76)) </details> <details><summary>aztec-packages: 0.41.0</summary> [0.41.0](AztecProtocol/aztec-packages@aztec-packages-v0.40.1...aztec-packages-v0.41.0) (2024-05-21) * compile-time incorrect exec environment errors ([AztecProtocol#6442](AztecProtocol#6442)) * add is_infinite to curve addition opcode ([AztecProtocol#6384](AztecProtocol#6384)) * remove backend interactions from `nargo` ([AztecProtocol#6320](AztecProtocol#6320)) * `npk_m_hash` in all notes + key rotation test ([AztecProtocol#6405](AztecProtocol#6405)) ([74e98d4](AztecProtocol@74e98d4)) * Add encrypted log outgoing body ([AztecProtocol#6334](AztecProtocol#6334)) ([fa9f442](AztecProtocol@fa9f442)) * Add first version of kernel reset circuit ([AztecProtocol#6393](AztecProtocol#6393)) ([ed6df8e](AztecProtocol@ed6df8e)) * Add is_infinite to curve addition opcode ([AztecProtocol#6384](AztecProtocol#6384)) ([75d81c5](AztecProtocol@75d81c5)) * Add native rust implementations of pedersen functions (noir-lang/noir#4871) ([8bbbbb6](AztecProtocol@8bbbbb6)) * Add nullifying key to Token Note ([AztecProtocol#6130](AztecProtocol#6130)) ([95c6b4a](AztecProtocol@95c6b4a)) * Adding autogenerated variants for the reset circuit ([AztecProtocol#6508](AztecProtocol#6508)) ([8e8d2dd](AztecProtocol@8e8d2dd)) * **avm-simulator:** Cap gas for external calls ([AztecProtocol#6479](AztecProtocol#6479)) ([c8771ba](AztecProtocol@c8771ba)) * **avm:** Gzip avm bytecode ([AztecProtocol#6475](AztecProtocol#6475)) ([29559bd](AztecProtocol@29559bd)) * **avm:** To_radix gadget ([AztecProtocol#6368](AztecProtocol#6368)) ([89dd25f](AztecProtocol@89dd25f)) * Benchmark private proving ([AztecProtocol#6409](AztecProtocol#6409)) ([e9e5526](AztecProtocol@e9e5526)) * Compile-time incorrect exec environment errors ([AztecProtocol#6442](AztecProtocol#6442)) ([0f75efd](AztecProtocol@0f75efd)) * Do not return databus returndata, keep it private. (noir-lang/noir#5023) ([26f2197](AztecProtocol@26f2197)) * **docs:** Authwit how tos ([AztecProtocol#6220](AztecProtocol#6220)) ([78f13d9](AztecProtocol@78f13d9)) * **docs:** Key rotation / owner -> nullifier key docs ([AztecProtocol#6538](AztecProtocol#6538)) ([2453ba8](AztecProtocol@2453ba8)) * Full encryption and decryption of log in ts ([AztecProtocol#6348](AztecProtocol#6348)) ([0ac83dc](AztecProtocol@0ac83dc)) * Generic key validation request ([AztecProtocol#6474](AztecProtocol#6474)) ([948ec38](AztecProtocol@948ec38)) * Improved ClientIvc ([AztecProtocol#6429](AztecProtocol#6429)) ([f360b3f](AztecProtocol@f360b3f)) * Laying out a new recursion constraint for honk ([AztecProtocol#6489](AztecProtocol#6489)) ([af9fea4](AztecProtocol@af9fea4)) * New docs structure ([AztecProtocol#6195](AztecProtocol#6195)) ([9cca814](AztecProtocol@9cca814)) * Pay out arbitrary fee to coinbase on L1 ([AztecProtocol#6436](AztecProtocol#6436)) ([1b99de8](AztecProtocol@1b99de8)) * Remove total logs len from pre tail kernels + add to L1 ([AztecProtocol#6466](AztecProtocol#6466)) ([66a2d43](AztecProtocol@66a2d43)) * Run benchmarks for ACIR proving ([AztecProtocol#6155](AztecProtocol#6155)) ([ebf6fc2](AztecProtocol@ebf6fc2)) * Squash transient note logs ([AztecProtocol#6268](AztecProtocol#6268)) ([4574877](AztecProtocol@4574877)) * Sum transaction fees and pay on l1 ([AztecProtocol#6522](AztecProtocol#6522)) ([bf441da](AztecProtocol@bf441da)) * Translator recursive verifier ([AztecProtocol#6327](AztecProtocol#6327)) ([9321aef](AztecProtocol@9321aef)) * Update the encrypted note log format ([AztecProtocol#6411](AztecProtocol#6411)) ([e5cc9dc](AztecProtocol@e5cc9dc)) * Validate counters ([AztecProtocol#6365](AztecProtocol#6365)) ([1f28b3a](AztecProtocol@1f28b3a)) * View functions with static context enforcing ([AztecProtocol#6338](AztecProtocol#6338)) ([22ad5a5](AztecProtocol@22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([AztecProtocol#6406](AztecProtocol#6406)) ([a6100ad](AztecProtocol@a6100ad)) * Arm ci ([AztecProtocol#6480](AztecProtocol#6480)) ([237952e](AztecProtocol@237952e)) * Asset struct serialization does not match Noir internal serialization ([AztecProtocol#6494](AztecProtocol#6494)) ([9e6a4c3](AztecProtocol@9e6a4c3)) * **avm-simulator:** Actually wrap oracles ([AztecProtocol#6449](AztecProtocol#6449)) ([8685acc](AztecProtocol@8685acc)) * **avm-simulator:** Nested calls should preserve static context ([AztecProtocol#6414](AztecProtocol#6414)) ([44d7916](AztecProtocol@44d7916)) * **avm-simulator:** Pending storage and nullifiers should be accessible in grandchild nested calls ([AztecProtocol#6428](AztecProtocol#6428)) ([84d2e1f](AztecProtocol@84d2e1f)) * Buggy e2e key registry test setup ([AztecProtocol#6496](AztecProtocol#6496)) ([52d85d1](AztecProtocol@52d85d1)) * **ci:** ARM ([AztecProtocol#6521](AztecProtocol#6521)) ([d1095f6](AztecProtocol@d1095f6)) * **ci:** Arm concurrency ([AztecProtocol#6564](AztecProtocol#6564)) ([a265da0](AztecProtocol@a265da0)) * Disable buggy ClientIVC tests ([AztecProtocol#6546](AztecProtocol#6546)) ([b61dea3](AztecProtocol@b61dea3)) * Disk attach edge case ([AztecProtocol#6430](AztecProtocol#6430)) ([2366ad3](AztecProtocol@2366ad3)) * **docs:** Clarify content on portals ([AztecProtocol#6431](AztecProtocol#6431)) ([869df4d](AztecProtocol@869df4d)) * Don't start multiple runners during RequestLimitExceeded ([AztecProtocol#6444](AztecProtocol#6444)) ([7c4c822](AztecProtocol@7c4c822)) * Dont start multiple builders ([AztecProtocol#6437](AztecProtocol#6437)) ([d67ab1c](AztecProtocol@d67ab1c)) * Fix no predicates for brillig with intermediate functions (noir-lang/noir#5015) ([26f2197](AztecProtocol@26f2197)) * Fixed several vulnerabilities in U128, added some tests (noir-lang/noir#5024) ([26f2197](AztecProtocol@26f2197)) * Increase N_max in Zeromorph ([AztecProtocol#6415](AztecProtocol#6415)) ([9e643b4](AztecProtocol@9e643b4)) * Quick fix of [AztecProtocol#6405](AztecProtocol#6405) by removing context from value note utils ([AztecProtocol#6509](AztecProtocol#6509)) ([3a4d828](AztecProtocol@3a4d828)) * Removed plain from path in array args of contract interfaces ([AztecProtocol#6497](AztecProtocol#6497)) ([2b37729](AztecProtocol@2b37729)) * Runs-on inconsistency and simplify concurrency keys ([AztecProtocol#6433](AztecProtocol#6433)) ([80674d9](AztecProtocol@80674d9)) * Spot retry fixup ([AztecProtocol#6476](AztecProtocol#6476)) ([784d784](AztecProtocol@784d784)) * Add benchmarks for pedersen and schnorr verification (noir-lang/noir#5056) ([8bbbbb6](AztecProtocol@8bbbbb6)) * Add c++ tests for generator derivation ([AztecProtocol#6528](AztecProtocol#6528)) ([72931bd](AztecProtocol@72931bd)) * Add script to print lines of code (noir-lang/noir#4991) ([26f2197](AztecProtocol@26f2197)) * Add some docs on syncing noir ([AztecProtocol#6340](AztecProtocol#6340)) ([bb68fcd](AztecProtocol@bb68fcd)) * Anvil kill wrapper now supports mac ([AztecProtocol#6520](AztecProtocol#6520)) ([2a5d975](AztecProtocol@2a5d975)) * **avm:** Wrap oracles with unconstrained fns ([AztecProtocol#6421](AztecProtocol#6421)) ([3e7e094](AztecProtocol@3e7e094)) * Bump earthly ([AztecProtocol#6419](AztecProtocol#6419)) ([3d78751](AztecProtocol@3d78751)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([AztecProtocol#6462](AztecProtocol#6462)) ([26eac62](AztecProtocol@26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([AztecProtocol#6495](AztecProtocol#6495)) ([90d8092](AztecProtocol@90d8092)) * Change some error messages for avm switch ([AztecProtocol#6447](AztecProtocol#6447)) ([74d6519](AztecProtocol@74d6519)) * **ci:** Better retry defaults ([AztecProtocol#6472](AztecProtocol#6472)) ([b23f1fd](AztecProtocol@b23f1fd)) * **ci:** Consistency as external check ([AztecProtocol#6460](AztecProtocol#6460)) ([6793a75](AztecProtocol@6793a75)) * **ci:** Dont detach ebs ([AztecProtocol#6441](AztecProtocol#6441)) ([f933fc0](AztecProtocol@f933fc0)) * **ci:** Fix on-demand starting ([AztecProtocol#6434](AztecProtocol#6434)) ([c3efb9c](AztecProtocol@c3efb9c)) * **ci:** Increase timeouts ([AztecProtocol#6426](AztecProtocol#6426)) ([44986fe](AztecProtocol@44986fe)) * **ci:** Only run circleci on master ([AztecProtocol#6525](AztecProtocol#6525)) ([c75fbd4](AztecProtocol@c75fbd4)) * **ci:** Push l1-contracts tests off of critical path ([AztecProtocol#6400](AztecProtocol#6400)) ([ce0ae6d](AztecProtocol@ce0ae6d)) * **ci:** Reenable arm build ([AztecProtocol#6455](AztecProtocol#6455)) ([2862767](AztecProtocol@2862767)) * **ci:** Require setup in merge-check ([AztecProtocol#6454](AztecProtocol#6454)) ([ad73061](AztecProtocol@ad73061)) * **ci:** Spot capacity and reaping ([AztecProtocol#6561](AztecProtocol#6561)) ([8c639b5](AztecProtocol@8c639b5)) * Clean up kernel types by removing is_static from function_data ([AztecProtocol#6557](AztecProtocol#6557)) ([83ba29f](AztecProtocol@83ba29f)) * Cleanup the encrypted log incoming body ([AztecProtocol#6325](AztecProtocol#6325)) ([e88c209](AztecProtocol@e88c209)) * Copy subset of constants to cpp ([AztecProtocol#6544](AztecProtocol#6544)) ([21dc72a](AztecProtocol@21dc72a)) * Do not rebuild yarn-projects on bench-comment ([AztecProtocol#6396](AztecProtocol#6396)) ([797115b](AztecProtocol@797115b)) * **docs:** Adding analytics ([AztecProtocol#6350](AztecProtocol#6350)) ([6417cd9](AztecProtocol@6417cd9)) * **docs:** Restructure improvs ([AztecProtocol#6502](AztecProtocol#6502)) ([c3b573e](AztecProtocol@c3b573e)) * Fix linter issues in AVM ([AztecProtocol#6057](AztecProtocol#6057)) ([c2e72b1](AztecProtocol@c2e72b1)) * Fix logs upload to S3 ([AztecProtocol#6401](AztecProtocol#6401)) ([9df0602](AztecProtocol@9df0602)) * Fix migration notes ([AztecProtocol#6458](AztecProtocol#6458)) ([bee85a9](AztecProtocol@bee85a9)) * Fix migration notes ([AztecProtocol#6551](AztecProtocol#6551)) ([89bc350](AztecProtocol@89bc350)) * Fix notes 0.41.0 ([AztecProtocol#6461](AztecProtocol#6461)) ([04b0ec5](AztecProtocol@04b0ec5)) * Fix poor performance and long compile times in value_note.derement() ([AztecProtocol#6523](AztecProtocol#6523)) ([002b4aa](AztecProtocol@002b4aa)) * Fix tester image copy pattern ([AztecProtocol#6438](AztecProtocol#6438)) ([b892eae](AztecProtocol@b892eae)) * Get_nullifier_keys cleanup ([AztecProtocol#6451](AztecProtocol#6451)) ([8a71fd5](AztecProtocol@8a71fd5)) * Lower max public bytecode to 20k ([AztecProtocol#6477](AztecProtocol#6477)) ([ce192f0](AztecProtocol@ce192f0)) * Move `UPLOAD_LOGS` into root earthfile ([AztecProtocol#6424](AztecProtocol#6424)) ([d723da9](AztecProtocol@d723da9)) * Nuking `KeyStore` and `KeyPair` interfaces ([AztecProtocol#6553](AztecProtocol#6553)) ([23e0518](AztecProtocol@23e0518)) * Parameterise cycle_group by `Builder` rather than `Composer` ([AztecProtocol#6565](AztecProtocol#6565)) ([ea36bf9](AztecProtocol@ea36bf9)) * Prefetch noir deps in earthly for caching ([AztecProtocol#6556](AztecProtocol#6556)) ([8ee9060](AztecProtocol@8ee9060)) * Private call validation ([AztecProtocol#6510](AztecProtocol#6510)) ([07dc072](AztecProtocol@07dc072)) * Purge secret and open keywords ([AztecProtocol#6501](AztecProtocol#6501)) ([f9c74c4](AztecProtocol@f9c74c4)), closes [AztecProtocol#5538](AztecProtocol#5538) * Recommend Noir and rust plugin ([AztecProtocol#6558](AztecProtocol#6558)) ([298561f](AztecProtocol@298561f)) * Refactor key rotate and address comments from 6405 ([AztecProtocol#6450](AztecProtocol#6450)) ([6f3dab8](AztecProtocol@6f3dab8)) * Remove acvmInfo from bb.js CLI ([AztecProtocol#6507](AztecProtocol#6507)) ([e298c76](AztecProtocol@e298c76)) * Remove backend interactions from `nargo` ([AztecProtocol#6320](AztecProtocol#6320)) ([7a31896](AztecProtocol@7a31896)) * Replace relative paths to noir-protocol-circuits ([94ab877](AztecProtocol@94ab877)) * Replace relative paths to noir-protocol-circuits ([9f04bfe](AztecProtocol@9f04bfe)) * Replace relative paths to noir-protocol-circuits ([67f29e5](AztecProtocol@67f29e5)) * Replace relative paths to noir-protocol-circuits ([a7a4b86](AztecProtocol@a7a4b86)) * Replace relative paths to noir-protocol-circuits ([c6f61a4](AztecProtocol@c6f61a4)) * Share decider with ultra_prover ([AztecProtocol#5467](AztecProtocol#5467)) ([b3b7376](AztecProtocol@b3b7376)) * Switch over to constructing gates report in bash ([AztecProtocol#6491](AztecProtocol#6491)) ([1fa5963](AztecProtocol@1fa5963)) * **tests:** Change error messages in preparation for AVM ([AztecProtocol#6422](AztecProtocol#6422)) ([6616dc6](AztecProtocol@6616dc6)) * Sumcheck documentation ([AztecProtocol#5841](AztecProtocol#5841)) ([116eef0](AztecProtocol@116eef0)) * Updating key docs in concepts section ([AztecProtocol#6387](AztecProtocol#6387)) ([921a7f4](AztecProtocol@921a7f4)) </details> <details><summary>barretenberg: 0.41.0</summary> [0.41.0](AztecProtocol/aztec-packages@barretenberg-v0.40.1...barretenberg-v0.41.0) (2024-05-21) * add is_infinite to curve addition opcode ([AztecProtocol#6384](AztecProtocol#6384)) * Add is_infinite to curve addition opcode ([AztecProtocol#6384](AztecProtocol#6384)) ([75d81c5](AztecProtocol@75d81c5)) * **avm-simulator:** Cap gas for external calls ([AztecProtocol#6479](AztecProtocol#6479)) ([c8771ba](AztecProtocol@c8771ba)) * **avm:** Gzip avm bytecode ([AztecProtocol#6475](AztecProtocol#6475)) ([29559bd](AztecProtocol@29559bd)) * **avm:** To_radix gadget ([AztecProtocol#6368](AztecProtocol#6368)) ([89dd25f](AztecProtocol@89dd25f)) * Full encryption and decryption of log in ts ([AztecProtocol#6348](AztecProtocol#6348)) ([0ac83dc](AztecProtocol@0ac83dc)) * Improved ClientIvc ([AztecProtocol#6429](AztecProtocol#6429)) ([f360b3f](AztecProtocol@f360b3f)) * Laying out a new recursion constraint for honk ([AztecProtocol#6489](AztecProtocol#6489)) ([af9fea4](AztecProtocol@af9fea4)) * Remove total logs len from pre tail kernels + add to L1 ([AztecProtocol#6466](AztecProtocol#6466)) ([66a2d43](AztecProtocol@66a2d43)) * Run benchmarks for ACIR proving ([AztecProtocol#6155](AztecProtocol#6155)) ([ebf6fc2](AztecProtocol@ebf6fc2)) * Squash transient note logs ([AztecProtocol#6268](AztecProtocol#6268)) ([4574877](AztecProtocol@4574877)) * Sum transaction fees and pay on l1 ([AztecProtocol#6522](AztecProtocol#6522)) ([bf441da](AztecProtocol@bf441da)) * Translator recursive verifier ([AztecProtocol#6327](AztecProtocol#6327)) ([9321aef](AztecProtocol@9321aef)) * View functions with static context enforcing ([AztecProtocol#6338](AztecProtocol#6338)) ([22ad5a5](AztecProtocol@22ad5a5)) * Vk_as_fields, proof_as_fields flows for honk ([AztecProtocol#6406](AztecProtocol#6406)) ([a6100ad](AztecProtocol@a6100ad)) * Disable buggy ClientIVC tests ([AztecProtocol#6546](AztecProtocol#6546)) ([b61dea3](AztecProtocol@b61dea3)) * Increase N_max in Zeromorph ([AztecProtocol#6415](AztecProtocol#6415)) ([9e643b4](AztecProtocol@9e643b4)) * Add c++ tests for generator derivation ([AztecProtocol#6528](AztecProtocol#6528)) ([72931bd](AztecProtocol@72931bd)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([AztecProtocol#6462](AztecProtocol#6462)) ([26eac62](AztecProtocol@26eac62)) * Bump maximum nullifier read requests (necessary for e2e tests in AVM) ([AztecProtocol#6495](AztecProtocol#6495)) ([90d8092](AztecProtocol@90d8092)) * Copy subset of constants to cpp ([AztecProtocol#6544](AztecProtocol#6544)) ([21dc72a](AztecProtocol@21dc72a)) * Lower max public bytecode to 20k ([AztecProtocol#6477](AztecProtocol#6477)) ([ce192f0](AztecProtocol@ce192f0)) * Parameterise cycle_group by `Builder` rather than `Composer` ([AztecProtocol#6565](AztecProtocol#6565)) ([ea36bf9](AztecProtocol@ea36bf9)) * Private call validation ([AztecProtocol#6510](AztecProtocol#6510)) ([07dc072](AztecProtocol@07dc072)) * Share decider with ultra_prover ([AztecProtocol#5467](AztecProtocol#5467)) ([b3b7376](AztecProtocol@b3b7376)) * Sumcheck documentation ([AztecProtocol#5841](AztecProtocol#5841)) ([116eef0](AztecProtocol@116eef0)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
…ment() (#6523) AztecProtocol/aztec-packages#6405 added a very complicated call (`get_npk_m_hash`) to `destroy_note`, not realizing that `destroy_note` is called in a loop by `decrement`. The loop unrolling caused multiple calls to this function, even though they all had the same arguments, ultimately resulting in humongous RAM usage during compilation (over 40GB just for this contract) and very compilation times (from 30s to multiple minutes). This PR fixes this simply inlining the code for `destroy_note` and fetching the key once at the beginning. It does worry me slightly however that such a large performance hit was not noticed - this likely affected test times as well.
Resolves #6313
Resolves #6296
Resolves #5630
Have created #6417 to refactor the rotate call and to address the rest of @LHerskind's comments