Skip to content
Lattice

AccessManager

Git Source

Inherits: IAccessManager

Title: AccessManager

Author: Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/manager/AccessManager.sol)

Diamond facet exposing AccessManagerLib.

Cut it into its own authority diamond. Next to other facets its ADMIN_ROLE is root: execute calls the diamond as the diamond, which passes every gate that trusts address(this) (a governed diamondCut, the timelock's self-only setters, the ERC-7786 handlers). See IAccessManager and issue #240.

Notes:

  • lattice-version: 0.1.0
  • lattice-source: OpenZeppelin v5.1.0

Functions

ADMIN_ROLE

function ADMIN_ROLE() external pure virtual override returns (uint64);

Returns

NameTypeDescription
<none>uint64

PUBLIC_ROLE

function PUBLIC_ROLE() external pure virtual override returns (uint64);

Returns

NameTypeDescription
<none>uint64

hasRole

function hasRole(uint64 roleId, address account) external view virtual override returns (bool, uint32);

Parameters

NameTypeDescription
roleIduint64
accountaddress

Returns

NameTypeDescription
<none>bool
<none>uint32

getAccess

function getAccess(uint64 roleId, address account)
        external
        view
        virtual
        override
        returns (uint48, uint32, uint32, uint48);

Parameters

NameTypeDescription
roleIduint64
accountaddress

Returns

NameTypeDescription
<none>uint48
<none>uint32
<none>uint32
<none>uint48

getRoleAdmin

function getRoleAdmin(uint64 roleId) external view virtual override returns (uint64);

Parameters

NameTypeDescription
roleIduint64

Returns

NameTypeDescription
<none>uint64

getRoleGuardian

function getRoleGuardian(uint64 roleId) external view virtual override returns (uint64);

Parameters

NameTypeDescription
roleIduint64

Returns

NameTypeDescription
<none>uint64

getRoleGrantDelay

function getRoleGrantDelay(uint64 roleId) external view virtual override returns (uint32);

Parameters

NameTypeDescription
roleIduint64

Returns

NameTypeDescription
<none>uint32

getRoleMembers

function getRoleMembers(uint64 roleId) external view virtual override returns (address[] memory);

Parameters

NameTypeDescription
roleIduint64

Returns

NameTypeDescription
<none>address[]

getRoleMemberCount

function getRoleMemberCount(uint64 roleId) external view virtual override returns (uint256);

Parameters

NameTypeDescription
roleIduint64

Returns

NameTypeDescription
<none>uint256

getTargetFunctionRole

function getTargetFunctionRole(address target, bytes4 selector) external view virtual override returns (uint64);

Parameters

NameTypeDescription
targetaddress
selectorbytes4

Returns

NameTypeDescription
<none>uint64

getTargetAdminDelay

function getTargetAdminDelay(address target) external view virtual override returns (uint32);

Parameters

NameTypeDescription
targetaddress

Returns

NameTypeDescription
<none>uint32

isTargetClosed

function isTargetClosed(address target) external view virtual override returns (bool);

Parameters

NameTypeDescription
targetaddress

Returns

NameTypeDescription
<none>bool

canCall

function canCall(address caller, address target, bytes4 selector)
        external
        view
        virtual
        override
        returns (bool, uint32);

Parameters

NameTypeDescription
calleraddress
targetaddress
selectorbytes4

Returns

NameTypeDescription
<none>bool
<none>uint32

hashOperation

function hashOperation(address caller, address target, bytes calldata data)
        external
        pure
        virtual
        override
        returns (bytes32);

Parameters

NameTypeDescription
calleraddress
targetaddress
databytes

Returns

NameTypeDescription
<none>bytes32

getSchedule

function getSchedule(bytes32 operationId) external view virtual override returns (uint48);

Parameters

NameTypeDescription
operationIdbytes32

Returns

NameTypeDescription
<none>uint48

getNonce

function getNonce(bytes32 operationId) external view virtual override returns (uint32);

Parameters

NameTypeDescription
operationIdbytes32

Returns

NameTypeDescription
<none>uint32

grantRole

function grantRole(uint64 roleId, address account, uint32 executionDelay) external virtual override;

Parameters

NameTypeDescription
roleIduint64
accountaddress
executionDelayuint32

revokeRole

function revokeRole(uint64 roleId, address account) external virtual override;

Parameters

NameTypeDescription
roleIduint64
accountaddress

renounceRole

function renounceRole(uint64 roleId, address callerConfirmation) external virtual override;

Parameters

NameTypeDescription
roleIduint64
callerConfirmationaddress

setRoleAdmin

function setRoleAdmin(uint64 roleId, uint64 admin) external virtual override;

Parameters

NameTypeDescription
roleIduint64
adminuint64

setRoleGuardian

function setRoleGuardian(uint64 roleId, uint64 guardian) external virtual override;

Parameters

NameTypeDescription
roleIduint64
guardianuint64

setGrantDelay

function setGrantDelay(uint64 roleId, uint32 newDelay) external virtual override;

Parameters

NameTypeDescription
roleIduint64
newDelayuint32

labelRole

function labelRole(uint64 roleId, string calldata label) external virtual override;

Parameters

NameTypeDescription
roleIduint64
labelstring

setTargetFunctionRole

function setTargetFunctionRole(address target, bytes4[] calldata selectors, uint64 roleId)
        external
        virtual
        override;

Parameters

NameTypeDescription
targetaddress
selectorsbytes4[]
roleIduint64

setTargetAdminDelay

function setTargetAdminDelay(address target, uint32 newDelay) external virtual override;

Parameters

NameTypeDescription
targetaddress
newDelayuint32

setTargetClosed

function setTargetClosed(address target, bool closed) external virtual override;

Parameters

NameTypeDescription
targetaddress
closedbool

updateAuthority

Points managed target at newAuthority. Only callable by ADMIN_ROLE; this manager must be target's current authority.

function updateAuthority(address target, address newAuthority) external virtual override;

Parameters

NameTypeDescription
targetaddress
newAuthorityaddress

schedule

function schedule(address target, bytes calldata data, uint48 when)
        external
        virtual
        override
        returns (bytes32, uint32);

Parameters

NameTypeDescription
targetaddress
databytes
whenuint48

Returns

NameTypeDescription
<none>bytes32
<none>uint32

execute

function execute(address target, bytes calldata data) external payable virtual override returns (uint32);

Parameters

NameTypeDescription
targetaddress
databytes

Returns

NameTypeDescription
<none>uint32

cancel

function cancel(address caller, address target, bytes calldata data) external virtual override returns (uint32);

Parameters

NameTypeDescription
calleraddress
targetaddress
databytes

Returns

NameTypeDescription
<none>uint32

consumeScheduledOp

Consumes the scheduled operation (caller, msg.sender, data) for a managed target making a delayed direct call. Reverts AccessManagerUnauthorizedConsume unless msg.sender reports isConsumingScheduledOp.selector from IAccessManaged.isConsumingScheduledOp, and reverts unless the operation is scheduled, ready and not expired.

function consumeScheduledOp(address caller, bytes calldata data) external virtual override;

Parameters

NameTypeDescription
calleraddress
databytes

exportSelectors

ERC-8153 selector export: this facet's cuttable selectors, tightly packed (4 bytes each).

Excludes exportSelectors() itself (0x0ef22643) - it is never cut into a diamond. Order matches forge inspect AccessManager methodIdentifiers (alphabetical by signature); kept in exact parity by ExportSelectorsParityTest. Chunks: ADMIN_ROLE() 0x75b238fc PUBLIC_ROLE() 0x3ca7c02a canCall(address,address,bytes4) 0xb7009613 cancel(address,address,bytes) 0xd6bb62c6 consumeScheduledOp(address,bytes) 0x94c7d7ee execute(address,bytes) 0x1cff79cd getAccess(uint64,address) 0x3078f114 getNonce(bytes32) 0x4136a33c getRoleAdmin(uint64) 0x530dd456 getRoleGrantDelay(uint64) 0x12be8727 getRoleGuardian(uint64) 0x0b0a93ba getRoleMemberCount(uint64) 0xfc8610d1 getRoleMembers(uint64) 0xa5808e2f getSchedule(bytes32) 0x3adc277a getTargetAdminDelay(address) 0x4c1da1e2 getTargetFunctionRole(address,bytes4) 0x6d5115bd grantRole(uint64,address,uint32) 0x25c471a0 hasRole(uint64,address) 0xd1f856ee hashOperation(address,address,bytes) 0xabd9bd2a isTargetClosed(address) 0xa166aa89 labelRole(uint64,string) 0x853551b8 renounceRole(uint64,address) 0xfe0776f5 revokeRole(uint64,address) 0xb7d2b162 schedule(address,bytes,uint48) 0xf801a698 setGrantDelay(uint64,uint32) 0xa64d95ce setRoleAdmin(uint64,uint64) 0x30cae187 setRoleGuardian(uint64,uint64) 0x52962952 setTargetAdminDelay(address,uint32) 0xd22b5989 setTargetClosed(address,bool) 0x167bd395 setTargetFunctionRole(address,bytes4[],uint64) 0x08d6122d updateAuthority(address,address) 0x18ff183c

function exportSelectors() external pure virtual returns (bytes memory selectors);

Returns

NameTypeDescription
selectorsbytes