Skip to main content

Timelock

Git Source

Inherits: ITimelock

Constants​

GRACE_PERIOD​

uint256 public constant GRACE_PERIOD = 1 days;

MINIMUM_DELAY​

uint256 public constant MINIMUM_DELAY = 1 days;

MAXIMUM_DELAY​

uint256 public constant MAXIMUM_DELAY = 3 days;

State Variables​

admin​

address public admin;

pendingAdmin​

address public pendingAdmin;

delay​

uint256 public delay;

initialized​

bool public initialized;

queuedTransactions​

mapping(bytes32 => bool) public queuedTransactions;

Functions​

constructor​

constructor(address admin_, uint256 delay_);

Parameters

NameTypeDescription
admin_address
delay_uint256

setFirstAdmin​

function setFirstAdmin(address admin_) public;

Parameters

NameTypeDescription
admin_address

fallback​

fallback() external payable;

setDelay​

function setDelay(uint256 delay_) public;

Parameters

NameTypeDescription
delay_uint256

acceptAdmin​

function acceptAdmin() public;

setPendingAdmin​

function setPendingAdmin(address pendingAdmin_) public;

Parameters

NameTypeDescription
pendingAdmin_address

queueTransaction​

function queueTransaction(
uint256 proposalId,
address target,
uint256 value,
string memory signature,
bytes memory data,
uint256 eta
) public returns (bytes32);

Parameters

NameTypeDescription
proposalIduint256
targetaddress
valueuint256
signaturestring
databytes
etauint256

Returns

NameTypeDescription
<none>bytes32

cancelTransaction​

function cancelTransaction(
uint256 proposalId,
address target,
uint256 value,
string memory signature,
bytes memory data,
uint256 eta
) public;

Parameters

NameTypeDescription
proposalIduint256
targetaddress
valueuint256
signaturestring
databytes
etauint256

executeTransaction​

function executeTransaction(
uint256 proposalId,
address target,
uint256 value,
string memory signature,
bytes memory data,
bytes32 codehash,
uint256 eta
) public payable returns (bytes memory);

Parameters

NameTypeDescription
proposalIduint256
targetaddress
valueuint256
signaturestring
databytes
codehashbytes32
etauint256

Returns

NameTypeDescription
<none>bytes

Events​

NewAdmin​

event NewAdmin(address indexed newAdmin);

Parameters

NameTypeDescription
newAdminaddress

NewPendingAdmin​

event NewPendingAdmin(address indexed newPendingAdmin);

Parameters

NameTypeDescription
newPendingAdminaddress

NewDelay​

event NewDelay(uint256 indexed newDelay);

Parameters

NameTypeDescription
newDelayuint256

CancelTransaction​

event CancelTransaction(
uint256 indexed proposalId,
bytes32 indexed txHash,
address indexed target,
uint256 value,
string signature,
bytes data,
uint256 eta
);

Parameters

NameTypeDescription
proposalIduint256
txHashbytes32
targetaddress
valueuint256
signaturestring
databytes
etauint256

ExecuteTransaction​

event ExecuteTransaction(
uint256 indexed proposalId,
bytes32 indexed txHash,
address indexed target,
uint256 value,
string signature,
bytes data,
uint256 eta
);

Parameters

NameTypeDescription
proposalIduint256
txHashbytes32
targetaddress
valueuint256
signaturestring
databytes
etauint256

QueueTransaction​

event QueueTransaction(
uint256 indexed proposalId,
bytes32 indexed txHash,
address indexed target,
uint256 value,
string signature,
bytes data,
uint256 eta
);

Parameters

NameTypeDescription
proposalIduint256
txHashbytes32
targetaddress
valueuint256
signaturestring
databytes
etauint256

Errors​

Timelock_OnlyOnce​

error Timelock_OnlyOnce();

Timelock_OnlyAdmin​

error Timelock_OnlyAdmin();

Timelock_OnlyPendingAdmin​

error Timelock_OnlyPendingAdmin();

Timelock_OnlyInternalCall​

error Timelock_OnlyInternalCall();

Timelock_InvalidDelay​

error Timelock_InvalidDelay();

Timelock_InvalidExecutionTime​

error Timelock_InvalidExecutionTime();

Timelock_InvalidTx_Stale​

error Timelock_InvalidTx_Stale();

Timelock_InvalidTx_Locked​

error Timelock_InvalidTx_Locked();

Timelock_InvalidTx_NotQueued​

error Timelock_InvalidTx_NotQueued();

Timelock_InvalidTx_CodeHashChanged​

error Timelock_InvalidTx_CodeHashChanged();

Timelock_InvalidTx_ExecReverted​

error Timelock_InvalidTx_ExecReverted();