Skip to content

op-challenger/op-dispute-mon: Remove asterisc support#18670

Merged
ajsutton merged 4 commits intodevelopfrom
aj/remove-super-asterisc
Jan 4, 2026
Merged

op-challenger/op-dispute-mon: Remove asterisc support#18670
ajsutton merged 4 commits intodevelopfrom
aj/remove-super-asterisc

Conversation

@ajsutton
Copy link
Contributor

Description

Remove support for Asterisc, AsteriscKona and SuperAsteriscKona game types from op-challenger and op-dispute-mon. We never shipped asterisc to production and at this point won't do so.

Tests

Removed related tests.

@ajsutton ajsutton requested review from a team as code owners December 22, 2025 04:17
@ajsutton ajsutton requested a review from pauldowman December 22, 2025 04:17
@codecov
Copy link

codecov bot commented Dec 22, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.42%. Comparing base (903584f) to head (a2f56ff).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #18670      +/-   ##
===========================================
+ Coverage    73.83%   77.42%   +3.59%     
===========================================
  Files          189      134      -55     
  Lines        11244     7213    -4031     
===========================================
- Hits          8302     5585    -2717     
+ Misses        2796     1628    -1168     
+ Partials       146        0     -146     
Flag Coverage Δ
cannon-go-tests-64 ?
contracts-bedrock-tests 77.42% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 55 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pauldowman
Copy link
Contributor

Should we do the contracts too? (It would make sense as a separate PR.)

@ajsutton
Copy link
Contributor Author

Yeah we should but definitely a separate PR.

