Skip to content

chore(aztec-nr): Public self constructor function (backport #23062)#23156

Merged
vezenovm merged 1 commit into
backport-to-v4-next-stagingfrom
claudebox/backport-23062-v4-next
May 11, 2026
Merged

chore(aztec-nr): Public self constructor function (backport #23062)#23156
vezenovm merged 1 commit into
backport-to-v4-next-stagingfrom
claudebox/backport-23062-v4-next

Conversation

@AztecBot
Copy link
Copy Markdown
Collaborator

Summary

Backport of #23062 to v4-next.

Cherry-pick of merge commit b6adc6b20fa79f4b55a73517a7ba8e2444716387.

Conflict resolved

  • noir-projects/contract-snapshots/tests/snapshots/expand/avm_gadgets_test_contract/snapshots__expanded.snap — the upstream PR's snapshot included a __aztec_nr_internals__keccak_hash_300 function (added in a separate upstream commit), but the v4-next source contract (avm_gadgets_test_contract/src/main.nr) does not contain a keccak_hash_300 test function. The conflict was resolved by dropping the keccak_hash_300 block from the snapshot so it matches the v4-next source contract. All other public-function helpers in the snapshot were updated to call the new __aztec_nr_internals__create_public_self::<N>() helper.

What this PR does

  • Adds generate_public_self_creator which emits a per-contract __aztec_nr_internals__create_public_self<let N: u32>() helper.
  • generate_public_external now emits a single call to the helper instead of inlining the preamble, shrinking generated bytecode.
  • Helper emission is gated on public_functions.len() > 0 in process_functions.

Files changed

  • noir-projects/aztec-nr/aztec/src/macros/internals_functions_generation/external/public.nr
  • noir-projects/aztec-nr/aztec/src/macros/internals_functions_generation/mod.nr
  • 4 compile_failure snapshots__stderr.snap files
  • 6 expand snapshots__expanded.snap files

12 files changed, 302 insertions(+), 1817 deletions(-).

🤖 Generated automatically by the backport workflow.

ClaudeBox log: https://claudebox.work/s/b8ac01ace45bf87e?run=1

…yte code size blow up (#23062)

Resolves
[F-637](https://linear.app/aztec-labs/issue/F-637/aztec-nr-macros-contain-self-construction-to-a-function-to-prevent)

Stacks on #23061

- New `generate_public_self_creator` emits a per-contract
`__aztec_nr_internals__create_public_self<let N: u32>()` helper
- `generate_public_external` now emits a single call to it instead of
inlining the preamble. This can be seen in the snapshots.
- Helper is emitted from `process_functions` and gated on
`public_functions.len() > 0`

~~Improvements tested locally:~~

I need to test further. Either way this is cleaner macro code.
@AztecBot AztecBot added ci-draft Run CI on draft PRs. claudebox Owned by claudebox. it can push to this PR. labels May 11, 2026
@vezenovm vezenovm marked this pull request as ready for review May 11, 2026 17:01
@vezenovm vezenovm requested a review from nventuro as a code owner May 11, 2026 17:01
@vezenovm vezenovm enabled auto-merge May 11, 2026 17:02
@vezenovm vezenovm merged commit a8c1590 into backport-to-v4-next-staging May 11, 2026
22 of 37 checks passed
@vezenovm vezenovm deleted the claudebox/backport-23062-v4-next branch May 11, 2026 17:02
benesjan added a commit that referenced this pull request May 12, 2026
BEGIN_COMMIT_OVERRIDE
fix(sequencer): bounded sweep instead of event scan for governance
proposal check (#22989)
fix(sequencer): bounded sweep instead of event scan for governance
proposal check (#22989) (#23001)
chore: route backport CI failure notifications to #backports channel
(#21779)
fix: (A-589) epochs l1 reorgs test (#20999)
chore: Accumulated backports to v4 (#23065)
fix(bb-prover): use temp directory for avm_verify (#23138)
chore: notify on v4-next sync (#23139)
refactor(pxe): use findLeavesIndexes for read request verification
(#23123)
refactor(pxe): skip storage reads for never-updated contracts (#23131)
fix(pxe): skip registerContractFunctionSignatures when no public fns
(#23134)
chore: Update Noir to nightly-2026-04-15 (#22572)
chore: Update Noir to nightly-2026-04-16 (#22594)
chore: Update Noir to nightly-2026-04-17 (#22633)
chore: Update Noir to nightly-2026-04-23 (#22653)
chore: Update Noir to nightly-2026-04-28 (#22755)
chore: Update Noir to nightly-2026-05-01 (#22836)
chore: Update Noir to nightly-2026-05-05 (#22911)
chore: Update Noir to nightly-2026-05-11 (#23023)
chore: backport noir sync PRs to backport-to-v4-next-staging (#23148)
refactor(pxe): prefetch updated class id hints per unique contract
(#23130)
chore(aztec-nr): Public self constructor function to prevent static byte
code size blow up (#23062)
chore: merge v4 into backport-to-v4-next-staging (#23140)
chore(aztec-nr): Public self constructor function (backport #23062)
(#23156)
refactor(pxe): avoid expensive toTx() call when computing tx hash
(#23136)
END_COMMIT_OVERRIDE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-draft Run CI on draft PRs. claudebox Owned by claudebox. it can push to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants