-
Notifications
You must be signed in to change notification settings - Fork 317
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: indexed protocol contracts tree #11897
Conversation
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.
Note that I didn't change anything that caused these fixtures to update - they hadn't been updated in a while because the final address value was never tested, so passed when it should have failed.
This is because the tests set protocol_contract_tree_root
to be 0, so the contract address checks would pass even if there was a computed address mismatch (see old code in validate_contract_address
for the if statement).
const defaultVkHash = await hashVK(new Array(CLIENT_IVC_VERIFICATION_KEY_LENGTH_IN_FIELDS).fill(Fr.ZERO)); | ||
contract.privateFunctions.forEach(p => (p.vkHash = defaultVkHash)); |
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 edited this because there was a mismatch in the noir fixtures - the nr versioned hashed the vk, while the ts did not. This never became an issue because of the above comment.
Changes to circuit sizes
🧾 Summary (100% most significant diffs)
Full diff report 👇
|
Docs PreviewHey there! 👋 You can check your preview at https://67adcdaea0dfca717548fdab--aztec-docs-dev.netlify.app |
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.76.4</summary> ## [0.76.4](aztec-package-v0.76.3...aztec-package-v0.76.4) (2025-02-13) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.76.4</summary> ## [0.76.4](barretenberg.js-v0.76.3...barretenberg.js-v0.76.4) (2025-02-13) ### Miscellaneous * Unify webpack dev server versions ([#11965](#11965)) ([921d2cd](921d2cd)) </details> <details><summary>aztec-packages: 0.76.4</summary> ## [0.76.4](aztec-packages-v0.76.3...aztec-packages-v0.76.4) (2025-02-13) ### Features * `FunctionDefinition::as_typed_expr` (noir-lang/noir#7358) ([5efdd57](5efdd57)) * Aes decryption oracle ([#11907](#11907)) ([c4ce913](c4ce913)) * **avm:** Constrained ec_add ([#11525](#11525)) ([f8fe602](f8fe602)) * **avm:** Interaction testing ([#11947](#11947)) ([fc647eb](fc647eb)) * **avm:** Relation microbenchmarks ([#11974](#11974)) ([95b581d](95b581d)) * **cli:** Add `--target-dir` option (noir-lang/noir#7350) ([5efdd57](5efdd57)) * Indexed protocol contracts tree ([#11897](#11897)) ([96e84d4](96e84d4)) * **performance:** Check sub operations against induction variables (noir-lang/noir#7356) ([5efdd57](5efdd57)) * **performance:** Use unchecked ops based upon known induction variables (noir-lang/noir#7344) ([5efdd57](5efdd57)) * Small blob fixes/improvements ([#11686](#11686)) ([4eab9fc](4eab9fc)) * Update fee model ([#11953](#11953)) ([2798d58](2798d58)) * Use brillig optimized sha256 ([#11696](#11696)) ([438c905](438c905)) ### Bug Fixes * Ci fixes ([#11973](#11973)) ([6386f4e](6386f4e)) * **cli:** Only lock the packages selected in the workspace (noir-lang/noir#7345) ([5efdd57](5efdd57)) * Deterministic generation of vkeys in ts ([#11951](#11951)) ([7901cac](7901cac)) * Incorrect secondary file in LSP errors (noir-lang/noir#7347) ([5efdd57](5efdd57)) * Lock git dependencies folder when resolving workspace (noir-lang/noir#7327) ([5efdd57](5efdd57)) * Perform SSA constraints check on final SSA (noir-lang/noir#7334) ([5efdd57](5efdd57)) * Remove deprecated artifacts ([#11979](#11979)) ([4f0dce7](4f0dce7)) * Remove serial queue in broker facade ([#11956](#11956)) ([3485b52](3485b52)) * **ssa:** Make the lookback feature opt-in (noir-lang/noir#7190) ([5efdd57](5efdd57)) ### Miscellaneous * **avm:** Tracegen interactions assertion ([#11972](#11972)) ([b865ccc](b865ccc)) * Avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357) ([5efdd57](5efdd57)) * Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341) ([5efdd57](5efdd57)) * Bump devnet boot node resources ([#11958](#11958)) ([bbcdefc](bbcdefc)) * **ci:** Add Vecs and vecs to cspell (noir-lang/noir#7342) ([5efdd57](5efdd57)) * Deprecate keccak256 (noir-lang/noir#7361) ([5efdd57](5efdd57)) * Fix warnings (noir-lang/noir#7330) ([5efdd57](5efdd57)) * Mark sha256 as deprecated from the stdlib (noir-lang/noir#7351) ([5efdd57](5efdd57)) * Moving storage slot out of `NoteHeader` ([#11904](#11904)) ([8c4bb1c](8c4bb1c)) * Normalize path displayed by `nargo new` (noir-lang/noir#7328) ([5efdd57](5efdd57)) * Redo typo PR by osrm (noir-lang/noir#7238) ([5efdd57](5efdd57)) * Release Noir(1.0.0-beta.2) (noir-lang/noir#6914) ([5efdd57](5efdd57)) * Remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337) ([5efdd57](5efdd57)) * Remove misleading output from `nargo check` (noir-lang/noir#7329) ([5efdd57](5efdd57)) * Remove some unused types and functions in the AST (noir-lang/noir#7339) ([5efdd57](5efdd57)) * Remove unnecessary constants (noir-lang/noir#7326) ([5efdd57](5efdd57)) * Revive browser test before killing it ([#11964](#11964)) ([cb47cc0](cb47cc0)) * Split acirgen into multiple modules (noir-lang/noir#7310) ([5efdd57](5efdd57)) * Unify webpack dev server versions ([#11965](#11965)) ([921d2cd](921d2cd)) </details> <details><summary>barretenberg: 0.76.4</summary> ## [0.76.4](barretenberg-v0.76.3...barretenberg-v0.76.4) (2025-02-13) ### Features * Aes decryption oracle ([#11907](#11907)) ([c4ce913](c4ce913)) * **avm:** Constrained ec_add ([#11525](#11525)) ([f8fe602](f8fe602)) * **avm:** Interaction testing ([#11947](#11947)) ([fc647eb](fc647eb)) * **avm:** Relation microbenchmarks ([#11974](#11974)) ([95b581d](95b581d)) ### Miscellaneous * **avm:** Tracegen interactions assertion ([#11972](#11972)) ([b865ccc](b865ccc)) * Unify webpack dev server versions ([#11965](#11965)) ([921d2cd](921d2cd)) </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.76.4</summary> ## [0.76.4](AztecProtocol/aztec-packages@aztec-package-v0.76.3...aztec-package-v0.76.4) (2025-02-13) ### Miscellaneous * **aztec-package:** Synchronize aztec-packages versions </details> <details><summary>barretenberg.js: 0.76.4</summary> ## [0.76.4](AztecProtocol/aztec-packages@barretenberg.js-v0.76.3...barretenberg.js-v0.76.4) (2025-02-13) ### Miscellaneous * Unify webpack dev server versions ([#11965](AztecProtocol/aztec-packages#11965)) ([921d2cd](AztecProtocol/aztec-packages@921d2cd)) </details> <details><summary>aztec-packages: 0.76.4</summary> ## [0.76.4](AztecProtocol/aztec-packages@aztec-packages-v0.76.3...aztec-packages-v0.76.4) (2025-02-13) ### Features * `FunctionDefinition::as_typed_expr` (noir-lang/noir#7358) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Aes decryption oracle ([#11907](AztecProtocol/aztec-packages#11907)) ([c4ce913](AztecProtocol/aztec-packages@c4ce913)) * **avm:** Constrained ec_add ([#11525](AztecProtocol/aztec-packages#11525)) ([f8fe602](AztecProtocol/aztec-packages@f8fe602)) * **avm:** Interaction testing ([#11947](AztecProtocol/aztec-packages#11947)) ([fc647eb](AztecProtocol/aztec-packages@fc647eb)) * **avm:** Relation microbenchmarks ([#11974](AztecProtocol/aztec-packages#11974)) ([95b581d](AztecProtocol/aztec-packages@95b581d)) * **cli:** Add `--target-dir` option (noir-lang/noir#7350) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Indexed protocol contracts tree ([#11897](AztecProtocol/aztec-packages#11897)) ([96e84d4](AztecProtocol/aztec-packages@96e84d4)) * **performance:** Check sub operations against induction variables (noir-lang/noir#7356) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * **performance:** Use unchecked ops based upon known induction variables (noir-lang/noir#7344) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Small blob fixes/improvements ([#11686](AztecProtocol/aztec-packages#11686)) ([4eab9fc](AztecProtocol/aztec-packages@4eab9fc)) * Update fee model ([#11953](AztecProtocol/aztec-packages#11953)) ([2798d58](AztecProtocol/aztec-packages@2798d58)) * Use brillig optimized sha256 ([#11696](AztecProtocol/aztec-packages#11696)) ([438c905](AztecProtocol/aztec-packages@438c905)) ### Bug Fixes * Ci fixes ([#11973](AztecProtocol/aztec-packages#11973)) ([6386f4e](AztecProtocol/aztec-packages@6386f4e)) * **cli:** Only lock the packages selected in the workspace (noir-lang/noir#7345) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Deterministic generation of vkeys in ts ([#11951](AztecProtocol/aztec-packages#11951)) ([7901cac](AztecProtocol/aztec-packages@7901cac)) * Incorrect secondary file in LSP errors (noir-lang/noir#7347) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Lock git dependencies folder when resolving workspace (noir-lang/noir#7327) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Perform SSA constraints check on final SSA (noir-lang/noir#7334) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Remove deprecated artifacts ([#11979](AztecProtocol/aztec-packages#11979)) ([4f0dce7](AztecProtocol/aztec-packages@4f0dce7)) * Remove serial queue in broker facade ([#11956](AztecProtocol/aztec-packages#11956)) ([3485b52](AztecProtocol/aztec-packages@3485b52)) * **ssa:** Make the lookback feature opt-in (noir-lang/noir#7190) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) ### Miscellaneous * **avm:** Tracegen interactions assertion ([#11972](AztecProtocol/aztec-packages#11972)) ([b865ccc](AztecProtocol/aztec-packages@b865ccc)) * Avoid doing all brillig integer arithmetic on u128s (noir-lang/noir#7357) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Basic test for MSM in Noir to catch performance improvements and regressions (noir-lang/noir#7341) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Bump devnet boot node resources ([#11958](AztecProtocol/aztec-packages#11958)) ([bbcdefc](AztecProtocol/aztec-packages@bbcdefc)) * **ci:** Add Vecs and vecs to cspell (noir-lang/noir#7342) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Deprecate keccak256 (noir-lang/noir#7361) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Fix warnings (noir-lang/noir#7330) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Mark sha256 as deprecated from the stdlib (noir-lang/noir#7351) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Moving storage slot out of `NoteHeader` ([#11904](AztecProtocol/aztec-packages#11904)) ([8c4bb1c](AztecProtocol/aztec-packages@8c4bb1c)) * Normalize path displayed by `nargo new` (noir-lang/noir#7328) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Redo typo PR by osrm (noir-lang/noir#7238) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Release Noir(1.0.0-beta.2) (noir-lang/noir#6914) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Remove foreign calls array from Brillig VM constructor (noir-lang/noir#7337) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Remove misleading output from `nargo check` (noir-lang/noir#7329) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Remove some unused types and functions in the AST (noir-lang/noir#7339) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Remove unnecessary constants (noir-lang/noir#7326) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Revive browser test before killing it ([#11964](AztecProtocol/aztec-packages#11964)) ([cb47cc0](AztecProtocol/aztec-packages@cb47cc0)) * Split acirgen into multiple modules (noir-lang/noir#7310) ([5efdd57](AztecProtocol/aztec-packages@5efdd57)) * Unify webpack dev server versions ([#11965](AztecProtocol/aztec-packages#11965)) ([921d2cd](AztecProtocol/aztec-packages@921d2cd)) </details> <details><summary>barretenberg: 0.76.4</summary> ## [0.76.4](AztecProtocol/aztec-packages@barretenberg-v0.76.3...barretenberg-v0.76.4) (2025-02-13) ### Features * Aes decryption oracle ([#11907](AztecProtocol/aztec-packages#11907)) ([c4ce913](AztecProtocol/aztec-packages@c4ce913)) * **avm:** Constrained ec_add ([#11525](AztecProtocol/aztec-packages#11525)) ([f8fe602](AztecProtocol/aztec-packages@f8fe602)) * **avm:** Interaction testing ([#11947](AztecProtocol/aztec-packages#11947)) ([fc647eb](AztecProtocol/aztec-packages@fc647eb)) * **avm:** Relation microbenchmarks ([#11974](AztecProtocol/aztec-packages#11974)) ([95b581d](AztecProtocol/aztec-packages@95b581d)) ### Miscellaneous * **avm:** Tracegen interactions assertion ([#11972](AztecProtocol/aztec-packages#11972)) ([b865ccc](AztecProtocol/aztec-packages@b865ccc)) * Unify webpack dev server versions ([#11965](AztecProtocol/aztec-packages#11965)) ([921d2cd](AztecProtocol/aztec-packages@921d2cd)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Closes #11843
This PR converts the protocol contract address tree to an indexed tree. This is so:
This required more changes than expected because the old code had this statement:
For many tests in and out of nr, we input
protocol_contract_tree_root = 0
. That meant that even if we weren't calling a protocol contract address, an incorrectcontract_address
would pass the assert statement. The current code does not allow this, so I had to update some old fixtures and provide a real root for all calls (not just protocol contract ones).