chore: remove obsolete no_predicates wrappers (#7729) - #24050
Merged
Conversation
Removes the #[no_predicates] + #[contract_library_method] wrappers around recursive contract interface calls in the token and storage proof test contracts. Compiling with and without the wrappers produces byte-identical bytecode for all affected functions (verified with bb gates --scheme chonk: transfer 5602 opcodes / _recurse_subtract_balance 13175 opcodes / storage_proof 18130 opcodes / verify_storage_proof_path_recursively 55575 opcodes, unchanged), so the manual optimization is no longer needed.
Collaborator
Flakey Tests🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry. |
This was referenced Jul 21, 2026
rangozd
pushed a commit
to rangozd/aztec-packages
that referenced
this pull request
Aug 5, 2026
BEGIN_COMMIT_OVERRIDE chore: remove obsolete no_predicates wrappers (AztecProtocol#7729) (AztecProtocol#24050) chore: barebones constants-codegen project (AztecProtocol#24687) chore: constants codegen release (AztecProtocol#24728) END_COMMIT_OVERRIDE
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Issue #7729 (closed) left behind two
TODO(#7729)wrappers that used#[no_predicates]+#[contract_library_method]to compute recursive contract interface calls outside of conditional branches:compute_recurse_subtract_balance_callin the token contractcall_verify_storage_proof_path_recursivelyin the storage proof test contractThis PR removes both wrappers and calls the contract interface methods directly at the call sites (including inside the recursive
if/elsebranches the wrappers were originally guarding).Verification
Compiled each contract with and without the wrappers (
nargo compile --inliner-aggressiveness 0, matchingbootstrap.sh) and measured the affected functions withbb gates --scheme chonk:Token::transferToken::_recurse_subtract_balanceStorageProofTest::storage_proofStorageProofTest::verify_storage_proof_path_recursivelyThe extracted function ACIR is byte-identical (matching md5) across the two builds in all four cases, so the manual optimization no longer has any effect and the compiler handles this on its own.
These were the last two
#[no_predicates]usages referencing #7729 innoir-contracts.