chore(fast-inbox): delete legacy L1 inbox path (A-1386)#24791
Open
spalladino wants to merge 3 commits into
Open
chore(fast-inbox): delete legacy L1 inbox path (A-1386)#24791spalladino wants to merge 3 commits into
spalladino wants to merge 3 commits into
Conversation
Remove the frontier-tree machinery, legacy consume(), the LAG/inboxLag
plumbing and the dead MessageSent event field now that propose enforces
streaming-inbox consumption (AZIP-22 Fast Inbox).
Inbox / IInbox:
- Drop the frontier tree forest (trees mapping, forest, HEIGHT/SIZE/EMPTY_ROOT),
the per-message tree insert, getRoot(), and consume().
- Drop the LAG immutable and the _lag/_height constructor args; the constructor
now takes only (rollup, feeAsset, version, bucketRingSize).
- Source the compact message index from the current bucket's running total
instead of a parallel counter; drop InboxState.inProgress and getInProgress().
- Drop the meaningless checkpointNumber (former inProgress) from MessageSent.
- Keep the 128-bit rolling hash, InboxState.{rollingHash,totalMessagesInserted}
and getState()/getTotalMessagesInserted(): the node still consumes them for
message sync and L1-reorg detection until that path is retired.
Rollup / config / errors:
- Remove RollupConfigInput.inboxLag and the RollupCore constructor pass-through;
drop Constants.L1_TO_L2_MSG_SUBTREE_HEIGHT from the Inbox construction.
- Sweep orphaned errors Inbox__Unauthorized, Inbox__MustBuildBeforeConsume and
Rollup__InvalidInHash; refresh the now-stale ProposeLib NatSpec.
Tests: delete the frontier/consume suites and fuzz, re-home the bucket/rolling-hash
coverage, update the propose-path fixtures (inHash is an unconstrained hint now),
and fix the flip-stranded fee-portal/token-portal index and event expectations.
FrontierLib is kept: it still backs the base-parity and merkle Frontier tests.
… (A-1386) Track the regenerated Inbox ABI after the legacy L1 path was removed (AZIP-22 Fast Inbox): - ethereum InboxContract: drop getLag() (the LAG getter is gone) and the MessageSent checkpointNumber decode; getState() no longer reads inProgress and InboxContractState.treeInProgress becomes optional (no longer tracked on-chain). - Stop threading inboxLag through queries/getL1ContractsConfig and the L1 deploy env; the broader AZTEC_INBOX_LAG config removal is deferred to the node cleanup. - archiver decode: derive the message's checkpoint number from the compact index (the event no longer carries it), keeping the legacy per-checkpoint store shape. - Remove the obsolete advanceInboxInProgress cheat code and its inbox-drift tests; drop the orphaned archiver inHash-mismatch sync test (the cross-check was removed at the flip). Add the flip-stranded bucketHint to the propose-call test fixtures.
…ift test removal (A-1386) Deleting the inbox-drift bot test left the suite's cheatCodes variable (and its import) unused, tripping lint.
spalladino
force-pushed
the
spl/a-1385-streaming-e2e
branch
from
July 19, 2026 01:25
651d40c to
14003e9
Compare
spalladino
force-pushed
the
spl/a-1386-l1-cleanup
branch
from
July 19, 2026 01:25
86a8360 to
a7eb238
Compare
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.
Deletes the legacy L1 Inbox path now that
proposeenforces streaming-inbox consumption (AZIP-22 Fast Inbox, FI-16). Stacked onspl/a-1385-streaming-e2e; part of the Fast Inbox stack (#24784..#24790 below this one).What is deleted
treesmapping,forest,HEIGHT/SIZE/EMPTY_ROOT, the per-message tree insert,getRoot(), and the wholeconsume()flow.LAGimmutable and_lag/_heightconstructor args (the Inbox constructor is now(rollup, feeAsset, version, bucketRingSize)),RollupConfigInput.inboxLagand itsRollupCorepass-through, andConstants.L1_TO_L2_MSG_SUBTREE_HEIGHTfrom the Inbox construction.MessageSent.checkpointNumber(formerinProgress) argument, which became meaningless onceconsume()stopped advancing it.Inbox__Unauthorized,Inbox__MustBuildBeforeConsume,Rollup__InvalidInHash.What is re-homed / kept
totalMsgCount) instead of a parallel counter;InboxState.inProgressandgetInProgress()are gone.rollingHash,InboxState.{rollingHash, totalMessagesInserted},getState(), andgetTotalMessagesInserted()are kept: the node still consumes them for message sync and L1-reorg detection. Their removal is the node cleanup's job (FI-18).FrontierLibis kept — it still backs the base-parity (test/Parity.t.sol) and merkle (test/merkle/Frontier.t.sol) tests, which are unrelated to the Inbox (parity-circuit territory, FI-17). The plan's "delete the file" assumption is contradicted by grep.TS follow-through
ethereumInboxContract: dropgetLag(), drop theMessageSent.checkpointNumberdecode, stop readinginProgress;InboxContractState.treeInProgressis now optional (no longer tracked on-chain).inboxLagthroughqueries.getL1ContractsConfigand the L1 deploy env. The broaderAZTEC_INBOX_LAGconfig sweep (ethereum/src/config.ts,foundation,stdlib, ~30 e2e configs) is deferred to FI-18, which explicitly owns it.advanceInboxInProgresscheat code + its inbox-drift tests, and the orphaned archiverinHash-mismatch sync test (the cross-check was removed at the flip).Gas
Deleting the frontier insert is a large
sendL2Messagewin. Whole-test gas (forge testonInboxBuckets.t.sol), before → after:Per-call
sendL2Messagegas after cleanup: first-ever 99,526; first-of-new-block 53,763; existing-bucket absorb 9,273; rollover 53,801.Testing
forge build+forge testgreen: 887 passed, 0 failed. This fixes 4 pre-existing baseline failures the flip stranded (fee_portal/TokenPortaldeposit tests using tree-relative indices + the old event shape).@aztec/ethereumbuilds clean;config/queriesunit tests green.@aztec/archiverhas no self-owned type errors;message_store(36),archiver-sync(59), and the decode/struct suites (58) all pass. (Pre-existingnoir-protocol-circuits-typesstale-artifact errors are unaffected.)Review follow-up (phase-2 final review)
Deleting the inbox-drift bot test left
bot.test.ts'scheatCodesvariable unused (lint error); a follow-up commit removes it.