TimelockController

Ethereum

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

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