ethereum-optimism / ethereum-optimism/optimism
Remove challenger-role config after PermissionedDisputeGame is retired
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 145
Description
We're moving from `PermissionedDisputeGame` to `SuperPermissionedDisputeGame` everywhere, which has no `challenger` role.
After all chains have upgraded we can clean up everywhere it was configured.
Here's a generated list of references, evaluate these and look for others.
- [ ] op-deployer intent: remove ChainRoles.Challenger (op-deployer/pkg/deployer/state/chain_intent.go:108), its mandatory non-zero check (chain_intent.go:123 via CheckNoZeroAddresses), and the standard-intent challenger match (op-deployer/pkg/deployer/state/intent.go:200-206); drop standard.ChallengerAddressFor (op-deployer/pkg/deployer/standard/standard.go:83-92)
- [ ] Deploy flow: remove DeployOPChainInput.Challenger (op-deployer/pkg/deployer/pipeline/opchain.go:206) and the challenger leg of dispute_games.go:174-206
- [ ] Game args packing: remove GameArgs.Challenger / PackPermissioned challenger bytes (op-challenger/game/fault/contracts/gameargs/gameargs.go:31,45-51,99-102)
- [ ] StandardValidator: remove the expected-challenger storage and -130 check (packages/contracts-bedrock/src/L1/OPContractsManagerStandardValidator.sol:59,179,228-233,540-542), DeployImplementationsInput.Challenger (op-deployer/pkg/deployer/pipeline/implementations.go:62, DeployImplementations.s.sol:612,701), and the bootstrap --challenger flag (op-deployer/pkg/deployer/bootstrap/flags.go:143-169)
- [ ] Upgrade tooling: remove PermissionedDisputeGameConfig.Challenger and permEncoder once no upgrade path deploys legacy PDG (op-deployer/pkg/deployer/upgrade/embedded/upgrade.go:32,90-96,152-169)
- [ ] Tests/devnets: drop challenger role wiring in op-e2e/config/init.go:398,463, op-e2e/e2eutils/intentbuilder/builder.go:283,464, op-chain-ops/interopgen/deploy.go:205,240, op-devstack/sysgo/add_game_type.go:159-163
- [ ] Registry follow-up (separate repo): remove Challenger from migrated chains' superchain-registry configs; monorepo parses it (op-core/superchain/types.go:100) but doesn't enforce it
Contributor guide
Research direction
Start by tracing challenger through op-deployer/pkg/deployer/state/chain_intent.go, intent.go, pipeline/opchain.go, and dispute_games.go, then review the gameargs, validator, bootstrap, upgrade, and listed test/devnet files. Use the generated references as a checklist and search for additional challenger uses. Done means legacy PermissionedDisputeGame challenger configuration is removed everywhere in this repository without breaking supported deployment or upgrade paths.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, solidity
- Domain
- devops, tooling
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 42/100