Skip to content

Pause contracts when OP mainnet/superchain pauses #299

@m-chrzan

Description

@m-chrzan

The OP Stack defines a Guardian role which can pause certain sensitive mechanisms at the smart contract level (e.g. withdrawals from L2). For Superchain L2s, there is a single Guardian which can atomically pause all chains. Celo is not a part of the Superchain, but we could still follow the Superchain Guardian's decisions to pause bridging.

Celo introduces modifications to the OP Stack, so there might be additional situations when Celo's OP contracts should be paused, even when the Superchain does not need pausing. So in addition to relying on the Superchain Guardian, Celo should have its own Guardian that can work in tandem with the Superchain one.

Proposed mechanism:

  • Pause if either the Superchain Guardian or the Celo Guardian pauses contracts.
  • Require a manual unpausing by the Celo Guardian, whether contracts were paused by the Superchain or Celo Guardian.

Reasoning: any time the Superchain pauses, we want to pause as well, just in case, since for the most part we use the same contract code. We don't want to unpause immediately when the Superchain unpauses, as we're not 100% coordinated with it and our modifications to the OP Stack may require additional mitigations.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions