-
Notifications
You must be signed in to change notification settings - Fork 11
Pause contracts when OP mainnet/superchain pauses #299
Description
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.