Timelock Controller
Last updated
Last updated
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.
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Cancel an operation. Requirements: - the caller must have the 'proposer' role.
Execute an (ready) operation containing a single transaction. Emits a {CallExecuted} event. Requirements: - the caller must have the 'executor' role.
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.
Returns the minimum delay for an operation to become valid. This value can be changed by executing an operation that calls updateDelay
.
Returns the admin role that controls role
. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).
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.
Returns true
if account
has been granted role
.
Returns the identifier of an operation containing a single transaction.
Returns the identifier of an operation containing a batch of transactions.
Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.
Returns whether an operation is done or not.
Returns whether an operation is pending or not.
Returns whether an operation is ready or not.
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
.
Revokes role
from account
. If account
had been granted role
, emits a {RoleRevoked} event. Requirements: - the caller must have role
's admin role.
Schedule an operation containing a single transaction. Emits a {CallScheduled} event. Requirements: - the caller must have the 'proposer' role.
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.
See {IERC165-supportsInterface}.
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.
Emitted when a call is performed as part of operation id
.
Emitted when a call is scheduled as part of operation id
.
Emitted when operation id
is cancelled.
Emitted when the minimum delay for future operations is modified.
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
_0
bytes32
undefined
_0
bytes32
undefined
_0
bytes32
undefined
_0
bytes32
undefined
id
bytes32
undefined
target
address
undefined
value
uint256
undefined
data
bytes
undefined
predecessor
bytes32
undefined
salt
bytes32
undefined
targets
address[]
undefined
values
uint256[]
undefined
datas
bytes[]
undefined
predecessor
bytes32
undefined
salt
bytes32
undefined
duration
uint256
undefined
role
bytes32
undefined
_0
bytes32
undefined
id
bytes32
undefined
timestamp
uint256
undefined
role
bytes32
undefined
account
address
undefined
role
bytes32
undefined
account
address
undefined
_0
bool
undefined
target
address
undefined
value
uint256
undefined
data
bytes
undefined
predecessor
bytes32
undefined
salt
bytes32
undefined
hash
bytes32
undefined
targets
address[]
undefined
values
uint256[]
undefined
datas
bytes[]
undefined
predecessor
bytes32
undefined
salt
bytes32
undefined
hash
bytes32
undefined
id
bytes32
undefined
pending
bool
undefined
id
bytes32
undefined
done
bool
undefined
id
bytes32
undefined
pending
bool
undefined
id
bytes32
undefined
ready
bool
undefined
role
bytes32
undefined
account
address
undefined
role
bytes32
undefined
account
address
undefined
target
address
undefined
value
uint256
undefined
data
bytes
undefined
predecessor
bytes32
undefined
salt
bytes32
undefined
delay
uint256
undefined
targets
address[]
undefined
values
uint256[]
undefined
datas
bytes[]
undefined
predecessor
bytes32
undefined
salt
bytes32
undefined
delay
uint256
undefined
interfaceId
bytes4
undefined
_0
bool
undefined
newDelay
uint256
undefined
id indexed
bytes32
undefined
index indexed
uint256
undefined
target
address
undefined
value
uint256
undefined
data
bytes
undefined
id indexed
bytes32
undefined
index indexed
uint256
undefined
target
address
undefined
value
uint256
undefined
data
bytes
undefined
predecessor
bytes32
undefined
delay
uint256
undefined
id indexed
bytes32
undefined
oldDuration
uint256
undefined
newDuration
uint256
undefined
role indexed
bytes32
undefined
previousAdminRole indexed
bytes32
undefined
newAdminRole indexed
bytes32
undefined
role indexed
bytes32
undefined
account indexed
address
undefined
sender indexed
address
undefined
role indexed
bytes32
undefined
account indexed
address
undefined
sender indexed
address
undefined