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

function DEFAULT_ADMIN_ROLE() external view returns (bytes32)

Returns

Name
Type
Description

_0

bytes32

undefined

EXECUTOR_ROLE

function EXECUTOR_ROLE() external view returns (bytes32)

Returns

Name
Type
Description

_0

bytes32

undefined

PROPOSER_ROLE

function PROPOSER_ROLE() external view returns (bytes32)

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 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

Name
Type
Description

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

Name
Type
Description

id indexed

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 indexed

bytes32

undefined

previousAdminRole indexed

bytes32

undefined

newAdminRole indexed

bytes32

undefined

RoleGranted

Parameters

Name
Type
Description

role indexed

bytes32

undefined

account indexed

address

undefined

sender indexed

address

undefined

RoleRevoked

Parameters

Name
Type
Description

role indexed

bytes32

undefined

account indexed

address

undefined

sender indexed

address

undefined

Last updated