Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

feat!: TXE single execution env #9183

Merged
merged 23 commits into from
Oct 23, 2024
Merged

feat!: TXE single execution env #9183

merged 23 commits into from
Oct 23, 2024

Conversation

Thunkar
Copy link
Contributor

@Thunkar Thunkar commented Oct 11, 2024

TXE single execution env

Previously, TXE had a weird dual model in which direct calls from test code would "inline" contract code and call it directly. This was very fast, but unfortunately wasn't possible when doing an external call.

test -> env.call(ContractUnderTest.fn) (inlined call) -> ExternalContract::at(addr).fn (nested call inside ACVM or AVM simulator)

This forced us to reproduce the simulator behavior both in Noir and in TXE, leading to bugs and generally terrible UX. The upside is that besides being faster, it also allowed the developer to NOT recompile the contract code on every change, only when modifying external contracts that were called from the one under test.

Fortunately, recent Brillig improvements allow us to do every single call (including inside tests) as a nested call, which leads to a lot of deduplication and a more consistent UX. Contracts under test now have to always be recompiled and deployed, but it is a small price to pay for consistency's sake.

Public rethrows and proper support for #[test(should_fail_with="message")]

Previously, the very weird dual model introduced problems when trying to parse errors thrown by public functions, specially when they were nested calls. This is NO MORE and we can always use Noir's native system to parse error messages and ensure negative tests fail properly

Call interface rework

Since TXE has been simplified, call interfaces don't need the weird original: fn field that previously allowed use to call the "macrofied" version of the contract function inline with the test. However, this rework led to the discovery of an issue: return types from call interfaces were incorrectly typed, and were only bound by the compiler when used after the call. This has been fixed by adding a zeroed return_value field to the call interfaces (essentially rust's PhantomData) so we are able to properly type them and leverage the type system to ensure the values are not only what we expect, but of the type we expect.

@Thunkar Thunkar requested review from fcarreiro and nventuro October 11, 2024 14:36
@Thunkar Thunkar self-assigned this Oct 11, 2024
Copy link
Contributor

@fcarreiro fcarreiro left a comment

Choose a reason for hiding this comment

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

Lovely! I wouldn't be surprised if you could remove even more (e.g., isStaticCall)

Copy link
Contributor

github-actions bot commented Oct 11, 2024

Changes to public function bytecode sizes

Generated at commit: 3135bd23e971903700b13b69ec24df74bbe29ebc, compared to commit: 1ce0fa58d14c6b9b5f26f3cd3bda3589dd85b4e5

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
AvmTest::bulk_testing +162 ❌ +0.68%
Lending::public_dispatch -880 ✅ -3.47%
Lending::_withdraw -308 ✅ -4.18%
Lending::_borrow -308 ✅ -4.21%
Uniswap::public_dispatch -1,175 ✅ -5.00%
Uniswap::swap_public -1,782 ✅ -12.46%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
AvmTest::bulk_testing 23,994 (+162) +0.68%
Lending::public_dispatch 24,504 (-880) -3.47%
Lending::_withdraw 7,069 (-308) -4.18%
Lending::_borrow 7,013 (-308) -4.21%
Uniswap::public_dispatch 22,331 (-1,175) -5.00%
Uniswap::swap_public 12,515 (-1,782) -12.46%

@AztecBot
Copy link
Collaborator

AztecBot commented Oct 15, 2024

Docs Preview

Hey there! 👋 You can check your preview at https://6719032bf5a1d507a4d83374--aztec-docs-dev.netlify.app

