V1 Smart Contract Documentation
  • Bondtroller
    • Bondtroller
    • Bondtroller V 1 Storage
    • Bondtroller V 2 Storage
    • Bondtroller V 3 Storage
    • Bondtroller V 4 Storage
    • Bondtroller V 5 Storage
  • B Token
    • B Erc 20
    • B Erc 20 Interface
    • B Erc 20 Storage
    • B Ether
    • B Lending Token
    • B Token
    • B Token Interface
    • B Token Storage
  • Interest Rate Model
    • Base Jump Rate Model V 2
    • Fringe Interest Rate Model
    • Interest Rate Model
    • Jump Rate Model V 2
  • Interfaces
    • EIP 20 Interface
    • EIP 20 Non Standard Interface
    • IB Erc 20 Token
    • IB Lending Token
    • IB Primary Index Token
    • I Comptroller
    • I Price Provider Aggregator
    • I Primary Index Token
    • IPRJ
    • I Simple Price Oracle
    • IUSDC Test
  • Mock
    • PRJ
  • Openzeppelin
    • Contracts
      • Access
        • Access Control
        • Access Control Enumerable
        • I Access Control
        • I Access Control Enumerable
        • Ownable
      • Finance
        • Payment Splitter
      • Governance
        • Compatibility
          • Governor Compatibility Bravo
          • I Governor Compatibility Bravo
        • Extensions
          • Governor Counting Simple
          • Governor Proposal Threshold
          • Governor Timelock Compound
          • Governor Timelock Control
          • Governor Votes
          • Governor Votes Comp
          • Governor Votes Quorum Fraction
          • I Compound Timelock
          • I Governor Timelock
        • Governor
        • I Governor
        • Timelock Controller
      • Interfaces
        • IERC 1271
        • IERC 1363
        • IERC 1363 Receiver
        • IERC 1363 Spender
        • IERC 2612
        • IERC 2981
        • IERC 3156 Flash Borrower
        • IERC 3156 Flash Lender
      • Metatx
        • ERC 2771 Context
        • Minimal Forwarder
      • Proxy
        • Beacon
          • Beacon Proxy
          • I Beacon
          • Upgradeable Beacon
        • ERC 1967
          • ERC 1967 Proxy
          • ERC 1967 Upgrade
        • Transparent
          • Proxy Admin
          • Transparent Upgradeable Proxy
        • Utils
          • Initializable
          • UUPS Upgradeable
        • Clones
        • Proxy
      • Security
        • Pausable
        • Pull Payment
        • Reentrancy Guard
      • Token
        • ERC 1155
          • Extensions
            • ERC 1155 Burnable
            • ERC 1155 Pausable
            • ERC 1155 Supply
            • IERC 1155 Metadata URI
          • Presets
            • ERC 1155 Preset Minter Pauser
          • Utils
            • ERC 1155 Holder
            • ERC 1155 Receiver
          • IERC 1155
          • IERC 1155 Receiver
        • ERC 20
          • Extensions
            • ERC 20 Burnable
            • ERC 20 Capped
            • ERC 20 Flash Mint
            • ERC 20 Pausable
            • ERC 20 Permit
            • ERC 20 Snapshot
            • ERC 20 Votes
            • ERC 20 Votes Comp
            • ERC 20 Wrapper
            • IERC 20 Metadata
            • IERC 20 Permit
          • Presets
            • ERC 20 Preset Fixed Supply
            • ERC 20 Preset Minter Pauser
          • Utils
            • Safe ERC 20
            • Token Timelock
          • IERC 20
        • ERC 721
          • Extensions
            • ERC 721 Burnable
            • ERC 721 Enumerable
            • ERC 721 Pausable
            • ERC 721 URI Storage
            • IERC 721 Enumerable
            • IERC 721 Metadata
          • Presets
            • ERC 721 Preset Minter Pauser Auto Id
          • Utils
            • ERC 721 Holder
          • IERC 721
          • IERC 721 Receiver
        • ERC 777
          • Presets
            • ERC 777 Preset Fixed Supply
          • IERC 777
          • IERC 777 Recipient
          • IERC 777 Sender
      • Utils
        • Cryptography
          • ECDSA
          • EIP 712
          • Merkle Proof
          • Signature Checker
        • Escrow
          • Conditional Escrow
          • Escrow
          • Refund Escrow
        • Introspection
          • ERC 165
          • ERC 165 Checker
          • ERC 165 Storage
          • ERC 1820 Implementer
          • IERC 165
          • IERC 1820 Implementer
          • IERC 1820 Registry
        • Math
          • Math
          • Safe Cast
          • Safe Math
          • Signed Safe Math
        • Structs
          • Bit Maps
          • Enumerable Map
          • Enumerable Set
        • Address
        • Arrays
        • Context
        • Counters
        • Create 2
        • Multicall
        • Storage Slot
        • Strings
        • Timers
    • Contracts Upgradeable
      • Access
        • Access Control Enumerable Upgradeable
        • Access Control Upgradeable
        • I Access Control Enumerable Upgradeable
        • I Access Control Upgradeable
        • Ownable Upgradeable
      • Finance
        • Payment Splitter Upgradeable
      • Governance
        • Compatibility
          • Governor Compatibility Bravo Upgradeable
          • I Governor Compatibility Bravo Upgradeable
        • Extensions
          • Governor Counting Simple Upgradeable
          • Governor Proposal Threshold Upgradeable
          • Governor Timelock Compound Upgradeable
          • Governor Timelock Control Upgradeable
          • Governor Votes Comp Upgradeable
          • Governor Votes Quorum Fraction Upgradeable
          • Governor Votes Upgradeable
          • I Compound Timelock Upgradeable
          • I Governor Timelock Upgradeable
        • Governor Upgradeable
        • I Governor Upgradeable
        • Timelock Controller Upgradeable
      • Interfaces
        • IERC 1271 Upgradeable
        • IERC 1363 Receiver Upgradeable
        • IERC 1363 Spender Upgradeable
        • IERC 1363 Upgradeable
        • IERC 2612 Upgradeable
        • IERC 2981 Upgradeable
        • IERC 3156 Flash Borrower Upgradeable
        • IERC 3156 Flash Lender Upgradeable
      • Metatx
        • ERC 2771 Context Upgradeable
        • Minimal Forwarder Upgradeable
      • Proxy
        • Beacon
          • I Beacon Upgradeable
        • ERC 1967
          • ERC 1967 Upgrade Upgradeable
        • Utils
          • Initializable
          • UUPS Upgradeable
        • Clones Upgradeable
      • Security
        • Pausable Upgradeable
        • Pull Payment Upgradeable
        • Reentrancy Guard Upgradeable
      • Token
        • ERC 1155
          • Extensions
            • ERC 1155 Burnable Upgradeable
            • ERC 1155 Pausable Upgradeable
            • ERC 1155 Supply Upgradeable
            • IERC 1155 Metadata URI Upgradeable
          • Presets
            • ERC 1155 Preset Minter Pauser Upgradeable
          • Utils
            • ERC 1155 Holder Upgradeable
            • ERC 1155 Receiver Upgradeable
          • ERC 1155 Upgradeable
          • IERC 1155 Receiver Upgradeable
          • IERC 1155 Upgradeable
        • ERC 20
          • Extensions
            • ERC 20 Burnable Upgradeable
            • ERC 20 Capped Upgradeable
            • ERC 20 Flash Mint Upgradeable
            • ERC 20 Pausable Upgradeable
            • ERC 20 Permit Upgradeable
            • ERC 20 Snapshot Upgradeable
            • ERC 20 Votes Comp Upgradeable
            • ERC 20 Votes Upgradeable
            • ERC 20 Wrapper Upgradeable
            • IERC 20 Metadata Upgradeable
            • IERC 20 Permit Upgradeable
          • Presets
            • ERC 20 Preset Fixed Supply Upgradeable
            • ERC 20 Preset Minter Pauser Upgradeable
          • Utils
            • Safe ERC 20 Upgradeable
            • Token Timelock Upgradeable
          • ERC 20 Upgradeable
          • IERC 20 Upgradeable
        • ERC 721
          • Extensions
            • ERC 721 Burnable Upgradeable
            • ERC 721 Enumerable Upgradeable
            • ERC 721 Pausable Upgradeable
            • ERC 721 URI Storage Upgradeable
            • IERC 721 Enumerable Upgradeable
            • IERC 721 Metadata Upgradeable
          • Presets
            • ERC 721 Preset Minter Pauser Auto Id Upgradeable
          • Utils
            • ERC 721 Holder Upgradeable
          • ERC 721 Upgradeable
          • IERC 721 Receiver Upgradeable
          • IERC 721 Upgradeable
        • ERC 777
          • Presets
            • ERC 777 Preset Fixed Supply Upgradeable
          • ERC 777 Upgradeable
          • IERC 777 Recipient Upgradeable
          • IERC 777 Sender Upgradeable
          • IERC 777 Upgradeable
      • Utils
        • Cryptography
          • ECDSA Upgradeable
          • EIP 712 Upgradeable
          • Merkle Proof Upgradeable
          • Signature Checker Upgradeable
        • Escrow
          • Conditional Escrow Upgradeable
          • Escrow Upgradeable
          • Refund Escrow Upgradeable
        • Introspection
          • ERC 165 Checker Upgradeable
          • ERC 165 Storage Upgradeable
          • ERC 165 Upgradeable
          • ERC 1820 Implementer Upgradeable
          • IERC 165 Upgradeable
          • IERC 1820 Implementer Upgradeable
          • IERC 1820 Registry Upgradeable
        • Math
          • Math Upgradeable
          • Safe Cast Upgradeable
          • Safe Math Upgradeable
          • Signed Safe Math Upgradeable
        • Structs
          • Bit Maps Upgradeable
          • Enumerable Map Upgradeable
          • Enumerable Set Upgradeable
        • Address Upgradeable
        • Arrays Upgradeable
        • Context Upgradeable
        • Counters Upgradeable
        • Create 2 Upgradeable
        • Multicall Upgradeable
        • Storage Slot Upgradeable
        • Strings Upgradeable
        • Timers Upgradeable
  • Price Oracle
    • Priceproviders
      • Chainlink
        • Aggregator V 3 Interface
      • Uniswap V 2
        • I Uniswap V 2 Factory
        • I Uniswap V 2 Pair
        • I Uniswap V 2 Router 02
        • Safe Math
        • Uniswap V 2 Library
      • Backend Price Provider
      • Chainlink Price Provider
      • Price Provider
      • Uniswap V 2 Price Provider
    • Price Provider Aggregator
  • Util
    • Bondtroller Error Reporter
    • Careful Math
    • Exponential
    • Exponential No Error
    • Token Error Reporter
  • Console
  • Index
  • Primary Index Token
  • Primary Lending Platform Proxy Admin
