Skip to content

refactor: create address overrides table for devnets#1414

Draft
stevennevins wants to merge 21 commits intomainfrom
stevennevins/superroot-migrate-devnets
Draft

refactor: create address overrides table for devnets#1414
stevennevins wants to merge 21 commits intomainfrom
stevennevins/superroot-migrate-devnets

Conversation

@stevennevins
Copy link
Copy Markdown
Contributor

No description provided.

stevennevins and others added 15 commits April 22, 2026 14:11
Add a sibling template to OPCMUpgradeV700 (PR #1397) that drives
OPCM.migrate(MigrateInput) — a one-way call that merges N pre-interop
chains into a single interop set by deploying a shared
DisputeGameFactory, AnchorStateRegistry, and ETHLockbox.

Scaffolding only:
- src/template/OPCMMigrateV700.sol: template extending OPCMTaskBase, with
  per-chain OPCMMigration + shared MigrateParams structs (alphabetical),
  single migrate delegatecall in _build, validator routing through
  IOPContractsManagerMigrationValidator in _validate.
- test/integration/SuperRootMigrate.t.sol: mirrors SuperRootUpgrade.t.sol;
  skips the whole suite while OPCM address in the fixture is the zero
  placeholder.
- test/tasks/example/sep/036-opcm-migrate-v700/{config.toml,.env}:
  example fixture with placeholder OPCM, prestates, anchor root,
  proposer/challenger, and a TODO for the second Sepolia interop chain.

forge build + struct-order lint clean; integration test passes with
test_migrate_sepolia vm.skip(true)'d pending real addresses.
The v7.1.16 OPCM enforces exactly 7 DisputeGameConfig entries in fixed
positional order and requires startingRespectedGameType to match an
enabled config. Update _buildUpgradeGameConfigs to emit all 7 entries
(adding ZK_DISPUTE_GAME=10) in V2 order, and force SUPER_CANNON_KONA
enabled to satisfy the override pinning startingRespectedGameType=9.
- Remove _scaffoldingSkipped guard now that fixture has a real OPCM.
- Source upgrade-step prestates and bond from migrations/migrateParams
  instead of inlining 0xdead and 0.08 ether literals.
- Restore conditional SUPER_CANNON_KONA enable check and override the
  upgrade step's startingRespectedGameType to SUPER_PERMISSIONED_CANNON
  (which is wired on Sepolia), removing the unconditional-true hack.
The dev OPCM at 0xf309ee51d05955e84264d4b8c2d520a01f430cb2 was deployed at
Sepolia block 10718608. The previous fork block 10673000 predates that,
so simulate-all-templates reverted on OPCM.version() with empty data.
Move to 10720000 — comfortably past the deploy block.
The migrate() call preconditions on Features.INTEROP being enabled, which
only flips during the prerequisite V700 upgrade. The fixture-driven CI
simulator has no way to perform that upgrade first, so the migrator
reverts with OPContractsManagerMigrator_InteropFeatureNotEnabled().
Coverage is preserved by the SuperRootMigrate.t.sol integration test,
which runs the upgrade in setUp via _upgradeChainFirst().
@stevennevins stevennevins changed the title refactor: create address overrides table for devotes refactor: create address overrides table for devnets May 5, 2026
Base automatically changed from feat/opcm-migrate-v700-template to main May 7, 2026 20:37
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.

1 participant