Skip to content

fix(txe): drop AuthRegistry from TXE_REQUIRED_PROTOCOL_CONTRACTS#23703

Closed
AztecBot wants to merge 1 commit into
merge-train/fairiesfrom
cb/fix-txe-auth-registry-protocol-contract
Closed

fix(txe): drop AuthRegistry from TXE_REQUIRED_PROTOCOL_CONTRACTS#23703
AztecBot wants to merge 1 commit into
merge-train/fairiesfrom
cb/fix-txe-auth-registry-protocol-contract

Conversation

@AztecBot

Copy link
Copy Markdown
Collaborator

Problem

CI on merge-train/fairies (log 1780065325061237) fails in the yarn-project compile_all step with:

src/index.ts:43:73 - error TS2322: Type '"AuthRegistry"' is not assignable to type
'"ContractClassRegistry" | "ContractInstanceRegistry" | "FeeJuice" | "MultiCallEntrypoint"'.

43 export const TXE_REQUIRED_PROTOCOL_CONTRACTS: ProtocolContractName[] = ['AuthRegistry'];

This surfaced now (not when #23578 landed) because the failing commit — fix(ci): don't serve cached results for disabled-cache test commands (#23658) — stopped serving stale cached results for this command, exposing a latent compile failure introduced by an earlier next merge.

Root cause

  • On next, AuthRegistry was demoted from a protocol contract to a standard contract and moved to the new @aztec/standard-contracts package, so it is no longer a member of ProtocolContractName.
  • The txe-speedup change (feat: txe speedup #23578) on merge-train/fairies introduced TXE_REQUIRED_PROTOCOL_CONTRACTS: ProtocolContractName[] = ['AuthRegistry'] to pre-load protocol contracts into the shared TXE contract store.
  • Merging next into the train left that 'AuthRegistry' literal referencing a name that is no longer a ProtocolContractNameTS2322.

The merged txe_session.ts already deploys AuthRegistry (and PublicChecks) per session via deployManyInSingleBlock([getStandardAuthRegistry(), getStandardPublicChecks()]), so the protocol-contract pre-load of AuthRegistry is both type-invalid and functionally superseded.

Fix

Empty TXE_REQUIRED_PROTOCOL_CONTRACTS — no protocol contract needs pre-loading into the shared store today — and update the comment. The type annotation and @aztec/protocol-contracts import are kept so the list stays an easy extension point if a future protocol-contract lookup is needed. dispatcher_pool.ts simply maps over the (now empty) array, so its behavior is a no-op for the pre-load.

Verification

  • The local ./bootstrap.sh ci-fast / native build chain cannot run in this container (no docker/redis for the test engine; the noir Rust toolchain is not provisioned), so a full local CI run was not possible — CI on this PR is the authoritative check.
  • Reproduced and confirmed the fix with a standalone tsc --strict check using the exact ProtocolContractName union from the error: ['AuthRegistry'] reproduces TS2322; [] compiles cleanly and still supports the .map() call in dispatcher_pool.ts.

Targets the merge-train/fairies branch directly per the merge-train fix workflow.


Created by claudebox · group: slackbot

AuthRegistry was demoted from a protocol contract to a standard contract on next
(moved to @aztec/standard-contracts). After next merged into merge-train/fairies,
the txe-speedup change (#23578) that introduced TXE_REQUIRED_PROTOCOL_CONTRACTS =
['AuthRegistry'] no longer type-checked, since 'AuthRegistry' is no longer a
ProtocolContractName. txe_session.ts already deploys AuthRegistry (and PublicChecks)
per-session via deployManyInSingleBlock, so no protocol contract needs pre-loading
into the shared contract store today. Empty the list to restore the build.
@AztecBot AztecBot added the claudebox Owned by claudebox. it can push to this PR. label May 29, 2026
@Thunkar Thunkar closed this May 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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