import { TAddress } from '../../models/TAddress'; import { TAccount } from '../../models/TAccount'; import { ClientEventsStream, TClientEventsStreamData } from '../../clients/ClientEventsStream'; import { ContractBase } from '../../contracts/ContractBase'; import { TxWriter } from '../../txs/TxWriter'; import { ITxLogItem } from '../../txs/receipt/ITxLogItem'; import { Web3Client } from '../../clients/Web3Client'; import { IBlockchainExplorer } from '../../explorer/IBlockchainExplorer'; import { SubjectStream } from '../../class/SubjectStream'; import type { TAbiItem } from '../../types/TAbi'; import type { TEth } from '../../models/TEth'; import type { TOverrideReturns } from '../../utils/types'; export declare class TimelockController extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TTimelockControllerTypes; $meta: { class: string; }; $constructor(deployer: TSender, minDelay: bigint, proposers: TAddress[], executors: TAddress[], admin: TAddress): Promise; CANCELLER_ROLE(): Promise; DEFAULT_ADMIN_ROLE(): Promise; EXECUTOR_ROLE(): Promise; PROPOSER_ROLE(): Promise; TIMELOCK_ADMIN_ROLE(): Promise; cancel(sender: TSender, id: TEth.Hex): Promise; execute(sender: TSender, target: TAddress, value: bigint, payload: TEth.Hex, predecessor: TEth.Hex, salt: TEth.Hex): Promise; executeBatch(sender: TSender, targets: TAddress[], values: bigint[], payloads: TEth.Hex[], predecessor: TEth.Hex, salt: TEth.Hex): Promise; getMinDelay(): Promise; getRoleAdmin(role: TEth.Hex): Promise; getTimestamp(id: TEth.Hex): Promise; grantRole(sender: TSender, role: TEth.Hex, account: TAddress): Promise; hasRole(role: TEth.Hex, account: TAddress): Promise; hashOperation(target: TAddress, value: bigint, data: TEth.Hex, predecessor: TEth.Hex, salt: TEth.Hex): Promise; hashOperationBatch(targets: TAddress[], values: bigint[], payloads: TEth.Hex[], predecessor: TEth.Hex, salt: TEth.Hex): Promise; isOperation(id: TEth.Hex): Promise; isOperationDone(id: TEth.Hex): Promise; isOperationPending(id: TEth.Hex): Promise; isOperationReady(id: TEth.Hex): Promise; onERC1155BatchReceived(sender: TSender, input0: TAddress, input1: TAddress, input2: bigint[], input3: bigint[], input4: TEth.Hex): Promise; onERC1155Received(sender: TSender, input0: TAddress, input1: TAddress, input2: bigint, input3: bigint, input4: TEth.Hex): Promise; onERC721Received(sender: TSender, input0: TAddress, input1: TAddress, input2: bigint, input3: TEth.Hex): Promise; renounceRole(sender: TSender, role: TEth.Hex, account: TAddress): Promise; revokeRole(sender: TSender, role: TEth.Hex, account: TAddress): Promise; schedule(sender: TSender, target: TAddress, value: bigint, data: TEth.Hex, predecessor: TEth.Hex, salt: TEth.Hex, delay: bigint): Promise; scheduleBatch(sender: TSender, targets: TAddress[], values: bigint[], payloads: TEth.Hex[], predecessor: TEth.Hex, salt: TEth.Hex, delay: bigint): Promise; supportsInterface(interfaceId: TEth.Hex): Promise; updateDelay(sender: TSender, newDelay: bigint): Promise; $call(): ITimelockControllerTxCaller; $signed(): TOverrideReturns>; $data(): ITimelockControllerTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TTimelockControllerTypes['Methods'][TMethod]['arguments']; }; }>; onLog(event: keyof TEvents, cb?: (event: TClientEventsStreamData) => void): ClientEventsStream; getPastLogs(events: TEventName[], options?: TEventLogOptions>): Promise, TEventName>[]>; getPastLogs(event: TEventName, options?: TEventLogOptions>): Promise, TEventName>[]>; onCallExecuted(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onCallSalt(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onCallScheduled(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onCancelled(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onMinDelayChange(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onRoleAdminChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onRoleGranted(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onRoleRevoked(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsCallExecuted(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsCallSalt(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsCallScheduled(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsCancelled(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsMinDelayChange(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsRoleAdminChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsRoleGranted(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsRoleRevoked(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsCallExecuted(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { id?: TEth.Hex; index?: bigint; }; }): Promise>[]>; getPastLogsCallSalt(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { id?: TEth.Hex; }; }): Promise>[]>; getPastLogsCallScheduled(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { id?: TEth.Hex; index?: bigint; }; }): Promise>[]>; getPastLogsCancelled(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { id?: TEth.Hex; }; }): Promise>[]>; getPastLogsMinDelayChange(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsRoleAdminChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { role?: TEth.Hex; previousAdminRole?: TEth.Hex; newAdminRole?: TEth.Hex; }; }): Promise>[]>; getPastLogsRoleGranted(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { role?: TEth.Hex; account?: TAddress; sender?: TAddress; }; }): Promise>[]>; getPastLogsRoleRevoked(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { role?: TEth.Hex; account?: TAddress; sender?: TAddress; }; }): Promise>[]>; abi: TAbiItem[]; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TTimelockControllerTypes = { Events: { CallExecuted: { outputParams: { id: TEth.Hex; index: bigint; target: TAddress; value: bigint; data: TEth.Hex; }; outputArgs: [id: TEth.Hex, index: bigint, target: TAddress, value: bigint, data: TEth.Hex]; }; CallSalt: { outputParams: { id: TEth.Hex; salt: TEth.Hex; }; outputArgs: [id: TEth.Hex, salt: TEth.Hex]; }; CallScheduled: { outputParams: { id: TEth.Hex; index: bigint; target: TAddress; value: bigint; data: TEth.Hex; predecessor: TEth.Hex; delay: bigint; }; outputArgs: [id: TEth.Hex, index: bigint, target: TAddress, value: bigint, data: TEth.Hex, predecessor: TEth.Hex, delay: bigint]; }; Cancelled: { outputParams: { id: TEth.Hex; }; outputArgs: [id: TEth.Hex]; }; MinDelayChange: { outputParams: { oldDuration: bigint; newDuration: bigint; }; outputArgs: [oldDuration: bigint, newDuration: bigint]; }; RoleAdminChanged: { outputParams: { role: TEth.Hex; previousAdminRole: TEth.Hex; newAdminRole: TEth.Hex; }; outputArgs: [role: TEth.Hex, previousAdminRole: TEth.Hex, newAdminRole: TEth.Hex]; }; RoleGranted: { outputParams: { role: TEth.Hex; account: TAddress; _sender: TAddress; }; outputArgs: [role: TEth.Hex, account: TAddress, _sender: TAddress]; }; RoleRevoked: { outputParams: { role: TEth.Hex; account: TAddress; _sender: TAddress; }; outputArgs: [role: TEth.Hex, account: TAddress, _sender: TAddress]; }; }; Methods: { CANCELLER_ROLE: { method: "CANCELLER_ROLE"; arguments: []; }; DEFAULT_ADMIN_ROLE: { method: "DEFAULT_ADMIN_ROLE"; arguments: []; }; EXECUTOR_ROLE: { method: "EXECUTOR_ROLE"; arguments: []; }; PROPOSER_ROLE: { method: "PROPOSER_ROLE"; arguments: []; }; TIMELOCK_ADMIN_ROLE: { method: "TIMELOCK_ADMIN_ROLE"; arguments: []; }; cancel: { method: "cancel"; arguments: [id: TEth.Hex]; }; execute: { method: "execute"; arguments: [target: TAddress, value: bigint, payload: TEth.Hex, predecessor: TEth.Hex, salt: TEth.Hex]; }; executeBatch: { method: "executeBatch"; arguments: [targets: TAddress[], values: bigint[], payloads: TEth.Hex[], predecessor: TEth.Hex, salt: TEth.Hex]; }; getMinDelay: { method: "getMinDelay"; arguments: []; }; getRoleAdmin: { method: "getRoleAdmin"; arguments: [role: TEth.Hex]; }; getTimestamp: { method: "getTimestamp"; arguments: [id: TEth.Hex]; }; grantRole: { method: "grantRole"; arguments: [role: TEth.Hex, account: TAddress]; }; hasRole: { method: "hasRole"; arguments: [role: TEth.Hex, account: TAddress]; }; hashOperation: { method: "hashOperation"; arguments: [target: TAddress, value: bigint, data: TEth.Hex, predecessor: TEth.Hex, salt: TEth.Hex]; }; hashOperationBatch: { method: "hashOperationBatch"; arguments: [targets: TAddress[], values: bigint[], payloads: TEth.Hex[], predecessor: TEth.Hex, salt: TEth.Hex]; }; isOperation: { method: "isOperation"; arguments: [id: TEth.Hex]; }; isOperationDone: { method: "isOperationDone"; arguments: [id: TEth.Hex]; }; isOperationPending: { method: "isOperationPending"; arguments: [id: TEth.Hex]; }; isOperationReady: { method: "isOperationReady"; arguments: [id: TEth.Hex]; }; onERC1155BatchReceived: { method: "onERC1155BatchReceived"; arguments: [input0: TAddress, input1: TAddress, input2: bigint[], input3: bigint[], input4: TEth.Hex]; }; onERC1155Received: { method: "onERC1155Received"; arguments: [input0: TAddress, input1: TAddress, input2: bigint, input3: bigint, input4: TEth.Hex]; }; onERC721Received: { method: "onERC721Received"; arguments: [input0: TAddress, input1: TAddress, input2: bigint, input3: TEth.Hex]; }; renounceRole: { method: "renounceRole"; arguments: [role: TEth.Hex, account: TAddress]; }; revokeRole: { method: "revokeRole"; arguments: [role: TEth.Hex, account: TAddress]; }; schedule: { method: "schedule"; arguments: [target: TAddress, value: bigint, data: TEth.Hex, predecessor: TEth.Hex, salt: TEth.Hex, delay: bigint]; }; scheduleBatch: { method: "scheduleBatch"; arguments: [targets: TAddress[], values: bigint[], payloads: TEth.Hex[], predecessor: TEth.Hex, salt: TEth.Hex, delay: bigint]; }; supportsInterface: { method: "supportsInterface"; arguments: [interfaceId: TEth.Hex]; }; updateDelay: { method: "updateDelay"; arguments: [newDelay: bigint]; }; }; }; interface ITimelockControllerTxCaller { cancel(sender: TSender, id: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; execute(sender: TSender, target: TAddress, value: bigint, payload: TEth.Hex, predecessor: TEth.Hex, salt: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; executeBatch(sender: TSender, targets: TAddress[], values: bigint[], payloads: TEth.Hex[], predecessor: TEth.Hex, salt: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; grantRole(sender: TSender, role: TEth.Hex, account: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; onERC1155BatchReceived(sender: TSender, input0: TAddress, input1: TAddress, input2: bigint[], input3: bigint[], input4: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; onERC1155Received(sender: TSender, input0: TAddress, input1: TAddress, input2: bigint, input3: bigint, input4: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; onERC721Received(sender: TSender, input0: TAddress, input1: TAddress, input2: bigint, input3: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; renounceRole(sender: TSender, role: TEth.Hex, account: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; revokeRole(sender: TSender, role: TEth.Hex, account: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; schedule(sender: TSender, target: TAddress, value: bigint, data: TEth.Hex, predecessor: TEth.Hex, salt: TEth.Hex, delay: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; scheduleBatch(sender: TSender, targets: TAddress[], values: bigint[], payloads: TEth.Hex[], predecessor: TEth.Hex, salt: TEth.Hex, delay: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; updateDelay(sender: TSender, newDelay: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface ITimelockControllerTxData { cancel(sender: TSender, id: TEth.Hex): Promise; execute(sender: TSender, target: TAddress, value: bigint, payload: TEth.Hex, predecessor: TEth.Hex, salt: TEth.Hex): Promise; executeBatch(sender: TSender, targets: TAddress[], values: bigint[], payloads: TEth.Hex[], predecessor: TEth.Hex, salt: TEth.Hex): Promise; grantRole(sender: TSender, role: TEth.Hex, account: TAddress): Promise; onERC1155BatchReceived(sender: TSender, input0: TAddress, input1: TAddress, input2: bigint[], input3: bigint[], input4: TEth.Hex): Promise; onERC1155Received(sender: TSender, input0: TAddress, input1: TAddress, input2: bigint, input3: bigint, input4: TEth.Hex): Promise; onERC721Received(sender: TSender, input0: TAddress, input1: TAddress, input2: bigint, input3: TEth.Hex): Promise; renounceRole(sender: TSender, role: TEth.Hex, account: TAddress): Promise; revokeRole(sender: TSender, role: TEth.Hex, account: TAddress): Promise; schedule(sender: TSender, target: TAddress, value: bigint, data: TEth.Hex, predecessor: TEth.Hex, salt: TEth.Hex, delay: bigint): Promise; scheduleBatch(sender: TSender, targets: TAddress[], values: bigint[], payloads: TEth.Hex[], predecessor: TEth.Hex, salt: TEth.Hex, delay: bigint): Promise; updateDelay(sender: TSender, newDelay: bigint): Promise; } type TEvents = TTimelockControllerTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};