TimelockController

Ethereum Browse chains

0xfe89cc7abb2c4183683ab71653c4cdc9b02d44b7

Solidity v0.8.7+commit.e28d00a7

🤖
Query this contract from your AI
Reference: 0xfe89cc7abb2c4183683ab71653c4cdc9b02d44b7
Sample prompt: "Tell me the current state of eth/0xfe89cc7abb2c4183683ab71653c4cdc9b02d44b7"
No AI wired up yet? → mcp.smarts.md · Browse chains

Admin & Risk

Who can change the rules?

Detected role based controls from the verified ABI.

Role Based

Overview

Read Functions
15
Write Functions
9
Events
7

Read Functions

Block #25,493,729 · just now
DEFAULT_ADMIN_ROLE() view → 0x0000000000000000000000000000000000000000000000000000000000000000

Return the bytes32 identifier for the contract's default admin role.✨ AI

Returns

Name Type Description
bytes32 bytes32 identifier for the default admin role used to manage timelock permissions.✨ AI
EXECUTOR_ROLE() view → 0xd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63

Returns the role identifier used to grant executor permissions.✨ AI

Returns

Name Type Description
bytes32 The bytes32 identifier for the EXECUTOR_ROLE used to check or grant executor permissions.✨ AI
PROPOSER_ROLE() view → 0xb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1

Return the role identifier for accounts allowed to propose operations.✨ AI

Returns

Name Type Description
bytes32 The bytes32 identifier for the PROPOSER_ROLE; used to check or grant proposal permissions.✨ AI
TIMELOCK_ADMIN_ROLE() view → 0x5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5

Returns the bytes32 identifier for the Timelock admin role.✨ AI

Returns

Name Type Description
bytes32 The bytes32 role identifier used to check or grant the timelock admin role.✨ AI
getMinDelay() view → 172,800

Returns the current minimum delay the timelock requires before executing queued operations.✨ AI

dev: Returns the minimum delay for an operation to become valid. This value can be changed by executing an operation that calls `updateDelay`.

Returns

Name Type Description
duration uint256 duration: The minimum delay, in seconds, required before queued operations can be executed.✨ AI
getRoleAdmin(role: bytes32) view

Get the admin role that controls a specified role.✨ AI

dev: Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.

Parameters

Name Type Description
role bytes32 Role identifier (bytes32) to query.✨ AI

Returns

Name Type Description
bytes32 Admin role identifier (bytes32) that controls the given role.✨ AI
getTimestamp(id: bytes32) view

Returns the timestamp when the specified operation becomes executable.✨ AI

dev: Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).

Parameters

Name Type Description
id bytes32 Operation identifier (bytes32) used to look up the scheduled timestamp.✨ AI

Returns

Name Type Description
timestamp uint256 The scheduled timestamp in Unix seconds when the operation is executable, or 0 if not scheduled.✨ AI
hasRole(role: bytes32, account: address) view

Checks whether the given account has the specified role and returns true if it does.✨ AI

dev: Returns `true` if `account` has been granted `role`.

Parameters

Name Type Description
role bytes32 Role identifier to check, provided as a bytes32 value.✨ AI
account address Address of the account to check for the role.✨ AI

Returns

Name Type Description
bool True if the account holds the specified role, otherwise false.✨ AI
hashOperation(target: address, value: uint256, data: bytes, predecessor: bytes32, salt: bytes32) pure

Computes the operation identifier hash from the target, value, data, predecessor, and salt.✨ AI

dev: Returns the identifier of an operation containing a single transaction.

Parameters

Name Type Description
target address Target contract address for the scheduled call.✨ AI
value uint256 Amount of wei to send with the call.✨ AI
data bytes Calldata bytes for the call to the target.✨ AI
predecessor bytes32 Operation id that must be executed before this one (bytes32), or zero.✨ AI
salt bytes32 User-supplied salt to make the operation id unique (bytes32).✨ AI

Returns

Name Type Description
hash bytes32 hash: keccak256(abi.encode(target, value, data, predecessor, salt)) that uniquely identifies the operation (bytes32).✨ AI
hashOperationBatch(targets: address[], values: uint256[], datas: bytes[], predecessor: bytes32, salt: bytes32) pure

