123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- // SPDX-License-Identifier: MIT
- pragma solidity ^0.8.20;
- import {IAccessManaged} from "./IAccessManaged.sol";
- import {Time} from "../../utils/types/Time.sol";
- interface IAccessManager {
- /**
- * @dev A delayed operation was scheduled.
- */
- event OperationScheduled(
- bytes32 indexed operationId,
- uint32 indexed nonce,
- uint48 schedule,
- address caller,
- address target,
- bytes data
- );
- /**
- * @dev A scheduled operation was executed.
- */
- event OperationExecuted(bytes32 indexed operationId, uint32 indexed nonce);
- /**
- * @dev A scheduled operation was canceled.
- */
- event OperationCanceled(bytes32 indexed operationId, uint32 indexed nonce);
- event RoleLabel(uint64 indexed roleId, string label);
- /**
- * @dev Emitted when `account` is granted `roleId`.
- *
- * NOTE: The meaning of the `since` argument depends on the `newMember` argument.
- * If the role is granted to a new member, the `since` argument indicates when the account becomes a member of the role,
- * otherwise it indicates the execution delay for this account and roleId is updated.
- */
- event RoleGranted(uint64 indexed roleId, address indexed account, uint32 delay, uint48 since, bool newMember);
- event RoleRevoked(uint64 indexed roleId, address indexed account);
- event RoleAdminChanged(uint64 indexed roleId, uint64 indexed admin);
- event RoleGuardianChanged(uint64 indexed roleId, uint64 indexed guardian);
- event RoleGrantDelayChanged(uint64 indexed roleId, uint32 delay, uint48 since);
- event TargetClosed(address indexed target, bool closed);
- event TargetFunctionRoleUpdated(address indexed target, bytes4 selector, uint64 indexed roleId);
- event TargetAdminDelayUpdated(address indexed target, uint32 delay, uint48 since);
- error AccessManagerAlreadyScheduled(bytes32 operationId);
- error AccessManagerNotScheduled(bytes32 operationId);
- error AccessManagerNotReady(bytes32 operationId);
- error AccessManagerExpired(bytes32 operationId);
- error AccessManagerLockedAccount(address account);
- error AccessManagerLockedRole(uint64 roleId);
- error AccessManagerBadConfirmation();
- error AccessManagerUnauthorizedAccount(address msgsender, uint64 roleId);
- error AccessManagerUnauthorizedCall(address caller, address target, bytes4 selector);
- error AccessManagerUnauthorizedConsume(address target);
- error AccessManagerUnauthorizedCancel(address msgsender, address caller, address target, bytes4 selector);
- error AccessManagerInvalidInitialAdmin(address initialAdmin);
- function canCall(
- address caller,
- address target,
- bytes4 selector
- ) external view returns (bool allowed, uint32 delay);
- function hashOperation(address caller, address target, bytes calldata data) external view returns (bytes32);
- function expiration() external view returns (uint32);
- function isTargetClosed(address target) external view returns (bool);
- function getTargetFunctionRole(address target, bytes4 selector) external view returns (uint64);
- function getTargetAdminDelay(address target) external view returns (uint32);
- function getRoleAdmin(uint64 roleId) external view returns (uint64);
- function getRoleGuardian(uint64 roleId) external view returns (uint64);
- function getRoleGrantDelay(uint64 roleId) external view returns (uint32);
- function getAccess(uint64 roleId, address account) external view returns (uint48, uint32, uint32, uint48);
- function hasRole(uint64 roleId, address account) external view returns (bool, uint32);
- function labelRole(uint64 roleId, string calldata label) external;
- function grantRole(uint64 roleId, address account, uint32 executionDelay) external;
- function revokeRole(uint64 roleId, address account) external;
- function renounceRole(uint64 roleId, address callerConfirmation) external;
- function setRoleAdmin(uint64 roleId, uint64 admin) external;
- function setRoleGuardian(uint64 roleId, uint64 guardian) external;
- function setGrantDelay(uint64 roleId, uint32 newDelay) external;
- function setTargetFunctionRole(address target, bytes4[] calldata selectors, uint64 roleId) external;
- function setTargetAdminDelay(address target, uint32 newDelay) external;
- function setTargetClosed(address target, bool closed) external;
- function getSchedule(bytes32 id) external view returns (uint48);
- function getNonce(bytes32 id) external view returns (uint32);
- function schedule(address target, bytes calldata data, uint48 when) external returns (bytes32, uint32);
- function execute(address target, bytes calldata data) external payable returns (uint32);
- function cancel(address caller, address target, bytes calldata data) external returns (uint32);
- function consumeScheduledOp(address caller, bytes calldata data) external;
- function updateAuthority(address target, address newAuthority) external;
- }
|