Skip to content

Comments

feat: remove v1 dispute games#18714

Merged
stevennevins merged 19 commits intodevelopfrom
feat/remove-v1-dispute-games
Jan 15, 2026
Merged

feat: remove v1 dispute games#18714
stevennevins merged 19 commits intodevelopfrom
feat/remove-v1-dispute-games

Conversation

@stevennevins
Copy link
Contributor

Description

Follow up to #18181, to clean up all references to V1 dispute games and make the v2 games the canonical dispute games.

Tests

Updates to existing test coverage for rename

Additional context

n/a

Metadata

Completes #18584

@stevennevins stevennevins force-pushed the feat/remove-v1-dispute-games branch from d2e19fe to f816ff4 Compare January 5, 2026 20:49
@codecov
Copy link

codecov bot commented Jan 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.79%. Comparing base (8c3317f) to head (30d56a2).
⚠️ Report is 2043 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #18714      +/-   ##
===========================================
+ Coverage    73.94%   81.79%   +7.85%     
===========================================
  Files          190      133      -57     
  Lines        11317     6917    -4400     
===========================================
- Hits          8368     5658    -2710     
+ Misses        2803     1259    -1544     
+ Partials       146        0     -146     
Flag Coverage Δ
cannon-go-tests-64 ?
contracts-bedrock-tests 81.79% <100.00%> (+4.15%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...es/contracts-bedrock/src/L1/OPContractsManager.sol 93.31% <100.00%> (+3.45%) ⬆️
...edrock/src/L1/opcm/OPContractsManagerContainer.sol 100.00% <ø> (ø)
...ts-bedrock/src/L1/opcm/OPContractsManagerUtils.sol 94.79% <100.00%> (ø)
...ntracts-bedrock/src/dispute/DisputeGameFactory.sol 100.00% <ø> (ø)
...contracts-bedrock/src/dispute/FaultDisputeGame.sol 98.79% <100.00%> (+98.79%) ⬆️
...ts-bedrock/src/dispute/PermissionedDisputeGame.sol 100.00% <100.00%> (+100.00%) ⬆️
...tracts-bedrock/src/dispute/zk/OptimisticZkGame.sol 81.43% <ø> (ø)

... and 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.

@stevennevins stevennevins marked this pull request as ready for review January 7, 2026 20:57
@stevennevins stevennevins requested review from a team as code owners January 7, 2026 20:57
@stevennevins stevennevins requested a review from ajsutton January 7, 2026 20:57
@stevennevins stevennevins force-pushed the feat/remove-v1-dispute-games branch from 0c7e380 to 96aab06 Compare January 7, 2026 21:26
@stevennevins stevennevins requested review from a team as code owners January 7, 2026 23:36
@stevennevins stevennevins force-pushed the feat/remove-v1-dispute-games branch from 1a90d27 to c00f7cd Compare January 8, 2026 21:21
@stevennevins stevennevins requested a review from Inphi January 12, 2026 20:00
Copy link
Contributor

@ajsutton ajsutton left a comment

Choose a reason for hiding this comment

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

Looks good generally, just need to be careful with the methods that are detecting V1 or V2 based on the contract name.

Use git mv to rename V2 contracts to replace V1:
- src/dispute/v2/FaultDisputeGameV2.sol → src/dispute/FaultDisputeGame.sol
- src/dispute/v2/PermissionedDisputeGameV2.sol → src/dispute/PermissionedDisputeGame.sol
- interfaces/dispute/v2/IFaultDisputeGameV2.sol → interfaces/dispute/IFaultDisputeGame.sol
- interfaces/dispute/v2/IPermissionedDisputeGameV2.sol → interfaces/dispute/IPermissionedDisputeGame.sol

Renamed all V2 symbols to non-V2 names.
Updated all imports and references.
Bytecode changed due to metadata differences from V2 contract removal.
…te snapshots

- Rename faultDisputeGameV2Impl → faultDisputeGameImpl in Implementations struct
- Rename permissionedDisputeGameV2Impl → permissionedDisputeGameImpl
- Rename V2 functions: _registerPermissionedGameV2 → _registerPermissionedGame
- Update setNewPermissionedGameImplV2 → setNewPermissionedGameImpl
- Update setNewPermissionlessGameImplV2 → setNewPermissionlessGameImpl
- Fix stale comment in FaultDisputeGame.sol (240 → 244 bytes)
- Regenerate ABI snapshots with correct struct member names
- Update Go files in op-deployer and op-chain-ops
@stevennevins stevennevins force-pushed the feat/remove-v1-dispute-games branch from c00f7cd to e263e48 Compare January 13, 2026 16:03
Delete _isV1DisputeGameImplementation and _isV2DisputeGameImplementation
from VerifyOPCM.s.sol. Both functions were checking for the same names
after the V2 rename and were never actually used.
V2 dispute games are no longer behind a feature flag, so remove the
skip logic that prevented them from being tested. Keep Super dispute
game skip as those are still in development.
OPCM updates are applied in order, so all dispute game implementations
now use CWIA args. Remove the V1 fallback path that read absolutePrestate
directly from the contract.
This reverts commit 97b98e0.

The V1 backwards compat is needed for the upgrade path when chains
still have V1 dispute games. The gameArgs won't be populated until
after the upgrade completes, so the fallback to call absolutePrestate()
directly on the contract is required.
Copy link
Contributor

@Inphi Inphi left a comment

Choose a reason for hiding this comment

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

Good to merge once the issues below are fixed.

Replace hardcoded 0.08 ether with constant for consistency.
Replace hardcoded 0.08 ether with constant for consistency.
Replace hardcoded 0.08 ether with constant for consistency.
Restore natspec notice clarifying this script is for OPCM V1 only.
OPCM v2 support is provided through the UpgradeOPChain script.
PDG getter checks don't apply to OPCM v2 since game args are
passed at creation time. Restore the conditional guard.
Copy link
Contributor

@ajsutton ajsutton left a comment

Choose a reason for hiding this comment

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

LGTM.

@stevennevins stevennevins added this pull request to the merge queue Jan 15, 2026
Merged via the queue into develop with commit e50f654 Jan 15, 2026
93 checks passed
@stevennevins stevennevins deleted the feat/remove-v1-dispute-games branch January 15, 2026 20:17
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.

4 participants