ethereum-optimism / ethereum-optimism/optimism

Remove challenger-role config after PermissionedDisputeGame is retired

Open
#21,888 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.