Skip to content

feat(networks): default --base to Denim - #92

Merged
rayyan224 merged 2 commits into
base-anvil-forkfrom
feat/default-base-upgrade-denim
Oct 23, 2026
Merged

rayyan224 merged 2 commits into
base-anvil-forkfrom
feat/default-base-upgrade-denim

Conversation

@rayyan224

@rayyan224 rayyan224 commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Bare --base still selects Cobalt. Denim is scheduled on Base mainnet for 2026-11-05 18:00 UTC (base/base v1.5.1), and consumers that run a base-anvil build without passing a fork (for example a transaction simulator) silently get the previous hardfork. DEFAULT_BASE_UPGRADE's doc comment says to bump it as new upgrades land.

This PR also carries the base/base pin bump from #91 (cherry-picked with -x, original authorship kept), so one merge produces a build with both the Denim default and the mainnet Denim schedule. If #91 merges first, this PR's copy of that commit becomes a no-op on rebase.

Solution

  • DEFAULT_BASE_UPGRADE is now BaseUpgrade::Denim.
  • Pin bump to base/base 990694f (Cargo.toml, Cargo.lock), from chore(networks): bump base/base pin for mainnet Denim #91.
  • Clap default_missing_value is now "denim", with its drift-guard test and comments updated.
  • The bare --base parse test in crates/anvil/src/cmd.rs expects Denim.

No other files change beyond the pin bump. Explicit --base <upgrade> selections (beryl, cobalt, denim) are unchanged.

Testing (macOS arm64):

  • cargo test -p foundry-evm-networks: 3 passed.
  • cargo test -p anvil --lib base: 4 passed.
  • I did not run the full suite or a forge/smoke run.

Breaking change note

The default also applies through with_chain_id when forking chain IDs 8453, 84532, or 84538453 without an explicit --base <upgrade>. A mainnet fork would therefore run Denim logic before the real activation on 2026-11-05 18:00 UTC, so it can differ from mainnet at the current block until then. Callers that need to match mainnet today should pass --base cobalt explicitly. Reviewers: if you would rather hold this until activation, I can keep it as a draft and merge on or after 2026-11-05.

PR Checklist

  • Added Tests
  • Added Documentation
  • Breaking changes

rayyan224 and others added 2 commits October 23, 2026 14:38
Bare --base, --base with no value, the serde bool form, and the auto-enabled
Base chain IDs (8453, 84532, 84538453) now select Denim instead of Cobalt.
Explicit --base <upgrade> selections are unchanged.

Update the clap default_missing_value, its drift-guard test, and the bare
--base CLI parse test to match.
Retarget base-common-precompiles / base-common-chains to base/base main
990694fce8f1358b71cf0854e871f74e2a3e2cb9 via ./script/bump-base.sh.
This picks up base/base#6124, which schedules Denim on Base mainnet at
1793901600 (2026-11-05 18:00 UTC), plus the precompile changes on main
since f9d7bf5.

main stays on revm 43 / alloy-evm 0.39 / reth base-v2.7.0.x, so the
EVM alignment from #90 is unchanged. Pinning the v1.5.1 tag instead
would downgrade to revm 42 / reth base-v2.5.2.8. Cargo.lock changes
only the base/base source lines.

(cherry picked from commit 2cf0160)
@rayyan224
rayyan224 merged commit 2549ee7 into base-anvil-fork Oct 23, 2026
17 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants