Timelock

Polygon PoS

0x47ebfac3353314c788b96cdcbf41daadfe03629c

Solidity v0.8.34+commit.80d5c536

🤖
Query this contract from your AI
Reference: 0x47ebfac3353314c788b96cdcbf41daadfe03629c
Sample prompt: “Tell me the current state of polygon/0x47ebfac3353314c788b96cdcbf41daadfe03629c”
No AI wired up yet? → mcp.smarts.md

Admin & Risk

Who can change the rules?

Detected role based controls from the verified ABI.

Role Based

Overview

Read Functions
14
Write Functions
6
Events
5

Read Functions

Block #87,396,950 · just now
ADMIN_ROLE() view → 0

Returns

Name Type Description
uint256
CANCELLER_ROLE() view → 3

Returns

Name Type Description
uint256
EXECUTOR_ROLE() view → 2

Returns

Name Type Description
uint256
MAX_ROLE() view → 3

Returns

Name Type Description
uint256
OPEN_ROLE_HOLDER() view → 0x0303030303030303030303030303030303030303

Returns

Name Type Description
address
PROPOSER_ROLE() view → 1

Returns

Name Type Description
uint256
hasRole(holder: address, role: uint256) view
dev: Returns if `holder` has active `role`.

Parameters

Name Type Description
holder address
role uint256

Returns

Name Type Description
result bool
minDelay() view → 43,200
dev: Returns the minimum delay.

Returns

Name Type Description
result uint256
operationState(id: bytes32) view
dev: Returns the current operation state of `id`.

Parameters

Name Type Description
id bytes32

Returns

Name Type Description
result uint8
readyTimestamp(id: bytes32) view
dev: Returns the ready timestamp for `id`.

Parameters

Name Type Description
id bytes32

Returns

Name Type Description
result uint256
roleHolderAt(role: uint256, i: uint256) view
dev: Returns the holder of `role` at the index `i`.

Parameters

Name Type Description
role uint256
i uint256

Returns

Name Type Description
result address
roleHolderCount(role: uint256) view
dev: Returns the total number of holders of `role`.

Parameters

Name Type Description
role uint256

Returns

Name Type Description
result uint256
roleHolders(role: uint256) view
dev: Returns an array of the holders of `role`.

Parameters

Name Type Description
role uint256

Returns

Name Type Description
result address[]
supportsExecutionMode(mode: bytes32) view
dev: Provided for execution mode support detection.

Parameters

Name Type Description
mode bytes32

Returns

Name Type Description
result bool

Write Functions

cancel(id: bytes32) nonpayable
dev: Cancels the operation with `id`. Emits a {Cancelled} event.

Parameters

Name Type Description
id bytes32
execute(mode: bytes32, executionData: bytes) payable
dev: Executes the calls in `executionData`. Reverts and bubbles up error if any call fails. `executionData` encoding (single batch): - If `opData` is empty, `executionData` is simply `abi.encode(calls)`. - Else, `executionData` is `abi.encode(calls, opData)`. See: https://eips.ethereum.org/EIPS/eip-7579 `executionData` encoding (batch of batches): - `executionData` is `abi.encode(bytes[])`, where each element in `bytes[]` is an `executionData` for a single batch. Supported modes: - `0x01000000000000000000...`: Single batch. Does not support optional `opData`. - `0x01000000000078210001...`: Single batch. Supports optional `opData`. - `0x01000000000078210002...`: Batch of batches. For the "batch of batches" mode, each batch will be recursively passed into `execute` internally with mode `0x01000000000078210001...`. Useful for passing in batches signed by different signers. Authorization checks: - If `opData` is empty, the implementation SHOULD require that `msg.sender == address(this)`. - If `opData` is not empty, the implementation SHOULD use the signature encoded in `opData` to determine if the caller can perform the execution. - If `msg.sender` is an authorized entry point, then `execute` MAY accept calls from the entry point, and MAY use `opData` for specialized logic. `opData` may be used to store additional data for authentication, paymaster data, gas limits, etc.

Parameters

Name Type Description
mode bytes32
executionData bytes
initialize(initialMinDelay: uint256, initialAdmin: address, proposers: address[], executors: address[], cancellers: address[]) nonpayable
dev: Initializes the timelock contract.

Parameters

Name Type Description
initialMinDelay uint256
initialAdmin address
proposers address[]
executors address[]
cancellers address[]
propose(mode: bytes32, executionData: bytes, delay: uint256) nonpayable
dev: Proposes an execute payload (`mode`, `executionData`) with `delay`. Emits a {Proposed} event.

Parameters

Name Type Description
mode bytes32
executionData bytes
delay uint256

Returns

Name Type Description
id bytes32
setMinDelay(newMinDelay: uint256) nonpayable
dev: Allows the timelock itself to set the minimum delay. Emits a {MinDelaySet} event.

Parameters

Name Type Description
newMinDelay uint256
setRole(holder: address, role: uint256, active: bool) payable
dev: Sets the status of `role` of `holder` to `active`.

Parameters

Name Type Description
holder address
role uint256
active bool

Events

Cancelled(id: bytes32)
Name Type Indexed Description
id bytes32
Executed(id: bytes32, mode: bytes32, executionData: bytes)
Name Type Indexed Description
id bytes32
mode bytes32
executionData bytes
MinDelaySet(newMinDelay: uint256)
Name Type Indexed Description
newMinDelay uint256
Proposed(id: bytes32, mode: bytes32, executionData: bytes, readyTimestamp: uint256)
Name Type Indexed Description
id bytes32
mode bytes32
executionData bytes
readyTimestamp uint256
RoleSet(holder: address, role: uint256, active: bool)
Name Type Indexed Description
holder address
role uint256
active bool