Powered by GitBook
On this page
  • Methods
  • DEFAULT_ADMIN_ROLE
  • EXECUTOR_ROLE
  • PROPOSER_ROLE
  • TIMELOCK_ADMIN_ROLE
  • cancel
  • execute
  • executeBatch
  • getMinDelay
  • getRoleAdmin
  • getTimestamp
  • grantRole
  • hasRole
  • hashOperation
  • hashOperationBatch
  • isOperation
  • isOperationDone
  • isOperationPending
  • isOperationReady
  • renounceRole
  • revokeRole
  • schedule
  • scheduleBatch
  • supportsInterface
  • updateDelay
  • Events
  • CallExecuted
  • CallScheduled
  • Cancelled
  • MinDelayChange
  • RoleAdminChanged
  • RoleGranted
  • RoleRevoked
  1. Openzeppelin
  2. Contracts
  3. Governance

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

function TIMELOCK_ADMIN_ROLE() external view returns (bytes32)

Returns

Name
Type
Description

_0

bytes32

undefined

cancel

function cancel(bytes32 id) external nonpayable

Cancel an operation. Requirements: - the caller must have the 'proposer' role.

Parameters

Name
Type
Description

id

bytes32

undefined

execute

function execute(address target, uint256 value, bytes data, bytes32 predecessor, bytes32 salt) external payable

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

