Timelock Controller
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
_0
bytes32
undefined
EXECUTOR_ROLE
Returns
_0
bytes32
undefined
PROPOSER_ROLE
Returns
_0
bytes32
undefined
TIMELOCK_ADMIN_ROLE
Returns
_0
bytes32
undefined
cancel
Cancel an operation. Requirements: - the caller must have the 'proposer' role.
Parameters
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
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
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
duration
uint256
undefined
getRoleAdmin
Returns the admin role that controls role
. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
Parameters
role
bytes32
undefined
Returns
_0
bytes32
undefined
getTimestamp
Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).
Parameters
id
bytes32
undefined
Returns
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
role
bytes32
undefined
account
address
undefined
hasRole
Returns true
if account
has been granted role
.
Parameters
role
bytes32
undefined
account
address
undefined
Returns
_0
bool
undefined
hashOperation
Returns the identifier of an operation containing a single transaction.
Parameters
target
address
undefined
value
uint256
undefined
data
bytes
undefined
predecessor
bytes32
undefined
salt
bytes32
undefined
Returns
hash
bytes32
undefined
hashOperationBatch
Returns the identifier of an operation containing a batch of transactions.
Parameters
targets
address[]
undefined
values
uint256[]
undefined
datas
bytes[]
undefined
predecessor
bytes32
undefined
salt
bytes32
undefined
Returns
hash
bytes32
undefined
isOperation
Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.
Parameters
id
bytes32
undefined
Returns
pending
bool
undefined
isOperationDone
Returns whether an operation is done or not.
Parameters
id
bytes32
undefined
Returns
done
bool
undefined
isOperationPending
Returns whether an operation is pending or not.
Parameters
id
bytes32
undefined
Returns
pending
bool
undefined
isOperationReady
Returns whether an operation is ready or not.
Parameters
id
bytes32
undefined
Returns
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
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
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
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
targets
address[]
undefined
values
uint256[]
undefined
datas
bytes[]
undefined
predecessor
bytes32
undefined
salt
bytes32
undefined
delay
uint256
undefined
supportsInterface
See {IERC165-supportsInterface}.
Parameters
interfaceId
bytes4
undefined
Returns
_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
newDelay
uint256
undefined
Events
CallExecuted
Emitted when a call is performed as part of operation id
.
Parameters
id indexed
bytes32
undefined
index indexed
uint256
undefined
target
address
undefined
value
uint256
undefined
data
bytes
undefined
CallScheduled
Emitted when a call is scheduled as part of operation id
.
Parameters
id indexed
bytes32
undefined
index indexed
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
id indexed
bytes32
undefined
MinDelayChange
Emitted when the minimum delay for future operations is modified.
Parameters
oldDuration
uint256
undefined
newDuration
uint256
undefined
RoleAdminChanged
Parameters
role indexed
bytes32
undefined
previousAdminRole indexed
bytes32
undefined
newAdminRole indexed
bytes32
undefined
RoleGranted
Parameters
role indexed
bytes32
undefined
account indexed
address
undefined
sender indexed
address
undefined
RoleRevoked
Parameters
role indexed
bytes32
undefined
account indexed
address
undefined
sender indexed
address
undefined
Last updated