Timelock Controller Upgradeable
Contract module which acts as a timelocked controller. When set as the owner of an Ownable
smart contract, it enforces a timelock on all onlyOwner
maintenance operations. This gives time for users of the controlled contract to exit before a potentially dangerous maintenance operation is applied. By default, this contract is self administered, meaning administration tasks have to go through the timelock process. The proposer (resp executor) role is in charge of proposing (resp executing) operations. A common use case is to position this {TimelockController} as the owner of a smart contract, with a multisig or a DAO as the sole proposer. Available since v3.3.
Methods
DEFAULT_ADMIN_ROLE
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
EXECUTOR_ROLE
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
PROPOSER_ROLE
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
TIMELOCK_ADMIN_ROLE
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
cancel
Cancel an operation. Requirements: - the caller must have the 'proposer' role.
Parameters
Name | Type | Description |
---|---|---|
id | bytes32 | undefined |
execute
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 | undefined |
value | uint256 | undefined |
data | bytes | undefined |
predecessor | bytes32 | undefined |
salt | bytes32 | undefined |
executeBatch
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[] | undefined |
values | uint256[] | undefined |
datas | bytes[] | undefined |
predecessor | bytes32 | undefined |
salt | bytes32 | undefined |
getMinDelay
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 | undefined |
getRoleAdmin
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 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
getTimestamp
Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).
Parameters
Name | Type | Description |
---|---|---|
id | bytes32 | undefined |
Returns
Name | Type | Description |
---|---|---|
timestamp | uint256 | undefined |
grantRole
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 | undefined |
account | address | undefined |
hasRole
Returns true
if account
has been granted role
.
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
account | address | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
hashOperation
Returns the identifier of an operation containing a single transaction.
Parameters
Name | Type | Description |
---|---|---|
target | address | undefined |
value | uint256 | undefined |
data | bytes | undefined |
predecessor | bytes32 | undefined |
salt | bytes32 | undefined |
Returns
Name | Type | Description |
---|---|---|
hash | bytes32 | undefined |
hashOperationBatch
Returns the identifier of an operation containing a batch of transactions.
Parameters
Name | Type | Description |
---|---|---|
targets | address[] | undefined |
values | uint256[] | undefined |
datas | bytes[] | undefined |
predecessor | bytes32 | undefined |
salt | bytes32 | undefined |
Returns
Name | Type | Description |
---|---|---|
hash | bytes32 | undefined |
isOperation
Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.
Parameters
Name | Type | Description |
---|---|---|
id | bytes32 | undefined |
Returns
Name | Type | Description |
---|---|---|
pending | bool | undefined |
isOperationDone
Returns whether an operation is done or not.
Parameters
Name | Type | Description |
---|---|---|
id | bytes32 | undefined |
Returns
Name | Type | Description |
---|---|---|
done | bool | undefined |
isOperationPending
Returns whether an operation is pending or not.
Parameters
Name | Type | Description |
---|---|---|
id | bytes32 | undefined |
Returns
Name | Type | Description |
---|---|---|
pending | bool | undefined |
isOperationReady
Returns whether an operation is ready or not.
Parameters
Name | Type | Description |
---|---|---|
id | bytes32 | undefined |
Returns
Name | Type | Description |
---|---|---|
ready | bool | undefined |
renounceRole
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 | undefined |
account | address | undefined |
revokeRole
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 | undefined |
account | address | undefined |
schedule
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 | undefined |
value | uint256 | undefined |
data | bytes | undefined |
predecessor | bytes32 | undefined |
salt | bytes32 | undefined |
delay | uint256 | undefined |
scheduleBatch
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[] | undefined |
values | uint256[] | undefined |
datas | bytes[] | undefined |
predecessor | bytes32 | undefined |
salt | bytes32 | undefined |
delay | uint256 | undefined |
supportsInterface
See {IERC165-supportsInterface}.
Parameters
Name | Type | Description |
---|---|---|
interfaceId | bytes4 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
updateDelay
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 | undefined |
Events
CallExecuted
Emitted when a call is performed as part of operation id
.
Parameters
Name | Type | Description |
---|---|---|
id | bytes32 | undefined |
index | uint256 | undefined |
target | address | undefined |
value | uint256 | undefined |
data | bytes | undefined |
CallScheduled
Emitted when a call is scheduled as part of operation id
.
Parameters
Name | Type | Description |
---|---|---|
id | bytes32 | undefined |
index | uint256 | undefined |
target | address | undefined |
value | uint256 | undefined |
data | bytes | undefined |
predecessor | bytes32 | undefined |
delay | uint256 | undefined |
Cancelled
Emitted when operation id
is cancelled.
Parameters
Name | Type | Description |
---|---|---|
id | bytes32 | undefined |
MinDelayChange
Emitted when the minimum delay for future operations is modified.
Parameters
Name | Type | Description |
---|---|---|
oldDuration | uint256 | undefined |
newDuration | uint256 | undefined |
RoleAdminChanged
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
previousAdminRole | bytes32 | undefined |
newAdminRole | bytes32 | undefined |
RoleGranted
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
account | address | undefined |
sender | address | undefined |
RoleRevoked
Parameters
Name | Type | Description |
---|---|---|
role | bytes32 | undefined |
account | address | undefined |
sender | address | undefined |
Last updated