function executeBatch(address[] targets, uint256[] values, bytes[] datas, bytes32 predecessor, bytes32 salt) external payable

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

function getMinDelay() external view returns (uint256 duration)

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

function getRoleAdmin(bytes32 role) external view returns (bytes32)

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

function getTimestamp(bytes32 id) external view returns (uint256 timestamp)

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

function grantRole(bytes32 role, address account) external nonpayable

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

function hasRole(bytes32 role, address account) external view returns (bool)

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

function hashOperation(address target, uint256 value, bytes data, bytes32 predecessor, bytes32 salt) external pure returns (bytes32 hash)

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

function hashOperationBatch(address[] targets, uint256[] values, bytes[] datas, bytes32 predecessor, bytes32 salt) external pure returns (bytes32 hash)

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

function isOperation(bytes32 id) external view returns (bool pending)

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

function isOperationDone(bytes32 id) external view returns (bool done)

Returns whether an operation is done or not.

Parameters

Name
Type
Description

id

bytes32

undefined

Returns

Name
Type
Description

done

bool

undefined

isOperationPending

function isOperationPending(bytes32 id) external view returns (bool pending)

Returns whether an operation is pending or not.

Parameters

Name
Type
Description

id

bytes32

undefined

Returns

Name
Type
Description

pending

