Skip to content

feat: permissionless fault games at initial deploy#21588

Open
lumoswiz wants to merge 34 commits into
developfrom
feat/pcd-permissionless-opchain-deploy
Open

feat: permissionless fault games at initial deploy#21588
lumoswiz wants to merge 34 commits into
developfrom
feat/pcd-permissionless-opchain-deploy

Conversation

@lumoswiz

@lumoswiz lumoswiz commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Description

Lets new chains start with CANNON_KONA as the selected initial fault game when deploy inputs include a real starting anchor root and nonzero prestate. Legacy CANNON remains rejected for initial deployments.

For non-super-root permissionless deploys, this also registers PERMISSIONED_CANNON from genesis as the guardian fallback while keeping CANNON_KONA respected.

Tests

Updated deploy/OPCM coverage for selected CANNON_KONA initial deploys, permissioned fallback registration/use, legacy CANNON rejection, zero/prestate/root validation, placeholder-root rejection for permissionless deploys, super-root rejection, and unchanged permissioned deploys.

Additional context

#21625 deprecated legacy CANNON, so this PR implements #20913 for CANNON_KONA only. The 0xdead anchor remains allowed only for permissioned deploys until follow-up PR #21610 wires real pipeline state.

The permissioned fallback preserves the standard OP Stack emergency path for retiring an unsound permissionless game.

Metadata

Fixes #20913

Comment thread packages/contracts-bedrock/scripts/deploy/DeployOPChain.s.sol Outdated
Comment thread packages/contracts-bedrock/scripts/deploy/DeployOPChain.s.sol
@lumoswiz lumoswiz marked this pull request as ready for review July 2, 2026 07:59
@lumoswiz lumoswiz requested review from a team and mds1 July 2, 2026 07:59
@lumoswiz lumoswiz requested review from a team as code owners July 2, 2026 07:59
Comment thread packages/contracts-bedrock/src/L1/opcm/OPContractsManagerV2.sol
Comment thread packages/contracts-bedrock/src/L1/opcm/OPContractsManagerV2.sol
Comment thread packages/contracts-bedrock/src/L1/opcm/OPContractsManagerV2.sol Outdated
Comment thread packages/contracts-bedrock/scripts/deploy/DeployOPChain.s.sol Outdated
Comment thread packages/contracts-bedrock/scripts/deploy/DeployOPChain.s.sol Outdated
Comment thread packages/contracts-bedrock/src/L1/opcm/OPContractsManagerV2.sol Outdated

@bitwiseguy bitwiseguy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Approving with a few suggestions for minor improvements

Comment thread packages/contracts-bedrock/scripts/deploy/DeployOPChain.s.sol Outdated
Comment thread packages/contracts-bedrock/scripts/deploy/ChainAssertions.sol Outdated
Comment thread packages/contracts-bedrock/test/L1/opcm/OPContractsManagerV2.t.sol Outdated
Comment thread packages/contracts-bedrock/test/L1/opcm/OPContractsManagerV2.t.sol Outdated
Comment thread packages/contracts-bedrock/test/opcm/DeployOPChain.t.sol Outdated
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.

[PCD] Remove permissioned-only guard and dead anchor placeholder

5 participants