Skip to content
Lattice

ISafe

Git Source

Title: ISafe

Author: Vendored minimal subset of Safe (https://github.com/safe-global/safe-smart-account/blob/main/contracts/Safe.sol).

Upstream license: LGPL-3.0-only.

Minimal vendored subset of the Gnosis Safe smart-contract multisig surface used to validate and introspect a pinned Safe authority.

A Safe collects M-of-N owner signatures OFF-CHAIN and verifies the threshold ON-CHAIN inside execTransaction, then dispatches the inner call to the target (here, the Diamond). When the Safe executes with operation = Call (the REQUIRED mode — never DelegateCall), the Diamond sees msg.sender == theSafe. The Lattice cut facets therefore do NOT re-verify any signatures; they trust solely that msg.sender == the pinned Safe address. Only the read-only views needed to sanity-check that a pinned address is a real, sensibly-configured Safe are declared here.

Functions

getThreshold

Returns the number of owner signatures required to execute a Safe transaction.

Used at init to assert the pinned Safe enforces a sane minimum threshold (M-of-N).

function getThreshold() external view returns (uint256);

Returns

NameTypeDescription
<none>uint256The current signature threshold.

getOwners

Returns the full list of Safe owners.

function getOwners() external view returns (address[] memory);

Returns

NameTypeDescription
<none>address[]The array of owner addresses.

isOwner

Returns whether owner is an owner of the Safe.

function isOwner(address owner) external view returns (bool);

Parameters

NameTypeDescription
owneraddressThe address to query.

Returns

NameTypeDescription
<none>booltrue if owner is a Safe owner.

nonce

Returns the Safe's current transaction nonce.

function nonce() external view returns (uint256);

Returns

NameTypeDescription
<none>uint256The current nonce.