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 Safe extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TSafeTypes; $meta: { class: string; }; $constructor(deployer: TSender): 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; changeThreshold(sender: TSender, _threshold: bigint): Promise; checkNSignatures(dataHash: TEth.Hex, data: TEth.Hex, signatures: TEth.Hex, requiredSignatures: bigint): Promise; checkSignatures(dataHash: TEth.Hex, data: TEth.Hex, signatures: TEth.Hex): 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; getChainId(): Promise; getModulesPaginated(start: TAddress, pageSize: bigint): Promise<{ array: TAddress[]; next: TAddress; }>; getOwners(): Promise; getStorageAt(offset: bigint, length: bigint): 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; isModuleEnabled(module: TAddress): Promise; isOwner(owner: TAddress): Promise; nonce(): Promise; removeOwner(sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): Promise; setFallbackHandler(sender: TSender, handler: TAddress): Promise; setGuard(sender: TSender, guard: TAddress): Promise; setup(sender: TSender, _owners: TAddress[], _threshold: bigint, to: TAddress, data: TEth.Hex, fallbackHandler: TAddress, paymentToken: TAddress, payment: bigint, paymentReceiver: TAddress): Promise; signedMessages(input0: TEth.Hex): Promise; simulateAndRevert(sender: TSender, targetContract: TAddress, calldataPayload: TEth.Hex): Promise; swapOwner(sender: TSender, prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress): Promise; $call(): ISafeTxCaller; $signed(): TOverrideReturns>; $data(): ISafeTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TSafeTypes['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>>; onChangedFallbackHandler(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onChangedGuard(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>>; onSafeReceived(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onSafeSetup(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onSignMsg(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsAddedOwner(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsApproveHash(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsChangedFallbackHandler(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsChangedGuard(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>[]; extractLogsSafeReceived(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsSafeSetup(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsSignMsg(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsAddedOwner(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { owner?: TAddress; }; }): Promise>[]>; getPastLogsApproveHash(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { approvedHash?: TEth.Hex; owner?: TAddress; }; }): Promise>[]>; getPastLogsChangedFallbackHandler(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { handler?: TAddress; }; }): Promise>[]>; getPastLogsChangedGuard(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { guard?: TAddress; }; }): Promise>[]>; getPastLogsChangedThreshold(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsDisabledModule(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { module?: TAddress; }; }): Promise>[]>; getPastLogsEnabledModule(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { module?: TAddress; }; }): Promise>[]>; getPastLogsExecutionFailure(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { txHash?: TEth.Hex; }; }): 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?: { txHash?: TEth.Hex; }; }): Promise>[]>; getPastLogsRemovedOwner(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { owner?: TAddress; }; }): Promise>[]>; getPastLogsSafeReceived(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { sender?: TAddress; }; }): Promise>[]>; getPastLogsSafeSetup(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { initiator?: TAddress; }; }): 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 TSafeTypes = { Events: { AddedOwner: { outputParams: { owner: TAddress; }; outputArgs: [owner: TAddress]; }; ApproveHash: { outputParams: { approvedHash: TEth.Hex; owner: TAddress; }; outputArgs: [approvedHash: TEth.Hex, owner: TAddress]; }; ChangedFallbackHandler: { outputParams: { handler: TAddress; }; outputArgs: [handler: TAddress]; }; ChangedGuard: { outputParams: { guard: TAddress; }; outputArgs: [guard: 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]; }; SafeReceived: { outputParams: { _sender: TAddress; value: bigint; }; outputArgs: [_sender: TAddress, value: bigint]; }; SafeSetup: { outputParams: { initiator: TAddress; owners: TAddress[]; threshold: bigint; initializer: TAddress; fallbackHandler: TAddress; }; outputArgs: [initiator: TAddress, owners: TAddress[], threshold: bigint, initializer: TAddress, fallbackHandler: TAddress]; }; SignMsg: { outputParams: { msgHash: TEth.Hex; }; outputArgs: [msgHash: TEth.Hex]; }; }; Methods: { 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]; }; changeThreshold: { method: "changeThreshold"; arguments: [_threshold: bigint]; }; checkNSignatures: { method: "checkNSignatures"; arguments: [dataHash: TEth.Hex, data: TEth.Hex, signatures: TEth.Hex, requiredSignatures: bigint]; }; checkSignatures: { method: "checkSignatures"; arguments: [dataHash: TEth.Hex, data: TEth.Hex, signatures: TEth.Hex]; }; 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]; }; getChainId: { method: "getChainId"; arguments: []; }; getModulesPaginated: { method: "getModulesPaginated"; arguments: [start: TAddress, pageSize: bigint]; }; getOwners: { method: "getOwners"; arguments: []; }; getStorageAt: { method: "getStorageAt"; arguments: [offset: bigint, length: bigint]; }; 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]; }; isModuleEnabled: { method: "isModuleEnabled"; arguments: [module: TAddress]; }; isOwner: { method: "isOwner"; arguments: [owner: TAddress]; }; nonce: { method: "nonce"; arguments: []; }; removeOwner: { method: "removeOwner"; arguments: [prevOwner: TAddress, owner: TAddress, _threshold: bigint]; }; setFallbackHandler: { method: "setFallbackHandler"; arguments: [handler: TAddress]; }; setGuard: { method: "setGuard"; arguments: [guard: TAddress]; }; setup: { method: "setup"; arguments: [_owners: TAddress[], _threshold: bigint, to: TAddress, data: TEth.Hex, fallbackHandler: TAddress, paymentToken: TAddress, payment: bigint, paymentReceiver: TAddress]; }; signedMessages: { method: "signedMessages"; arguments: [input0: TEth.Hex]; }; simulateAndRevert: { method: "simulateAndRevert"; arguments: [targetContract: TAddress, calldataPayload: TEth.Hex]; }; swapOwner: { method: "swapOwner"; arguments: [prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress]; }; }; }; interface ISafeTxCaller { 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; }>; 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; }>; removeOwner(sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): 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; }>; setGuard(sender: TSender, guard: 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; }>; simulateAndRevert(sender: TSender, targetContract: TAddress, calldataPayload: 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 ISafeTxData { addOwnerWithThreshold(sender: TSender, owner: TAddress, _threshold: bigint): Promise; approveHash(sender: TSender, hashToApprove: TEth.Hex): 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; removeOwner(sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): Promise; setFallbackHandler(sender: TSender, handler: TAddress): Promise; setGuard(sender: TSender, guard: TAddress): Promise; setup(sender: TSender, _owners: TAddress[], _threshold: bigint, to: TAddress, data: TEth.Hex, fallbackHandler: TAddress, paymentToken: TAddress, payment: bigint, paymentReceiver: TAddress): Promise; simulateAndRevert(sender: TSender, targetContract: TAddress, calldataPayload: TEth.Hex): Promise; swapOwner(sender: TSender, prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress): Promise; } type TEvents = TSafeTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};