Skip to content
Lattice

GovernedSafeDiamondCutStorage

Git Source

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

NameTypeDescription
_safeaddress
_minDelayuint256
_scheduledAtmapping(bytes32 id => uint256 eta)
_cutCountuint256
_cutRegistrymapping(uint256 version => IUpgradeRegistry.CutRecord record)
_frozenSelectorsEnumerableSet.Bytes4Set
_pendingMinDelayuint256
_minDelayEffectAtuint256