bool

undefined

isOperationReady

function isOperationReady(bytes32 id) external view returns (bool ready)

Returns whether an operation is ready or not.

Parameters

Name
Type
Description

id

bytes32

undefined

Returns

Name
Type
Description

ready

bool

undefined

renounceRole

function renounceRole(bytes32 role, address account) external nonpayable

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

function revokeRole(bytes32 role, address account) external nonpayable

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

function schedule(address target, uint256 value, bytes data, bytes32 predecessor, bytes32 salt, uint256 delay) external nonpayable

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

function scheduleBatch(address[] targets, uint256[] values, bytes[] datas, bytes32 predecessor, bytes32 salt, uint256 delay) external nonpayable

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

function supportsInterface(bytes4 interfaceId) external view returns (bool)

See {IERC165-supportsInterface}.

Parameters

Name
Type
Description

interfaceId

bytes4

undefined

Returns

Name
Type
Description

_0

bool

undefined

updateDelay

function updateDelay(uint256 newDelay) external nonpayable

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

event CallExecuted(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data)

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

event CallScheduled(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data, bytes32 predecessor, uint256 delay)

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

event Cancelled(bytes32 indexed id)

Emitted when operation id is cancelled.

Parameters

Name
Type
Description

id indexed

bytes32

undefined

MinDelayChange

event MinDelayChange(uint256 oldDuration, uint256 newDuration)

Emitted when the minimum delay for future operations is modified.

Parameters

Name
Type
Description

oldDuration

uint256

undefined

newDuration

uint256

undefined

RoleAdminChanged

event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)

Parameters

Name
Type
Description

role indexed

bytes32

undefined

previousAdminRole indexed

bytes32

undefined

newAdminRole indexed

bytes32

undefined

RoleGranted

event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)

Parameters

Name
Type
Description

role indexed

bytes32

undefined

account indexed

address

undefined

sender indexed

address

undefined

RoleRevoked

event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)

Parameters

Name
Type
Description

role indexed

bytes32

undefined

account indexed

address

undefined

sender indexed

address

undefined

PreviousI GovernorNextInterfaces

Last updated 3 years ago