Computes the keccak256 hash that uniquely identifies a batch operation.✨ AI

dev: Returns the identifier of an operation containing a batch of transactions.

Parameters

Name Type Description
targets address[] Array of target addresses called by the batch.✨ AI
values uint256[] Array of ETH values (in wei) forwarded to each target.✨ AI
datas bytes[] Array of call data payloads for each target call.✨ AI
predecessor bytes32 Operation id that must execute before this batch (bytes32 zero for none).✨ AI
salt bytes32 User-supplied salt (bytes32) to distinguish otherwise identical batches.✨ AI

Returns

Name Type Description
hash bytes32 Bytes32 hash identifying the batch, computed from targets, values, datas, predecessor, and salt.✨ AI
isOperation(id: bytes32) view

Checks whether the given operation id is currently pending in the timelock.✨ AI

dev: Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.

Parameters

Name Type Description
id bytes32 Operation identifier to query.✨ AI

Returns

Name Type Description
pending bool pending: true if the operation is pending, false otherwise.✨ AI
isOperationDone(id: bytes32) view

Reports whether a scheduled operation has been executed.✨ AI

dev: Returns whether an operation is done or not.

Parameters

Name Type Description
id bytes32 Identifier of the operation to query.✨ AI

Returns

Name Type Description
done bool done: true if the operation has been executed, false otherwise.✨ AI
isOperationPending(id: bytes32) view

Return true if the operation with the given id is pending.✨ AI

dev: Returns whether an operation is pending or not.

Parameters

Name Type Description
id bytes32 Operation identifier to check (bytes32).✨ AI

Returns

Name Type Description
pending bool pending: true if the operation is pending (scheduled and not yet executed or canceled).✨ AI
isOperationReady(id: bytes32) view

Return true if the specified operation is ready for execution.✨ AI

dev: Returns whether an operation is ready or not.

Parameters

Name Type Description
id bytes32 Operation identifier as a bytes32 hash, returned when the operation was scheduled.✨ AI

Returns

Name Type Description
ready bool ready: true if the operation's delay has elapsed and it can be executed, otherwise false.✨ AI
supportsInterface(interfaceId: bytes4) view

Check if the contract implements the interface identified by interfaceId.✨ AI

dev: See {IERC165-supportsInterface}.

Parameters

Name Type Description
interfaceId bytes4 The ERC165 interface identifier to query.✨ AI

Returns

Name Type Description
bool true if the contract supports the specified interfaceId, otherwise false.✨ AI

Write Functions

cancel(id: bytes32) nonpayable

Cancel a scheduled operation so it can no longer be executed.✨ AI

dev: Cancel an operation. Requirements: - the caller must have the 'proposer' role.

Parameters

Name Type Description
id bytes32 Identifier of the scheduled operation to cancel.✨ AI
execute(target: address, value: uint256, data: bytes, predecessor: bytes32, salt: bytes32) payable

Executes a scheduled transaction by calling target with value and data once prerequisites are satisfied.✨ AI

dev: Execute an (ready) operation containing a single transaction. Emits a {CallExecuted} event. Requirements: - the caller must have the 'executor' role.

Parameters

Name Type Description
target address Destination contract or account address to call.✨ AI
value uint256 Amount of wei to send with the call.✨ AI
data bytes Encoded call data (function selector and arguments).✨ AI
predecessor bytes32 Operation id that must be executed before this one, or zero if none.✨ AI
salt bytes32 Unique salt identifying the scheduled operation.✨ AI
executeBatch(targets: address[], values: uint256[], datas: bytes[], predecessor: bytes32, salt: bytes32) payable

Execute a scheduled batch of transactions after its timelock has expired.✨ AI

dev: Execute an (ready) operation containing a batch of transactions. Emits one {CallExecuted} event per transaction in the batch. Requirements: - the caller must have the 'executor' role.

Parameters

Name Type Description
targets address[] Array of addresses to call.✨ AI
values uint256[] Array of wei amounts to send to each target.✨ AI
datas bytes[] Array of calldata bytes for each respective call.✨ AI
predecessor bytes32 Operation id that must be executed before this batch; use zero hash if none.✨ AI
salt bytes32 Salt used when scheduling the operation to uniquely identify the batch.✨ AI
grantRole(role: bytes32, account: address) nonpayable

