Timelock
Polygon PoS0x47ebfac3353314c788b96cdcbf41daadfe03629c
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 | ✓ |