-
Notifications
You must be signed in to change notification settings - Fork 293
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!: Unify ABIs between nargo and yarn-project #3989
Conversation
e608bc4
to
f2911a7
Compare
f2911a7
to
b87561a
Compare
New dependencies detected. Learn more about Socket for GitHub ↗︎
|
1efd474
to
76f03df
Compare
76f03df
to
2914c3f
Compare
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 contracts are deployed in the tx.
Transaction processing duration by data writes.
|
8ddb04b
to
0864f80
Compare
About this, I suggest creating a new types-only package in the Noir repo with typescript types for Noir abi and compilation artifacts (and potentially a This would allow us to remove the type info from within the rust files, and also from |
That works for me as long as we have tests to check for drift against these types. |
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.20.0</summary> ## [0.20.0](aztec-packages-v0.19.0...aztec-packages-v0.20.0) (2024-01-22) ### ⚠ BREAKING CHANGES * nullifier key ([#4166](#4166)) * Unify ABIs between nargo and yarn-project ([#3989](#3989)) ### Features * **avm:** Add internal jump and return, adjust control flow ([#4140](#4140)) ([b77afb1](b77afb1)) * **avm:** Better field arithmetic ([#4142](#4142)) ([7308e31](7308e31)) * **avm:** Encode TS AVM instructions as bytecode, especially for testing ([#4115](#4115)) ([de6e2ed](de6e2ed)) * **avm:** Improve interpreter errors and tests ([#4173](#4173)) ([f0fb594](f0fb594)) * Benchmark commit function ([#4178](#4178)) ([ea84085](ea84085)) * Goblin acir composer ([#4112](#4112)) ([5e85b92](5e85b92)) * Nullifier key ([#4166](#4166)) ([7c07665](7c07665)) * **public-vm:** Avm journal ([#3945](#3945)) ([5658468](5658468)) * Publish block body separately ([#4118](#4118)) ([a04e1e3](a04e1e3)), closes [#3944](#3944) * Unify ABIs between nargo and yarn-project ([#3989](#3989)) ([d083438](d083438)) * Update noir ([#4082](#4082)) ([0e6037a](0e6037a)) * Updating L2 Block encoding and `Rollup.process` function ([#4015](#4015)) ([2d8eb37](2d8eb37)), closes [#3936](#3936) [#4010](#4010) [#4011](#4011) ### Bug Fixes * Bb.js version in yarn lockfile ([7b96760](7b96760)) * **build:** Publish bb.js from CCI ([#4151](#4151)) ([09dbfcd](09dbfcd)) * Make CMake version warning fatal ([#4144](#4144)) ([b1443fa](b1443fa)) * Misleading error message in `PublicState::read` ([#4149](#4149)) ([fa4d919](fa4d919)) * Nargo destination path in bootstrap cache ([#4103](#4103)) ([4901309](4901309)) * Reinstate Ultra arith rec verifier test ([#3886](#3886)) ([995973b](995973b)) * Upload_benchmarks_to_s3.sh missing exit ([#4046](#4046)) ([52a9327](52a9327)) ### Miscellaneous * Archiver store ([#3966](#3966)) ([af2be87](af2be87)) * **avm:** List avm opcodes in a (enum => class) map in TS ([#4113](#4113)) ([dee564a](dee564a)) * **bb:** More concise namespaces, plookup => bb::plookup ([#4146](#4146)) ([14d39ed](14d39ed)) * **bb:** Namespace plonk::stdlib => stdlib ([#4117](#4117)) ([cd2f67f](cd2f67f)) * **bb:** Namespace proof_system=>bb ([#4116](#4116)) ([7438db3](7438db3)) * **docs:** Aztec-up doesnt need `latest`, remove warnings around sandbox/cli npm pkgs ([#4138](#4138)) ([2bbf7a9](2bbf7a9)) * **docs:** Update js release notes for 0.18.0 ([#4051](#4051)) ([bdbe963](bdbe963)) * **docs:** Update lsp install instructions ([#4110](#4110)) ([3138816](3138816)), closes [#4098](#4098) * Dont mirror build-system mirror_repos.yml ([#4067](#4067)) ([04f8e0d](04f8e0d)) * Fixes many broken urls ([#4109](#4109)) ([41ae75c](41ae75c)) * Remove dependency cycles in `sequencer-client` ([#4017](#4017)) ([fe4538b](fe4538b)) * Remove lodash times in favor of foundation fn ([#3877](#3877)) ([a10eef0](a10eef0)) * Remove mutex dependency ([#4160](#4160)) ([3b82be0](3b82be0)) * Remove unnecessary computation ([#4133](#4133)) ([f35bdb8](f35bdb8)) * Remove unused noir-version json ([#4105](#4105)) ([afca819](afca819)) * Remove unwanted submodules ([#4085](#4085)) ([dda7c9c](dda7c9c)) * Replace relative paths to noir-protocol-circuits ([59feeb5](59feeb5)) * Replace relative paths to noir-protocol-circuits ([44d9136](44d9136)) * Replace relative paths to noir-protocol-circuits ([84b0bad](84b0bad)) * Simplify and fix DocsExample contract, e2e singleton + codegen to not show internal methods ([#4169](#4169)) ([38d262e](38d262e)) * Update noir ([#4168](#4168)) ([d40ad06](d40ad06)) ### Documentation * Update migration notes ([#4175](#4175)) ([dbc8174](dbc8174)) * **yellow-paper:** Update circuit sections for nullifier keys and static calls ([#4155](#4155)) ([ed71a57](ed71a57)) * **yellowpaper:** Refresh of avm instruction set ([#4081](#4081)) ([52162ee](52162ee)) </details> <details><summary>barretenberg.js: 0.20.0</summary> ## [0.20.0](barretenberg.js-v0.19.0...barretenberg.js-v0.20.0) (2024-01-22) ### Features * Goblin acir composer ([#4112](#4112)) ([5e85b92](5e85b92)) </details> <details><summary>barretenberg: 0.20.0</summary> ## [0.20.0](barretenberg-v0.19.0...barretenberg-v0.20.0) (2024-01-22) ### Features * Benchmark commit function ([#4178](#4178)) ([ea84085](ea84085)) * Goblin acir composer ([#4112](#4112)) ([5e85b92](5e85b92)) ### Bug Fixes * Make CMake version warning fatal ([#4144](#4144)) ([b1443fa](b1443fa)) * Reinstate Ultra arith rec verifier test ([#3886](#3886)) ([995973b](995973b)) * Upload_benchmarks_to_s3.sh missing exit ([#4046](#4046)) ([52a9327](52a9327)) ### Miscellaneous * **bb:** More concise namespaces, plookup => bb::plookup ([#4146](#4146)) ([14d39ed](14d39ed)) * **bb:** Namespace plonk::stdlib => stdlib ([#4117](#4117)) ([cd2f67f](cd2f67f)) * **bb:** Namespace proof_system=>bb ([#4116](#4116)) ([7438db3](7438db3)) * Remove mutex dependency ([#4160](#4160)) ([3b82be0](3b82be0)) * Remove unwanted submodules ([#4085](#4085)) ([dda7c9c](dda7c9c)) </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-packages: 0.20.0</summary> ## [0.20.0](AztecProtocol/aztec-packages@aztec-packages-v0.19.0...aztec-packages-v0.20.0) (2024-01-22) ### ⚠ BREAKING CHANGES * nullifier key ([#4166](AztecProtocol/aztec-packages#4166)) * Unify ABIs between nargo and yarn-project ([#3989](AztecProtocol/aztec-packages#3989)) ### Features * **avm:** Add internal jump and return, adjust control flow ([#4140](AztecProtocol/aztec-packages#4140)) ([b77afb1](AztecProtocol/aztec-packages@b77afb1)) * **avm:** Better field arithmetic ([#4142](AztecProtocol/aztec-packages#4142)) ([7308e31](AztecProtocol/aztec-packages@7308e31)) * **avm:** Encode TS AVM instructions as bytecode, especially for testing ([#4115](AztecProtocol/aztec-packages#4115)) ([de6e2ed](AztecProtocol/aztec-packages@de6e2ed)) * **avm:** Improve interpreter errors and tests ([#4173](AztecProtocol/aztec-packages#4173)) ([f0fb594](AztecProtocol/aztec-packages@f0fb594)) * Benchmark commit function ([#4178](AztecProtocol/aztec-packages#4178)) ([ea84085](AztecProtocol/aztec-packages@ea84085)) * Goblin acir composer ([#4112](AztecProtocol/aztec-packages#4112)) ([5e85b92](AztecProtocol/aztec-packages@5e85b92)) * Nullifier key ([#4166](AztecProtocol/aztec-packages#4166)) ([7c07665](AztecProtocol/aztec-packages@7c07665)) * **public-vm:** Avm journal ([#3945](AztecProtocol/aztec-packages#3945)) ([5658468](AztecProtocol/aztec-packages@5658468)) * Publish block body separately ([#4118](AztecProtocol/aztec-packages#4118)) ([a04e1e3](AztecProtocol/aztec-packages@a04e1e3)), closes [#3944](AztecProtocol/aztec-packages#3944) * Unify ABIs between nargo and yarn-project ([#3989](AztecProtocol/aztec-packages#3989)) ([d083438](AztecProtocol/aztec-packages@d083438)) * Update noir ([#4082](AztecProtocol/aztec-packages#4082)) ([0e6037a](AztecProtocol/aztec-packages@0e6037a)) * Updating L2 Block encoding and `Rollup.process` function ([#4015](AztecProtocol/aztec-packages#4015)) ([2d8eb37](AztecProtocol/aztec-packages@2d8eb37)), closes [#3936](AztecProtocol/aztec-packages#3936) [#4010](AztecProtocol/aztec-packages#4010) [#4011](AztecProtocol/aztec-packages#4011) ### Bug Fixes * Bb.js version in yarn lockfile ([7b96760](AztecProtocol/aztec-packages@7b96760)) * **build:** Publish bb.js from CCI ([#4151](AztecProtocol/aztec-packages#4151)) ([09dbfcd](AztecProtocol/aztec-packages@09dbfcd)) * Make CMake version warning fatal ([#4144](AztecProtocol/aztec-packages#4144)) ([b1443fa](AztecProtocol/aztec-packages@b1443fa)) * Misleading error message in `PublicState::read` ([#4149](AztecProtocol/aztec-packages#4149)) ([fa4d919](AztecProtocol/aztec-packages@fa4d919)) * Nargo destination path in bootstrap cache ([#4103](AztecProtocol/aztec-packages#4103)) ([4901309](AztecProtocol/aztec-packages@4901309)) * Reinstate Ultra arith rec verifier test ([#3886](AztecProtocol/aztec-packages#3886)) ([995973b](AztecProtocol/aztec-packages@995973b)) * Upload_benchmarks_to_s3.sh missing exit ([#4046](AztecProtocol/aztec-packages#4046)) ([52a9327](AztecProtocol/aztec-packages@52a9327)) ### Miscellaneous * Archiver store ([#3966](AztecProtocol/aztec-packages#3966)) ([af2be87](AztecProtocol/aztec-packages@af2be87)) * **avm:** List avm opcodes in a (enum => class) map in TS ([#4113](AztecProtocol/aztec-packages#4113)) ([dee564a](AztecProtocol/aztec-packages@dee564a)) * **bb:** More concise namespaces, plookup => bb::plookup ([#4146](AztecProtocol/aztec-packages#4146)) ([14d39ed](AztecProtocol/aztec-packages@14d39ed)) * **bb:** Namespace plonk::stdlib => stdlib ([#4117](AztecProtocol/aztec-packages#4117)) ([cd2f67f](AztecProtocol/aztec-packages@cd2f67f)) * **bb:** Namespace proof_system=>bb ([#4116](AztecProtocol/aztec-packages#4116)) ([7438db3](AztecProtocol/aztec-packages@7438db3)) * **docs:** Aztec-up doesnt need `latest`, remove warnings around sandbox/cli npm pkgs ([#4138](AztecProtocol/aztec-packages#4138)) ([2bbf7a9](AztecProtocol/aztec-packages@2bbf7a9)) * **docs:** Update js release notes for 0.18.0 ([#4051](AztecProtocol/aztec-packages#4051)) ([bdbe963](AztecProtocol/aztec-packages@bdbe963)) * **docs:** Update lsp install instructions ([#4110](AztecProtocol/aztec-packages#4110)) ([3138816](AztecProtocol/aztec-packages@3138816)), closes [#4098](AztecProtocol/aztec-packages#4098) * Dont mirror build-system mirror_repos.yml ([#4067](AztecProtocol/aztec-packages#4067)) ([04f8e0d](AztecProtocol/aztec-packages@04f8e0d)) * Fixes many broken urls ([#4109](AztecProtocol/aztec-packages#4109)) ([41ae75c](AztecProtocol/aztec-packages@41ae75c)) * Remove dependency cycles in `sequencer-client` ([#4017](AztecProtocol/aztec-packages#4017)) ([fe4538b](AztecProtocol/aztec-packages@fe4538b)) * Remove lodash times in favor of foundation fn ([#3877](AztecProtocol/aztec-packages#3877)) ([a10eef0](AztecProtocol/aztec-packages@a10eef0)) * Remove mutex dependency ([#4160](AztecProtocol/aztec-packages#4160)) ([3b82be0](AztecProtocol/aztec-packages@3b82be0)) * Remove unnecessary computation ([#4133](AztecProtocol/aztec-packages#4133)) ([f35bdb8](AztecProtocol/aztec-packages@f35bdb8)) * Remove unused noir-version json ([#4105](AztecProtocol/aztec-packages#4105)) ([afca819](AztecProtocol/aztec-packages@afca819)) * Remove unwanted submodules ([#4085](AztecProtocol/aztec-packages#4085)) ([dda7c9c](AztecProtocol/aztec-packages@dda7c9c)) * Replace relative paths to noir-protocol-circuits ([59feeb5](AztecProtocol/aztec-packages@59feeb5)) * Replace relative paths to noir-protocol-circuits ([44d9136](AztecProtocol/aztec-packages@44d9136)) * Replace relative paths to noir-protocol-circuits ([84b0bad](AztecProtocol/aztec-packages@84b0bad)) * Simplify and fix DocsExample contract, e2e singleton + codegen to not show internal methods ([#4169](AztecProtocol/aztec-packages#4169)) ([38d262e](AztecProtocol/aztec-packages@38d262e)) * Update noir ([#4168](AztecProtocol/aztec-packages#4168)) ([d40ad06](AztecProtocol/aztec-packages@d40ad06)) ### Documentation * Update migration notes ([#4175](AztecProtocol/aztec-packages#4175)) ([dbc8174](AztecProtocol/aztec-packages@dbc8174)) * **yellow-paper:** Update circuit sections for nullifier keys and static calls ([#4155](AztecProtocol/aztec-packages#4155)) ([ed71a57](AztecProtocol/aztec-packages@ed71a57)) * **yellowpaper:** Refresh of avm instruction set ([#4081](AztecProtocol/aztec-packages#4081)) ([52162ee](AztecProtocol/aztec-packages@52162ee)) </details> <details><summary>barretenberg.js: 0.20.0</summary> ## [0.20.0](AztecProtocol/aztec-packages@barretenberg.js-v0.19.0...barretenberg.js-v0.20.0) (2024-01-22) ### Features * Goblin acir composer ([#4112](AztecProtocol/aztec-packages#4112)) ([5e85b92](AztecProtocol/aztec-packages@5e85b92)) </details> <details><summary>barretenberg: 0.20.0</summary> ## [0.20.0](AztecProtocol/aztec-packages@barretenberg-v0.19.0...barretenberg-v0.20.0) (2024-01-22) ### Features * Benchmark commit function ([#4178](AztecProtocol/aztec-packages#4178)) ([ea84085](AztecProtocol/aztec-packages@ea84085)) * Goblin acir composer ([#4112](AztecProtocol/aztec-packages#4112)) ([5e85b92](AztecProtocol/aztec-packages@5e85b92)) ### Bug Fixes * Make CMake version warning fatal ([#4144](AztecProtocol/aztec-packages#4144)) ([b1443fa](AztecProtocol/aztec-packages@b1443fa)) * Reinstate Ultra arith rec verifier test ([#3886](AztecProtocol/aztec-packages#3886)) ([995973b](AztecProtocol/aztec-packages@995973b)) * Upload_benchmarks_to_s3.sh missing exit ([#4046](AztecProtocol/aztec-packages#4046)) ([52a9327](AztecProtocol/aztec-packages@52a9327)) ### Miscellaneous * **bb:** More concise namespaces, plookup => bb::plookup ([#4146](AztecProtocol/aztec-packages#4146)) ([14d39ed](AztecProtocol/aztec-packages@14d39ed)) * **bb:** Namespace plonk::stdlib => stdlib ([#4117](AztecProtocol/aztec-packages#4117)) ([cd2f67f](AztecProtocol/aztec-packages@cd2f67f)) * **bb:** Namespace proof_system=>bb ([#4116](AztecProtocol/aztec-packages#4116)) ([7438db3](AztecProtocol/aztec-packages@7438db3)) * Remove mutex dependency ([#4160](AztecProtocol/aztec-packages#4160)) ([3b82be0](AztecProtocol/aztec-packages@3b82be0)) * Remove unwanted submodules ([#4085](AztecProtocol/aztec-packages#4085)) ([dda7c9c](AztecProtocol/aztec-packages@dda7c9c)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
This PR makes the cli compatible with the changes in #3989
Changes the output of `nargo` and `noir-wasm` to generate a single artifact that includes debug information. Compiled contracts now have a `file_map` at the root of the artifact, and a `debug_symbols` within each function. For consistency, compiled programs also have `file_map` and `debug_symbols`. Debug symbols are compressed and base64-encoded, as they were by the former `noir-compiler` postprocessing. The `debug` json artifact is no longer emitted. Removes all code related to generating `yarn-project`-specific ABIs from noir compiler. Instead, `types` now exposes a `loadContractArtifact` that renames fields as needed (and use camel instead of snake case), and is required when loading a noir contract artifact. Autogenerated types run this automatically. Since we are no longer post-processing artifacts, the `noir-contracts` project shape is changed. JSON files live in the `target` folder where nargo outputs them (this is not configurable), and are loaded by the autogenerated typescript interfaces from there. As part of the refactor, moves functions for getting functions debug info out of `acir-simulator` and into `types`. **Breaking change**: This removes the need to run `codegen` for using a compiled contract. However, when creating a new contract object from aztec.js, a dev needs to call `loadContractArtifact`. **Future changes**: Type information for a compilation artifact is now spread all over the place, and duplicated in more than one place. There are types defined within rust code in Noir as `[wasm_bindgen(typescript_custom_section)]`, others defined within typescript code in the `noir_wasm` package, others in `foundation`, and others in `types`. We should unify it in a single place. Fixes AztecProtocol#3812 Supersedes AztecProtocol#3906 Noir subrepo has been pushed to noir-lang/noir#4035 to run the Noir CI
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.20.0</summary> ## [0.20.0](AztecProtocol/aztec-packages@aztec-packages-v0.19.0...aztec-packages-v0.20.0) (2024-01-22) ### ⚠ BREAKING CHANGES * nullifier key ([AztecProtocol#4166](AztecProtocol#4166)) * Unify ABIs between nargo and yarn-project ([AztecProtocol#3989](AztecProtocol#3989)) ### Features * **avm:** Add internal jump and return, adjust control flow ([AztecProtocol#4140](AztecProtocol#4140)) ([b77afb1](AztecProtocol@b77afb1)) * **avm:** Better field arithmetic ([AztecProtocol#4142](AztecProtocol#4142)) ([7308e31](AztecProtocol@7308e31)) * **avm:** Encode TS AVM instructions as bytecode, especially for testing ([AztecProtocol#4115](AztecProtocol#4115)) ([de6e2ed](AztecProtocol@de6e2ed)) * **avm:** Improve interpreter errors and tests ([AztecProtocol#4173](AztecProtocol#4173)) ([f0fb594](AztecProtocol@f0fb594)) * Benchmark commit function ([AztecProtocol#4178](AztecProtocol#4178)) ([ea84085](AztecProtocol@ea84085)) * Goblin acir composer ([AztecProtocol#4112](AztecProtocol#4112)) ([5e85b92](AztecProtocol@5e85b92)) * Nullifier key ([AztecProtocol#4166](AztecProtocol#4166)) ([7c07665](AztecProtocol@7c07665)) * **public-vm:** Avm journal ([AztecProtocol#3945](AztecProtocol#3945)) ([5658468](AztecProtocol@5658468)) * Publish block body separately ([AztecProtocol#4118](AztecProtocol#4118)) ([a04e1e3](AztecProtocol@a04e1e3)), closes [AztecProtocol#3944](AztecProtocol#3944) * Unify ABIs between nargo and yarn-project ([AztecProtocol#3989](AztecProtocol#3989)) ([d083438](AztecProtocol@d083438)) * Update noir ([AztecProtocol#4082](AztecProtocol#4082)) ([0e6037a](AztecProtocol@0e6037a)) * Updating L2 Block encoding and `Rollup.process` function ([AztecProtocol#4015](AztecProtocol#4015)) ([2d8eb37](AztecProtocol@2d8eb37)), closes [AztecProtocol#3936](AztecProtocol#3936) [AztecProtocol#4010](AztecProtocol#4010) [AztecProtocol#4011](AztecProtocol#4011) ### Bug Fixes * Bb.js version in yarn lockfile ([7b96760](AztecProtocol@7b96760)) * **build:** Publish bb.js from CCI ([AztecProtocol#4151](AztecProtocol#4151)) ([09dbfcd](AztecProtocol@09dbfcd)) * Make CMake version warning fatal ([AztecProtocol#4144](AztecProtocol#4144)) ([b1443fa](AztecProtocol@b1443fa)) * Misleading error message in `PublicState::read` ([AztecProtocol#4149](AztecProtocol#4149)) ([fa4d919](AztecProtocol@fa4d919)) * Nargo destination path in bootstrap cache ([AztecProtocol#4103](AztecProtocol#4103)) ([4901309](AztecProtocol@4901309)) * Reinstate Ultra arith rec verifier test ([AztecProtocol#3886](AztecProtocol#3886)) ([995973b](AztecProtocol@995973b)) * Upload_benchmarks_to_s3.sh missing exit ([AztecProtocol#4046](AztecProtocol#4046)) ([52a9327](AztecProtocol@52a9327)) ### Miscellaneous * Archiver store ([AztecProtocol#3966](AztecProtocol#3966)) ([af2be87](AztecProtocol@af2be87)) * **avm:** List avm opcodes in a (enum => class) map in TS ([AztecProtocol#4113](AztecProtocol#4113)) ([dee564a](AztecProtocol@dee564a)) * **bb:** More concise namespaces, plookup => bb::plookup ([AztecProtocol#4146](AztecProtocol#4146)) ([14d39ed](AztecProtocol@14d39ed)) * **bb:** Namespace plonk::stdlib => stdlib ([AztecProtocol#4117](AztecProtocol#4117)) ([cd2f67f](AztecProtocol@cd2f67f)) * **bb:** Namespace proof_system=>bb ([AztecProtocol#4116](AztecProtocol#4116)) ([7438db3](AztecProtocol@7438db3)) * **docs:** Aztec-up doesnt need `latest`, remove warnings around sandbox/cli npm pkgs ([AztecProtocol#4138](AztecProtocol#4138)) ([2bbf7a9](AztecProtocol@2bbf7a9)) * **docs:** Update js release notes for 0.18.0 ([AztecProtocol#4051](AztecProtocol#4051)) ([bdbe963](AztecProtocol@bdbe963)) * **docs:** Update lsp install instructions ([AztecProtocol#4110](AztecProtocol#4110)) ([3138816](AztecProtocol@3138816)), closes [AztecProtocol#4098](AztecProtocol#4098) * Dont mirror build-system mirror_repos.yml ([AztecProtocol#4067](AztecProtocol#4067)) ([04f8e0d](AztecProtocol@04f8e0d)) * Fixes many broken urls ([AztecProtocol#4109](AztecProtocol#4109)) ([41ae75c](AztecProtocol@41ae75c)) * Remove dependency cycles in `sequencer-client` ([AztecProtocol#4017](AztecProtocol#4017)) ([fe4538b](AztecProtocol@fe4538b)) * Remove lodash times in favor of foundation fn ([AztecProtocol#3877](AztecProtocol#3877)) ([a10eef0](AztecProtocol@a10eef0)) * Remove mutex dependency ([AztecProtocol#4160](AztecProtocol#4160)) ([3b82be0](AztecProtocol@3b82be0)) * Remove unnecessary computation ([AztecProtocol#4133](AztecProtocol#4133)) ([f35bdb8](AztecProtocol@f35bdb8)) * Remove unused noir-version json ([AztecProtocol#4105](AztecProtocol#4105)) ([afca819](AztecProtocol@afca819)) * Remove unwanted submodules ([AztecProtocol#4085](AztecProtocol#4085)) ([dda7c9c](AztecProtocol@dda7c9c)) * Replace relative paths to noir-protocol-circuits ([59feeb5](AztecProtocol@59feeb5)) * Replace relative paths to noir-protocol-circuits ([44d9136](AztecProtocol@44d9136)) * Replace relative paths to noir-protocol-circuits ([84b0bad](AztecProtocol@84b0bad)) * Simplify and fix DocsExample contract, e2e singleton + codegen to not show internal methods ([AztecProtocol#4169](AztecProtocol#4169)) ([38d262e](AztecProtocol@38d262e)) * Update noir ([AztecProtocol#4168](AztecProtocol#4168)) ([d40ad06](AztecProtocol@d40ad06)) ### Documentation * Update migration notes ([AztecProtocol#4175](AztecProtocol#4175)) ([dbc8174](AztecProtocol@dbc8174)) * **yellow-paper:** Update circuit sections for nullifier keys and static calls ([AztecProtocol#4155](AztecProtocol#4155)) ([ed71a57](AztecProtocol@ed71a57)) * **yellowpaper:** Refresh of avm instruction set ([AztecProtocol#4081](AztecProtocol#4081)) ([52162ee](AztecProtocol@52162ee)) </details> <details><summary>barretenberg.js: 0.20.0</summary> ## [0.20.0](AztecProtocol/aztec-packages@barretenberg.js-v0.19.0...barretenberg.js-v0.20.0) (2024-01-22) ### Features * Goblin acir composer ([AztecProtocol#4112](AztecProtocol#4112)) ([5e85b92](AztecProtocol@5e85b92)) </details> <details><summary>barretenberg: 0.20.0</summary> ## [0.20.0](AztecProtocol/aztec-packages@barretenberg-v0.19.0...barretenberg-v0.20.0) (2024-01-22) ### Features * Benchmark commit function ([AztecProtocol#4178](AztecProtocol#4178)) ([ea84085](AztecProtocol@ea84085)) * Goblin acir composer ([AztecProtocol#4112](AztecProtocol#4112)) ([5e85b92](AztecProtocol@5e85b92)) ### Bug Fixes * Make CMake version warning fatal ([AztecProtocol#4144](AztecProtocol#4144)) ([b1443fa](AztecProtocol@b1443fa)) * Reinstate Ultra arith rec verifier test ([AztecProtocol#3886](AztecProtocol#3886)) ([995973b](AztecProtocol@995973b)) * Upload_benchmarks_to_s3.sh missing exit ([AztecProtocol#4046](AztecProtocol#4046)) ([52a9327](AztecProtocol@52a9327)) ### Miscellaneous * **bb:** More concise namespaces, plookup => bb::plookup ([AztecProtocol#4146](AztecProtocol#4146)) ([14d39ed](AztecProtocol@14d39ed)) * **bb:** Namespace plonk::stdlib => stdlib ([AztecProtocol#4117](AztecProtocol#4117)) ([cd2f67f](AztecProtocol@cd2f67f)) * **bb:** Namespace proof_system=>bb ([AztecProtocol#4116](AztecProtocol#4116)) ([7438db3](AztecProtocol@7438db3)) * Remove mutex dependency ([AztecProtocol#4160](AztecProtocol#4160)) ([3b82be0](AztecProtocol@3b82be0)) * Remove unwanted submodules ([AztecProtocol#4085](AztecProtocol#4085)) ([dda7c9c](AztecProtocol@dda7c9c)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
This PR makes the cli compatible with the changes in AztecProtocol#3989
Changes the output of
nargo
andnoir-wasm
to generate a single artifact that includes debug information. Compiled contracts now have afile_map
at the root of the artifact, and adebug_symbols
within each function. For consistency, compiled programs also havefile_map
anddebug_symbols
. Debug symbols are compressed and base64-encoded, as they were by the formernoir-compiler
postprocessing. Thedebug
json artifact is no longer emitted.Removes all code related to generating
yarn-project
-specific ABIs from noir compiler. Instead,types
now exposes aloadContractArtifact
that renames fields as needed (and use camel instead of snake case), and is required when loading a noir contract artifact. Autogenerated types run this automatically.Since we are no longer post-processing artifacts, the
noir-contracts
project shape is changed. JSON files live in thetarget
folder where nargo outputs them (this is not configurable), and are loaded by the autogenerated typescript interfaces from there.As part of the refactor, moves functions for getting functions debug info out of
acir-simulator
and intotypes
.Breaking change: This removes the need to run
codegen
for using a compiled contract. However, when creating a new contract object from aztec.js, a dev needs to callloadContractArtifact
.Future changes: Type information for a compilation artifact is now spread all over the place, and duplicated in more than one place. There are types defined within rust code in Noir as
[wasm_bindgen(typescript_custom_section)]
, others defined within typescript code in thenoir_wasm
package, others infoundation
, and others intypes
. We should unify it in a single place.Fixes #3812
Supersedes #3906
Noir subrepo has been pushed to noir-lang/noir#4035 to run the Noir CI