@ajsutton ajsutton added this pull request to the merge queue Jan 4, 2026
Merged via the queue into develop with commit 1294a28 Jan 4, 2026
92 checks passed
@ajsutton ajsutton deleted the aj/remove-super-asterisc branch January 4, 2026 23:55
louisliu2048 added a commit to okx/optimism that referenced this pull request Jan 15, 2026
* test: use a custom Test contract for makeAddr (ethereum-optimism#18509)

* test: use a custom Test contract for makeAddr

This PR introduces a light wrapper around the forge Test contract
specifically for the purpose of making sure people are using a
version of makeAddr that will always be reproducible. Without this
makeAddr uses a private key which means that fork tests can be
unreliable if people mess with these addresses on mainnet.

* fix: compilation failures

* fix: linting issues, version issues

* test: update succinct tests to follow our conventions (ethereum-optimism#18452)

* test: update succinct tests to follow our conventions

* fix: test naming and remove unused imports

* chore: add AccessManager snapshots

Contract changed from abstract to concrete, now needs snapshot files.

* fix: specify GameOver revert in expectRevert

* fix: snapshot for access manager

* fix: create interface for contract

* fix: snapshot semver bump

* fix: bump semver

* chore: bump semver

* fix: semver lock mismatch

* fix: enforce strict pragma for deterministic init code hashes

* chore: fix pragma

* fix: lock pragma versions

* fix: semver lock passing

* chore: cleanup whitespace

* chore: bump semver

* chore: reduce diff

* fix: strict pragma

* feat: fix for ci and compiler profile

* chore: forge fmt

* fix: regenerate semver-lock with clean build

The semver-lock.json had incorrect hashes due to stale build
artifacts. Clean build restores hashes to match develop.

* fix: semgrep for proxy

* fix: workaround for potential cache issue

* chore: clean build semver bump

* fix: remove troubleshooting

* chore: bump semver

* fix: compiler setting issues

* chore: remove helper for vm.getCode

* refactor: reuse DisputeGameFactory_TestInit in OPSuccinct tests

Remove duplicated setup logic from OPSuccinctFaultDisputeGame tests
by inheriting from DisputeGameFactory_TestInit instead of Test.

- Add setupOPSuccinctFaultDisputeGame() helper to DisputeGameFactory_TestInit
- Add OPSuccinctGameParams struct for configurable game parameters
- Remove ~100 lines of duplicated contract deployment code
- Update variable references to use inherited contracts

* refactor: rename OPSuccinctFaultDisputeGame to OptimisticZkGame

Align contract naming with op-challenger's OptimisticZKGameType.

Renames:
- IOPSuccinctFaultDisputeGame -> IOptimisticZkGame
- OPSuccinctFaultDisputeGame -> OptimisticZkGame
- Test contracts and helper functions updated accordingly

* chore: remove unused import

* chore: bump snapshots

* fix: update abi_loader.go embed path after rename

* fix: update snapshots

* fix: circle ci cache fix

* fix: ci cache

* chore: add back placeholder for opsuccinet

* chore: remove cache-lite

* fix: make OptimisticZkGame tests compatible with fork mode

Replace hardcoded block numbers and game indices with dynamically
calculated values based on anchor state. This allows tests to pass
in both regular mode (empty factory) and fork mode (mainnet fork
with existing games).

* fix: skip OptimisticZkGame tests on fork

Tests create games with specific state assumptions that conflict
with existing state on forked networks.

* fix: use same pattern as fault dispute game

* chore: check CI skpping for tests for op zk

* fix: remove OPSuccinctFaultDisputeGame from compiler restrictions

* fix: move OptimisticZk type into GameTypes and update usage

* fix: bump semver

* feat: revert opcm v1 & add opcmv2 op-deployer support (ethereum-optimism#18399)

* feat: revert opcm v1 on public interface functions (ethereum-optimism#699)

* feat: revert opcm v1 on public interface functions

* fix: add dev flag check for OPCM v2

* feat: OPCM v2 support on for op-deployer (ethereum-optimism#701)

* feat: add feature flag initial

* feat: add feature flags to deploy chains using OPCM v2

* chore: remove unused function, update helper function names

* chore: remove unused DeployOPChainV2

* chore: add todo for obtaining a superchain config per deployment

* fix: remove unnecessary arg and replace function visibility

---------

Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>

* fix: add superchainConfig input & fix tests in deployopchain (ethereum-optimism#705)

* fix: add superchainConfig input & fix tests in deployopchain

* docs: add TODOs

* feat: add opcmv2 flag to deployImplementations and apply opcmv2 deployment test

* feat: add opcmv2 flag to deployImplementations and add apply opcmv2 deployment test

* fix: hardcode flag to avoid import cycles & refactor createOPCMContractV2

* fix: remove todo comment

* fix: deploy implementations test branching

* refactor: add deployOPCMStandardValidatorV2

* fix: add test and script checks

* fix: remove cgt & fix tests (ethereum-optimism#736)

* fix: remove cgt

* fix: query chainIdToBatchInboxAddress in chain assertions script

* fix: add skip deploy ocpmv1 when v2 enabled

* refactor: remove unnecesary function

* fix: opcm semver

* chore: add todo comment with issue number (ethereum-optimism#737)

---------

Co-authored-by: IamFlux <175354924+0xiamflux@users.noreply.github.com>

* refactor: match assert pattern on OPCM v1 (ethereum-optimism#749)

* refactor: adheres OPCM v1 revert function to assert pattern

* chore: enable deny_warnings on foundry.toml

* chore: pre-pr ready

* fix: add implementations for StandardValidator when using OPCMv2

* chore: pre-pr ready (ethereum-optimism#758)

* fix: remove cgt checks for opcmv2 (ethereum-optimism#765)

* chore: opcm revert develop sync (ethereum-optimism#769)

* feat(ci): mise; cache & retries. (ethereum-optimism#18572)

* op-node: Light CL: Always Follow Source using CL (ethereum-optimism#18571)

* wiring for l2.follow.source

* Follow Safe without handling external safe > local unsafe

* safe follow

* safe follow consider unsafe gap EL Sync

* follow finalized

* Comments

* cleanup

* drop unused interface methods

* sanity check external finalized

* Adjust follow source log level

* op-devstack: Follow Source Support

* op-acceptance-tests: Follow Source

* op-devstack: Follow Source Support

* simplify labeling

* l1 reorg protection: reset

* add reorg tc

* typo

* follow source: check unsafe

* convention

* Add unsafe only reorg test

* devstack/acceptance test : rename FollowSource to FollowL2

* follow upstream source enabled when derivation disabled, reorg detection

* fix unsafe only reorg sync test comments

* rm unused interface method

* dsl

* devstack support for ext sync test + follow l2

* op-acceptance-tests: Follow L2 using Ext + SyncTester

* use blockref

* fix log msg err

* Fix composite interface naming

* op-node: Follow Source: EL / CL support

* devstack: Allow EL or CL to be follow source

* Inject CurrentL1

* logs for injecting CurrentL1

* refactor to less rpc calls

* acceptance-tests: Check CurrentL1 is advancing

* linter

* fix error args

* sanity check external values using L1

* op-node: Follow Source CL and drop unsafeOnly

* op-acceptance-tests: drop EL follow source / Unsafe Only tests

* op-devstack|acceptance-tests: Follow Source CL

* op-node: Follow Client: only allow CL source

* drop unused args

* rm redundant unsafe head reorg logic

* rm unused dsl

* Do not use functions

* chore: Add SafeRename ioutil utility (ethereum-optimism#18610)

* chore: Add SafeRename ioutil utility

* fix: Lint

* proofs: Update pinned kona client version (ethereum-optimism#18611)

* feat: have OPCMv2 check upgrade ordering version (ethereum-optimism#18583)

* feat: have OPCMv2 check upgrade ordering version

This PR introduces a check in OPCM that validates that the
version difference in the previous OPCM and the current OPCM is
acceptable. This PR explicitly disallows skipping OPCM versions
which was previously an implicit requirement.

* fix: properly set version testing flag

* fix: semver lock

* fix: move valid instructions allowance

* fix: semver lock

* fix: better mechanism for checking permitted upgrades

* fix: properly run permitted upgrade sequence tests

* chore: bump opcmv2 to v7 (ethereum-optimism#18631)

* chore: bump opcmv2 to v7

* fix: correct version in upgrade sequence

* fix: broken tests

* op-chain-ops: Add command to calculate an output root from an EL endpoint. (ethereum-optimism#18626)

* verify opcm v2 (ethereum-optimism#18590)

* verify opcm v2

* fixes

* fixes

* some fixes

* some fixes

* some fixes

* fix verifyOPCM v1 tests

* fix verifyOPCM v1 tests

* fix ci checks

* better approach to tests, less diff

* improve test coverage

* fix typo

* fix semver

* Update packages/contracts-bedrock/scripts/deploy/VerifyOPCM.s.sol

Co-authored-by: 0xOneTony <112496816+0xOneTony@users.noreply.github.com>

---------

Co-authored-by: 0xOneTony <112496816+0xOneTony@users.noreply.github.com>

* codeowners(op-deployer): add platforms team as codeowners (ethereum-optimism#18635)

* ci: Fix contracts test-upgrade test junit output (ethereum-optimism#18637)

* ci: Fix contracts test-upgrade test junit output

* fix test-upgrade xml output

* proofs: Add provable output roots to super DGs (ethereum-optimism#18605)

* proofs: Add provable output roots to super DGs

This patch updates the SuperFaultDisputeGame to explicitly prove output
roots contained in the super root. This is accomplished by requiring
proposers to provide the preimage of the super root when creating a
SuperFaultDisputeGame.

The Super DG is then extended with a rootClaim(uint256 _l2ChainId)
method that returns specific output roots contained in the proposal.
This allows withdrawals to be proven using only an output root.

* review comments

* fix nits; update interfaces

* update snapshots

* fix panic in non-l2oo proposals

* op-program: Reduce disk usage of preimage prestate builds in ci (ethereum-optimism#18641)

* all: upgrade op-geth (ethereum-optimism#18646)

Pull in superchain registry changes and a few other minor changes.

No upstream merges.

* refactor+fix(op-node/sequencing): l1 origin selection improvements (ethereum-optimism#18589)

* WIP

* wip

* WIP

* Treat NotFound next L1 origin as chain end

* Use recover mode in sequence window expiry test

* Invoke fault proof earlier and fix typos

Run env.RunFaultProofProgram after computing l2SafeHead
(l2SafeHead.Number.Uint64()/2) and replace the FromGenesis call with
RunFaultProofProgram. Fix minor comment typos and wrap a long log line.

* reduce diff

* Use requireL1OriginAt helper in test

Replace manual error assertions around FindL1Origin with
requireL1OriginAt and remove the now-unused derive import.

* Introduce L2Sequencer.ActMaybeL2StartBlock

* add TestRecoverModeWhenChainHealthy acceptance test

sysgo only

* Add SetSequencerRecoverMode and enable debug logs

* Adjust L1 block time and sequence window test

Set default L1 block time to 12s to match action helper assumptions.
Increase sequencer window size in the test to 50. Compute drift from
UnsafeL2 headers (use UnsafeL2.L1Origin). Simplify L1 mining to always
BatchMineAndSync and remove the extra numL1Blocks > 10 lag guard.

* restore stub

* WIP

* name errs

* refactor

* fix

* add test

* Rename error constant and add L1 origin tests

Rename ErrInvalidL1OriginChild to ErrNextL1OriginOrphaned and adjust the
error text. Add test cases covering L1 reorg and invalid L1 origin, and
refactor the test case construction in the unit test.

* Use drift check for next L1 origin and update tests

Compute driftNext and use it to decide adoption of the next L1 origin
instead of comparing absolute timestamps. Bump MaxSequencerDrift to 1800
and add tests covering max-drift and negative-drift scenarios.

* Refactor L1 origin selection and error handling

Delegate origin decision logic to FindL1OriginOfNextL2Block and handle
synchronous fetch when in recover mode. Remove recover-mode fetching
from CurrentAndNextOrigin and return cached values instead. Update
sequencer error handling to distinguish invalid/orphaned origin (which
triggers a reset) from temporary lookup errors.

* fixes

* fixes

* lint

* don't use pointers

saves some translation code

* handle retries without a "temporary error"

fixes action tests

* use Fjord drift constant

* fix origin_selector_test

mainly just asserting on sentinel errors, and taking account of small
optimization (fewer network calls)

* Simplify FindL1Origin

* move new pure function into a method on los

* Update comment to refer to empty nextL1Origin

* Use errors.Is for L1 origin error checks

* Return L1 origin on validation errors

* Add expectedResult to origin selector tests

Set expectedResult for the test cases with l2Head d1000 and e1000 to
assert the expected L1 origins (c101 and c100 respectively)

* Add assertion message and clarify origin comments

Provide a helpful failure message in sequence_window_expiry_test when
the safe head doesn't advance after the sequencing window expires.
Document that the current L1 origin should always be non-empty and add a
panic guard. Clarify the rationale for requiring the next L1 origin,
include a source link, and note the effect on unsafe block production.

* Store recoverMode and add comment period

* Update op-node/rollup/sequencing/origin_selector.go

Co-authored-by: almanax-ai[bot] <174396398+almanax-ai[bot]@users.noreply.github.com>

* Update op-node/rollup/sequencing/origin_selector.go

Co-authored-by: almanax-ai[bot] <174396398+almanax-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: almanax-ai[bot] <174396398+almanax-ai[bot]@users.noreply.github.com>

* feat: add ReadSuperchainDeployment support for opcm v2 (ethereum-optimism#18520)

* feat: add readsuperchaindeployment for opcm v2

* fix: argument in PopulateSuperchainState & add docs  (ethereum-optimism#734)

* fix: set superchainConfig to zero for populateSuperchainState with opcmV1

* docs: add clarification of opcmv1 deprecation

* fix: remove unused opcmV2Enabled var

* test: opcm2 add read sup chain tests (ethereum-optimism#754)

* chore: expand comment on ReadSuperchainDeployment.s.sol and init.go

* test: add additional test cases for PopulateSuperchainState and InitLiveStrategy

* fix: adds the right number of hex digits to OPCMV2DevFlag in devfeatures.go (ethereum-optimism#755)

* fix: remove branching in init.go & link TODO issue (ethereum-optimism#760)

* docs: link todo issue

* refactor: remove branching in init.go WIP

* fix: remove unused opcmv2 feature flag

* fix: remove console logs

* fix: set original timeout, fix isOpcmV2 version and add populateSuperchainState tests

* fix: set original timeout

* fix: isOpcmV2 version

* feat: add test cases for populateSuperchainState and unify tests

* fix: ocpm version comments

---------

Co-authored-by: Flux <175354924+0xiamflux@users.noreply.github.com>
Co-authored-by: OneTony <onetony@defi.sucks>
Co-authored-by: 0xOneTony <112496816+0xOneTony@users.noreply.github.com>

* fix: opcmv2 view function calls

---------

Co-authored-by: Stefano Charissis <stefano@oplabs.co>
Co-authored-by: Changwan Park <pcw109550@gmail.com>
Co-authored-by: Ján Jakub Naništa <jan.jakub.nanista@gmail.com>
Co-authored-by: Inphi <mlaw2501@gmail.com>
Co-authored-by: smartcontracts <14298799+smartcontracts@users.noreply.github.com>
Co-authored-by: Adrian Sutton <adrian@oplabs.co>
Co-authored-by: Michael Amadi <amadimichaeld@gmail.com>
Co-authored-by: 0xOneTony <112496816+0xOneTony@users.noreply.github.com>
Co-authored-by: serpixel <5087962+serpixel@users.noreply.github.com>
Co-authored-by: Josh Klopfenstein <joshklop@oplabs.co>
Co-authored-by: George Knee <georgeknee@googlemail.com>
Co-authored-by: almanax-ai[bot] <174396398+almanax-ai[bot]@users.noreply.github.com>
Co-authored-by: Flux <175354924+0xiamflux@users.noreply.github.com>
Co-authored-by: OneTony <onetony@defi.sucks>

* Revert "chore: opcm revert develop sync (ethereum-optimism#769)"

This reverts commit d84f0b9.

* fix: sync commit

---------

Co-authored-by: IamFlux <175354924+0xiamflux@users.noreply.github.com>
Co-authored-by: OneTony <onetony@defi.sucks>
Co-authored-by: 0xOneTony <112496816+0xOneTony@users.noreply.github.com>
Co-authored-by: Stefano Charissis <stefano@oplabs.co>
Co-authored-by: Changwan Park <pcw109550@gmail.com>
Co-authored-by: Ján Jakub Naništa <jan.jakub.nanista@gmail.com>
Co-authored-by: Inphi <mlaw2501@gmail.com>
Co-authored-by: smartcontracts <14298799+smartcontracts@users.noreply.github.com>
Co-authored-by: Adrian Sutton <adrian@oplabs.co>
Co-authored-by: Michael Amadi <amadimichaeld@gmail.com>
Co-authored-by: serpixel <5087962+serpixel@users.noreply.github.com>
Co-authored-by: Josh Klopfenstein <joshklop@oplabs.co>
Co-authored-by: George Knee <georgeknee@googlemail.com>
Co-authored-by: almanax-ai[bot] <174396398+almanax-ai[bot]@users.noreply.github.com>

* chore: improve comments accuracy (ethereum-optimism#741) (ethereum-optimism#18622)

* chore: improve comments accuracy (ethereum-optimism#741)

* fix: semver (ethereum-optimism#772)

---------

Co-authored-by: Chiin <77933451+0xChin@users.noreply.github.com>

* op-e2e: Fix super proposals in super DG tests (ethereum-optimism#18647)

* op-deployer: Ignore max-code-size limits during deployment (ethereum-optimism#18642)

* op-sync-tester: Support engine_exchangeCapabilities (ethereum-optimism#18628)

Required for Kona

* op-devstack: Support kona light CL (ethereum-optimism#18627)

* op-service: blob priority fee (tip cap) tracking for op-batcher (ethereum-optimism#18386)

* op-service: new bgpo module

* op-batcher, op-service: integrate bgpo

* op-service, op-batcher: wait for cache prepopulation; DefaultPriorityFee; various comments addressed

* better comments

* downgrade INFO log level to DEBUG

* better test

* chore(ai-test): skip test/periphery/drippie/dripchecks/CheckTrue.t.sol - already has comprehensive coverage (ethereum-optimism#18644)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* feat: Add OPCM v2 Support for chain upgrades to op-deployer (ethereum-optimism#18593)

* WIP: opcmv2 upgrade op chain (ethereum-optimism#752)

* feat: upgrade op chain wip

* feat: add deployv2 wip

* fix: deployerv2 wip

* refactor: remove additional V2 version of scripts

* refactor: adds OPCM v2 support for UpgradeOPChain.s.sol

* refactor: adds OPCM v2 support for UpgradeSuperchainConfig.s.sol

* fix: uses correct json key for upgradeInput

* fix: uses correct feature flag for OPCM v2 in devfeatures.go

* chore: add json tag to ExtraInstruction

---------

Co-authored-by: Flux <175354924+0xiamflux@users.noreply.github.com>

* feat: adds intermediary struct for op-deployer upgrade (ethereum-optimism#759)

* feat: adds intermediary struct for op-deployer upgrade

* chore: moved upgrade scripts to v6_0_0

* chore: remove v2 go scripts

* refactor: make v2_0_0 upgrade path to support both OPCM v1 and v2

* feat: add support for both OPCM v1 and v2 on embedded upgrade

* refactor: make v6_0_0 fall back to v2_0_0

* refactor: add extra instructions for upgrade superchain input

* test: fix op-deployer tests

* chore: remove deploy OP chain test step

* test: use systemconfig proxy address

* fix: remove the unneeded proxyadmin in OPChainConfig in op-deployer

* refactor: revert v2_0_0 changes in favor of a new v6_0_0 that supports OPCMv2

* feat: add v6_0_0 upgrade

* fix: check for 0 len OPChainConfigs

* chore: pre-pr ready

* Merge pull request ethereum-optimism#764 from defi-wonderland/fix/opcm2-upgradeopchain-comments

fix: opcm2 upgradeopchain comments

* refactor: remove enshrined v7_0_0 upgrade in op-deployer (ethereum-optimism#766)

* test: use correct game type and pass correct extra instruction to UpgradeOPChain (ethereum-optimism#768)

* test: add missing extra instructions for OPCM v2 input

* fix: add correct game type for cannon kona

* fix: opcm2 opd test and sc checks (ethereum-optimism#777)

* chore: set test timeout to 30s (ethereum-optimism#778)

---------

Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
Co-authored-by: 0xOneTony <112496816+0xOneTony@users.noreply.github.com>

* op-supernode: Update superroot_atTimestamp response format (ethereum-optimism#18652)

* op-supernode: Don't treat all errors as not found.

* op-service: Define JSON marshalling for SuperV1

* op-supernode: Update superroot_atTimestamp response format

* Move the response type to the eth package so it can be reused.
* Remove unnecessary detail
* Not found responses still return the CurrentL1 instead of an error to allow challenger to differentiate between proposals in the future and blocks that just haven't been fully processed yet

* op-supernode: Make optimistic blocks available even when full super root is not available.

* op-supernode: Add JSON tag to data field.

* op-supernode: Fix super root calculation

* op-supernode: Fix grammar

* op-challenger: Implement supernode super root provider. (ethereum-optimism#18653)

* op-challenger: Implement supernode super root provider.

Not currently integrated but has unit tests passing.

* Fix sorting.

* chore(ai-test): skip test/universal/StandardBridge.t.sol - already has comprehensive coverage (ethereum-optimism#18671)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* op-acceptance-tests: fix port collisions (ethereum-optimism#18684)

* op-acceptance-tests: fix port collisions

* look for expectedID

* normalize peerID before comparison

* op-node: clarify comment (ethereum-optimism#18512)

Confusion likely led to an innocuous security report.

* check-prestate: handle go module pseudo-versions and fix kona prestate name (ethereum-optimism#18691)

* check-prestate: handle go module pseudo-versions

* check-prestate: fix default kona prestate type

* op-challenger/op-dispute-mon: Remove asterisc support (ethereum-optimism#18670)

* op-challenger: Remove support for SuperAsteriscKona game types.

* op-challenger: Remove support for asterisc and asterisc-kona game types.

* op-challenger: Restore the game type definitions.

* Restore categorisation

* batcher: remove isPectra and assume Pectra is always active (ethereum-optimism#18534)

Since the Pectra fork happened long ago, we can now assume L1 is
always running Pectra. This simplifies the batcher code by:

- Removing the isPectra parameter from ChannelConfig, TxData, and l1Tip
- Removing the isPectra check in computeSingleCalldataTxCost (now always
  uses totalCostFloorPerToken = 10)
- Updating all tests to reflect Pectra-only behavior

Closes ethereum-optimism#18479

* feat(dispute): add rootClaimByChainId(uint256) for L2 chain ID lookup (ethereum-optimism#18559)

* feat(dispute): add rootClaimByChainId for L2 chain ID lookup

Add rootClaimByChainId(uint256) to IDisputeGame interface for interop
preparation. Pre-interop games return the existing rootClaim regardless
of chain ID. SuperFaultDisputeGame reverts with SuperRootPreimageNotSupported
until super root preimage support is added.

Renamed from rootClaim(uint256) to avoid function overload ambiguity
with abi.encodeCall (semgrep sol-style-use-abi-encodecall rule).

* chore: resolve ci issues

* fix: restore accidentally deleted snapshot files

Restores abi_loader.go, abi_loader_test.go, and state-diff/.gitkeep
that were accidentally removed in previous commit.

* fix: update StandardValidator version assertions for dispute games

Update permissionedDisputeGameVersion() to match new dispute game
versions (V1: 1.9.0, V2: 2.3.0) and bump validator to 2.3.0.

* fix: rename test to follow 4-part revert naming convention

* chore: reduce diff by going back to old selector usage

* fix: undeclared identifier error

* fix: undeclared identifier error

* feat: add defensive check on rootClaimByChainId

* fix: undeclared identifier error

* feat: add defensive check on rootClaimByChainId for V2

Revert with UnknownChainId if input chain ID doesn't match l2ChainId().
Prevents misconfigured bridge from silently returning wrong data.

* fix: interfaces

* fix: consistent function modifier

* fix: use pure and update snapshots

* test: add rootClaimByChainId tests for permissioned dispute games

Add fuzz tests for rootClaimByChainId function to PermissionedDisputeGame
and SuperPermissionedDisputeGame test contracts.

* fix: remove duplicate declarations from rebase

* test: OPCMv2 upgrade (ethereum-optimism#18704)

* fix: opcmv2 upgrade fixes (ethereum-optimism#781)

* fix: remove extraInstructions in upgradeSuperchain test

* docs: add cgt extra instruction TODO

* test: add fuzzing to UpgradeOPChain test

* feat: add revert cases for setters and tests

* test: add input encoding verification

* fix: add v2 suffix in upgrade test

* docs: added natspec to upgradeOPChain tests

* fix: restore assertValidInput comment (ethereum-optimism#789)

* fix: contracts collision in fuzz test setOpChainConfigs

---------

Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>

* feat(abip): improve skip message for tests skipped by features (ethereum-optimism#18661)

* feat(abip): improve skip message for tests skipped by features

* fix: better naming scheme

* fix: better graphite prompt

* test(contracts): add revert tests for Preinstalls library functions (ethereum-optimism#18712)

Add tests for uncovered revert paths in getDeployedCode and getName
functions when called with unknown addresses. Includes a harness
contract to properly test internal library function reverts.

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* ci: Remove last self-hosted runner (ethereum-optimism#18722)

* op-challenger: Integrate super node trace provider (ethereum-optimism#18668)

* op-service: Implement supernode client.

* op-challenger: Integrate super node trace provider (toggled off)

* Make super rpc CLI generic.
Add a config option to switch to super node.

* op-challenger: Actually return super node client

* Fix spelling.

* op-challenger: Avoid interfaces when nil checks are required.

Interface values are only nil if the type and value are nil - in our case the type is always non-nil so superNodeProvider == nil is always false causing panics.

* Remove test panic

* op-challenger: Fix package

* op-challenger: Rename --super-rpc to --supernode-rpc

* fix nil pointer exception in op-batcher (ethereum-optimism#18701)

* feat: support interop migration in OPCMv2 (ethereum-optimism#18649)

* feat: support interop migration in OPCMv2

* fix: merge conflicts

* fix: proper interface usage

* feat: update VerifyOPCM for migrator

* chore: lint

* fix: pr tweaks

* fix: update go side

* fix: simplify game data decoding logic

* test: add test for invalid starting game type

* fix: pr review

* fix: import source of DisputeGameConfig.

---------

Co-authored-by: Maurelian <maurelian@protonmail.ch>

* op-supernode: fix env var prefix wrangling (ethereum-optimism#18720)

* Upgrade env var prefixes for supernode flags

Replace prefixEnvVar with upgradeEnvVarPrefixes(existingPrefix,
newInfix) which builds OP_SUPERNODE_<newInfix>_<SUFFIX> env vars from
original OP_NODE_* vars. Update FullDynamicFlags callers and add a unit
test.

* tidy

* Panic on unprefixed env vars

Make upgradeEnvVarPrefixes panic when it finds an env var that lacks the
expected prefix. Add unit test to assert the panic.

* test(contracts): convert OptimismMintableERC20 tests to fuzz tests (ethereum-optimism#18696)

Convert focused tests to fuzz tests for broader coverage:
- mint: fuzz _to address and _amount
- burn: fuzz _from address and _amount
- mint/burn notBridge: fuzz _caller address
- permit2 transferFrom: fuzz _owner, _to, and _amount
- allowance permit2Max: fuzz _owner address

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(contracts): improve OptimismMintableERC20Factory test coverage (ethereum-optimism#18707)

* refactor(test): rename fuzz tests to use testFuzz_ prefix in OptimismMintableERC20Factory

- Rename test_createStandardL2Token_succeeds to testFuzz_createStandardL2Token_validParams_succeeds
- Rename test_createStandardL2TokenWithDecimals_succeeds to testFuzz_createOptimismMintableERC20WithDecimals_validParams_succeeds
- Rename test_createStandardL2Token_sameTwice_reverts to testFuzz_createStandardL2Token_sameTwice_reverts
- Rename test_createStandardL2TokenWithDecimals_sameTwice_reverts to testFuzz_createOptimismMintableERC20WithDecimals_sameTwice_reverts
- Rename test_createStandardL2Token_remoteIsZero_reverts to testFuzz_createStandardL2Token_remoteIsZero_reverts
- Rename test_createStandardL2TokenWithDecimals_remoteIsZero_reverts to testFuzz_createOptimismMintableERC20WithDecimals_remoteIsZero_reverts

Tests that use fuzz parameters should follow the testFuzz_ naming convention.
Also corrects function names in test names to match actual functions being tested.

* test(contracts): add tests for createOptimismMintableERC20 and version functions

- Add OptimismMintableERC20Factory_CreateOptimismMintableERC20_Test contract
  - testFuzz_createOptimismMintableERC20_validParams_succeeds
  - testFuzz_createOptimismMintableERC20_remoteIsZero_reverts
- Add OptimismMintableERC20Factory_Version_Test contract
  - test_version_validFormat_succeeds using SemverComp.parse()

These public functions were not directly tested before.

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* asterisc: Remove asterisc contracts (ethereum-optimism#18689)

* asterisc: Remove asterisc scripts.

* Remove more CI config

* Remove more asterisc references.

* fix(op-batcher): fix loop in batcher with shadow compressor+brotli (ethereum-optimism#18485)

* fix loop in batcher with shadow compressor+brotli

* Iterate over all compression algorithms in tests

* Make test RNG seed deterministic

* Improve ChannelManager test assertions and checks

* godoc improvements

* Close test function in channel_manager_test.go

---------

Co-authored-by: geoknee <georgeknee@googlemail.com>

* op-dispute-mon: Use supernode instead of supervisor. (ethereum-optimism#18711)

* op-service: Implement supernode client.

* op-challenger: Integrate super node trace provider (toggled off)

* Make super rpc CLI generic.
Add a config option to switch to super node.

* op-challenger: Actually return super node client

* Fix spelling.

* op-challenger: Avoid interfaces when nil checks are required.

Interface values are only nil if the type and value are nil - in our case the type is always non-nil so superNodeProvider == nil is always false causing panics.

* Remove test panic

* op-challenger: Fix package

* op-challenger: Rename --super-rpc to --supernode-rpc

* op-dispute-mon: Use supernode instead of supervisor.

* op-dispute-mon: Consistent capitalisation of SuperNode. It's two words.

* Use https for git submodules (ethereum-optimism#18690)

* feat: Add `add-game-type-opcm-v2` command to op-deployer (ethereum-optimism#18660)

* feat: initial add-game-type-v2 command (ethereum-optimism#770)

* WIP: opcmv2 upgrade op chain (ethereum-optimism#752)

* feat: upgrade op chain wip

* feat: add deployv2 wip

* fix: deployerv2 wip

* refactor: remove additional V2 version of scripts

* refactor: adds OPCM v2 support for UpgradeOPChain.s.sol

* refactor: adds OPCM v2 support for UpgradeSuperchainConfig.s.sol

* fix: uses correct json key for upgradeInput

* fix: uses correct feature flag for OPCM v2 in devfeatures.go

* chore: add json tag to ExtraInstruction

---------

Co-authored-by: Flux <175354924+0xiamflux@users.noreply.github.com>

* feat: adds intermediary struct for op-deployer upgrade (ethereum-optimism#759)

* feat: adds intermediary struct for op-deployer upgrade

* chore: moved upgrade scripts to v6_0_0

* chore: remove v2 go scripts

* refactor: make v2_0_0 upgrade path to support both OPCM v1 and v2

* feat: add support for both OPCM v1 and v2 on embedded upgrade

* refactor: make v6_0_0 fall back to v2_0_0

* refactor: add extra instructions for upgrade superchain input

* test: fix op-deployer tests

* chore: remove deploy OP chain test step

* test: use systemconfig proxy address

* fix: remove the unneeded proxyadmin in OPChainConfig in op-deployer

* refactor: revert v2_0_0 changes in favor of a new v6_0_0 that supports OPCMv2

* feat: add v6_0_0 upgrade

* fix: check for 0 len OPChainConfigs

* chore: pre-pr ready

* Merge pull request ethereum-optimism#764 from defi-wonderland/fix/opcm2-upgradeopchain-comments

fix: opcm2 upgradeopchain comments

* refactor: remove enshrined v7_0_0 upgrade in op-deployer (ethereum-optimism#766)

* test: use correct game type and pass correct extra instruction to UpgradeOPChain (ethereum-optimism#768)

* test: add missing extra instructions for OPCM v2 input

* fix: add correct game type for cannon kona

* feat: initial add-game-type-v2 command

* test: add tests for ShouldAllowV1 flag

* refactor: remove shouldAllowV1 flag

* chore: remove unused private key flag from the add game type v2 command

* chore: remove skipping upgrade test

* chore: name changes and comments

* chore: update usage description add-game-type-v2

* test: update add-game-type-opcm-v2 tests

---------

Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>

* chore: opcm2 addgametypev2 comments (ethereum-optimism#780)

* chore: move ABI types to lib file

* chore: move hardcoded values to constants file

* refactor: make abi_types use MustType

* test: deploys OPCM v2 for use during CLI testing (ethereum-optimism#784)

* test: deploys OPCM v2 for use during CLI testing

* chore: reference a github issue for TODO

* test: add assertions on the output of add game type command

* test: update cli tests (ethereum-optimism#792)

* chore: Address review comments (ethereum-optimism#793)

* refactor: remove re-declared flags from add-game-type v2

* chore: remove irrelevant TODO

* refactor: rename "add-game-type-opcm-v2" command to "add-game-type-v2"

* test: add cache dir check for add-game-type-v2

* test: removes cache dir files check on e2e test (ethereum-optimism#794)

---------

Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>

* op-node: validate EIP-1559 params in derivation pipeline (ethereum-optimism#18638)

* op-node: validate EIP-1559 params in derivation pipeline

Add redundant validation for zero elasticity multiplier in EIP-1559
parameters during derivation, providing defense-in-depth against
contract-level checks being accidentally removed.

The SystemConfig contract already enforces denominator >= 1 and
elasticity >= 1, but this adds the same check in the derivation
pipeline for redundancy.

Closes ethereum-optimism#18625

Co-Authored-By: Kelvin Fichter <kelvinfichter@gmail.com>

* op-node: use ValidateHolocene1559Params for EIP-1559 validation

- Move validation from ProcessSystemConfigUpdateLogEvent into parseSystemConfigUpdateEIP1559Params
- Use eip1559.ValidateHolocene1559Params instead of manual checks
- Update op-geth dependency to include elasticity validation (PR ethereum-optimism#743)

Co-Authored-By: Kelvin Fichter <kelvinfichter@gmail.com>

* op-node: fix test to use valid EIP-1559 params

The createMismatchedEIP1559Params test was creating invalid params
(denominator=1, elasticity=0) which now triggers validation error from
op-geth PR ethereum-optimism#743. Fix by using valid but mismatched params (999, 999).

Co-Authored-By: Kelvin Fichter <kelvinfichter@gmail.com>

* update go.mod

* fix test

* update go.mod (after merging op-geth PR)

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
Co-authored-by: Sebastian Stammler <seb@oplabs.co>

* chore(ctb): move init bond value to CommonTest (ethereum-optimism#18648)

* fix(sysgo): allow OS to assign ports for opreth, rbuilder, rollup-boost (ethereum-optimism#18739)

* sysgo: allow OS to assign ports for opreth and rbuilder

* sysgo: allow OS to assign ports for rollup-boost

* make lint-go

* all: upgrade op-geth (ethereum-optimism#18337)

* op-challenger: Apply timeouts to HTTP requests (ethereum-optimism#18731)

* op-challenger: Use wrapped RPC client with multicaller.

Ensures that timeouts are applied to requests.

* op-challenger: Convert preimage fetcher to use L1Source.

Adds timeouts on requests and more efficient receipt fetching.

* op-challenger: Switch generic player to use L1Client to fetch L1Head number

* op-challenger: Add flag to set RPC Kind

* op-challenger: Add timeout when fetching L2 block headers

* op-acceptance-tests: Add EL eth_simulate acceptance test (ethereum-optimism#18724)

* Add EL eth_simulate acceptance test and init

* Strengthen eth_simulate test assertions

Add ReturnFullTransactions to simulation params and require the RPC call
to succeed. Assert exactly one block and one transaction are returned
and verify the transaction is a dynamic fee tx (type 0x2).

* Assert blobGasUsed nonzero in eth_simulate test

Decode blobGasUsed with hexutil and assert it's nonzero to ensure
eth_simulateV1 can estimate DA size. Also fix a comment typo (bock ->
block).

* Assert eth_simulateV1 errors on genesis block

Call eth_simulateV1 with block "0x0" (genesis) and require an error to
ensure the method cannot be used on the genesis block move test under
"base" directory

* tidy

* just update-op-geth e4826126d22171e97a31a05c7405b46143384ab7

* Fix spacing in commented replace in go.mod

* Remove go 1.24 feature flag, leaving SysGetRandom syscall enabled (ethereum-optimism#18624)

* Remove go 1.24 feature flag, leaving SysGetRandom syscall enabled

* contracts: Remove go 1.24 feature flag, leaving SysGetRandom syscall enabled

* Update semver-lock.json

* Remove commented-out Features struct and function

* Add timeout to vm-runner (ethereum-optimism#18594)

* Add timeout to vm-runner

* Remove special handling and metric for vm timeout

* Handle VM timeout errors differently from other errors in the runner

* Don't treat errors in traceProviderCreator as VM timeouts

* Combine VM failure metrics and add a reason label

* Re-add "_current" to metric name

* fix: add compiler restriction for StorageSetter to align profiles (ethereum-optimism#18715)

* test(contracts): convert MintManager tests to fuzz tests for broader coverage (ethereum-optimism#18744)

* test(contracts): convert MintManager tests to fuzz tests for broader coverage

* docs(contracts): add natspec explaining first mint is uncapped

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix: install solc for contracts tests (ethereum-optimism#18753)

* Add U18 audit report (ethereum-optimism#18758)

* feat: have upgrade test blocks update every week (ethereum-optimism#18634)

* feat: have upgrade test blocks update every week

* fix: performance enhancements

* fix: corrected pinned block number statement

* fix: correct trigger name

* feat: simplify and use cast find block

* fix: pass rpc to fork block write step

* fix: errant comments

* all: upgrade op-geth (ethereum-optimism#18767)

* update op-geth to use dev branch

---------

Co-authored-by: smartcontracts <14298799+smartcontracts@users.noreply.github.com>
Co-authored-by: steven <12021290+stevennevins@users.noreply.github.com>
Co-authored-by: niha <205694301+0xniha@users.noreply.github.com>
Co-authored-by: IamFlux <175354924+0xiamflux@users.noreply.github.com>
Co-authored-by: OneTony <onetony@defi.sucks>
Co-authored-by: 0xOneTony <112496816+0xOneTony@users.noreply.github.com>
Co-authored-by: Stefano Charissis <stefano@oplabs.co>
Co-authored-by: Changwan Park <pcw109550@gmail.com>
Co-authored-by: Ján Jakub Naništa <jan.jakub.nanista@gmail.com>
Co-authored-by: Inphi <mlaw2501@gmail.com>
Co-authored-by: Adrian Sutton <adrian@oplabs.co>
Co-authored-by: Michael Amadi <amadimichaeld@gmail.com>
Co-authored-by: serpixel <5087962+serpixel@users.noreply.github.com>
Co-authored-by: Josh Klopfenstein <joshklop@oplabs.co>
Co-authored-by: George Knee <georgeknee@googlemail.com>
Co-authored-by: almanax-ai[bot] <174396398+almanax-ai[bot]@users.noreply.github.com>
Co-authored-by: Disco <131301107+0xDiscotech@users.noreply.github.com>
Co-authored-by: Chiin <77933451+0xChin@users.noreply.github.com>
Co-authored-by: Anton Evangelatov <anton.evangelatov@gmail.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Sam Stokes <35908605+bitwiseguy@users.noreply.github.com>
Co-authored-by: Paul Dowman <paul@pauldowman.com>
Co-authored-by: Himess <95512809+Himess@users.noreply.github.com>
Co-authored-by: Matthew Slipper <me@matthewslipper.com>
Co-authored-by: blockchaindevsh <shore.cloud@gmail.com>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: Marius G <90795310+bearpebble@users.noreply.github.com>
Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
Co-authored-by: Sebastian Stammler <seb@oplabs.co>
Co-authored-by: Maurelian <john@oplabs.co>
Co-authored-by: louis.liu <louis.liu@okg.com>
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.

3 participants

Comments