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 GnosisSafe extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TGnosisSafeTypes; $meta: { class: string; }; $constructor(deployer: TSender): Promise; NAME(): Promise; VERSION(): Promise; addOwnerWithThreshold(sender: TSender, owner: TAddress, _threshold: bigint): Promise; approveHash(sender: TSender, hashToApprove: TEth.Hex): Promise; approvedHashes(input0: TAddress, input1: TEth.Hex): Promise; changeMasterCopy(sender: TSender, _masterCopy: TAddress): Promise; changeThreshold(sender: TSender, _threshold: bigint): Promise; disableModule(sender: TSender, prevModule: TAddress, module: TAddress): Promise; domainSeparator(): Promise; enableModule(sender: TSender, module: TAddress): Promise; encodeTransactionData(to: TAddress, value: bigint, data: TEth.Hex, operation: number, safeTxGas: bigint, baseGas: bigint, gasPrice: bigint, gasToken: TAddress, refundReceiver: TAddress, _nonce: bigint): Promise; execTransaction(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number, safeTxGas: bigint, baseGas: bigint, gasPrice: bigint, gasToken: TAddress, refundReceiver: TAddress, signatures: TEth.Hex): Promise; execTransactionFromModule(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise; execTransactionFromModuleReturnData(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise; getMessageHash(message: TEth.Hex): Promise; getModules(): Promise; getModulesPaginated(start: TAddress, pageSize: bigint): Promise<{ array: TAddress[]; next: TAddress; }>; getOwners(): Promise; getThreshold(): Promise; getTransactionHash(to: TAddress, value: bigint, data: TEth.Hex, operation: number, safeTxGas: bigint, baseGas: bigint, gasPrice: bigint, gasToken: TAddress, refundReceiver: TAddress, _nonce: bigint): Promise; isOwner(owner: TAddress): Promise; isValidSignature(sender: TSender, _data: TEth.Hex, _signature: TEth.Hex): Promise; nonce(): Promise; removeOwner(sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): Promise; requiredTxGas(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise; setFallbackHandler(sender: TSender, handler: TAddress): Promise; setup(sender: TSender, _owners: TAddress[], _threshold: bigint, to: TAddress, data: TEth.Hex, fallbackHandler: TAddress, paymentToken: TAddress, payment: bigint, paymentReceiver: TAddress): Promise; signMessage(sender: TSender, _data: TEth.Hex): Promise; signedMessages(input0: TEth.Hex): Promise; swapOwner(sender: TSender, prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress): Promise; $call(): IGnosisSafeTxCaller; $signed(): TOverrideReturns>; $data(): IGnosisSafeTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TGnosisSafeTypes['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>[]>; onAddedOwner(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onApproveHash(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onChangedMasterCopy(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onChangedThreshold(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onDisabledModule(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onEnabledModule(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onExecutionFailure(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onExecutionFromModuleFailure(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onExecutionFromModuleSuccess(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onExecutionSuccess(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onRemovedOwner(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onSignMsg(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsAddedOwner(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsApproveHash(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsChangedMasterCopy(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsChangedThreshold(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsDisabledModule(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsEnabledModule(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsExecutionFailure(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsExecutionFromModuleFailure(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsExecutionFromModuleSuccess(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsExecutionSuccess(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsRemovedOwner(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsSignMsg(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsAddedOwner(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsApproveHash(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { approvedHash?: TEth.Hex; owner?: TAddress; }; }): Promise>[]>; getPastLogsChangedMasterCopy(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsChangedThreshold(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsDisabledModule(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsEnabledModule(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsExecutionFailure(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsExecutionFromModuleFailure(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { module?: TAddress; }; }): Promise>[]>; getPastLogsExecutionFromModuleSuccess(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { module?: TAddress; }; }): Promise>[]>; getPastLogsExecutionSuccess(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsRemovedOwner(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsSignMsg(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { msgHash?: TEth.Hex; }; }): Promise>[]>; abi: TAbiItem[]; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TGnosisSafeTypes = { Events: { AddedOwner: { outputParams: { owner: TAddress; }; outputArgs: [owner: TAddress]; }; ApproveHash: { outputParams: { approvedHash: TEth.Hex; owner: TAddress; }; outputArgs: [approvedHash: TEth.Hex, owner: TAddress]; }; ChangedMasterCopy: { outputParams: { masterCopy: TAddress; }; outputArgs: [masterCopy: TAddress]; }; ChangedThreshold: { outputParams: { threshold: bigint; }; outputArgs: [threshold: bigint]; }; DisabledModule: { outputParams: { module: TAddress; }; outputArgs: [module: TAddress]; }; EnabledModule: { outputParams: { module: TAddress; }; outputArgs: [module: TAddress]; }; ExecutionFailure: { outputParams: { txHash: TEth.Hex; payment: bigint; }; outputArgs: [txHash: TEth.Hex, payment: bigint]; }; ExecutionFromModuleFailure: { outputParams: { module: TAddress; }; outputArgs: [module: TAddress]; }; ExecutionFromModuleSuccess: { outputParams: { module: TAddress; }; outputArgs: [module: TAddress]; }; ExecutionSuccess: { outputParams: { txHash: TEth.Hex; payment: bigint; }; outputArgs: [txHash: TEth.Hex, payment: bigint]; }; RemovedOwner: { outputParams: { owner: TAddress; }; outputArgs: [owner: TAddress]; }; SignMsg: { outputParams: { msgHash: TEth.Hex; }; outputArgs: [msgHash: TEth.Hex]; }; }; Methods: { NAME: { method: "NAME"; arguments: []; }; VERSION: { method: "VERSION"; arguments: []; }; addOwnerWithThreshold: { method: "addOwnerWithThreshold"; arguments: [owner: TAddress, _threshold: bigint]; }; approveHash: { method: "approveHash"; arguments: [hashToApprove: TEth.Hex]; }; approvedHashes: { method: "approvedHashes"; arguments: [input0: TAddress, input1: TEth.Hex]; }; changeMasterCopy: { method: "changeMasterCopy"; arguments: [_masterCopy: TAddress]; }; changeThreshold: { method: "changeThreshold"; arguments: [_threshold: bigint]; }; disableModule: { method: "disableModule"; arguments: [prevModule: TAddress, module: TAddress]; }; domainSeparator: { method: "domainSeparator"; arguments: []; }; enableModule: { method: "enableModule"; arguments: [module: TAddress]; }; encodeTransactionData: { method: "encodeTransactionData"; arguments: [to: TAddress, value: bigint, data: TEth.Hex, operation: number, safeTxGas: bigint, baseGas: bigint, gasPrice: bigint, gasToken: TAddress, refundReceiver: TAddress, _nonce: bigint]; }; execTransaction: { method: "execTransaction"; arguments: [to: TAddress, value: bigint, data: TEth.Hex, operation: number, safeTxGas: bigint, baseGas: bigint, gasPrice: bigint, gasToken: TAddress, refundReceiver: TAddress, signatures: TEth.Hex]; }; execTransactionFromModule: { method: "execTransactionFromModule"; arguments: [to: TAddress, value: bigint, data: TEth.Hex, operation: number]; }; execTransactionFromModuleReturnData: { method: "execTransactionFromModuleReturnData"; arguments: [to: TAddress, value: bigint, data: TEth.Hex, operation: number]; }; getMessageHash: { method: "getMessageHash"; arguments: [message: TEth.Hex]; }; getModules: { method: "getModules"; arguments: []; }; getModulesPaginated: { method: "getModulesPaginated"; arguments: [start: TAddress, pageSize: bigint]; }; getOwners: { method: "getOwners"; arguments: []; }; getThreshold: { method: "getThreshold"; arguments: []; }; getTransactionHash: { method: "getTransactionHash"; arguments: [to: TAddress, value: bigint, data: TEth.Hex, operation: number, safeTxGas: bigint, baseGas: bigint, gasPrice: bigint, gasToken: TAddress, refundReceiver: TAddress, _nonce: bigint]; }; isOwner: { method: "isOwner"; arguments: [owner: TAddress]; }; isValidSignature: { method: "isValidSignature"; arguments: [_data: TEth.Hex, _signature: TEth.Hex]; }; nonce: { method: "nonce"; arguments: []; }; removeOwner: { method: "removeOwner"; arguments: [prevOwner: TAddress, owner: TAddress, _threshold: bigint]; }; requiredTxGas: { method: "requiredTxGas"; arguments: [to: TAddress, value: bigint, data: TEth.Hex, operation: number]; }; setFallbackHandler: { method: "setFallbackHandler"; arguments: [handler: TAddress]; }; setup: { method: "setup"; arguments: [_owners: TAddress[], _threshold: bigint, to: TAddress, data: TEth.Hex, fallbackHandler: TAddress, paymentToken: TAddress, payment: bigint, paymentReceiver: TAddress]; }; signMessage: { method: "signMessage"; arguments: [_data: TEth.Hex]; }; signedMessages: { method: "signedMessages"; arguments: [input0: TEth.Hex]; }; swapOwner: { method: "swapOwner"; arguments: [prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress]; }; }; }; interface IGnosisSafeTxCaller { addOwnerWithThreshold(sender: TSender, owner: TAddress, _threshold: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; approveHash(sender: TSender, hashToApprove: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; changeMasterCopy(sender: TSender, _masterCopy: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; changeThreshold(sender: TSender, _threshold: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; disableModule(sender: TSender, prevModule: TAddress, module: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; enableModule(sender: TSender, module: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; execTransaction(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number, safeTxGas: bigint, baseGas: bigint, gasPrice: bigint, gasToken: TAddress, refundReceiver: TAddress, signatures: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; execTransactionFromModule(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; execTransactionFromModuleReturnData(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; isValidSignature(sender: TSender, _data: TEth.Hex, _signature: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; removeOwner(sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; requiredTxGas(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setFallbackHandler(sender: TSender, handler: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setup(sender: TSender, _owners: TAddress[], _threshold: bigint, to: TAddress, data: TEth.Hex, fallbackHandler: TAddress, paymentToken: TAddress, payment: bigint, paymentReceiver: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; signMessage(sender: TSender, _data: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; swapOwner(sender: TSender, prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IGnosisSafeTxData { addOwnerWithThreshold(sender: TSender, owner: TAddress, _threshold: bigint): Promise; approveHash(sender: TSender, hashToApprove: TEth.Hex): Promise; changeMasterCopy(sender: TSender, _masterCopy: TAddress): Promise; changeThreshold(sender: TSender, _threshold: bigint): Promise; disableModule(sender: TSender, prevModule: TAddress, module: TAddress): Promise; enableModule(sender: TSender, module: TAddress): Promise; execTransaction(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number, safeTxGas: bigint, baseGas: bigint, gasPrice: bigint, gasToken: TAddress, refundReceiver: TAddress, signatures: TEth.Hex): Promise; execTransactionFromModule(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise; execTransactionFromModuleReturnData(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise; isValidSignature(sender: TSender, _data: TEth.Hex, _signature: TEth.Hex): Promise; removeOwner(sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): Promise; requiredTxGas(sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise; setFallbackHandler(sender: TSender, handler: TAddress): Promise; setup(sender: TSender, _owners: TAddress[], _threshold: bigint, to: TAddress, data: TEth.Hex, fallbackHandler: TAddress, paymentToken: TAddress, payment: bigint, paymentReceiver: TAddress): Promise; signMessage(sender: TSender, _data: TEth.Hex): Promise; swapOwner(sender: TSender, prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress): Promise; } type TEvents = TGnosisSafeTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};