GovernedSafeDiamondCutStorage
ERC-7201 namespaced storage for the GovernedSafeDiamondCut module.
Pins the Safe authority, the timelock min-delay, the pending-operation schedule, and the module's own append-only upgrade audit trail. APPEND-ONLY: fields are only ever added at the end — never reordered, retyped, or removed — so the ERC-7201 slot stays stable across upgrades.
Note:
- storage-location: erc7201:lattice.storage.GovernedSafeDiamondCut
struct GovernedSafeDiamondCutStorage {
/// @dev The pinned Safe multisig that is the sole authority for schedule/execute/cancel/rotation.
address _safe;
/// @dev Minimum timelock delay (seconds) last committed. The delay in force is `_pendingMinDelay`
/// once `_minDelayEffectAt` has passed (see `minDelay`). May be 0 (instant execution once
/// scheduled) but that defeats the timelock — see init NatSpec.
uint256 _minDelay;
/// @dev Schedule: operation id => ready timestamp (`eta`). 0 means "not scheduled" (never scheduled,
/// or cancelled); 1 (`DONE_TIMESTAMP`) means "executed"; any other value is the `eta`, "pending"
/// while > block.timestamp and "ready" once reached.
mapping(bytes32 id => uint256 eta) _scheduledAt;
/// @dev Monotonic counter of cuts applied; doubles as the latest registry version.
uint256 _cutCount;
/// @dev Append-only registry: version (1-indexed) => immutable {IUpgradeRegistry.CutRecord}.
mapping(uint256 version => IUpgradeRegistry.CutRecord record) _cutRegistry;
/// @dev Append-only set of frozen function selectors (no unfreeze).
EnumerableSet.Bytes4Set _frozenSelectors;
/// @dev Minimum delay requested by the latest `setMinDelay`; replaces `_minDelay` at
/// `_minDelayEffectAt`. APPENDED.
uint256 _pendingMinDelay;
/// @dev Timestamp from which `_pendingMinDelay` is the delay in force; 0 when no change was ever
/// requested. APPENDED.
uint256 _minDelayEffectAt;
}Properties
| Name | Type | Description |
|---|---|---|
| _safe | address | |
| _minDelay | uint256 | |
| _scheduledAt | mapping(bytes32 id => uint256 eta) | |
| _cutCount | uint256 | |
| _cutRegistry | mapping(uint256 version => IUpgradeRegistry.CutRecord record) | |
| _frozenSelectors | EnumerableSet.Bytes4Set | |
| _pendingMinDelay | uint256 | |
| _minDelayEffectAt | uint256 |