feat(BASE-104): add support for L3 withdrawals requiring instant finality#85
Open
robriks wants to merge 1 commit into
Open
feat(BASE-104): add support for L3 withdrawals requiring instant finality#85robriks wants to merge 1 commit into
robriks wants to merge 1 commit into
Conversation
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.
Introduces utilities targeting instantaneous TEE-trusted finality, aligned with l3 changes added for base/base and base/contracts
Addresses BASE-104
Note on limitations
This repository currently only provides withdrawal capabilities on a manual, per-user basis (to exit Base to Ethereum). This PR in turn adds the bare minimum to add support for instant finality L3s, also on a manual per-user basis. Future work should investigate a way to extend the functionality introduced in this PR to run as an automated service, detecting withdrawals signaled on the L2 and automatically relaying + settling them on the L3. I suggest we reuse the code already built in this branch, adding serve subcommand to the base/withdrawer CLI that runs as a long-lived daemon to deliver a fully automated withdrawal experience for chains with TEE-backed instant finality.
Summary
Adds
--instant-finalityCLI flag that enables single-transaction withdrawal proving and finalization for L3 appchains with TEE-backed immediate finality. This callsproveAndFinalizeWithdrawalTransactionon OptimismPortal2 instead of the separate prove → wait → finalize flow.--instant-finalityflag (implies--fault-proofs)Context
Companion to the contract changes in
base/contracts(l3-changesbranch) which introduceproveAndFinalizeWithdrawalTransactionon OptimismPortal2 for chains wherePROOF_MATURITY_DELAY_SECONDS == 0anddisputeGameFinalityDelaySeconds == 0(changes inbase/base).