Grants a role to an account, enabling that account to perform role-restricted actions.✨ AI

dev: Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.

Parameters

Name Type Description
role bytes32 Role identifier to grant, as a bytes32 hash.✨ AI
account address Address that will receive the role.✨ AI
renounceRole(role: bytes32, account: address) nonpayable

Allows an account to renounce a role it holds; the call must be made by that account.✨ AI

dev: Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.

Parameters

Name Type Description
role bytes32 Role identifier (bytes32) to renounce.✨ AI
account address Address renouncing the role; must equal msg.sender.✨ AI
revokeRole(role: bytes32, account: address) nonpayable

Revoke a role from an account, removing that account's permissions managed by the timelock.✨ AI

dev: Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.

Parameters

Name Type Description
role bytes32 Role identifier (bytes32) to revoke.✨ AI
account address Address of the account whose role will be revoked.✨ AI
schedule(target: address, value: uint256, data: bytes, predecessor: bytes32, salt: bytes32, delay: uint256) nonpayable

Schedules a transaction for future execution by recording its target, value, calldata, and execution delay.✨ AI

dev: Schedule an operation containing a single transaction. Emits a {CallScheduled} event. Requirements: - the caller must have the 'proposer' role.

Parameters

Name Type Description
target address Address of the contract or account to call when the operation executes.✨ AI
value uint256 Amount of wei to send with the call.✨ AI
data bytes Calldata payload to send to the target on execution.✨ AI
predecessor bytes32 Optional operation id that must be executed before this one (bytes32).✨ AI
salt bytes32 Unique salt to create the operation id and avoid collisions (bytes32).✨ AI
delay uint256 Time in seconds to wait before the operation becomes executable.✨ AI
scheduleBatch(targets: address[], values: uint256[], datas: bytes[], predecessor: bytes32, salt: bytes32, delay: uint256) nonpayable

Schedules a batch of transactions that the timelock will execute after the specified delay.✨ AI

dev: Schedule an operation containing a batch of transactions. Emits one {CallScheduled} event per transaction in the batch. Requirements: - the caller must have the 'proposer' role.

Parameters

Name Type Description
targets address[] Addresses of contracts or accounts to call.✨ AI
values uint256[] Ether amounts (in wei) to send with each call.✨ AI
datas bytes[] Encoded calldata payloads for each corresponding target.✨ AI
predecessor bytes32 Operation id that must be executed before this batch; use zero for no predecessor.✨ AI
salt bytes32 Unique salt value used to produce the operation id.✨ AI
delay uint256 Delay in seconds before the scheduled batch becomes executable.✨ AI
updateDelay(newDelay: uint256) nonpayable

Updates the minimum delay for timelocked operations.✨ AI

dev: Changes the minimum timelock duration for future operations. Emits a {MinDelayChange} event. Requirements: - the caller must be the timelock itself. This can only be achieved by scheduling and later executing an operation where the timelock is the target and the data is the ABI-encoded call to this function.

Parameters

Name Type Description
newDelay uint256 New minimum delay in seconds to apply to scheduled operations.✨ AI

Events

CallExecuted(id: bytes32, index: uint256, target: address, value: uint256, data: bytes)
Name Type Indexed Description
id bytes32
index uint256
target address
value uint256
data bytes
CallScheduled(id: bytes32, index: uint256, target: address, value: uint256, data: bytes, predecessor: bytes32, delay: uint256)
Name Type Indexed Description
id bytes32
index uint256
target address
value uint256
data bytes
predecessor bytes32
delay uint256
Cancelled(id: bytes32)
Name Type Indexed Description
id bytes32
MinDelayChange(oldDuration: uint256, newDuration: uint256)
Name Type Indexed Description
oldDuration uint256
newDuration uint256
RoleAdminChanged(role: bytes32, previousAdminRole: bytes32, newAdminRole: bytes32)
Name Type Indexed Description
role bytes32
previousAdminRole bytes32
newAdminRole bytes32
RoleGranted(role: bytes32, account: address, sender: address)
Name Type Indexed Description
role bytes32
account address
sender address
RoleRevoked(role: bytes32, account: address, sender: address)
Name Type Indexed Description
role bytes32
account address
sender address