PauseMandates
PauseMandates is a reform mandate that can temporarily disable (pause) or re-enable (restart) mandates at specific positions within governance flows. It is configured with a fixed set of flow and mandate positions to manage.
Overview
Section titled “Overview”This mandate is useful for emergency governance — pausing a compromised or malfunctioning mandate without permanently removing it. When restarted, the mandate is re-adopted with exactly the same configuration and conditions it had before, and its position in the flow is restored.
Configuration
Section titled “Configuration”When adopting a PauseMandates instance, the following parameters are required:
indexFlow(uint8[]): The flow indices of the mandates to manage.indexMandate(uint8[]): The position within each flow of the mandate to manage.indexMandate[i]corresponds toindexFlow[i].
Both arrays must be the same length.
Proposing an Action
Section titled “Proposing an Action”When calling the mandate, one parameter must be provided:
paused(bool):true— Pause (revoke) the mandates at the configured positions.false— Restart (re-adopt) the mandates at the configured positions.
Execution Flow
Section titled “Execution Flow”When pausing (paused = true):
- Finds the mandate IDs at each configured flow position. Skips any invalid or zero-value positions silently.
- Generates a
revokeMandatecall for each valid mandate found.
When restarting (paused = false):
- Finds the mandate IDs at each configured position.
- For each mandate that is currently inactive, retrieves its original
nameDescription,config, andconditionsfrom the contract. - Generates an
adoptMandatecall to re-install it. - Generates an
editFlowByIndexcall to restore its position in the flow. - Already-active mandates are skipped silently.
Technical Specifications
Section titled “Technical Specifications”Functions
Section titled “Functions”initializeMandate
Section titled “initializeMandate”function initializeMandate(...) public override- Validates that
indexFlowandindexMandateare the same length. - Sets input parameters to
(bool paused).
handleRequest
Section titled “handleRequest”function handleRequest(...) public view override returns (...)- Delegates to
_pauseMandatesor_restartMandatesbased on the input.
Error Conditions
Section titled “Error Conditions”"Array length mismatch"— Raised during initialization ifindexFlowandindexMandatehave different lengths.
Current Deployments
Section titled “Current Deployments”| Chain ID | Chain Name | Address |
|---|---|---|