@@ -176,7 +136,7 @@ pub comptime fn stub_fn(f: FunctionDefinition) -> Quoted {
name: $fn_name_str,
$args_hash
args: $args_acc_name,
original: $original,
return_type: std::mem::zeroed(),
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't understand this

Copy link
Contributor Author

@Thunkar Thunkar Oct 17, 2024

Choose a reason for hiding this comment

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

Call interfaces were sort of broken before. Return value types were unbound and that led to weird situations such as:

#[private]
fn my_fn() -> u8 {...}

...

#[test]
fn test_my_fn() {
  let result = MyContract::at(somewhere).my_fn().call(&mut env.private());
  assert(result == 8 // this is a Field, so result is cast to Field);
}

return_value in the call interfaces is essentially rust's PhantomData, so we are able to properly type the return value of the call interface (both in TXE and actual contracts)

Copy link
Contributor

Choose a reason for hiding this comment

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

I thought I understood this, and did some reading around on PhantomData, but then tried to write down a comment explaining why zeroed needs to be there and failed.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's similar to when we needed array hints in methods for length...we need a return_type variable with the correct Type, but we don't know what the actual value is (because we haven't called the function yet)

noir-projects/aztec-nr/aztec/src/macros/utils.nr Outdated Show resolved Hide resolved
yarn-project/pxe/src/pxe_service/error_enriching.ts Outdated Show resolved Hide resolved
yarn-project/pxe/src/pxe_service/error_enriching.ts Outdated Show resolved Hide resolved
yarn-project/txe/src/oracle/txe_oracle.ts Show resolved Hide resolved
@Thunkar Thunkar enabled auto-merge (squash) October 21, 2024 14:17
Thunkar and others added 3 commits October 23, 2024 09:28
@Thunkar Thunkar merged commit 1d1d76d into master Oct 23, 2024
56 checks passed
@Thunkar Thunkar deleted the gj/txe_single_execution_env branch October 23, 2024 14:16
TomAFrench added a commit that referenced this pull request Oct 23, 2024
* master:
  fix: remove reliance on invalid decompositions in selector calculation (#9337)
  chore: disable bench-process-history (#9360)
  feat(avm): full poseidon2 (#9141)
  chore: remove noir_js_backend_barretenberg (#9338)
  feat!: TXE single execution env (#9183)
  fix(ci): report 4 epochs true  (#9346)
  feat: translator on Shplemini (#9329)
  fix: support empty epochs (#9341)
  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
  refactor: minor test cleanup (#9339)
  feat!: remove hash opcodes from AVM (#9209)
  chore!: remove delegate call and storage address (#9330)
  feat: publicly accessible bootstrap cache (#9335)
  fix(avm): public dispatch in proving tests (#9331)
  test: scenario for upgrading gerousia (#9246)
TomAFrench added a commit that referenced this pull request Oct 23, 2024
* master: (45 commits)
  feat: Sync from noir (#9332)
  fix: remove reliance on invalid decompositions in selector calculation (#9337)
  chore: disable bench-process-history (#9360)
  feat(avm): full poseidon2 (#9141)
  chore: remove noir_js_backend_barretenberg (#9338)
  feat!: TXE single execution env (#9183)
  fix(ci): report 4 epochs true  (#9346)
  feat: translator on Shplemini (#9329)
  fix: support empty epochs (#9341)
  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
  refactor: minor test cleanup (#9339)
  feat!: remove hash opcodes from AVM (#9209)
  chore!: remove delegate call and storage address (#9330)
  feat: publicly accessible bootstrap cache (#9335)
  fix(avm): public dispatch in proving tests (#9331)
  test: scenario for upgrading gerousia (#9246)
  chore: silence cache-download.sh (#9317)
  ...
@Thunkar Thunkar mentioned this pull request Oct 24, 2024
ludamad pushed a commit that referenced this pull request Oct 24, 2024
🤖 I have created a release *beep* *boop*
---


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

##
[0.60.0](aztec-package-v0.59.0...aztec-package-v0.60.0)
(2024-10-24)


### Features

* Introduce default public keys and replace empty public keys
([#9277](#9277))
([47718ea](47718ea))
* Sequencer cast votes
([#9247](#9247))
([bd05d87](bd05d87))
</details>

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

##
[0.60.0](barretenberg.js-v0.59.0...barretenberg.js-v0.60.0)
(2024-10-24)


### Features

* Eccvm translator zk sumcheck
([#9199](#9199))
([c7d4572](c7d4572))


### Miscellaneous

* Remove noir_js_backend_barretenberg
([#9338](#9338))
([cefe3d9](cefe3d9))
</details>

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

##
[0.60.0](aztec-packages-v0.59.0...aztec-packages-v0.60.0)
(2024-10-24)


### ⚠ BREAKING CHANGES

* replace usage of vector in keccakf1600 input with array
([#9350](#9350))
* TXE single execution env
([#9183](#9183))
* remove hash opcodes from AVM
([#9209](#9209))
* remove delegate call and storage address
([#9330](#9330))

### Features

* Apella
([#9084](#9084))
([205ce69](205ce69))
* **avm:** Full poseidon2
([#9141](#9141))
([eae7587](eae7587))
* Bytes to fields and back
([#8590](#8590))
([65b8493](65b8493))
* Constrain protocol VK hashing
([#9304](#9304))
([3d17e13](3d17e13))
* **docs:** Nits
([#8948](#8948))
([008fdd1](008fdd1))
* Eccvm translator zk sumcheck
([#9199](#9199))
([c7d4572](c7d4572))
* Gerousia
([#8942](#8942))
([54b5ba2](54b5ba2))
* Get logs by tags
([#9353](#9353))
([719c33e](719c33e))
* Handle reorgs on sequencer
([#9201](#9201))
([d4dea16](d4dea16))
* **interpreter:** Comptime derive generators
(noir-lang/noir#6303)
([a166203](a166203))
* Introduce default public keys and replace empty public keys
([#9277](#9277))
([47718ea](47718ea))
* Modify private calldata to use public keys
([#9276](#9276))
([e42e219](e42e219))
* New formatter (noir-lang/noir#6300)
([a166203](a166203))
* **nr:** Serde for signed ints
([#9211](#9211))
([66f31c7](66f31c7))
* Publicly accessible bootstrap cache
([#9335](#9335))
([28392d5](28392d5))
* Remove hash opcodes from AVM
([#9209](#9209))
([e6db535](e6db535)),
closes
[#9208](#9208)
* Sequencer cast votes
([#9247](#9247))
([bd05d87](bd05d87))
* Sha256 refactoring and benchmark with longer input
(noir-lang/noir#6318)
([a166203](a166203))
* **ssa:** Various mem2reg reverts to reduce memory and compilation time
(noir-lang/noir#6307)
([a166203](a166203))
* Sync from aztec-packages (noir-lang/noir#6301)
([a166203](a166203))
* Translator on Shplemini
([#9329](#9329))
([21fa3cf](21fa3cf))
* TXE single execution env
([#9183](#9183))
([1d1d76d](1d1d76d))
* Warn about private types leaking in public functions and struct fields
(noir-lang/noir#6296)
([a166203](a166203))


### Bug Fixes

* 4epochs kind test et al
([#9358](#9358))
([e480e6b](e480e6b))
* Allow array map on empty arrays
(noir-lang/noir#6305)
([a166203](a166203))
* **avm:** Public dispatch in proving tests
([#9331](#9331))
([42e5221](42e5221))
* Barretenberg readme scare warning
([#9313](#9313))
([f759d55](f759d55))
* Broken constants gen
([#9387](#9387))
([eb7bc6b](eb7bc6b))
* Ci github clone edge case
([#9320](#9320))
([15abe6f](15abe6f))
* **ci:** Report 4 epochs true
([#9346](#9346))
([1ce0fa5](1ce0fa5))
* Display function name and body when inlining recursion limit hit
(noir-lang/noir#6291)
([a166203](a166203))
* Do not warn on unused self in traits
(noir-lang/noir#6298)
([a166203](a166203))
* Enforce correctness of decompositions performed at compile time
(noir-lang/noir#6278)
([a166203](a166203))
* Reject invalid expression with in CLI parser
(noir-lang/noir#6287)
([a166203](a166203))
* Remove reliance on invalid decompositions in selector calculation
([#9337](#9337))
([c8e4260](c8e4260))
* Support empty epochs
([#9341](#9341))
([9dda91e](9dda91e))
* Use github.actor on publish workflow dispatch
([#9324](#9324))
([5fa660d](5fa660d))


### Miscellaneous

* **avm:** Some cleaning in avm prover
([#9311](#9311))
([523aa23](523aa23))
* Bump node types
([#9397](#9397))
([763d5b1](763d5b1))
* Copying world state binary to yarn project is on generate
([#9194](#9194))
([8d75dd4](8d75dd4))
* Disable bench-process-history
([#9360](#9360))
([8e6734e](8e6734e))
* **docs:** Refactoring guides and some other nits
(noir-lang/noir#6175)
([a166203](a166203))
* Fix and re-enable prover coordination e2e test
([#9344](#9344))
([3a1a62c](3a1a62c))
* Implement Fq add
([#9354](#9354))
([1711fac](1711fac))
* Minor test cleanup
([#9339](#9339))
([a2ed567](a2ed567))
* Print out gas at start and end of each enqueued call
([#9377](#9377))
([29c0b95](29c0b95))
* Quick account manager refactor
([#9357](#9357))
([648d043](648d043))
* Quick keystore refactor
([#9355](#9355))
([31b9999](31b9999))
* Redo typo PR by pucedoteth
([#9385](#9385))
([fd1a0d1](fd1a0d1))
* Release Noir(0.36.0) (noir-lang/noir#6213)
([a166203](a166203))
* Remove dead function (noir-lang/noir#6308)
([a166203](a166203))
* Remove delegate call and storage address
([#9330](#9330))
([465f88e](465f88e))
* Remove noir_js_backend_barretenberg
([#9338](#9338))
([cefe3d9](cefe3d9))
* Remove unnecessary `is_integral_bit_size` function
([#9352](#9352))
([ac8e6d7](ac8e6d7))
* Remove usage of slices in pedersen hash
(noir-lang/noir#6295)
([a166203](a166203))
* Replace relative paths to noir-protocol-circuits
([32bd7b9](32bd7b9))
* Replace relative paths to noir-protocol-circuits
([add4605](add4605))
* Replace relative paths to noir-protocol-circuits
([8cb89af](8cb89af))
* Replace usage of vector in keccakf1600 input with array
([#9350](#9350))
([cb58490](cb58490))
* Scenario for upgrading gerousia
([#9246](#9246))
([66f59d6](66f59d6))
* Silence cache-download.sh
([#9317](#9317))
([314d9d2](314d9d2))
* Test 4epochs in native-network
([#9309](#9309))
([ddb312a](ddb312a))
* Unstake the bond when the proof lands
([#9363](#9363))
([b25b913](b25b913))
* Update `noir-edwards` repo to point at `noir-lang` org
(noir-lang/noir#6323)
([a166203](a166203))
* Updated NFT flows
([#9150](#9150))
([407f8b4](407f8b4))
</details>

<details><summary>barretenberg: 0.60.0</summary>

##
[0.60.0](barretenberg-v0.59.0...barretenberg-v0.60.0)
(2024-10-24)


### ⚠ BREAKING CHANGES

* replace usage of vector in keccakf1600 input with array
([#9350](#9350))
* remove hash opcodes from AVM
([#9209](#9209))
* remove delegate call and storage address
([#9330](#9330))

### Features

* **avm:** Full poseidon2
([#9141](#9141))
([eae7587](eae7587))
* Eccvm translator zk sumcheck
([#9199](#9199))
([c7d4572](c7d4572))
* Remove hash opcodes from AVM
([#9209](#9209))
([e6db535](e6db535)),
closes
[#9208](#9208)
* Translator on Shplemini
([#9329](#9329))
([21fa3cf](21fa3cf))


### Bug Fixes

* **avm:** Public dispatch in proving tests
([#9331](#9331))
([42e5221](42e5221))
* Barretenberg readme scare warning
([#9313](#9313))
([f759d55](f759d55))


### Miscellaneous

* **avm:** Some cleaning in avm prover
([#9311](#9311))
([523aa23](523aa23))
* Copying world state binary to yarn project is on generate
([#9194](#9194))
([8d75dd4](8d75dd4))
* Remove delegate call and storage address
([#9330](#9330))
([465f88e](465f88e))
* Remove noir_js_backend_barretenberg
([#9338](#9338))
([cefe3d9](cefe3d9))
* Replace usage of vector in keccakf1600 input with array
([#9350](#9350))
([cb58490](cb58490))
</details>

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


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

##
[0.60.0](AztecProtocol/aztec-packages@aztec-package-v0.59.0...aztec-package-v0.60.0)
(2024-10-24)


### Features

* Introduce default public keys and replace empty public keys
([#9277](AztecProtocol/aztec-packages#9277))
([47718ea](AztecProtocol/aztec-packages@47718ea))
* Sequencer cast votes
([#9247](AztecProtocol/aztec-packages#9247))
([bd05d87](AztecProtocol/aztec-packages@bd05d87))
</details>

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

##
[0.60.0](AztecProtocol/aztec-packages@barretenberg.js-v0.59.0...barretenberg.js-v0.60.0)
(2024-10-24)


### Features

* Eccvm translator zk sumcheck
([#9199](AztecProtocol/aztec-packages#9199))
([c7d4572](AztecProtocol/aztec-packages@c7d4572))


### Miscellaneous

* Remove noir_js_backend_barretenberg
([#9338](AztecProtocol/aztec-packages#9338))
([cefe3d9](AztecProtocol/aztec-packages@cefe3d9))
</details>

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

##
[0.60.0](AztecProtocol/aztec-packages@aztec-packages-v0.59.0...aztec-packages-v0.60.0)
(2024-10-24)


### ⚠ BREAKING CHANGES

* replace usage of vector in keccakf1600 input with array
([#9350](AztecProtocol/aztec-packages#9350))
* TXE single execution env
([#9183](AztecProtocol/aztec-packages#9183))
* remove hash opcodes from AVM
([#9209](AztecProtocol/aztec-packages#9209))
* remove delegate call and storage address
([#9330](AztecProtocol/aztec-packages#9330))

### Features

* Apella
([#9084](AztecProtocol/aztec-packages#9084))
([205ce69](AztecProtocol/aztec-packages@205ce69))
* **avm:** Full poseidon2
([#9141](AztecProtocol/aztec-packages#9141))
([eae7587](AztecProtocol/aztec-packages@eae7587))
* Bytes to fields and back
([#8590](AztecProtocol/aztec-packages#8590))
([65b8493](AztecProtocol/aztec-packages@65b8493))
* Constrain protocol VK hashing
([#9304](AztecProtocol/aztec-packages#9304))
([3d17e13](AztecProtocol/aztec-packages@3d17e13))
* **docs:** Nits
([#8948](AztecProtocol/aztec-packages#8948))
([008fdd1](AztecProtocol/aztec-packages@008fdd1))
* Eccvm translator zk sumcheck
([#9199](AztecProtocol/aztec-packages#9199))
([c7d4572](AztecProtocol/aztec-packages@c7d4572))
* Gerousia
([#8942](AztecProtocol/aztec-packages#8942))
([54b5ba2](AztecProtocol/aztec-packages@54b5ba2))
* Get logs by tags
([#9353](AztecProtocol/aztec-packages#9353))
([719c33e](AztecProtocol/aztec-packages@719c33e))
* Handle reorgs on sequencer
([#9201](AztecProtocol/aztec-packages#9201))
([d4dea16](AztecProtocol/aztec-packages@d4dea16))
* **interpreter:** Comptime derive generators
(noir-lang/noir#6303)
([a166203](AztecProtocol/aztec-packages@a166203))
* Introduce default public keys and replace empty public keys
([#9277](AztecProtocol/aztec-packages#9277))
([47718ea](AztecProtocol/aztec-packages@47718ea))
* Modify private calldata to use public keys
([#9276](AztecProtocol/aztec-packages#9276))
([e42e219](AztecProtocol/aztec-packages@e42e219))
* New formatter (noir-lang/noir#6300)
([a166203](AztecProtocol/aztec-packages@a166203))
* **nr:** Serde for signed ints
([#9211](AztecProtocol/aztec-packages#9211))
([66f31c7](AztecProtocol/aztec-packages@66f31c7))
* Publicly accessible bootstrap cache
([#9335](AztecProtocol/aztec-packages#9335))
([28392d5](AztecProtocol/aztec-packages@28392d5))
* Remove hash opcodes from AVM
([#9209](AztecProtocol/aztec-packages#9209))
([e6db535](AztecProtocol/aztec-packages@e6db535)),
closes
[#9208](AztecProtocol/aztec-packages#9208)
* Sequencer cast votes
([#9247](AztecProtocol/aztec-packages#9247))
([bd05d87](AztecProtocol/aztec-packages@bd05d87))
* Sha256 refactoring and benchmark with longer input
(noir-lang/noir#6318)
([a166203](AztecProtocol/aztec-packages@a166203))
* **ssa:** Various mem2reg reverts to reduce memory and compilation time
(noir-lang/noir#6307)
([a166203](AztecProtocol/aztec-packages@a166203))
* Sync from aztec-packages (noir-lang/noir#6301)
([a166203](AztecProtocol/aztec-packages@a166203))
* Translator on Shplemini
([#9329](AztecProtocol/aztec-packages#9329))
([21fa3cf](AztecProtocol/aztec-packages@21fa3cf))
* TXE single execution env
([#9183](AztecProtocol/aztec-packages#9183))
([1d1d76d](AztecProtocol/aztec-packages@1d1d76d))
* Warn about private types leaking in public functions and struct fields
(noir-lang/noir#6296)
([a166203](AztecProtocol/aztec-packages@a166203))


### Bug Fixes

* 4epochs kind test et al
([#9358](AztecProtocol/aztec-packages#9358))
([e480e6b](AztecProtocol/aztec-packages@e480e6b))
* Allow array map on empty arrays
(noir-lang/noir#6305)
([a166203](AztecProtocol/aztec-packages@a166203))
* **avm:** Public dispatch in proving tests
([#9331](AztecProtocol/aztec-packages#9331))
([42e5221](AztecProtocol/aztec-packages@42e5221))
* Barretenberg readme scare warning
([#9313](AztecProtocol/aztec-packages#9313))
([f759d55](AztecProtocol/aztec-packages@f759d55))
* Broken constants gen
([#9387](AztecProtocol/aztec-packages#9387))
([eb7bc6b](AztecProtocol/aztec-packages@eb7bc6b))
* Ci github clone edge case
([#9320](AztecProtocol/aztec-packages#9320))
([15abe6f](AztecProtocol/aztec-packages@15abe6f))
* **ci:** Report 4 epochs true
([#9346](AztecProtocol/aztec-packages#9346))
([1ce0fa5](AztecProtocol/aztec-packages@1ce0fa5))
* Display function name and body when inlining recursion limit hit
(noir-lang/noir#6291)
([a166203](AztecProtocol/aztec-packages@a166203))
* Do not warn on unused self in traits
(noir-lang/noir#6298)
([a166203](AztecProtocol/aztec-packages@a166203))
* Enforce correctness of decompositions performed at compile time
(noir-lang/noir#6278)
([a166203](AztecProtocol/aztec-packages@a166203))
* Reject invalid expression with in CLI parser
(noir-lang/noir#6287)
([a166203](AztecProtocol/aztec-packages@a166203))
* Remove reliance on invalid decompositions in selector calculation
([#9337](AztecProtocol/aztec-packages#9337))
([c8e4260](AztecProtocol/aztec-packages@c8e4260))
* Support empty epochs
([#9341](AztecProtocol/aztec-packages#9341))
([9dda91e](AztecProtocol/aztec-packages@9dda91e))
* Use github.actor on publish workflow dispatch
([#9324](AztecProtocol/aztec-packages#9324))
([5fa660d](AztecProtocol/aztec-packages@5fa660d))


### Miscellaneous

* **avm:** Some cleaning in avm prover
([#9311](AztecProtocol/aztec-packages#9311))
([523aa23](AztecProtocol/aztec-packages@523aa23))
* Bump node types
([#9397](AztecProtocol/aztec-packages#9397))
([763d5b1](AztecProtocol/aztec-packages@763d5b1))
* Copying world state binary to yarn project is on generate
([#9194](AztecProtocol/aztec-packages#9194))
([8d75dd4](AztecProtocol/aztec-packages@8d75dd4))
* Disable bench-process-history
([#9360](AztecProtocol/aztec-packages#9360))
([8e6734e](AztecProtocol/aztec-packages@8e6734e))
* **docs:** Refactoring guides and some other nits
(noir-lang/noir#6175)
([a166203](AztecProtocol/aztec-packages@a166203))
* Fix and re-enable prover coordination e2e test
([#9344](AztecProtocol/aztec-packages#9344))
([3a1a62c](AztecProtocol/aztec-packages@3a1a62c))
* Implement Fq add
([#9354](AztecProtocol/aztec-packages#9354))
([1711fac](AztecProtocol/aztec-packages@1711fac))
* Minor test cleanup
([#9339](AztecProtocol/aztec-packages#9339))
([a2ed567](AztecProtocol/aztec-packages@a2ed567))
* Print out gas at start and end of each enqueued call
([#9377](AztecProtocol/aztec-packages#9377))
([29c0b95](AztecProtocol/aztec-packages@29c0b95))
* Quick account manager refactor
([#9357](AztecProtocol/aztec-packages#9357))
([648d043](AztecProtocol/aztec-packages@648d043))
* Quick keystore refactor
([#9355](AztecProtocol/aztec-packages#9355))
([31b9999](AztecProtocol/aztec-packages@31b9999))
* Redo typo PR by pucedoteth
([#9385](AztecProtocol/aztec-packages#9385))
([fd1a0d1](AztecProtocol/aztec-packages@fd1a0d1))
* Release Noir(0.36.0) (noir-lang/noir#6213)
([a166203](AztecProtocol/aztec-packages@a166203))
* Remove dead function (noir-lang/noir#6308)
([a166203](AztecProtocol/aztec-packages@a166203))
* Remove delegate call and storage address
([#9330](AztecProtocol/aztec-packages#9330))
([465f88e](AztecProtocol/aztec-packages@465f88e))
* Remove noir_js_backend_barretenberg
([#9338](AztecProtocol/aztec-packages#9338))
([cefe3d9](AztecProtocol/aztec-packages@cefe3d9))
* Remove unnecessary `is_integral_bit_size` function
([#9352](AztecProtocol/aztec-packages#9352))
([ac8e6d7](AztecProtocol/aztec-packages@ac8e6d7))
* Remove usage of slices in pedersen hash
(noir-lang/noir#6295)
([a166203](AztecProtocol/aztec-packages@a166203))
* Replace relative paths to noir-protocol-circuits
([32bd7b9](AztecProtocol/aztec-packages@32bd7b9))
* Replace relative paths to noir-protocol-circuits
([add4605](AztecProtocol/aztec-packages@add4605))
* Replace relative paths to noir-protocol-circuits
([8cb89af](AztecProtocol/aztec-packages@8cb89af))
* Replace usage of vector in keccakf1600 input with array
([#9350](AztecProtocol/aztec-packages#9350))
([cb58490](AztecProtocol/aztec-packages@cb58490))
* Scenario for upgrading gerousia
([#9246](AztecProtocol/aztec-packages#9246))
([66f59d6](AztecProtocol/aztec-packages@66f59d6))
* Silence cache-download.sh
([#9317](AztecProtocol/aztec-packages#9317))
([314d9d2](AztecProtocol/aztec-packages@314d9d2))
* Test 4epochs in native-network
([#9309](AztecProtocol/aztec-packages#9309))
([ddb312a](AztecProtocol/aztec-packages@ddb312a))
* Unstake the bond when the proof lands
([#9363](AztecProtocol/aztec-packages#9363))
([b25b913](AztecProtocol/aztec-packages@b25b913))
* Update `noir-edwards` repo to point at `noir-lang` org
(noir-lang/noir#6323)
([a166203](AztecProtocol/aztec-packages@a166203))
* Updated NFT flows
([#9150](AztecProtocol/aztec-packages#9150))
([407f8b4](AztecProtocol/aztec-packages@407f8b4))
</details>

<details><summary>barretenberg: 0.60.0</summary>

##
[0.60.0](AztecProtocol/aztec-packages@barretenberg-v0.59.0...barretenberg-v0.60.0)
(2024-10-24)


### ⚠ BREAKING CHANGES

* replace usage of vector in keccakf1600 input with array
([#9350](AztecProtocol/aztec-packages#9350))
* remove hash opcodes from AVM
([#9209](AztecProtocol/aztec-packages#9209))
* remove delegate call and storage address
([#9330](AztecProtocol/aztec-packages#9330))

### Features

* **avm:** Full poseidon2
([#9141](AztecProtocol/aztec-packages#9141))
([eae7587](AztecProtocol/aztec-packages@eae7587))
* Eccvm translator zk sumcheck
([#9199](AztecProtocol/aztec-packages#9199))
([c7d4572](AztecProtocol/aztec-packages@c7d4572))
* Remove hash opcodes from AVM
([#9209](AztecProtocol/aztec-packages#9209))
([e6db535](AztecProtocol/aztec-packages@e6db535)),
closes
[#9208](AztecProtocol/aztec-packages#9208)
* Translator on Shplemini
([#9329](AztecProtocol/aztec-packages#9329))
([21fa3cf](AztecProtocol/aztec-packages@21fa3cf))


### Bug Fixes

* **avm:** Public dispatch in proving tests
([#9331](AztecProtocol/aztec-packages#9331))
([42e5221](AztecProtocol/aztec-packages@42e5221))
* Barretenberg readme scare warning
([#9313](AztecProtocol/aztec-packages#9313))
([f759d55](AztecProtocol/aztec-packages@f759d55))


### Miscellaneous

* **avm:** Some cleaning in avm prover
([#9311](AztecProtocol/aztec-packages#9311))
([523aa23](AztecProtocol/aztec-packages@523aa23))
* Copying world state binary to yarn project is on generate
([#9194](AztecProtocol/aztec-packages#9194))
([8d75dd4](AztecProtocol/aztec-packages@8d75dd4))
* Remove delegate call and storage address
([#9330](AztecProtocol/aztec-packages#9330))
([465f88e](AztecProtocol/aztec-packages@465f88e))
* Remove noir_js_backend_barretenberg
([#9338](AztecProtocol/aztec-packages#9338))
([cefe3d9](AztecProtocol/aztec-packages@cefe3d9))
* Replace usage of vector in keccakf1600 input with array
([#9350](AztecProtocol/aztec-packages#9350))
([cb58490](AztecProtocol/aztec-packages@cb58490))
</details>

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

Successfully merging this pull request may close these issues.

4 participants