Skip to content

fix: complete legacy oracle mappings for all pinned contracts#21404

Merged
nventuro merged 7 commits intomerge-train/fairiesfrom
be/complete-legacy-oracle-mappings
Mar 12, 2026
Merged

fix: complete legacy oracle mappings for all pinned contracts#21404
nventuro merged 7 commits intomerge-train/fairiesfrom
be/complete-legacy-oracle-mappings

Conversation

@benesjan
Copy link
Contributor

Summary

  • Expands legacy oracle aliases from 5 to 30 entries covering ALL oracles used by ALL pinned protocol contracts (AuthRegistry, ContractClassRegistry, ContractInstanceRegistry, FeeJuice, MultiCallEntrypoint, PublicChecks, SponsoredFPC)
  • Adds adapter functions for refactor!: cleaning up public call and tx phase related oracles #21209 signature changes (privateNotifyEnqueuedPublicFunctionCall and privateNotifySetPublicTeardownFunctionCall 4-param → validatePublicCalldata 1-param)
  • Adds legacy mappings for refactor!: cleaning up public call and tx phase related oracles #21209 renames (privateNotifySetMinRevertibleSideEffectCounternotifyRevertiblePhaseStart, privateIsSideEffectCounterRevertibleinRevertiblePhase)
  • Replaces isActualProtocolContract (only checked 3 contracts) with isProtocolContract (checks all) for oracle version check skip

Test plan

  • PXE tests pass (39 suites, 424 tests)
  • Build compiles cleanly
  • Lint passes
  • Verified all old-style oracle names in committed artifacts are covered by legacy mappings

🤖 Generated with Claude Code

@benesjan benesjan marked this pull request as draft March 12, 2026 03:46
@benesjan benesjan force-pushed the be/complete-legacy-oracle-mappings branch from 9f6ae8f to c2e7e68 Compare March 12, 2026 04:04
Copy link
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@benesjan benesjan force-pushed the be/complete-legacy-oracle-mappings branch from c2e7e68 to 3d4d2c1 Compare March 12, 2026 04:08
@benesjan benesjan marked this pull request as ready for review March 12, 2026 04:08
@benesjan benesjan force-pushed the be/complete-legacy-oracle-mappings branch from 8e2b928 to 4e2937a Compare March 12, 2026 05:56
@benesjan benesjan changed the title fix: complete legacy oracle name mappings for all pinned protocol contracts fix: complete legacy oracle mappings for all pinned contracts Mar 12, 2026
@benesjan benesjan requested a review from mverzilli March 12, 2026 08:25
Copy link
Contributor

@nchamo nchamo left a comment

Choose a reason for hiding this comment

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

Great work!

@benesjan benesjan force-pushed the be/complete-legacy-oracle-mappings branch from c9605a5 to a83fdaf Compare March 12, 2026 14:50
benesjan and others added 2 commits March 12, 2026 14:51
…rams

PR #21176 added maxNotePackedLen and maxEventSerializedLen parameters to
this oracle. Pinned protocol contracts call with the old 3-param signature,
so the legacy mapping needs an adapter that supplies the frozen default
values (8 and 10 respectively).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@benesjan benesjan force-pushed the be/complete-legacy-oracle-mappings branch from a83fdaf to d1f691a Compare March 12, 2026 14:51
@benesjan benesjan requested a review from nventuro March 12, 2026 14:53
@benesjan benesjan force-pushed the be/complete-legacy-oracle-mappings branch from d1f691a to 3a72716 Compare March 12, 2026 14:55
}

assertCompatibleOracleVersion(version: number): void {
assertCompatibleOracleVersion(version: number): Promise<void> {
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we not need to adjust here as well? Is this because oracle wraps this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The Oracle wrapping this should not affect this as the wrapping is one abstraction level up: from utilityAssertCompatibleOracleVersion to aztec_utl_assertCompatibleOracleVersion and aztec_utl_assertCompatibleOracleVersion then either calls this function here or the one in UtilityExecutionOracle.

I just thought that we would never use the stale pinned contracts in txe. Do you know if I am wrong here? If not sure I will dig into it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Turns out we would actually used the committed artifacts:

image

but when I tried to port the change here I realized it's impossible because this is TXEOracleTopLevelContext and there, by definition, is not a contract address associated with the oracle execution.

So the special-cased version automatically gets used by contracts executed via txe as well.

@benesjan benesjan marked this pull request as draft March 12, 2026 15:33
@benesjan benesjan marked this pull request as ready for review March 12, 2026 16:58
@benesjan benesjan force-pushed the be/complete-legacy-oracle-mappings branch from 5767537 to a40cc0f Compare March 12, 2026 17:35
@benesjan benesjan requested a review from nventuro March 12, 2026 17:35
@benesjan benesjan force-pushed the be/complete-legacy-oracle-mappings branch from a40cc0f to 2d6f4ec Compare March 12, 2026 17:37
Copy link
Contributor

@nventuro nventuro left a comment

Choose a reason for hiding this comment

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

Great work

@nventuro nventuro enabled auto-merge (squash) March 12, 2026 17:38
@nventuro nventuro merged commit 1019f2a into merge-train/fairies Mar 12, 2026
11 checks passed
@nventuro nventuro deleted the be/complete-legacy-oracle-mappings branch March 12, 2026 21:38
@AztecBot
Copy link
Collaborator

❌ Failed to cherry-pick to v4-next due to conflicts. (🤖) View backport run.

AztecBot pushed a commit that referenced this pull request Mar 12, 2026
…racts (#21404)

Cherry-pick of 1019f2a from next. Contains conflict markers.
AztecBot pushed a commit that referenced this pull request Mar 12, 2026
…racts (#21404)

Cherry-pick of 1019f2a with conflicts preserved for review.
github-merge-queue bot pushed a commit that referenced this pull request Mar 13, 2026
BEGIN_COMMIT_OVERRIDE
fix: skip oracle version check for pinned protocol contracts (#21349)
fix: not reusing tags of partially reverted txs (#20817)
feat: move storage_slot from partial commitment to completion hash
(#21351)
feat: offchain reception (#20893)
fix: handle workspace members in needsRecompile crate collection
(#21284)
fix(aztec-nr): return Option from decode functions and fix event
commitment capacity (#21264)
fix: handle bad note lengths on compute_note_hash_and_nullifier (#21271)
fix: address review feedback from PRs #21284 and #21237 (#21369)
fix: claim contract & improve nullif docs (#21234)
feat!: auto-enqueue public init nullifier for contracts with public
functions (#20775)
fix: search for all note nonces instead of just the one for the note
index (#21438)
fix: set anvilSlotsInAnEpoch in e2e_offchain_payment to prevent
finalization race (#21452)
fix: complete legacy oracle mappings for all pinned contracts (#21404)
fix: correct inverted constrained encryption check in message delivery
(#21399)
feat!: improve L2ToL1MessageWitness API (#21231)
END_COMMIT_OVERRIDE
AztecBot pushed a commit that referenced this pull request Mar 13, 2026
…racts (#21404)

Cherry-pick of 1019f2a with conflicts preserved for review.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants