Skip to content

feat: add Base support MVP - #16809

Open
mablr wants to merge 9 commits into
masterfrom
mablr/base-support-mvp
Open

mablr wants to merge 9 commits into
masterfrom
mablr/base-support-mvp

Conversation

@mablr

@mablr mablr commented Sep 11, 2026

Copy link
Copy Markdown
Member

This PR extracts the reviewed Base tooling support from #16224, originally implemented by @lukasrosario, with my follow-up fixes and refinements. It lets the tooling integration land while native Base support in Anvil remains deferred.

Base becomes a feature-gated execution family across Forge, Cast, Chisel, and scripts, connecting network discovery, configuration, hardfork selection, and dispatch to the native Base EVM. Local execution, forks, replay, and nested EVMs use the selected Base context. Trace decoding adds precompile labels, ABIs, and B20 decoding scoped to the appropriate network and upgrade.

Shared transaction and receipt types gain Base deposit and EIP-8130 support, with EIP-8130 execution gated on Zenith. Conversions preserve phases, account changes, authorizations, receipt phase statuses, and log timestamps. Ambiguous request fields retain existing Ethereum/Tempo routing, and signed EIP-8130 submission requires a raw envelope. Cast gains the corresponding transaction and receipt formatting.

Dependencies use foundry-rs/base, pinned to 2aa8bc46e6b4272ef3bf0905e1a5660ee2525e72 from mablr/revm-43 for compatibility with Foundry’s REVM 43 workspace. Dependency declarations, the lockfile, and deny.toml consistently reference this fork.

Anvil retains its existing Optimism routing and historical hardfork selection for Base-chain forks. Only compatibility changes for the expanded shared types and explicit rejection of unsupported native Base execution are included. Native Base node support and its dependent tests remain in #16224; the reviewed tooling implementation and standalone replay coverage are preserved.

Extract the reviewed Base tooling support from #16224.
Keep the native execution, transaction, receipt, and tracing integration
for Cast, Forge, Chisel, and scripts.

Defer native Base Anvil execution and its dependent tests. Retain Anvil's
existing OP routing and historical hardfork selection for Base-chain
forks, with explicit rejection of unsupported native Base execution.

Co-authored-by: Mablr <59505383+mablr@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Changelog found

The deterministic check will validate the changed entry.

@mablr mablr mentioned this pull request Sep 11, 2026
3 tasks
Allow existing Ethereum, Optimism, and Tempo execution to consume Base fork state without switching engines. Keep the Base execution restriction directional and preserve the existing Monad boundary.

@mattsse mattsse left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Two execution issues to address before merging. AI-assisted review.

Comment thread crates/cast/src/cmd/run.rs
Comment thread crates/evm/core/src/evm/base.rs Outdated
Reject EIP-8130 targets and prefix transactions before ordinary replay accesses their projected transaction fields. Resolve the Base activation admin from the fork source chain, including nested execution, while retaining the configured chain for local execution.
@mablr
mablr requested a review from mattsse September 12, 2026 09:22

@mattsse mattsse left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The two previous execution issues are addressed. The Cast trace test fixture still needs updating for the source-chain fix. AI-assisted review.

Comment thread crates/cast/tests/cli/base.rs Outdated
Set the RPC fixture chain ID to 8453 so the source-chain activation admin lookup returns the mainnet admin expected by the Cast trace test. Anvil remains a standard RPC state fixture.
mattsse
mattsse previously approved these changes Sep 14, 2026

@mattsse mattsse left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm

Comment thread crates/config/src/providers/warnings.rs Outdated
Remove the obsolete Base compatibility exemption now that network selection uses network = base. The unsupported base boolean must trigger an unknown-key warning instead of being silently ignored.
@mablr
mablr requested review from figtracer and mattsse September 14, 2026 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

4 participants