TimelockController
Ethereum0xfe89cc7abb2c4183683ab71653c4cdc9b02d44b7
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
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,170,033 · just now
DEFAULT_ADMIN_ROLE()
view
→ 0x0000000000000000000000000000000000000000000000000000000000000000
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
EXECUTOR_ROLE()
view
→ 0xd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
PROPOSER_ROLE()
view
→ 0xb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
TIMELOCK_ADMIN_ROLE()
view
→ 0x5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
getMinDelay()
view
→ 172,800
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 |
getRoleAdmin(role: bytes32)
view
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 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
getTimestamp(id: bytes32)
view
dev: Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).
Parameters
| Name | Type | Description |
|---|---|---|
| id | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| timestamp | uint256 |
hasRole(role: bytes32, account: address)
view
dev: Returns `true` if `account` has been granted `role`.
Parameters
| Name | Type | Description |
|---|---|---|
| role | bytes32 | |
| account | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
hashOperation(target: address, value: uint256, data: bytes, predecessor: bytes32, salt: bytes32)
pure
dev: Returns the identifier of an operation containing a single transaction.
Parameters
| Name | Type | Description |
|---|---|---|
| target | address | |
| value | uint256 | |
| data | bytes | |
| predecessor | bytes32 | |
| salt | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| hash | bytes32 |
hashOperationBatch(targets: address[], values: uint256[], datas: bytes[], predecessor: bytes32, salt: bytes32)
pure
dev: Returns the identifier of an operation containing a batch of transactions.
Parameters
| Name | Type | Description |
|---|---|---|
| targets | address[] | |
| values | uint256[] | |
| datas | bytes[] | |
| predecessor | bytes32 | |
| salt | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| hash | bytes32 |
isOperation(id: bytes32)
view
dev: Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.
Parameters
| Name | Type | Description |
|---|---|---|
| id | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| pending | bool |
isOperationDone(id: bytes32)
view
dev: Returns whether an operation is done or not.
Parameters
| Name | Type | Description |
|---|---|---|
| id | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| done | bool |
isOperationPending(id: bytes32)
view
dev: Returns whether an operation is pending or not.
Parameters
| Name | Type | Description |
|---|---|---|
| id | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| pending | bool |
isOperationReady(id: bytes32)
view
dev: Returns whether an operation is ready or not.
Parameters
| Name | Type | Description |
|---|---|---|
| id | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| ready | bool |
supportsInterface(interfaceId: bytes4)
view
dev: See {IERC165-supportsInterface}.
Parameters
| Name | Type | Description |
|---|---|---|
| interfaceId | bytes4 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
Write Functions
cancel(id: bytes32)
nonpayable
dev: Cancel an operation. Requirements: - the caller must have the 'proposer' role.
Parameters
| Name | Type | Description |
|---|---|---|
| id | bytes32 |
execute(target: address, value: uint256, data: bytes, predecessor: bytes32, salt: bytes32)
payable
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 | |
| value | uint256 | |
| data | bytes | |
| predecessor | bytes32 | |
| salt | bytes32 |
executeBatch(targets: address[], values: uint256[], datas: bytes[], predecessor: bytes32, salt: bytes32)
payable
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[] | |
| values | uint256[] | |
| datas | bytes[] | |
| predecessor | bytes32 | |
| salt | bytes32 |
grantRole(role: bytes32, account: address)
nonpayable
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 | |
| account | address |
renounceRole(role: bytes32, account: address)
nonpayable
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 | |
| account | address |
revokeRole(role: bytes32, account: address)
nonpayable
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 | |
| account | address |
schedule(target: address, value: uint256, data: bytes, predecessor: bytes32, salt: bytes32, delay: uint256)
nonpayable
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 | |
| value | uint256 | |
| data | bytes | |
| predecessor | bytes32 | |
| salt | bytes32 | |
| delay | uint256 |
scheduleBatch(targets: address[], values: uint256[], datas: bytes[], predecessor: bytes32, salt: bytes32, delay: uint256)
nonpayable
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[] | |
| values | uint256[] | |
| datas | bytes[] | |
| predecessor | bytes32 | |
| salt | bytes32 | |
| delay | uint256 |
updateDelay(newDelay: uint256)
nonpayable
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 |
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 | ✓ |