-
Notifications
You must be signed in to change notification settings - Fork 268
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: read_calldata #5409
feat: read_calldata #5409
Conversation
@@ -42,6 +42,7 @@ template <typename FF> class GoblinUltraCircuitBuilder_ : public UltraCircuitBui | |||
void populate_ecc_op_wires(const ecc_op_tuple& in); | |||
ecc_op_tuple decompose_ecc_operands(uint32_t op, const g1::affine_element& point, const FF& scalar = FF::zero()); | |||
void set_goblin_ecc_op_code_constant_variables(); | |||
void create_calldata_lookup_gate(const databus_lookup_gate_<FF>& in); |
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.
Moving this to the private
access specifier to enforce the use of read_calldata
as the interface. This method is called from within read_calldata
.
Benchmark resultsNo metrics with a significant change found. Detailed resultsAll benchmarks are run on txs on the This benchmark source data is available in JSON format on S3 here. Values are compared against data from master at commit L2 block published to L1Each column represents the number of txs on an L2 block published to L1.
L2 chain processingEach column represents the number of blocks on the L2 chain where each block has 16 txs.
Circuits statsStats on running time and I/O sizes collected for every circuit run across all benchmarks.
Tree insertion statsThe duration to insert a fixed batch of leaves into each tree type.
MiscellaneousTransaction sizes based on how many contract classes are registered in the tx.
Transaction processing duration by data writes.
|
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.
looks good to me overall - just had a question
FF expected_result = calldata_values[read_idx]; | ||
uint32_t read_idx_witness_idx = builder.add_variable(read_idx); | ||
uint32_t result_witness_idx = builder.read_calldata(read_idx_witness_idx); | ||
builder.create_add_gate({ result_witness_idx, builder.zero_idx, builder.zero_idx, 1, 0, 0, -expected_result }); |
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.
maybe this is a stupid question cus i'm missing sth - but is it in the 'responsabilities' of the circuit writer to ensure the calldata_value corresponds to the calldata_read? just wondering if this gate shouldn't be implicitly added by the circuit writer somewhere
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.
If I understand your question correctly, this is exactly the purpose of the calldata read gate - it shows that the value read is indeed present in the calldata at the corresponding index
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.
So this final add gate here is solely for testing purposes
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 was just wondering whether read_calldata actually needs to return the index because I only see it being used in testing
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 that’s what I was trying to get at in the comments. In practice the whole point of doing the read is to then use the result somewhere else. I realize now my choice of gate was a little misleading, but it was meant to just be an arbitrary add gate. But there would be no reason to ever do a read unless you use the result. I’ll add a comment to that effect to the test. There will be many more incremental PRs in the near future
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.
The value proposition of the databus is it allows us to pass large amounts of data from circuit to circuit but only pay a gate for the values we actually want to read. This is valuable since the nature of the data is that we only want to read a small amount of what’s actually there, the rest is just being carried on for future use
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.
Thanks for explaining!
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.31.0</summary> ## [0.31.0](aztec-package-v0.30.1...aztec-package-v0.31.0) (2024-03-26) ### Features * Add batched signerless contract calls ([#5313](#5313)) ([be60eb3](be60eb3)) * Dynamic proving ([#5346](#5346)) ([6a7ccca](6a7ccca)) * Less earthly runners + e2e GA runners, bb bench ([#5356](#5356)) ([2136a66](2136a66)) </details> <details><summary>barretenberg.js: 0.31.0</summary> ## [0.31.0](barretenberg.js-v0.30.1...barretenberg.js-v0.31.0) (2024-03-26) ### Features * Earthly bb tests + arm + satellites ([#5268](#5268)) ([eca12b3](eca12b3)) * Less earthly runners + e2e GA runners, bb bench ([#5356](#5356)) ([2136a66](2136a66)) * Simplified bb Honk interface ([#5319](#5319)) ([a2d138f](a2d138f)) </details> <details><summary>aztec-cli: 0.31.0</summary> ## [0.31.0](aztec-cli-v0.30.1...aztec-cli-v0.31.0) (2024-03-26) ### Features * Capture broadcasted functions in node ([#5353](#5353)) ([bc05db2](bc05db2)) ### Bug Fixes * **cli:** Support initializers not named constructor in cli ([#5397](#5397)) ([85f14c5](85f14c5)) </details> <details><summary>aztec-packages: 0.31.0</summary> ## [0.31.0](aztec-packages-v0.30.1...aztec-packages-v0.31.0) (2024-03-26) ### ⚠ BREAKING CHANGES * **avm:** per function avm run ([#5421](#5421)) * rename storage inclusion proof to historical storage read ([#5379](#5379)) * plug-in new outbox and update examples to use api to fetch inclusion proofs #4769 ([#5292](#5292)) * Mark transactions as reverted on L1 ([#5226](#5226)) ### Features * Add batched signerless contract calls ([#5313](#5313)) ([be60eb3](be60eb3)) * Add specific error for attempting `string[x] = ".."` (noir-lang/noir#4611) ([13a12d5](13a12d5)) * **AuthWit:** Chain_id and version in hash ([#5331](#5331)) ([5235c95](5235c95)) * **Authwit:** Lookup the validity of authwits ([#5316](#5316)) ([7c24870](7c24870)) * Avm lookup and/or/xor ([#5338](#5338)) ([489bc2c](489bc2c)) * **avm:** Add AvmContextInputs ([#5396](#5396)) ([12e2844](12e2844)) * **avm:** Per function avm run ([#5421](#5421)) ([f024751](f024751)) * **avm:** Track gas usage in AVM simulator ([#5438](#5438)) ([4884d83](4884d83)) * Capture broadcasted functions in node ([#5353](#5353)) ([bc05db2](bc05db2)) * Dynamic proving ([#5346](#5346)) ([6a7ccca](6a7ccca)) * Earthly bb tests + arm + satellites ([#5268](#5268)) ([eca12b3](eca12b3)) * Fix awkward snippet indention in docs ([#5367](#5367)) ([c55d3da](c55d3da)) * Fold proving key polys instead of prover polys ([#5436](#5436)) ([239ebfb](239ebfb)) * Implement serdes for u64 [#4990](#4990) ([#5411](#5411)) ([5a6bcef](5a6bcef)) * Introduce max_block_number ([#5251](#5251)) ([6573173](6573173)) * Less earthly runners + e2e GA runners, bb bench ([#5356](#5356)) ([2136a66](2136a66)) * Mark transactions as reverted on L1 ([#5226](#5226)) ([40ecc02](40ecc02)) * Plug-in new outbox and update examples to use api to fetch inclusion proofs [#4769](#4769) ([#5292](#5292)) ([fec1008](fec1008)) * Read_calldata ([#5409](#5409)) ([034fbf0](034fbf0)) * Remove NUM_FIELDS_PER_SHA256 ([#5392](#5392)) ([86a181b](86a181b)) * Rename storage inclusion proof to historical storage read ([#5379](#5379)) ([b6e7216](b6e7216)) * Returning non-nullified messages only ([#5390](#5390)) ([4c671be](4c671be)) * Simplified bb Honk interface ([#5319](#5319)) ([a2d138f](a2d138f)) * Simplify offsets and sizing using new block structure ([#5404](#5404)) ([efa0842](efa0842)) * Throw by default when awaiting a tx that reverted ([#5431](#5431)) ([c9113ec](c9113ec)) * Truncate SHA hashes inside circuits ([#5160](#5160)) ([9dc0d2a](9dc0d2a)) * Unified CircuitChecker interface ([#5343](#5343)) ([13cef1f](13cef1f)) * ZeroMorph working with IPA and integration with ECCVM ([#5246](#5246)) ([c4dce94](c4dce94)) ### Bug Fixes * Addressing flakiness of `uniswap_trade_on_l1_from_l2.test.ts` ([#5443](#5443)) ([2db9cad](2db9cad)) * **avm-simulator:** Hashing opcodes indirection ([#5376](#5376)) ([a4b1ebc](a4b1ebc)) * Broadcasting unconstrained function with empty sibling ([#5429](#5429)) ([933145e](933145e)) * **ci:** Disable uniswap test in earthly build ([#5344](#5344)) ([0d69162](0d69162)) * **cli:** Support initializers not named constructor in cli ([#5397](#5397)) ([85f14c5](85f14c5)) * Copy and deploy complete contents of l1-contracts ([#5447](#5447)) ([501c5e9](501c5e9)) * Don't cancel protocol-circuits-gate-diff in master ([#5441](#5441)) ([6894a78](6894a78)) * E2e_static_calls.test.ts bad merge ([#5405](#5405)) ([4c56536](4c56536)) * Generate noir interface for constructors ([#5352](#5352)) ([8434d2f](8434d2f)) * Limit earthly to few users ([#5375](#5375)) ([71e8ab4](71e8ab4)) * Login to dockerhub before 'docker compose' ([#5440](#5440)) ([4f7696b](4f7696b)) * Revert cbind breakage ([#5348](#5348)) ([c237193](c237193)) * **ssa:** Use accurate type during SSA AsSlice simplficiation (noir-lang/noir#4610) ([13a12d5](13a12d5)) * Track class registered count in tx stats ([#5417](#5417)) ([ff8eafc](ff8eafc)) * Watch command should not spawn more than one tsc watch ([#5391](#5391)) ([25caf4d](25caf4d)) ### Miscellaneous * Always use serialize function to get hash preimage in noir circuits or when comparing structs etc [#3595](#3595) ([#5439](#5439)) ([22e0f0d](22e0f0d)) * **aztec-nr:** Unify contexts behind interfaces ([#5294](#5294)) ([36e0f59](36e0f59)) * **bb:** Removed powers of eta in lookup and auxiliary relations ([#4695](#4695)) ([f4e62ae](f4e62ae)) * CamelCase in noir-projects -> snake_case ([#5381](#5381)) ([eea711f](eea711f)) * **ci:** Create a dedicated job for the AVM unit tests ([#5369](#5369)) ([59ca2ac](59ca2ac)), closes [#5366](#5366) * Clean out prover instance and remove instance from oink ([#5314](#5314)) ([a83368c](a83368c)) * Cleaning up messaging types ([#5442](#5442)) ([dfffe5d](dfffe5d)), closes [#5420](#5420) * Compute registerer address on the fly ([#5394](#5394)) ([5d669b9](5d669b9)) * Delete slither output from version control ([#5393](#5393)) ([41107e3](41107e3)) * Fix migration notes ([#5452](#5452)) ([8c4e576](8c4e576)) * **github:** Improve PR template "document later" checkbox description (noir-lang/noir#4625) ([13a12d5](13a12d5)) * Make get_notes fail if returning no notes [#4988](#4988) ([#5320](#5320)) ([be86ed3](be86ed3)) * Meld flavor and and circuit builder modules ([#5406](#5406)) ([f0d9d1b](f0d9d1b)) * Messaging naming fixes ([#5383](#5383)) ([0226102](0226102)) * Moving public inputs back to instance ([#5315](#5315)) ([9cbe368](9cbe368)) * Name change: gen perm sort to delta range constraint ([#5378](#5378)) ([841855f](841855f)) * Nuking l1 to l2 messages from block body ([#5272](#5272)) ([ee176d2](ee176d2)), closes [#5072](#5072) * Reduce size of revert code from Field to u8 ([#5309](#5309)) ([1868e25](1868e25)) * Remove mocking function in `EccOpQueue` again ([#5413](#5413)) ([6fb4a75](6fb4a75)) * Remove snapshots from protocol-contracts ([#5342](#5342)) ([31ca344](31ca344)) * Remove unused FunctionLeafPreimage struct ([#5354](#5354)) ([dc51c2b](dc51c2b)) * Rename reverted to revertCode ([#5301](#5301)) ([950a96d](950a96d)) * Replace relative paths to noir-protocol-circuits ([262ae02](262ae02)) * Replace relative paths to noir-protocol-circuits ([91a60db](91a60db)) * Replace relative paths to noir-protocol-circuits ([9fc9fbd](9fc9fbd)) * Replace relative paths to noir-protocol-circuits ([9939e99](9939e99)) * Replace relative paths to noir-protocol-circuits ([0b24aae](0b24aae)) * Replace relative paths to noir-protocol-circuits ([c4d89d5](c4d89d5)) * Reverting accidental changes ([#5371](#5371)) ([c1484ce](c1484ce)) * Skip foundry install if possible ([#5398](#5398)) ([060fa1e](060fa1e)) * Skip slither in docker ([#5384](#5384)) ([8a76068](8a76068)) * Update docs with function names to match version 0.25.0 specifications (noir-lang/noir#4466) ([13a12d5](13a12d5)) * Update integers.md to note support for Fields using `from_integer` (noir-lang/noir#4536) ([13a12d5](13a12d5)) * Update min compiler version of contracts ([#5305](#5305)) ([dcf6bb3](dcf6bb3)) * Use random tmp directory and cleanup afterwards ([#5368](#5368)) ([5c0e15d](5c0e15d)) ### Documentation * Update versions-updating.md ([#5358](#5358)) ([0f09b63](0f09b63)) </details> <details><summary>barretenberg: 0.31.0</summary> ## [0.31.0](barretenberg-v0.30.1...barretenberg-v0.31.0) (2024-03-26) ### Features * Avm lookup and/or/xor ([#5338](#5338)) ([489bc2c](489bc2c)) * Earthly bb tests + arm + satellites ([#5268](#5268)) ([eca12b3](eca12b3)) * Fold proving key polys instead of prover polys ([#5436](#5436)) ([239ebfb](239ebfb)) * Less earthly runners + e2e GA runners, bb bench ([#5356](#5356)) ([2136a66](2136a66)) * Read_calldata ([#5409](#5409)) ([034fbf0](034fbf0)) * Simplified bb Honk interface ([#5319](#5319)) ([a2d138f](a2d138f)) * Simplify offsets and sizing using new block structure ([#5404](#5404)) ([efa0842](efa0842)) * Unified CircuitChecker interface ([#5343](#5343)) ([13cef1f](13cef1f)) * ZeroMorph working with IPA and integration with ECCVM ([#5246](#5246)) ([c4dce94](c4dce94)) ### Bug Fixes * Revert cbind breakage ([#5348](#5348)) ([c237193](c237193)) ### Miscellaneous * **bb:** Removed powers of eta in lookup and auxiliary relations ([#4695](#4695)) ([f4e62ae](f4e62ae)) * **ci:** Create a dedicated job for the AVM unit tests ([#5369](#5369)) ([59ca2ac](59ca2ac)), closes [#5366](#5366) * Clean out prover instance and remove instance from oink ([#5314](#5314)) ([a83368c](a83368c)) * Meld flavor and and circuit builder modules ([#5406](#5406)) ([f0d9d1b](f0d9d1b)) * Moving public inputs back to instance ([#5315](#5315)) ([9cbe368](9cbe368)) * Name change: gen perm sort to delta range constraint ([#5378](#5378)) ([841855f](841855f)) * Remove mocking function in `EccOpQueue` again ([#5413](#5413)) ([6fb4a75](6fb4a75)) </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.31.0</summary> ## [0.31.0](AztecProtocol/aztec-packages@aztec-package-v0.30.1...aztec-package-v0.31.0) (2024-03-26) ### Features * Add batched signerless contract calls ([#5313](AztecProtocol/aztec-packages#5313)) ([be60eb3](AztecProtocol/aztec-packages@be60eb3)) * Dynamic proving ([#5346](AztecProtocol/aztec-packages#5346)) ([6a7ccca](AztecProtocol/aztec-packages@6a7ccca)) * Less earthly runners + e2e GA runners, bb bench ([#5356](AztecProtocol/aztec-packages#5356)) ([2136a66](AztecProtocol/aztec-packages@2136a66)) </details> <details><summary>barretenberg.js: 0.31.0</summary> ## [0.31.0](AztecProtocol/aztec-packages@barretenberg.js-v0.30.1...barretenberg.js-v0.31.0) (2024-03-26) ### Features * Earthly bb tests + arm + satellites ([#5268](AztecProtocol/aztec-packages#5268)) ([eca12b3](AztecProtocol/aztec-packages@eca12b3)) * Less earthly runners + e2e GA runners, bb bench ([#5356](AztecProtocol/aztec-packages#5356)) ([2136a66](AztecProtocol/aztec-packages@2136a66)) * Simplified bb Honk interface ([#5319](AztecProtocol/aztec-packages#5319)) ([a2d138f](AztecProtocol/aztec-packages@a2d138f)) </details> <details><summary>aztec-cli: 0.31.0</summary> ## [0.31.0](AztecProtocol/aztec-packages@aztec-cli-v0.30.1...aztec-cli-v0.31.0) (2024-03-26) ### Features * Capture broadcasted functions in node ([#5353](AztecProtocol/aztec-packages#5353)) ([bc05db2](AztecProtocol/aztec-packages@bc05db2)) ### Bug Fixes * **cli:** Support initializers not named constructor in cli ([#5397](AztecProtocol/aztec-packages#5397)) ([85f14c5](AztecProtocol/aztec-packages@85f14c5)) </details> <details><summary>aztec-packages: 0.31.0</summary> ## [0.31.0](AztecProtocol/aztec-packages@aztec-packages-v0.30.1...aztec-packages-v0.31.0) (2024-03-26) ### ⚠ BREAKING CHANGES * **avm:** per function avm run ([#5421](AztecProtocol/aztec-packages#5421)) * rename storage inclusion proof to historical storage read ([#5379](AztecProtocol/aztec-packages#5379)) * plug-in new outbox and update examples to use api to fetch inclusion proofs #4769 ([#5292](AztecProtocol/aztec-packages#5292)) * Mark transactions as reverted on L1 ([#5226](AztecProtocol/aztec-packages#5226)) ### Features * Add batched signerless contract calls ([#5313](AztecProtocol/aztec-packages#5313)) ([be60eb3](AztecProtocol/aztec-packages@be60eb3)) * Add specific error for attempting `string[x] = ".."` (noir-lang/noir#4611) ([13a12d5](AztecProtocol/aztec-packages@13a12d5)) * **AuthWit:** Chain_id and version in hash ([#5331](AztecProtocol/aztec-packages#5331)) ([5235c95](AztecProtocol/aztec-packages@5235c95)) * **Authwit:** Lookup the validity of authwits ([#5316](AztecProtocol/aztec-packages#5316)) ([7c24870](AztecProtocol/aztec-packages@7c24870)) * Avm lookup and/or/xor ([#5338](AztecProtocol/aztec-packages#5338)) ([489bc2c](AztecProtocol/aztec-packages@489bc2c)) * **avm:** Add AvmContextInputs ([#5396](AztecProtocol/aztec-packages#5396)) ([12e2844](AztecProtocol/aztec-packages@12e2844)) * **avm:** Per function avm run ([#5421](AztecProtocol/aztec-packages#5421)) ([f024751](AztecProtocol/aztec-packages@f024751)) * **avm:** Track gas usage in AVM simulator ([#5438](AztecProtocol/aztec-packages#5438)) ([4884d83](AztecProtocol/aztec-packages@4884d83)) * Capture broadcasted functions in node ([#5353](AztecProtocol/aztec-packages#5353)) ([bc05db2](AztecProtocol/aztec-packages@bc05db2)) * Dynamic proving ([#5346](AztecProtocol/aztec-packages#5346)) ([6a7ccca](AztecProtocol/aztec-packages@6a7ccca)) * Earthly bb tests + arm + satellites ([#5268](AztecProtocol/aztec-packages#5268)) ([eca12b3](AztecProtocol/aztec-packages@eca12b3)) * Fix awkward snippet indention in docs ([#5367](AztecProtocol/aztec-packages#5367)) ([c55d3da](AztecProtocol/aztec-packages@c55d3da)) * Fold proving key polys instead of prover polys ([#5436](AztecProtocol/aztec-packages#5436)) ([239ebfb](AztecProtocol/aztec-packages@239ebfb)) * Implement serdes for u64 [#4990](AztecProtocol/aztec-packages#4990) ([#5411](AztecProtocol/aztec-packages#5411)) ([5a6bcef](AztecProtocol/aztec-packages@5a6bcef)) * Introduce max_block_number ([#5251](AztecProtocol/aztec-packages#5251)) ([6573173](AztecProtocol/aztec-packages@6573173)) * Less earthly runners + e2e GA runners, bb bench ([#5356](AztecProtocol/aztec-packages#5356)) ([2136a66](AztecProtocol/aztec-packages@2136a66)) * Mark transactions as reverted on L1 ([#5226](AztecProtocol/aztec-packages#5226)) ([40ecc02](AztecProtocol/aztec-packages@40ecc02)) * Plug-in new outbox and update examples to use api to fetch inclusion proofs [#4769](AztecProtocol/aztec-packages#4769) ([#5292](AztecProtocol/aztec-packages#5292)) ([fec1008](AztecProtocol/aztec-packages@fec1008)) * Read_calldata ([#5409](AztecProtocol/aztec-packages#5409)) ([034fbf0](AztecProtocol/aztec-packages@034fbf0)) * Remove NUM_FIELDS_PER_SHA256 ([#5392](AztecProtocol/aztec-packages#5392)) ([86a181b](AztecProtocol/aztec-packages@86a181b)) * Rename storage inclusion proof to historical storage read ([#5379](AztecProtocol/aztec-packages#5379)) ([b6e7216](AztecProtocol/aztec-packages@b6e7216)) * Returning non-nullified messages only ([#5390](AztecProtocol/aztec-packages#5390)) ([4c671be](AztecProtocol/aztec-packages@4c671be)) * Simplified bb Honk interface ([#5319](AztecProtocol/aztec-packages#5319)) ([a2d138f](AztecProtocol/aztec-packages@a2d138f)) * Simplify offsets and sizing using new block structure ([#5404](AztecProtocol/aztec-packages#5404)) ([efa0842](AztecProtocol/aztec-packages@efa0842)) * Throw by default when awaiting a tx that reverted ([#5431](AztecProtocol/aztec-packages#5431)) ([c9113ec](AztecProtocol/aztec-packages@c9113ec)) * Truncate SHA hashes inside circuits ([#5160](AztecProtocol/aztec-packages#5160)) ([9dc0d2a](AztecProtocol/aztec-packages@9dc0d2a)) * Unified CircuitChecker interface ([#5343](AztecProtocol/aztec-packages#5343)) ([13cef1f](AztecProtocol/aztec-packages@13cef1f)) * ZeroMorph working with IPA and integration with ECCVM ([#5246](AztecProtocol/aztec-packages#5246)) ([c4dce94](AztecProtocol/aztec-packages@c4dce94)) ### Bug Fixes * Addressing flakiness of `uniswap_trade_on_l1_from_l2.test.ts` ([#5443](AztecProtocol/aztec-packages#5443)) ([2db9cad](AztecProtocol/aztec-packages@2db9cad)) * **avm-simulator:** Hashing opcodes indirection ([#5376](AztecProtocol/aztec-packages#5376)) ([a4b1ebc](AztecProtocol/aztec-packages@a4b1ebc)) * Broadcasting unconstrained function with empty sibling ([#5429](AztecProtocol/aztec-packages#5429)) ([933145e](AztecProtocol/aztec-packages@933145e)) * **ci:** Disable uniswap test in earthly build ([#5344](AztecProtocol/aztec-packages#5344)) ([0d69162](AztecProtocol/aztec-packages@0d69162)) * **cli:** Support initializers not named constructor in cli ([#5397](AztecProtocol/aztec-packages#5397)) ([85f14c5](AztecProtocol/aztec-packages@85f14c5)) * Copy and deploy complete contents of l1-contracts ([#5447](AztecProtocol/aztec-packages#5447)) ([501c5e9](AztecProtocol/aztec-packages@501c5e9)) * Don't cancel protocol-circuits-gate-diff in master ([#5441](AztecProtocol/aztec-packages#5441)) ([6894a78](AztecProtocol/aztec-packages@6894a78)) * E2e_static_calls.test.ts bad merge ([#5405](AztecProtocol/aztec-packages#5405)) ([4c56536](AztecProtocol/aztec-packages@4c56536)) * Generate noir interface for constructors ([#5352](AztecProtocol/aztec-packages#5352)) ([8434d2f](AztecProtocol/aztec-packages@8434d2f)) * Limit earthly to few users ([#5375](AztecProtocol/aztec-packages#5375)) ([71e8ab4](AztecProtocol/aztec-packages@71e8ab4)) * Login to dockerhub before 'docker compose' ([#5440](AztecProtocol/aztec-packages#5440)) ([4f7696b](AztecProtocol/aztec-packages@4f7696b)) * Revert cbind breakage ([#5348](AztecProtocol/aztec-packages#5348)) ([c237193](AztecProtocol/aztec-packages@c237193)) * **ssa:** Use accurate type during SSA AsSlice simplficiation (noir-lang/noir#4610) ([13a12d5](AztecProtocol/aztec-packages@13a12d5)) * Track class registered count in tx stats ([#5417](AztecProtocol/aztec-packages#5417)) ([ff8eafc](AztecProtocol/aztec-packages@ff8eafc)) * Watch command should not spawn more than one tsc watch ([#5391](AztecProtocol/aztec-packages#5391)) ([25caf4d](AztecProtocol/aztec-packages@25caf4d)) ### Miscellaneous * Always use serialize function to get hash preimage in noir circuits or when comparing structs etc [#3595](AztecProtocol/aztec-packages#3595) ([#5439](AztecProtocol/aztec-packages#5439)) ([22e0f0d](AztecProtocol/aztec-packages@22e0f0d)) * **aztec-nr:** Unify contexts behind interfaces ([#5294](AztecProtocol/aztec-packages#5294)) ([36e0f59](AztecProtocol/aztec-packages@36e0f59)) * **bb:** Removed powers of eta in lookup and auxiliary relations ([#4695](AztecProtocol/aztec-packages#4695)) ([f4e62ae](AztecProtocol/aztec-packages@f4e62ae)) * CamelCase in noir-projects -> snake_case ([#5381](AztecProtocol/aztec-packages#5381)) ([eea711f](AztecProtocol/aztec-packages@eea711f)) * **ci:** Create a dedicated job for the AVM unit tests ([#5369](AztecProtocol/aztec-packages#5369)) ([59ca2ac](AztecProtocol/aztec-packages@59ca2ac)), closes [#5366](AztecProtocol/aztec-packages#5366) * Clean out prover instance and remove instance from oink ([#5314](AztecProtocol/aztec-packages#5314)) ([a83368c](AztecProtocol/aztec-packages@a83368c)) * Cleaning up messaging types ([#5442](AztecProtocol/aztec-packages#5442)) ([dfffe5d](AztecProtocol/aztec-packages@dfffe5d)), closes [#5420](AztecProtocol/aztec-packages#5420) * Compute registerer address on the fly ([#5394](AztecProtocol/aztec-packages#5394)) ([5d669b9](AztecProtocol/aztec-packages@5d669b9)) * Delete slither output from version control ([#5393](AztecProtocol/aztec-packages#5393)) ([41107e3](AztecProtocol/aztec-packages@41107e3)) * Fix migration notes ([#5452](AztecProtocol/aztec-packages#5452)) ([8c4e576](AztecProtocol/aztec-packages@8c4e576)) * **github:** Improve PR template "document later" checkbox description (noir-lang/noir#4625) ([13a12d5](AztecProtocol/aztec-packages@13a12d5)) * Make get_notes fail if returning no notes [#4988](AztecProtocol/aztec-packages#4988) ([#5320](AztecProtocol/aztec-packages#5320)) ([be86ed3](AztecProtocol/aztec-packages@be86ed3)) * Meld flavor and and circuit builder modules ([#5406](AztecProtocol/aztec-packages#5406)) ([f0d9d1b](AztecProtocol/aztec-packages@f0d9d1b)) * Messaging naming fixes ([#5383](AztecProtocol/aztec-packages#5383)) ([0226102](AztecProtocol/aztec-packages@0226102)) * Moving public inputs back to instance ([#5315](AztecProtocol/aztec-packages#5315)) ([9cbe368](AztecProtocol/aztec-packages@9cbe368)) * Name change: gen perm sort to delta range constraint ([#5378](AztecProtocol/aztec-packages#5378)) ([841855f](AztecProtocol/aztec-packages@841855f)) * Nuking l1 to l2 messages from block body ([#5272](AztecProtocol/aztec-packages#5272)) ([ee176d2](AztecProtocol/aztec-packages@ee176d2)), closes [#5072](AztecProtocol/aztec-packages#5072) * Reduce size of revert code from Field to u8 ([#5309](AztecProtocol/aztec-packages#5309)) ([1868e25](AztecProtocol/aztec-packages@1868e25)) * Remove mocking function in `EccOpQueue` again ([#5413](AztecProtocol/aztec-packages#5413)) ([6fb4a75](AztecProtocol/aztec-packages@6fb4a75)) * Remove snapshots from protocol-contracts ([#5342](AztecProtocol/aztec-packages#5342)) ([31ca344](AztecProtocol/aztec-packages@31ca344)) * Remove unused FunctionLeafPreimage struct ([#5354](AztecProtocol/aztec-packages#5354)) ([dc51c2b](AztecProtocol/aztec-packages@dc51c2b)) * Rename reverted to revertCode ([#5301](AztecProtocol/aztec-packages#5301)) ([950a96d](AztecProtocol/aztec-packages@950a96d)) * Replace relative paths to noir-protocol-circuits ([262ae02](AztecProtocol/aztec-packages@262ae02)) * Replace relative paths to noir-protocol-circuits ([91a60db](AztecProtocol/aztec-packages@91a60db)) * Replace relative paths to noir-protocol-circuits ([9fc9fbd](AztecProtocol/aztec-packages@9fc9fbd)) * Replace relative paths to noir-protocol-circuits ([9939e99](AztecProtocol/aztec-packages@9939e99)) * Replace relative paths to noir-protocol-circuits ([0b24aae](AztecProtocol/aztec-packages@0b24aae)) * Replace relative paths to noir-protocol-circuits ([c4d89d5](AztecProtocol/aztec-packages@c4d89d5)) * Reverting accidental changes ([#5371](AztecProtocol/aztec-packages#5371)) ([c1484ce](AztecProtocol/aztec-packages@c1484ce)) * Skip foundry install if possible ([#5398](AztecProtocol/aztec-packages#5398)) ([060fa1e](AztecProtocol/aztec-packages@060fa1e)) * Skip slither in docker ([#5384](AztecProtocol/aztec-packages#5384)) ([8a76068](AztecProtocol/aztec-packages@8a76068)) * Update docs with function names to match version 0.25.0 specifications (noir-lang/noir#4466) ([13a12d5](AztecProtocol/aztec-packages@13a12d5)) * Update integers.md to note support for Fields using `from_integer` (noir-lang/noir#4536) ([13a12d5](AztecProtocol/aztec-packages@13a12d5)) * Update min compiler version of contracts ([#5305](AztecProtocol/aztec-packages#5305)) ([dcf6bb3](AztecProtocol/aztec-packages@dcf6bb3)) * Use random tmp directory and cleanup afterwards ([#5368](AztecProtocol/aztec-packages#5368)) ([5c0e15d](AztecProtocol/aztec-packages@5c0e15d)) ### Documentation * Update versions-updating.md ([#5358](AztecProtocol/aztec-packages#5358)) ([0f09b63](AztecProtocol/aztec-packages@0f09b63)) </details> <details><summary>barretenberg: 0.31.0</summary> ## [0.31.0](AztecProtocol/aztec-packages@barretenberg-v0.30.1...barretenberg-v0.31.0) (2024-03-26) ### Features * Avm lookup and/or/xor ([#5338](AztecProtocol/aztec-packages#5338)) ([489bc2c](AztecProtocol/aztec-packages@489bc2c)) * Earthly bb tests + arm + satellites ([#5268](AztecProtocol/aztec-packages#5268)) ([eca12b3](AztecProtocol/aztec-packages@eca12b3)) * Fold proving key polys instead of prover polys ([#5436](AztecProtocol/aztec-packages#5436)) ([239ebfb](AztecProtocol/aztec-packages@239ebfb)) * Less earthly runners + e2e GA runners, bb bench ([#5356](AztecProtocol/aztec-packages#5356)) ([2136a66](AztecProtocol/aztec-packages@2136a66)) * Read_calldata ([#5409](AztecProtocol/aztec-packages#5409)) ([034fbf0](AztecProtocol/aztec-packages@034fbf0)) * Simplified bb Honk interface ([#5319](AztecProtocol/aztec-packages#5319)) ([a2d138f](AztecProtocol/aztec-packages@a2d138f)) * Simplify offsets and sizing using new block structure ([#5404](AztecProtocol/aztec-packages#5404)) ([efa0842](AztecProtocol/aztec-packages@efa0842)) * Unified CircuitChecker interface ([#5343](AztecProtocol/aztec-packages#5343)) ([13cef1f](AztecProtocol/aztec-packages@13cef1f)) * ZeroMorph working with IPA and integration with ECCVM ([#5246](AztecProtocol/aztec-packages#5246)) ([c4dce94](AztecProtocol/aztec-packages@c4dce94)) ### Bug Fixes * Revert cbind breakage ([#5348](AztecProtocol/aztec-packages#5348)) ([c237193](AztecProtocol/aztec-packages@c237193)) ### Miscellaneous * **bb:** Removed powers of eta in lookup and auxiliary relations ([#4695](AztecProtocol/aztec-packages#4695)) ([f4e62ae](AztecProtocol/aztec-packages@f4e62ae)) * **ci:** Create a dedicated job for the AVM unit tests ([#5369](AztecProtocol/aztec-packages#5369)) ([59ca2ac](AztecProtocol/aztec-packages@59ca2ac)), closes [#5366](AztecProtocol/aztec-packages#5366) * Clean out prover instance and remove instance from oink ([#5314](AztecProtocol/aztec-packages#5314)) ([a83368c](AztecProtocol/aztec-packages@a83368c)) * Meld flavor and and circuit builder modules ([#5406](AztecProtocol/aztec-packages#5406)) ([f0d9d1b](AztecProtocol/aztec-packages@f0d9d1b)) * Moving public inputs back to instance ([#5315](AztecProtocol/aztec-packages#5315)) ([9cbe368](AztecProtocol/aztec-packages@9cbe368)) * Name change: gen perm sort to delta range constraint ([#5378](AztecProtocol/aztec-packages#5378)) ([841855f](AztecProtocol/aztec-packages@841855f)) * Remove mocking function in `EccOpQueue` again ([#5413](AztecProtocol/aztec-packages#5413)) ([6fb4a75](AztecProtocol/aztec-packages@6fb4a75)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Add a
read_calldata
method to clarify and robustify the interface to calldata. Update the expository DataBus test accordingly.Closes AztecProtocol/barretenberg#821 (I was proposing something weird in that issue but all I really wanted was for the updating of read counts to be automated. That's achieved through simply placing it in read_calldata).