Conversation
robriks
force-pushed
the
markusosterlund/bop-428-base-fork-runtime-selector
branch
from
July 24, 2026 00:52
2209038 to
d25f3fa
Compare
stephancill
reviewed
Jul 24, 2026
stephancill
left a comment
Contributor
There was a problem hiding this comment.
I believe we opted to keep the head of base-anvil up to date with the latest upgrade and allow checking out older forks using git (tracked here https://github.com/base/base/blob/main/.github/workflows/base-std-fork-tests.yml#L33-L36)
…e flag Per the ratified fork-test snapshot strategy (BOP-427 -> BOP-453/454), each fork is an immutable base-anvil/base-std commit pair whose base-anvil commit selects the fork in source, with no public runtime selector. Replace the --base-fork CLI flag / base_fork config key with a single compile-time BASE_PRECOMPILE_UPGRADE constant, pinned to Cobalt for this snapshot. The complete Cobalt install (TxContext + NonceManager + state-backed ActivationRegistry admin) that unblocks the base/base #4102 live suite is retained; re-pinning to another fork (e.g. the Beryl pair) is a one-line change. Removes the now-superseded flag parsing, serde adapter, and CLI tests. Co-authored-by: Cursor <cursoragent@cursor.com>
--base-fork runtime selector for Base precompile dispatch (BOP-428)
Contributor
Author
|
Closing as redundant / superseded. The team's direction is branch-per-fork, not a runtime
The base-anvil Cobalt fork-test snapshot (BOP-453) is therefore a |
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.
Summary
The base-anvil half of the Cobalt fork-test snapshot pair (BOP-453, under BOP-428). Makes
--baseinstall the complete Cobalt precompile set so the base/base #4102 LIVE conformance suite (base-std #173) can run against a Cobalt-dispatching base-anvil.Per the ratified snapshot strategy (BOP-427 → BOP-453/454), fork selection is source-pinned, not a runtime flag:
BASE_PRECOMPILE_UPGRADE(this snapshot:Cobalt). The installer, trace labels, precompile map, and sentinel warming all key off it, so re-pinning to another fork (e.g. the Beryl pair) is a one-line change.upgrade >= Cobaltarm ofBasePrecompiles::install: the Beryl singletons plus the EIP-8130TxContext+NonceManager, with theActivationRegistryhanded a state-backed admin config.--base-forkCLI flag /base_forkconfig key (and its parser, serde adapter, and CLI tests) are removed, matching BOP-453's explicit "do not add--hardfork/--base-fork" scope.Relationship to earlier revision
This PR originally added a public
--base-forkruntime selector. That approach was superseded by the commit-pair strategy from BOP-427; the latest commit reworks it to the source-pinned form above. (Happy to squash the two commits into one before review.)Test plan
cargo test -p foundry-evm-networks— green against the current pin (base/base1090a1ba, revm 41):snapshot_pins_cobalt,base_installs_complete_cobalt_precompile_set,without_base_installs_nothing.cargo clippyandcargo fmt --checkclean.Open question — merge target
Pinning Cobalt means merging this to
base-anvil-forkwould flip the shipped--basedefault from Beryl to Cobalt. If mainline must track the live fork (Beryl), this branch should be treated as the pinned Cobalt snapshot artifact (record its SHA for the base/base CI + BOP-453) rather than merged. Flagging for a call before this leaves draft.