-
Notifications
You must be signed in to change notification settings - Fork 235
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: router contract #8352
feat: router contract #8352
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
ab95620
to
cfb20f8
Compare
Benchmark resultsMetrics with a significant change:
Detailed resultsAll benchmarks are run on txs on the This benchmark source data is available in JSON format on S3 here. Proof generationEach column represents the number of threads used in proof generation.
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 8 txs.
Circuits statsStats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.
Stats on running time collected for app circuits
AVM SimulationTime to simulate various public functions in the AVM.
Public DB AccessTime to access various public DBs.
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 size based on fee payment method | Metric | | |
cfb20f8
to
df1f369
Compare
// input: [some(3), none(), some(1)] | ||
// this returns | ||
// collapsed: [3, 1] | ||
pub fn collapse_array<T, let N: u32>(input: [Option<T>; N]) -> BoundedVec<T, N> where T: Eq { |
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.
Renamed collapse
function to collapse_array
as utils::collapse::colapse(...)
looked weird.
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.
You can alternatively do use collapse:collapse
in utils/mod.nr
and then import as utils::collapse
. That's what we do for e.g. PrivateContext
etc.
I do agree with collapse_array
potentially being a better name, but if so I think I'd also rename the file as well, as collapse::collapse_array
is sorta janky.
GTE: 6, | ||
}; | ||
|
||
pub fn assert_comparison<let N: u32>(lhs: Field, operation: u8, rhs: Field, error_msg: str<N>) { |
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.
Created this utility function as now it's needed in more places than just note_getter.
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'd change this to compare(lhs, op, rhs) -> bool
, and we'd then do assert(compare(balance, GT, amount), "insufficient balance")
, which is almost exactly equivalent but also lets is not have to worry about this receiving a string, and provides flexibility in case we want to do something else instead of assert.
noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr
Show resolved
Hide resolved
@@ -30,12 +31,13 @@ contract Crowdfunding { | |||
// Crowdfunding campaign operator | |||
operator: SharedImmutable<AztecAddress>, | |||
// End of the crowdfunding campaign after which no more donations are accepted | |||
deadline: PublicImmutable<u64>, | |||
deadline: SharedImmutable<u64>, |
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.
Replaced PublicImmutable with SharedImmutable so that I am able to load the value in private and then pass it to the router contract.
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 we keep router to be public contract only, then we can keep this public and save on a kernel iteration + hashing cost for a shared mutable
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.
What do you mean by 'public only'? It has a private component so that the caller is not revelead in public. Though I guess nothing really prevents us from providing a way to not set msg.sender
when enqueuing a public call, and therefore save this kernel iteration by calling the pub fn directly from the app - is this what you meant?
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.
At any rate @benesjan's change here is correct - we can't read this variable publicly because we'd be leaking what we're reading, it has to be read privately, even if we had the ability to enqueue to public without revealing the sender.
f6af885
to
740d33d
Compare
Docs PreviewHey there! 👋 You can check your preview at https://66d8c4f95cc752445d4a25ed--aztec-docs-dev.netlify.app |
// docs:start:check_timestamp | ||
/// Enqueues a public call that asserts that `lhs` (left side of the comparison) timestamp satisfies | ||
/// the `operation` with respect to the current timestamp. | ||
#[aztec(private)] |
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.
could we skip an interation of the kernel by the main contract directly calling _check_timestamp_public()
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 obviously leaks the original contract thoughh hmmph..
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.
That would reveal the address of a contract which called it so no. To allow for that we would need to allow directly setting of msg_sender
to zero which as far as I know is not planned (I am not up-to-date on this discussion).
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...but
TXE tests plz? Timestamps are trickier, but block_num should be easy 😄 (if it isn't, we have to fix it!)
@Thunkar hoped nobody will notice the missing unit tests here 🤣 Will add. |
5f2d479
to
72a3ad0
Compare
docs/docs/tutorials/codealong/contract_tutorials/crowdfunding_contract.md
Show resolved
Hide resolved
// input: [some(3), none(), some(1)] | ||
// this returns | ||
// collapsed: [3, 1] | ||
pub fn collapse_array<T, let N: u32>(input: [Option<T>; N]) -> BoundedVec<T, N> where T: Eq { |
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.
You can alternatively do use collapse:collapse
in utils/mod.nr
and then import as utils::collapse
. That's what we do for e.g. PrivateContext
etc.
I do agree with collapse_array
potentially being a better name, but if so I think I'd also rename the file as well, as collapse::collapse_array
is sorta janky.
yarn-project/circuits.js/src/contract/events/unconstrained_function_broadcasted_event.test.ts
Show resolved
Hide resolved
@@ -30,12 +31,13 @@ contract Crowdfunding { | |||
// Crowdfunding campaign operator | |||
operator: SharedImmutable<AztecAddress>, | |||
// End of the crowdfunding campaign after which no more donations are accepted | |||
deadline: PublicImmutable<u64>, | |||
deadline: SharedImmutable<u64>, |
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.
What do you mean by 'public only'? It has a private component so that the caller is not revelead in public. Though I guess nothing really prevents us from providing a way to not set msg.sender
when enqueuing a public call, and therefore save this kernel iteration by calling the pub fn directly from the app - is this what you meant?
@@ -30,12 +31,13 @@ contract Crowdfunding { | |||
// Crowdfunding campaign operator | |||
operator: SharedImmutable<AztecAddress>, | |||
// End of the crowdfunding campaign after which no more donations are accepted | |||
deadline: PublicImmutable<u64>, | |||
deadline: SharedImmutable<u64>, |
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.
At any rate @benesjan's change here is correct - we can't read this variable publicly because we'd be leaking what we're reading, it has to be read privately, even if we had the ability to enqueue to public without revealing the sender.
noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr
Show resolved
Hide resolved
noir-projects/noir-contracts/contracts/app_subscription_contract/src/main.nr
Show resolved
Hide resolved
* master: feat: verify public validation requests (#8150) feat: ultra keccak honk verifier (#8261) git subrepo push --branch=master noir-projects/aztec-nr git_subrepo.sh: Fix parent in .gitrepo file. [skip ci] chore: replace relative paths to noir-protocol-circuits git subrepo push --branch=master barretenberg chore(bb): use std::span for srs (#8371) feat: router contract (#8352) chore: Merge provernet to master (#8373) feat: Sync from noir (#8363) chore: Change efs volumes to use bursting throughput (#8370) chore: move spartan network tests to nightly (#8369) chore(ci): Test lowering of non-persistent ebs provisions (#8360) chore(bb): reinstate "chore: uncomment asserts in oink rec verifier"" (#8356) fix: Split stores per component and split merkle tree operations (#8299) fix: TXE logs in docker (#8365) feat: Liveness analysis for constants (#8294) chore(avm): remove some unused deps (#8366)
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.53.0</summary> ## [0.53.0](aztec-package-v0.52.0...aztec-package-v0.53.0) (2024-09-09) ### Bug Fixes * Do not reuse anvil admin key ([#8304](#8304)) ([6863fe5](6863fe5)) * Split stores per component and split merkle tree operations ([#8299](#8299)) ([4ee69ac](4ee69ac)) ### Miscellaneous * Change efs volumes to use bursting throughput ([#8370](#8370)) ([d6ebe3e](d6ebe3e)) * Fix spartan test nightly runner ([#8433](#8433)) ([a34f353](a34f353)) * Increase AZTEC_SLOT_DURATION ([#8331](#8331)) ([5d48500](5d48500)) * Merge provernet to master ([#8373](#8373)) ([e1dc987](e1dc987)) * Pw/devnet fixes ([#8385](#8385)) ([4fb4e17](4fb4e17)) </details> <details><summary>barretenberg.js: 0.53.0</summary> ## [0.53.0](barretenberg.js-v0.52.0...barretenberg.js-v0.53.0) (2024-09-09) ### Bug Fixes * HonkRecursion serde for cpp bindings ([#8387](#8387)) ([6162179](6162179)) </details> <details><summary>aztec-packages: 0.53.0</summary> ## [0.53.0](aztec-packages-v0.52.0...aztec-packages-v0.53.0) (2024-09-09) ### ⚠ BREAKING CHANGES * **avm/brillig:** take addresses in calldatacopy ([#8388](#8388)) * remove coinbase and unimplemented block gas limit opcodes from AVM ([#8408](#8408)) * return arrays instead of slices from `to_be_radix` functions (noir-lang/noir#5851) * Do not encode assertion strings in the programs ([#8315](#8315)) ### Features * `Module::add_item` (noir-lang/noir#5947) ([075036e](075036e)) * Add `Expr::as_assert_eq` (noir-lang/noir#5880) ([f8f4709](f8f4709)) * Add `fmtstr::contents` (noir-lang/noir#5928) ([05cc59f](05cc59f)) * Add `FunctionDef::set_return_visibility` (noir-lang/noir#5941) ([f3e4f97](f3e4f97)) * Add `FunctionDefinition::add_attribute` (noir-lang/noir#5944) ([f3e4f97](f3e4f97)) * Add `FunctionDefinition::module` and `StructDefinition::module` (noir-lang/noir#5956) ([075036e](075036e)) * Add `FunctionDefinition` methods `is_unconstrained` and `set_unconstrained` (noir-lang/noir#5962) ([075036e](075036e)) * Add `Quoted::tokens` (noir-lang/noir#5942) ([f3e4f97](f3e4f97)) * Add `std::meta::typ::fresh_type_variable` (noir-lang/noir#5948) ([f3e4f97](f3e4f97)) * Add `StructDefinition::add_attribute` and `has_named_attribute` (noir-lang/noir#5945) ([f3e4f97](f3e4f97)) * Add `StructDefinition::add_generic` (noir-lang/noir#5961) ([075036e](075036e)) * Add `StructDefinition::name` (noir-lang/noir#5960) ([075036e](075036e)) * Add `StructDefinition::set_fields` (noir-lang/noir#5931) ([05cc59f](05cc59f)) * Add bot config to toggle simulation ([#8297](#8297)) ([1c7c447](1c7c447)) * Add poseidon relations to UltraKeccak flavor and Solidity verifier ([#8243](#8243)) ([f7e4bfb](f7e4bfb)) * Addressing Nico's router comments ([#8384](#8384)) ([d582c93](d582c93)) * Allow inserting new structs and into programs from attributes (noir-lang/noir#5927) ([05cc59f](05cc59f)) * Arithmetic Generics (noir-lang/noir#5950) ([075036e](075036e)) * **avm/brillig:** Take addresses in calldatacopy ([#8388](#8388)) ([eab944c](eab944c)) * Better println for Quoted (noir-lang/noir#5896) ([176bce6](176bce6)) * Calculate `FunctionSelector`s and `EventSelector`s during comptime ([#8354](#8354)) ([52258b1](52258b1)) * Check argument count and types on attribute function callback (noir-lang/noir#5921) ([05cc59f](05cc59f)) * **ci:** Tracy gate counter preset ([#8382](#8382)) ([882af1e](882af1e)) * Do not encode assertion strings in the programs ([#8315](#8315)) ([f5bbb89](f5bbb89)) * Implement `str_as_bytes` in the `comptime` interpreter (noir-lang/noir#5887) ([f8f4709](f8f4709)) * Liveness analysis for constants ([#8294](#8294)) ([0330ced](0330ced)) * LSP autocompletion for attributes (noir-lang/noir#5963) ([075036e](075036e)) * LSP code action "Fill struct fields" (noir-lang/noir#5885) ([176bce6](176bce6)) * LSP code actions to import or qualify unresolved paths (noir-lang/noir#5876) ([f8f4709](f8f4709)) * LSP diagnostics for all package files (noir-lang/noir#5895) ([176bce6](176bce6)) * LSP diagnostics now have "unnecessary" and "deprecated" tags (noir-lang/noir#5878) ([f8f4709](f8f4709)) * LSP now suggests self fields and methods (noir-lang/noir#5955) ([075036e](075036e)) * LSP will now suggest private items if they are visible (noir-lang/noir#5923) ([05cc59f](05cc59f)) * Module attributes (noir-lang/noir#5888) ([05cc59f](05cc59f)) * Only check array bounds in brillig if index is unsafe (noir-lang/noir#5938) ([05cc59f](05cc59f)) * **perf:** Remove known store values that equal the store address in mem2reg (noir-lang/noir#5935) ([05cc59f](05cc59f)) * **perf:** Remove last store in return block if last load is before that store (noir-lang/noir#5910) ([176bce6](176bce6)) * Remove blocks which consist of only a jump to another block (noir-lang/noir#5889) ([05cc59f](05cc59f)) * Replace arithmetic equalities with assert equal ([#8386](#8386)) ([0d8e835](0d8e835)) * Return arrays instead of slices from `to_be_radix` functions (noir-lang/noir#5851) ([f8f4709](f8f4709)) * Router contract ([#8352](#8352)) ([138dc52](138dc52)) * Sequencer selection in k8s tests ([#8313](#8313)) ([8d9947d](8d9947d)) * Sync from aztec-packages (noir-lang/noir#5877) ([27e4761](27e4761)) * Sync from aztec-packages (noir-lang/noir#5883) ([f8f4709](f8f4709)) * Sync from aztec-packages (noir-lang/noir#5917) ([176bce6](176bce6)) * Sync from aztec-packages (noir-lang/noir#5951) ([f3e4f97](f3e4f97)) * Track proving times in prover stats in CLI ([#8281](#8281)) ([efad298](efad298)) * Tuple return value typescript decoding ([#8319](#8319)) ([b09a1bb](b09a1bb)) * Ultra keccak honk verifier ([#8261](#8261)) ([7f02900](7f02900)) * Unquote some value as tokens, not as unquote markers (noir-lang/noir#5924) ([05cc59f](05cc59f)) * Update AztecIvc interface to facilitate acir-ivc ([#8230](#8230)) ([665750a](665750a)) * Use visibility (noir-lang/noir#5856) ([f8f4709](f8f4709)) * Verify public validation requests ([#8150](#8150)) ([2be1415](2be1415)) * Warn on unused functions (noir-lang/noir#5892) ([05cc59f](05cc59f)) ### Bug Fixes * Address issues when using wall-time ([#8329](#8329)) ([639fb3b](639fb3b)) * Always place module attribute generated items inside module (noir-lang/noir#5943) ([f3e4f97](f3e4f97)) * Bot config for skip public simulation ([#8320](#8320)) ([133b642](133b642)) * Broken build ([#8395](#8395)) ([d0ea6eb](d0ea6eb)) * Collect functions generated by attributes (noir-lang/noir#5930) ([05cc59f](05cc59f)) * Do not reuse anvil admin key ([#8304](#8304)) ([6863fe5](6863fe5)) * **frontend:** Ban type vars bound to a reference from passing the unconstrained boundary (noir-lang/noir#5949) ([f3e4f97](f3e4f97)) * HonkRecursion serde for cpp bindings ([#8387](#8387)) ([6162179](6162179)) * Increase timeout for Sepolia mining ([#8430](#8430)) ([29369ed](29369ed)) * Let `derive(Eq)` work for empty structs (noir-lang/noir#5965) ([075036e](075036e)) * **mem2reg:** Handle aliases better when setting a known value for a load (noir-lang/noir#5959) ([075036e](075036e)) * **mem2reg:** Handle aliases in function last store cleanup and additional alias unit test (noir-lang/noir#5967) ([075036e](075036e)) * Prevent comptime println from crashing LSP (noir-lang/noir#5918) ([176bce6](176bce6)) * Revert "feat: ultra keccak honk verifier ([#8427](#8427)) ([31df5ea](31df5ea)) * Revert "feat: ultra keccak honk verifier" ([#8391](#8391)) ([3228e75](3228e75)) * Split stores per component and split merkle tree operations ([#8299](#8299)) ([4ee69ac](4ee69ac)) * SubscriptionNote preimage attack ([#8390](#8390)) ([94006a9](94006a9)) * Support debug comptime flag for attributes (noir-lang/noir#5929) ([05cc59f](05cc59f)) * Temporary register leaks in brillig gen ([#8350](#8350)) ([5f6d2e2](5f6d2e2)) * Transpiler after noir sync ([#8353](#8353)) ([249e50e](249e50e)) * TXE logs in docker ([#8365](#8365)) ([157dd11](157dd11)) * Use element_size() instead of computing it with division (noir-lang/noir#5939) ([05cc59f](05cc59f)) * Wait for receipt ([#8358](#8358)) ([8b7b2d2](8b7b2d2)) ### Miscellaneous * Add a span to track timing of brillig gen (noir-lang/noir#5835) ([f8f4709](f8f4709)) * Add pass to normalize Ids in SSA (noir-lang/noir#5909) ([176bce6](176bce6)) * Add uint (U128) note to aztec-nr and remove OwnedNote from ValueNote ([#8142](#8142)) ([225b6d3](225b6d3)) * **avm:** Move proving key to avm files ([#8318](#8318)) ([32d67bd](32d67bd)) * **avm:** Remove some unused deps ([#8366](#8366)) ([e2150a7](e2150a7)) * **bb:** Reinstate "chore: uncomment asserts in oink rec verifier"" ([#8356](#8356)) ([4dbad01](4dbad01)) * **bb:** Use std::span for srs ([#8371](#8371)) ([f174699](f174699)) * Bump some dependencies (noir-lang/noir#5893) ([176bce6](176bce6)) * Change efs volumes to use bursting throughput ([#8370](#8370)) ([d6ebe3e](d6ebe3e)) * **ci:** Don't run on draft PRs ([#8426](#8426)) ([8abe6c8](8abe6c8)) * **ci:** Skip vk generation on `protocol-circuits-gates-report` and `noir-format` ([#8398](#8398)) ([824aa8a](824aa8a)) * **ci:** Test lowering of non-persistent ebs provisions ([#8360](#8360)) ([8ee8595](8ee8595)) * Cleanup str_as_bytes (noir-lang/noir#5900) ([176bce6](176bce6)) * Delete more unwanted stuff from noir code ([#8335](#8335)) ([d2a8aa4](d2a8aa4)) * **docs:** Cli wallet ([#8182](#8182)) ([7298c8f](7298c8f)) * **docs:** Fix migration notes ([#8447](#8447)) ([1e91469](1e91469)) * Error on false constraint (noir-lang/noir#5890) ([05cc59f](05cc59f)) * Fix some instances of missing unsafe blocks ([#8232](#8232)) ([e8e0907](e8e0907)) * Fix spartan test nightly runner ([#8433](#8433)) ([a34f353](a34f353)) * Improve ec addition ([#8291](#8291)) ([e8a097c](e8a097c)) * Increase AZTEC_SLOT_DURATION ([#8331](#8331)) ([5d48500](5d48500)) * Make nested slice error more clear for `[[T]; N]` case (noir-lang/noir#5906) ([176bce6](176bce6)) * Merge provernet to master ([#8373](#8373)) ([e1dc987](e1dc987)) * More efficient verification with shplonk and gemini ([#8351](#8351)) ([e51d157](e51d157)) * Move spartan network tests to nightly ([#8369](#8369)) ([8fe045c](8fe045c)) * No assert in `is_valid_impl(...)` ([#8397](#8397)) ([1c1d35a](1c1d35a)) * Pw/devnet fixes ([#8385](#8385)) ([4fb4e17](4fb4e17)) * Redo typo PR by FilipHarald ([#8418](#8418)) ([2894b68](2894b68)) * Redo typo PR by operagxsasha ([#8429](#8429)) ([a1060a3](a1060a3)) * Remove coinbase and unimplemented block gas limit opcodes from AVM ([#8408](#8408)) ([dd09b76](dd09b76)) * Remove equality operation on boolean constraints against constants (noir-lang/noir#5919) ([176bce6](176bce6)) * Remove override to use rust syntax highlighting (noir-lang/noir#5881) ([f3e4f97](f3e4f97)) * Remove unimplemented headermember opcode from avm ([#8407](#8407)) ([cfea06e](cfea06e)) * Renaming `Instance`'s ([#8362](#8362)) ([4789440](4789440)) * Replace relative paths to noir-protocol-circuits ([3c9d85e](3c9d85e)) * Replace relative paths to noir-protocol-circuits ([69b1754](69b1754)) * Replace relative paths to noir-protocol-circuits ([feff126](feff126)) * Replace relative paths to noir-protocol-circuits ([3d58d36](3d58d36)) * Replace relative paths to noir-protocol-circuits ([7c15ac4](7c15ac4)) * **revert:** "chore(ci): Test lowering of non-persistent ebs provisions" ([#8392](#8392)) ([2ea6ec2](2ea6ec2)) * Send anvil logs to stdout ([#8311](#8311)) ([6a2614a](6a2614a)) * Uncomment asserts in oink rec verifier ([#8316](#8316)) ([a7f3144](a7f3144)) * Update git user for release PRs (noir-lang/noir#5894) ([176bce6](176bce6)) * Use `new_let` more widely (noir-lang/noir#5882) ([f8f4709](f8f4709)) </details> <details><summary>barretenberg: 0.53.0</summary> ## [0.53.0](barretenberg-v0.52.0...barretenberg-v0.53.0) (2024-09-09) ### ⚠ BREAKING CHANGES * **avm/brillig:** take addresses in calldatacopy ([#8388](#8388)) * remove coinbase and unimplemented block gas limit opcodes from AVM ([#8408](#8408)) ### Features * Add poseidon relations to UltraKeccak flavor and Solidity verifier ([#8243](#8243)) ([f7e4bfb](f7e4bfb)) * **avm/brillig:** Take addresses in calldatacopy ([#8388](#8388)) ([eab944c](eab944c)) * **ci:** Tracy gate counter preset ([#8382](#8382)) ([882af1e](882af1e)) * Replace arithmetic equalities with assert equal ([#8386](#8386)) ([0d8e835](0d8e835)) * Ultra keccak honk verifier ([#8261](#8261)) ([7f02900](7f02900)) * Update AztecIvc interface to facilitate acir-ivc ([#8230](#8230)) ([665750a](665750a)) * Verify public validation requests ([#8150](#8150)) ([2be1415](2be1415)) ### Bug Fixes * Broken build ([#8395](#8395)) ([d0ea6eb](d0ea6eb)) * Revert "feat: ultra keccak honk verifier ([#8427](#8427)) ([31df5ea](31df5ea)) * Revert "feat: ultra keccak honk verifier" ([#8391](#8391)) ([3228e75](3228e75)) ### Miscellaneous * **avm:** Move proving key to avm files ([#8318](#8318)) ([32d67bd](32d67bd)) * **avm:** Remove some unused deps ([#8366](#8366)) ([e2150a7](e2150a7)) * **bb:** Reinstate "chore: uncomment asserts in oink rec verifier"" ([#8356](#8356)) ([4dbad01](4dbad01)) * **bb:** Use std::span for srs ([#8371](#8371)) ([f174699](f174699)) * Improve ec addition ([#8291](#8291)) ([e8a097c](e8a097c)) * More efficient verification with shplonk and gemini ([#8351](#8351)) ([e51d157](e51d157)) * Remove coinbase and unimplemented block gas limit opcodes from AVM ([#8408](#8408)) ([dd09b76](dd09b76)) * Remove unimplemented headermember opcode from avm ([#8407](#8407)) ([cfea06e](cfea06e)) * Renaming `Instance`'s ([#8362](#8362)) ([4789440](4789440)) * Uncomment asserts in oink rec verifier ([#8316](#8316)) ([a7f3144](a7f3144)) </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.53.0</summary> ## [0.53.0](AztecProtocol/aztec-packages@aztec-package-v0.52.0...aztec-package-v0.53.0) (2024-09-09) ### Bug Fixes * Do not reuse anvil admin key ([#8304](AztecProtocol/aztec-packages#8304)) ([6863fe5](AztecProtocol/aztec-packages@6863fe5)) * Split stores per component and split merkle tree operations ([#8299](AztecProtocol/aztec-packages#8299)) ([4ee69ac](AztecProtocol/aztec-packages@4ee69ac)) ### Miscellaneous * Change efs volumes to use bursting throughput ([#8370](AztecProtocol/aztec-packages#8370)) ([d6ebe3e](AztecProtocol/aztec-packages@d6ebe3e)) * Fix spartan test nightly runner ([#8433](AztecProtocol/aztec-packages#8433)) ([a34f353](AztecProtocol/aztec-packages@a34f353)) * Increase AZTEC_SLOT_DURATION ([#8331](AztecProtocol/aztec-packages#8331)) ([5d48500](AztecProtocol/aztec-packages@5d48500)) * Merge provernet to master ([#8373](AztecProtocol/aztec-packages#8373)) ([e1dc987](AztecProtocol/aztec-packages@e1dc987)) * Pw/devnet fixes ([#8385](AztecProtocol/aztec-packages#8385)) ([4fb4e17](AztecProtocol/aztec-packages@4fb4e17)) </details> <details><summary>barretenberg.js: 0.53.0</summary> ## [0.53.0](AztecProtocol/aztec-packages@barretenberg.js-v0.52.0...barretenberg.js-v0.53.0) (2024-09-09) ### Bug Fixes * HonkRecursion serde for cpp bindings ([#8387](AztecProtocol/aztec-packages#8387)) ([6162179](AztecProtocol/aztec-packages@6162179)) </details> <details><summary>aztec-packages: 0.53.0</summary> ## [0.53.0](AztecProtocol/aztec-packages@aztec-packages-v0.52.0...aztec-packages-v0.53.0) (2024-09-09) ### ⚠ BREAKING CHANGES * **avm/brillig:** take addresses in calldatacopy ([#8388](AztecProtocol/aztec-packages#8388)) * remove coinbase and unimplemented block gas limit opcodes from AVM ([#8408](AztecProtocol/aztec-packages#8408)) * return arrays instead of slices from `to_be_radix` functions (noir-lang/noir#5851) * Do not encode assertion strings in the programs ([#8315](AztecProtocol/aztec-packages#8315)) ### Features * `Module::add_item` (noir-lang/noir#5947) ([075036e](AztecProtocol/aztec-packages@075036e)) * Add `Expr::as_assert_eq` (noir-lang/noir#5880) ([f8f4709](AztecProtocol/aztec-packages@f8f4709)) * Add `fmtstr::contents` (noir-lang/noir#5928) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Add `FunctionDef::set_return_visibility` (noir-lang/noir#5941) ([f3e4f97](AztecProtocol/aztec-packages@f3e4f97)) * Add `FunctionDefinition::add_attribute` (noir-lang/noir#5944) ([f3e4f97](AztecProtocol/aztec-packages@f3e4f97)) * Add `FunctionDefinition::module` and `StructDefinition::module` (noir-lang/noir#5956) ([075036e](AztecProtocol/aztec-packages@075036e)) * Add `FunctionDefinition` methods `is_unconstrained` and `set_unconstrained` (noir-lang/noir#5962) ([075036e](AztecProtocol/aztec-packages@075036e)) * Add `Quoted::tokens` (noir-lang/noir#5942) ([f3e4f97](AztecProtocol/aztec-packages@f3e4f97)) * Add `std::meta::typ::fresh_type_variable` (noir-lang/noir#5948) ([f3e4f97](AztecProtocol/aztec-packages@f3e4f97)) * Add `StructDefinition::add_attribute` and `has_named_attribute` (noir-lang/noir#5945) ([f3e4f97](AztecProtocol/aztec-packages@f3e4f97)) * Add `StructDefinition::add_generic` (noir-lang/noir#5961) ([075036e](AztecProtocol/aztec-packages@075036e)) * Add `StructDefinition::name` (noir-lang/noir#5960) ([075036e](AztecProtocol/aztec-packages@075036e)) * Add `StructDefinition::set_fields` (noir-lang/noir#5931) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Add bot config to toggle simulation ([#8297](AztecProtocol/aztec-packages#8297)) ([1c7c447](AztecProtocol/aztec-packages@1c7c447)) * Add poseidon relations to UltraKeccak flavor and Solidity verifier ([#8243](AztecProtocol/aztec-packages#8243)) ([f7e4bfb](AztecProtocol/aztec-packages@f7e4bfb)) * Addressing Nico's router comments ([#8384](AztecProtocol/aztec-packages#8384)) ([d582c93](AztecProtocol/aztec-packages@d582c93)) * Allow inserting new structs and into programs from attributes (noir-lang/noir#5927) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Arithmetic Generics (noir-lang/noir#5950) ([075036e](AztecProtocol/aztec-packages@075036e)) * **avm/brillig:** Take addresses in calldatacopy ([#8388](AztecProtocol/aztec-packages#8388)) ([eab944c](AztecProtocol/aztec-packages@eab944c)) * Better println for Quoted (noir-lang/noir#5896) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * Calculate `FunctionSelector`s and `EventSelector`s during comptime ([#8354](AztecProtocol/aztec-packages#8354)) ([52258b1](AztecProtocol/aztec-packages@52258b1)) * Check argument count and types on attribute function callback (noir-lang/noir#5921) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * **ci:** Tracy gate counter preset ([#8382](AztecProtocol/aztec-packages#8382)) ([882af1e](AztecProtocol/aztec-packages@882af1e)) * Do not encode assertion strings in the programs ([#8315](AztecProtocol/aztec-packages#8315)) ([f5bbb89](AztecProtocol/aztec-packages@f5bbb89)) * Implement `str_as_bytes` in the `comptime` interpreter (noir-lang/noir#5887) ([f8f4709](AztecProtocol/aztec-packages@f8f4709)) * Liveness analysis for constants ([#8294](AztecProtocol/aztec-packages#8294)) ([0330ced](AztecProtocol/aztec-packages@0330ced)) * LSP autocompletion for attributes (noir-lang/noir#5963) ([075036e](AztecProtocol/aztec-packages@075036e)) * LSP code action "Fill struct fields" (noir-lang/noir#5885) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * LSP code actions to import or qualify unresolved paths (noir-lang/noir#5876) ([f8f4709](AztecProtocol/aztec-packages@f8f4709)) * LSP diagnostics for all package files (noir-lang/noir#5895) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * LSP diagnostics now have "unnecessary" and "deprecated" tags (noir-lang/noir#5878) ([f8f4709](AztecProtocol/aztec-packages@f8f4709)) * LSP now suggests self fields and methods (noir-lang/noir#5955) ([075036e](AztecProtocol/aztec-packages@075036e)) * LSP will now suggest private items if they are visible (noir-lang/noir#5923) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Module attributes (noir-lang/noir#5888) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Only check array bounds in brillig if index is unsafe (noir-lang/noir#5938) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * **perf:** Remove known store values that equal the store address in mem2reg (noir-lang/noir#5935) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * **perf:** Remove last store in return block if last load is before that store (noir-lang/noir#5910) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * Remove blocks which consist of only a jump to another block (noir-lang/noir#5889) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Replace arithmetic equalities with assert equal ([#8386](AztecProtocol/aztec-packages#8386)) ([0d8e835](AztecProtocol/aztec-packages@0d8e835)) * Return arrays instead of slices from `to_be_radix` functions (noir-lang/noir#5851) ([f8f4709](AztecProtocol/aztec-packages@f8f4709)) * Router contract ([#8352](AztecProtocol/aztec-packages#8352)) ([138dc52](AztecProtocol/aztec-packages@138dc52)) * Sequencer selection in k8s tests ([#8313](AztecProtocol/aztec-packages#8313)) ([8d9947d](AztecProtocol/aztec-packages@8d9947d)) * Sync from aztec-packages (noir-lang/noir#5877) ([27e4761](AztecProtocol/aztec-packages@27e4761)) * Sync from aztec-packages (noir-lang/noir#5883) ([f8f4709](AztecProtocol/aztec-packages@f8f4709)) * Sync from aztec-packages (noir-lang/noir#5917) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * Sync from aztec-packages (noir-lang/noir#5951) ([f3e4f97](AztecProtocol/aztec-packages@f3e4f97)) * Track proving times in prover stats in CLI ([#8281](AztecProtocol/aztec-packages#8281)) ([efad298](AztecProtocol/aztec-packages@efad298)) * Tuple return value typescript decoding ([#8319](AztecProtocol/aztec-packages#8319)) ([b09a1bb](AztecProtocol/aztec-packages@b09a1bb)) * Ultra keccak honk verifier ([#8261](AztecProtocol/aztec-packages#8261)) ([7f02900](AztecProtocol/aztec-packages@7f02900)) * Unquote some value as tokens, not as unquote markers (noir-lang/noir#5924) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Update AztecIvc interface to facilitate acir-ivc ([#8230](AztecProtocol/aztec-packages#8230)) ([665750a](AztecProtocol/aztec-packages@665750a)) * Use visibility (noir-lang/noir#5856) ([f8f4709](AztecProtocol/aztec-packages@f8f4709)) * Verify public validation requests ([#8150](AztecProtocol/aztec-packages#8150)) ([2be1415](AztecProtocol/aztec-packages@2be1415)) * Warn on unused functions (noir-lang/noir#5892) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) ### Bug Fixes * Address issues when using wall-time ([#8329](AztecProtocol/aztec-packages#8329)) ([639fb3b](AztecProtocol/aztec-packages@639fb3b)) * Always place module attribute generated items inside module (noir-lang/noir#5943) ([f3e4f97](AztecProtocol/aztec-packages@f3e4f97)) * Bot config for skip public simulation ([#8320](AztecProtocol/aztec-packages#8320)) ([133b642](AztecProtocol/aztec-packages@133b642)) * Broken build ([#8395](AztecProtocol/aztec-packages#8395)) ([d0ea6eb](AztecProtocol/aztec-packages@d0ea6eb)) * Collect functions generated by attributes (noir-lang/noir#5930) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Do not reuse anvil admin key ([#8304](AztecProtocol/aztec-packages#8304)) ([6863fe5](AztecProtocol/aztec-packages@6863fe5)) * **frontend:** Ban type vars bound to a reference from passing the unconstrained boundary (noir-lang/noir#5949) ([f3e4f97](AztecProtocol/aztec-packages@f3e4f97)) * HonkRecursion serde for cpp bindings ([#8387](AztecProtocol/aztec-packages#8387)) ([6162179](AztecProtocol/aztec-packages@6162179)) * Increase timeout for Sepolia mining ([#8430](AztecProtocol/aztec-packages#8430)) ([29369ed](AztecProtocol/aztec-packages@29369ed)) * Let `derive(Eq)` work for empty structs (noir-lang/noir#5965) ([075036e](AztecProtocol/aztec-packages@075036e)) * **mem2reg:** Handle aliases better when setting a known value for a load (noir-lang/noir#5959) ([075036e](AztecProtocol/aztec-packages@075036e)) * **mem2reg:** Handle aliases in function last store cleanup and additional alias unit test (noir-lang/noir#5967) ([075036e](AztecProtocol/aztec-packages@075036e)) * Prevent comptime println from crashing LSP (noir-lang/noir#5918) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * Revert "feat: ultra keccak honk verifier ([#8427](AztecProtocol/aztec-packages#8427)) ([31df5ea](AztecProtocol/aztec-packages@31df5ea)) * Revert "feat: ultra keccak honk verifier" ([#8391](AztecProtocol/aztec-packages#8391)) ([3228e75](AztecProtocol/aztec-packages@3228e75)) * Split stores per component and split merkle tree operations ([#8299](AztecProtocol/aztec-packages#8299)) ([4ee69ac](AztecProtocol/aztec-packages@4ee69ac)) * SubscriptionNote preimage attack ([#8390](AztecProtocol/aztec-packages#8390)) ([94006a9](AztecProtocol/aztec-packages@94006a9)) * Support debug comptime flag for attributes (noir-lang/noir#5929) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Temporary register leaks in brillig gen ([#8350](AztecProtocol/aztec-packages#8350)) ([5f6d2e2](AztecProtocol/aztec-packages@5f6d2e2)) * Transpiler after noir sync ([#8353](AztecProtocol/aztec-packages#8353)) ([249e50e](AztecProtocol/aztec-packages@249e50e)) * TXE logs in docker ([#8365](AztecProtocol/aztec-packages#8365)) ([157dd11](AztecProtocol/aztec-packages@157dd11)) * Use element_size() instead of computing it with division (noir-lang/noir#5939) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Wait for receipt ([#8358](AztecProtocol/aztec-packages#8358)) ([8b7b2d2](AztecProtocol/aztec-packages@8b7b2d2)) ### Miscellaneous * Add a span to track timing of brillig gen (noir-lang/noir#5835) ([f8f4709](AztecProtocol/aztec-packages@f8f4709)) * Add pass to normalize Ids in SSA (noir-lang/noir#5909) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * Add uint (U128) note to aztec-nr and remove OwnedNote from ValueNote ([#8142](AztecProtocol/aztec-packages#8142)) ([225b6d3](AztecProtocol/aztec-packages@225b6d3)) * **avm:** Move proving key to avm files ([#8318](AztecProtocol/aztec-packages#8318)) ([32d67bd](AztecProtocol/aztec-packages@32d67bd)) * **avm:** Remove some unused deps ([#8366](AztecProtocol/aztec-packages#8366)) ([e2150a7](AztecProtocol/aztec-packages@e2150a7)) * **bb:** Reinstate "chore: uncomment asserts in oink rec verifier"" ([#8356](AztecProtocol/aztec-packages#8356)) ([4dbad01](AztecProtocol/aztec-packages@4dbad01)) * **bb:** Use std::span for srs ([#8371](AztecProtocol/aztec-packages#8371)) ([f174699](AztecProtocol/aztec-packages@f174699)) * Bump some dependencies (noir-lang/noir#5893) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * Change efs volumes to use bursting throughput ([#8370](AztecProtocol/aztec-packages#8370)) ([d6ebe3e](AztecProtocol/aztec-packages@d6ebe3e)) * **ci:** Don't run on draft PRs ([#8426](AztecProtocol/aztec-packages#8426)) ([8abe6c8](AztecProtocol/aztec-packages@8abe6c8)) * **ci:** Skip vk generation on `protocol-circuits-gates-report` and `noir-format` ([#8398](AztecProtocol/aztec-packages#8398)) ([824aa8a](AztecProtocol/aztec-packages@824aa8a)) * **ci:** Test lowering of non-persistent ebs provisions ([#8360](AztecProtocol/aztec-packages#8360)) ([8ee8595](AztecProtocol/aztec-packages@8ee8595)) * Cleanup str_as_bytes (noir-lang/noir#5900) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * Delete more unwanted stuff from noir code ([#8335](AztecProtocol/aztec-packages#8335)) ([d2a8aa4](AztecProtocol/aztec-packages@d2a8aa4)) * **docs:** Cli wallet ([#8182](AztecProtocol/aztec-packages#8182)) ([7298c8f](AztecProtocol/aztec-packages@7298c8f)) * **docs:** Fix migration notes ([#8447](AztecProtocol/aztec-packages#8447)) ([1e91469](AztecProtocol/aztec-packages@1e91469)) * Error on false constraint (noir-lang/noir#5890) ([05cc59f](AztecProtocol/aztec-packages@05cc59f)) * Fix some instances of missing unsafe blocks ([#8232](AztecProtocol/aztec-packages#8232)) ([e8e0907](AztecProtocol/aztec-packages@e8e0907)) * Fix spartan test nightly runner ([#8433](AztecProtocol/aztec-packages#8433)) ([a34f353](AztecProtocol/aztec-packages@a34f353)) * Improve ec addition ([#8291](AztecProtocol/aztec-packages#8291)) ([e8a097c](AztecProtocol/aztec-packages@e8a097c)) * Increase AZTEC_SLOT_DURATION ([#8331](AztecProtocol/aztec-packages#8331)) ([5d48500](AztecProtocol/aztec-packages@5d48500)) * Make nested slice error more clear for `[[T]; N]` case (noir-lang/noir#5906) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * Merge provernet to master ([#8373](AztecProtocol/aztec-packages#8373)) ([e1dc987](AztecProtocol/aztec-packages@e1dc987)) * More efficient verification with shplonk and gemini ([#8351](AztecProtocol/aztec-packages#8351)) ([e51d157](AztecProtocol/aztec-packages@e51d157)) * Move spartan network tests to nightly ([#8369](AztecProtocol/aztec-packages#8369)) ([8fe045c](AztecProtocol/aztec-packages@8fe045c)) * No assert in `is_valid_impl(...)` ([#8397](AztecProtocol/aztec-packages#8397)) ([1c1d35a](AztecProtocol/aztec-packages@1c1d35a)) * Pw/devnet fixes ([#8385](AztecProtocol/aztec-packages#8385)) ([4fb4e17](AztecProtocol/aztec-packages@4fb4e17)) * Redo typo PR by FilipHarald ([#8418](AztecProtocol/aztec-packages#8418)) ([2894b68](AztecProtocol/aztec-packages@2894b68)) * Redo typo PR by operagxsasha ([#8429](AztecProtocol/aztec-packages#8429)) ([a1060a3](AztecProtocol/aztec-packages@a1060a3)) * Remove coinbase and unimplemented block gas limit opcodes from AVM ([#8408](AztecProtocol/aztec-packages#8408)) ([dd09b76](AztecProtocol/aztec-packages@dd09b76)) * Remove equality operation on boolean constraints against constants (noir-lang/noir#5919) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * Remove override to use rust syntax highlighting (noir-lang/noir#5881) ([f3e4f97](AztecProtocol/aztec-packages@f3e4f97)) * Remove unimplemented headermember opcode from avm ([#8407](AztecProtocol/aztec-packages#8407)) ([cfea06e](AztecProtocol/aztec-packages@cfea06e)) * Renaming `Instance`'s ([#8362](AztecProtocol/aztec-packages#8362)) ([4789440](AztecProtocol/aztec-packages@4789440)) * Replace relative paths to noir-protocol-circuits ([3c9d85e](AztecProtocol/aztec-packages@3c9d85e)) * Replace relative paths to noir-protocol-circuits ([69b1754](AztecProtocol/aztec-packages@69b1754)) * Replace relative paths to noir-protocol-circuits ([feff126](AztecProtocol/aztec-packages@feff126)) * Replace relative paths to noir-protocol-circuits ([3d58d36](AztecProtocol/aztec-packages@3d58d36)) * Replace relative paths to noir-protocol-circuits ([7c15ac4](AztecProtocol/aztec-packages@7c15ac4)) * **revert:** "chore(ci): Test lowering of non-persistent ebs provisions" ([#8392](AztecProtocol/aztec-packages#8392)) ([2ea6ec2](AztecProtocol/aztec-packages@2ea6ec2)) * Send anvil logs to stdout ([#8311](AztecProtocol/aztec-packages#8311)) ([6a2614a](AztecProtocol/aztec-packages@6a2614a)) * Uncomment asserts in oink rec verifier ([#8316](AztecProtocol/aztec-packages#8316)) ([a7f3144](AztecProtocol/aztec-packages@a7f3144)) * Update git user for release PRs (noir-lang/noir#5894) ([176bce6](AztecProtocol/aztec-packages@176bce6)) * Use `new_let` more widely (noir-lang/noir#5882) ([f8f4709](AztecProtocol/aztec-packages@f8f4709)) </details> <details><summary>barretenberg: 0.53.0</summary> ## [0.53.0](AztecProtocol/aztec-packages@barretenberg-v0.52.0...barretenberg-v0.53.0) (2024-09-09) ### ⚠ BREAKING CHANGES * **avm/brillig:** take addresses in calldatacopy ([#8388](AztecProtocol/aztec-packages#8388)) * remove coinbase and unimplemented block gas limit opcodes from AVM ([#8408](AztecProtocol/aztec-packages#8408)) ### Features * Add poseidon relations to UltraKeccak flavor and Solidity verifier ([#8243](AztecProtocol/aztec-packages#8243)) ([f7e4bfb](AztecProtocol/aztec-packages@f7e4bfb)) * **avm/brillig:** Take addresses in calldatacopy ([#8388](AztecProtocol/aztec-packages#8388)) ([eab944c](AztecProtocol/aztec-packages@eab944c)) * **ci:** Tracy gate counter preset ([#8382](AztecProtocol/aztec-packages#8382)) ([882af1e](AztecProtocol/aztec-packages@882af1e)) * Replace arithmetic equalities with assert equal ([#8386](AztecProtocol/aztec-packages#8386)) ([0d8e835](AztecProtocol/aztec-packages@0d8e835)) * Ultra keccak honk verifier ([#8261](AztecProtocol/aztec-packages#8261)) ([7f02900](AztecProtocol/aztec-packages@7f02900)) * Update AztecIvc interface to facilitate acir-ivc ([#8230](AztecProtocol/aztec-packages#8230)) ([665750a](AztecProtocol/aztec-packages@665750a)) * Verify public validation requests ([#8150](AztecProtocol/aztec-packages#8150)) ([2be1415](AztecProtocol/aztec-packages@2be1415)) ### Bug Fixes * Broken build ([#8395](AztecProtocol/aztec-packages#8395)) ([d0ea6eb](AztecProtocol/aztec-packages@d0ea6eb)) * Revert "feat: ultra keccak honk verifier ([#8427](AztecProtocol/aztec-packages#8427)) ([31df5ea](AztecProtocol/aztec-packages@31df5ea)) * Revert "feat: ultra keccak honk verifier" ([#8391](AztecProtocol/aztec-packages#8391)) ([3228e75](AztecProtocol/aztec-packages@3228e75)) ### Miscellaneous * **avm:** Move proving key to avm files ([#8318](AztecProtocol/aztec-packages#8318)) ([32d67bd](AztecProtocol/aztec-packages@32d67bd)) * **avm:** Remove some unused deps ([#8366](AztecProtocol/aztec-packages#8366)) ([e2150a7](AztecProtocol/aztec-packages@e2150a7)) * **bb:** Reinstate "chore: uncomment asserts in oink rec verifier"" ([#8356](AztecProtocol/aztec-packages#8356)) ([4dbad01](AztecProtocol/aztec-packages@4dbad01)) * **bb:** Use std::span for srs ([#8371](AztecProtocol/aztec-packages#8371)) ([f174699](AztecProtocol/aztec-packages@f174699)) * Improve ec addition ([#8291](AztecProtocol/aztec-packages#8291)) ([e8a097c](AztecProtocol/aztec-packages@e8a097c)) * More efficient verification with shplonk and gemini ([#8351](AztecProtocol/aztec-packages#8351)) ([e51d157](AztecProtocol/aztec-packages@e51d157)) * Remove coinbase and unimplemented block gas limit opcodes from AVM ([#8408](AztecProtocol/aztec-packages#8408)) ([dd09b76](AztecProtocol/aztec-packages@dd09b76)) * Remove unimplemented headermember opcode from avm ([#8407](AztecProtocol/aztec-packages#8407)) ([cfea06e](AztecProtocol/aztec-packages@cfea06e)) * Renaming `Instance`'s ([#8362](AztecProtocol/aztec-packages#8362)) ([4789440](AztecProtocol/aztec-packages@4789440)) * Uncomment asserts in oink rec verifier ([#8316](AztecProtocol/aztec-packages#8316)) ([a7f3144](AztecProtocol/aztec-packages@a7f3144)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Implementation of a router contract.