UNPKG

0xweb

Version:

Contract package manager and other web3 tools

684 lines (588 loc) 43.4 kB
/** * AUTO-Generated Class: 2024-05-17 00:25 * Implementation: https://etherscan.io/address/undefined#code */ import di from 'a-di'; import { TAddress } from '@dequanto/models/TAddress'; import { TAccount } from '@dequanto/models/TAccount'; import { TBufferLike } from '@dequanto/models/TBufferLike'; import { ClientEventsStream, TClientEventsStreamData } from '@dequanto/clients/ClientEventsStream'; import { ContractBase } from '@dequanto/contracts/ContractBase'; import { ContractBaseUtils } from '@dequanto/contracts/utils/ContractBaseUtils'; import { ContractStorageReaderBase } from '@dequanto/contracts/ContractStorageReaderBase'; import { TxWriter } from '@dequanto/txs/TxWriter'; import { ITxLogItem } from '@dequanto/txs/receipt/ITxLogItem'; import { Web3Client } from '@dequanto/clients/Web3Client'; import { IBlockchainExplorer } from '@dequanto/explorer/IBlockchainExplorer'; import { SubjectStream } from '@dequanto/class/SubjectStream'; import type { ContractWriter } from '@dequanto/contracts/ContractWriter'; import type { TAbiItem } from '@dequanto/types/TAbi'; import type { TEth } from '@dequanto/models/TEth'; import type { TOverrideReturns } from '@dequanto/utils/types'; import { Etherscan } from '@dequanto/explorer/Etherscan' import { EthWeb3Client } from '@dequanto/clients/EthWeb3Client' export class GnosisSafe extends ContractBase { constructor( public address: TEth.Address = null, public client: Web3Client = di.resolve(EthWeb3Client, ), public explorer: IBlockchainExplorer = di.resolve(Etherscan, ), ) { super(address, client, explorer) } Types: TGnosisSafeTypes; $meta = { "class": "./src/prebuilt/safe/GnosisSafe.ts" } async $constructor (deployer: TSender, ): Promise<TxWriter> { throw new Error('Not implemented. Typing purpose. Use the ContractDeployer class to deploy the contract'); } // 0xa3f4df7e async NAME (): Promise<string> { return this.$read(this.$getAbiItem('function', 'NAME')); } // 0xffa1ad74 async VERSION (): Promise<string> { return this.$read(this.$getAbiItem('function', 'VERSION')); } // 0x0d582f13 async addOwnerWithThreshold (sender: TSender, owner: TAddress, _threshold: bigint): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'addOwnerWithThreshold'), sender, owner, _threshold); } // 0xd4d9bdcd async approveHash (sender: TSender, hashToApprove: TEth.Hex): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'approveHash'), sender, hashToApprove); } // 0x7d832974 async approvedHashes (input0: TAddress, input1: TEth.Hex): Promise<bigint> { return this.$read(this.$getAbiItem('function', 'approvedHashes'), input0, input1); } // 0x7de7edef async changeMasterCopy (sender: TSender, _masterCopy: TAddress): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'changeMasterCopy'), sender, _masterCopy); } // 0x694e80c3 async changeThreshold (sender: TSender, _threshold: bigint): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'changeThreshold'), sender, _threshold); } // 0xe009cfde async disableModule (sender: TSender, prevModule: TAddress, module: TAddress): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'disableModule'), sender, prevModule, module); } // 0xf698da25 async domainSeparator (): Promise<TEth.Hex> { return this.$read(this.$getAbiItem('function', 'domainSeparator')); } // 0x610b5925 async enableModule (sender: TSender, module: TAddress): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'enableModule'), sender, module); } // 0xe86637db async encodeTransactionData (to: TAddress, value: bigint, data: TEth.Hex, operation: number, safeTxGas: bigint, baseGas: bigint, gasPrice: bigint, gasToken: TAddress, refundReceiver: TAddress, _nonce: bigint): Promise<TEth.Hex> { return this.$read(this.$getAbiItem('function', 'encodeTransactionData'), to, value, data, operation, safeTxGas, baseGas, gasPrice, gasToken, refundReceiver, _nonce); } // 0x6a761202 async 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<TxWriter> { return this.$write(this.$getAbiItem('function', 'execTransaction'), sender, to, value, data, operation, safeTxGas, baseGas, gasPrice, gasToken, refundReceiver, signatures); } // 0x468721a7 async execTransactionFromModule (sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'execTransactionFromModule'), sender, to, value, data, operation); } // 0x5229073f async execTransactionFromModuleReturnData (sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'execTransactionFromModuleReturnData'), sender, to, value, data, operation); } // 0x0a1028c4 async getMessageHash (message: TEth.Hex): Promise<TEth.Hex> { return this.$read(this.$getAbiItem('function', 'getMessageHash'), message); } // 0xb2494df3 async getModules (): Promise<TAddress[]> { return this.$read(this.$getAbiItem('function', 'getModules')); } // 0xcc2f8452 async getModulesPaginated (start: TAddress, pageSize: bigint): Promise<{ array: TAddress[], next: TAddress }> { return this.$read(this.$getAbiItem('function', 'getModulesPaginated'), start, pageSize); } // 0xa0e67e2b async getOwners (): Promise<TAddress[]> { return this.$read(this.$getAbiItem('function', 'getOwners')); } // 0xe75235b8 async getThreshold (): Promise<bigint> { return this.$read(this.$getAbiItem('function', 'getThreshold')); } // 0xd8d11f78 async getTransactionHash (to: TAddress, value: bigint, data: TEth.Hex, operation: number, safeTxGas: bigint, baseGas: bigint, gasPrice: bigint, gasToken: TAddress, refundReceiver: TAddress, _nonce: bigint): Promise<TEth.Hex> { return this.$read(this.$getAbiItem('function', 'getTransactionHash'), to, value, data, operation, safeTxGas, baseGas, gasPrice, gasToken, refundReceiver, _nonce); } // 0x2f54bf6e async isOwner (owner: TAddress): Promise<boolean> { return this.$read(this.$getAbiItem('function', 'isOwner'), owner); } // 0x20c13b0b async isValidSignature (sender: TSender, _data: TEth.Hex, _signature: TEth.Hex): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'isValidSignature'), sender, _data, _signature); } // 0xaffed0e0 async nonce (): Promise<bigint> { return this.$read(this.$getAbiItem('function', 'nonce')); } // 0xf8dc5dd9 async removeOwner (sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'removeOwner'), sender, prevOwner, owner, _threshold); } // 0xc4ca3a9c async requiredTxGas (sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'requiredTxGas'), sender, to, value, data, operation); } // 0xf08a0323 async setFallbackHandler (sender: TSender, handler: TAddress): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'setFallbackHandler'), sender, handler); } // 0xb63e800d async setup (sender: TSender, _owners: TAddress[], _threshold: bigint, to: TAddress, data: TEth.Hex, fallbackHandler: TAddress, paymentToken: TAddress, payment: bigint, paymentReceiver: TAddress): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'setup'), sender, _owners, _threshold, to, data, fallbackHandler, paymentToken, payment, paymentReceiver); } // 0x85a5affe async signMessage (sender: TSender, _data: TEth.Hex): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'signMessage'), sender, _data); } // 0x5ae6bd37 async signedMessages (input0: TEth.Hex): Promise<bigint> { return this.$read(this.$getAbiItem('function', 'signedMessages'), input0); } // 0xe318b52b async swapOwner (sender: TSender, prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress): Promise<TxWriter> { return this.$write(this.$getAbiItem('function', 'swapOwner'), sender, prevOwner, oldOwner, newOwner); } $call () { return super.$call() as IGnosisSafeTxCaller; } $signed (): TOverrideReturns<IGnosisSafeTxCaller, Promise<{ signed: TEth.Hex, error?: Error & { data?: { type: string, params } } }>> { return super.$signed() as any; } $data (): IGnosisSafeTxData { return super.$data() as IGnosisSafeTxData; } $gas (): TOverrideReturns<IGnosisSafeTxCaller, Promise<{ gas?: bigint, price?: bigint, error?: Error & { data?: { type: string, params } } }>> { return super.$gas() as any; } onTransaction <TMethod extends keyof TGnosisSafeTypes['Methods']> (method: TMethod, options: Parameters<ContractBase['$onTransaction']>[0]): SubjectStream<{ tx: TEth.Tx block: TEth.Block<TEth.Hex> calldata: { method: TMethod arguments: TGnosisSafeTypes['Methods'][TMethod]['arguments'] } }> { options ??= {}; options.filter ??= {}; options.filter.method = method; return <any> this.$onTransaction(options); } onLog (event: keyof TEvents, cb?: (event: TClientEventsStreamData) => void): ClientEventsStream<TClientEventsStreamData> { return this.$onLog(event, cb); } async getPastLogs <TEventName extends keyof TEvents> ( events: TEventName[] , options?: TEventLogOptions<TEventParams<TEventName>> ): Promise<ITxLogItem<TEventParams<TEventName>, TEventName>[]> async getPastLogs <TEventName extends keyof TEvents> ( event: TEventName , options?: TEventLogOptions<TEventParams<TEventName>> ): Promise<ITxLogItem<TEventParams<TEventName>, TEventName>[]> async getPastLogs (mix: any, options?): Promise<any> { return await super.getPastLogs(mix, options) as any; } onAddedOwner (fn?: (event: TClientEventsStreamData<TEventArguments<'AddedOwner'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'AddedOwner'>>> { return this.$onLog('AddedOwner', fn); } onApproveHash (fn?: (event: TClientEventsStreamData<TEventArguments<'ApproveHash'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'ApproveHash'>>> { return this.$onLog('ApproveHash', fn); } onChangedMasterCopy (fn?: (event: TClientEventsStreamData<TEventArguments<'ChangedMasterCopy'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'ChangedMasterCopy'>>> { return this.$onLog('ChangedMasterCopy', fn); } onChangedThreshold (fn?: (event: TClientEventsStreamData<TEventArguments<'ChangedThreshold'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'ChangedThreshold'>>> { return this.$onLog('ChangedThreshold', fn); } onDisabledModule (fn?: (event: TClientEventsStreamData<TEventArguments<'DisabledModule'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'DisabledModule'>>> { return this.$onLog('DisabledModule', fn); } onEnabledModule (fn?: (event: TClientEventsStreamData<TEventArguments<'EnabledModule'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'EnabledModule'>>> { return this.$onLog('EnabledModule', fn); } onExecutionFailure (fn?: (event: TClientEventsStreamData<TEventArguments<'ExecutionFailure'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'ExecutionFailure'>>> { return this.$onLog('ExecutionFailure', fn); } onExecutionFromModuleFailure (fn?: (event: TClientEventsStreamData<TEventArguments<'ExecutionFromModuleFailure'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'ExecutionFromModuleFailure'>>> { return this.$onLog('ExecutionFromModuleFailure', fn); } onExecutionFromModuleSuccess (fn?: (event: TClientEventsStreamData<TEventArguments<'ExecutionFromModuleSuccess'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'ExecutionFromModuleSuccess'>>> { return this.$onLog('ExecutionFromModuleSuccess', fn); } onExecutionSuccess (fn?: (event: TClientEventsStreamData<TEventArguments<'ExecutionSuccess'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'ExecutionSuccess'>>> { return this.$onLog('ExecutionSuccess', fn); } onRemovedOwner (fn?: (event: TClientEventsStreamData<TEventArguments<'RemovedOwner'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'RemovedOwner'>>> { return this.$onLog('RemovedOwner', fn); } onSignMsg (fn?: (event: TClientEventsStreamData<TEventArguments<'SignMsg'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'SignMsg'>>> { return this.$onLog('SignMsg', fn); } extractLogsAddedOwner (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'AddedOwner'>>[] { let abi = this.$getAbiItem('event', 'AddedOwner'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'AddedOwner'>>[]; } extractLogsApproveHash (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'ApproveHash'>>[] { let abi = this.$getAbiItem('event', 'ApproveHash'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'ApproveHash'>>[]; } extractLogsChangedMasterCopy (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'ChangedMasterCopy'>>[] { let abi = this.$getAbiItem('event', 'ChangedMasterCopy'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'ChangedMasterCopy'>>[]; } extractLogsChangedThreshold (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'ChangedThreshold'>>[] { let abi = this.$getAbiItem('event', 'ChangedThreshold'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'ChangedThreshold'>>[]; } extractLogsDisabledModule (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'DisabledModule'>>[] { let abi = this.$getAbiItem('event', 'DisabledModule'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'DisabledModule'>>[]; } extractLogsEnabledModule (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'EnabledModule'>>[] { let abi = this.$getAbiItem('event', 'EnabledModule'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'EnabledModule'>>[]; } extractLogsExecutionFailure (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'ExecutionFailure'>>[] { let abi = this.$getAbiItem('event', 'ExecutionFailure'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'ExecutionFailure'>>[]; } extractLogsExecutionFromModuleFailure (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'ExecutionFromModuleFailure'>>[] { let abi = this.$getAbiItem('event', 'ExecutionFromModuleFailure'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'ExecutionFromModuleFailure'>>[]; } extractLogsExecutionFromModuleSuccess (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'ExecutionFromModuleSuccess'>>[] { let abi = this.$getAbiItem('event', 'ExecutionFromModuleSuccess'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'ExecutionFromModuleSuccess'>>[]; } extractLogsExecutionSuccess (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'ExecutionSuccess'>>[] { let abi = this.$getAbiItem('event', 'ExecutionSuccess'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'ExecutionSuccess'>>[]; } extractLogsRemovedOwner (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'RemovedOwner'>>[] { let abi = this.$getAbiItem('event', 'RemovedOwner'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'RemovedOwner'>>[]; } extractLogsSignMsg (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'SignMsg'>>[] { let abi = this.$getAbiItem('event', 'SignMsg'); return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'SignMsg'>>[]; } async getPastLogsAddedOwner (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise<ITxLogItem<TEventParams<'AddedOwner'>>[]> { return await this.$getPastLogsParsed('AddedOwner', options) as any; } async getPastLogsApproveHash (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { approvedHash?: TEth.Hex,owner?: TAddress } }): Promise<ITxLogItem<TEventParams<'ApproveHash'>>[]> { return await this.$getPastLogsParsed('ApproveHash', options) as any; } async getPastLogsChangedMasterCopy (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise<ITxLogItem<TEventParams<'ChangedMasterCopy'>>[]> { return await this.$getPastLogsParsed('ChangedMasterCopy', options) as any; } async getPastLogsChangedThreshold (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise<ITxLogItem<TEventParams<'ChangedThreshold'>>[]> { return await this.$getPastLogsParsed('ChangedThreshold', options) as any; } async getPastLogsDisabledModule (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise<ITxLogItem<TEventParams<'DisabledModule'>>[]> { return await this.$getPastLogsParsed('DisabledModule', options) as any; } async getPastLogsEnabledModule (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise<ITxLogItem<TEventParams<'EnabledModule'>>[]> { return await this.$getPastLogsParsed('EnabledModule', options) as any; } async getPastLogsExecutionFailure (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise<ITxLogItem<TEventParams<'ExecutionFailure'>>[]> { return await this.$getPastLogsParsed('ExecutionFailure', options) as any; } async getPastLogsExecutionFromModuleFailure (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { module?: TAddress } }): Promise<ITxLogItem<TEventParams<'ExecutionFromModuleFailure'>>[]> { return await this.$getPastLogsParsed('ExecutionFromModuleFailure', options) as any; } async getPastLogsExecutionFromModuleSuccess (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { module?: TAddress } }): Promise<ITxLogItem<TEventParams<'ExecutionFromModuleSuccess'>>[]> { return await this.$getPastLogsParsed('ExecutionFromModuleSuccess', options) as any; } async getPastLogsExecutionSuccess (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise<ITxLogItem<TEventParams<'ExecutionSuccess'>>[]> { return await this.$getPastLogsParsed('ExecutionSuccess', options) as any; } async getPastLogsRemovedOwner (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { } }): Promise<ITxLogItem<TEventParams<'RemovedOwner'>>[]> { return await this.$getPastLogsParsed('RemovedOwner', options) as any; } async getPastLogsSignMsg (options?: { fromBlock?: number | Date toBlock?: number | Date params?: { msgHash?: TEth.Hex } }): Promise<ITxLogItem<TEventParams<'SignMsg'>>[]> { return await this.$getPastLogsParsed('SignMsg', options) as any; } abi: TAbiItem[] = [{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"AddedOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"approvedHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"ApproveHash","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"masterCopy","type":"address"}],"name":"ChangedMasterCopy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"ChangedThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract Module","name":"module","type":"address"}],"name":"DisabledModule","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract Module","name":"module","type":"address"}],"name":"EnabledModule","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payment","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"module","type":"address"}],"name":"ExecutionFromModuleFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"module","type":"address"}],"name":"ExecutionFromModuleSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payment","type":"uint256"}],"name":"ExecutionSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"RemovedOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"SignMsg","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"addOwnerWithThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"hashToApprove","type":"bytes32"}],"name":"approveHash","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"approvedHashes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_masterCopy","type":"address"}],"name":"changeMasterCopy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"changeThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Module","name":"prevModule","type":"address"},{"internalType":"contract Module","name":"module","type":"address"}],"name":"disableModule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"domainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Module","name":"module","type":"address"}],"name":"enableModule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address","name":"refundReceiver","type":"address"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"name":"encodeTransactionData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address payable","name":"refundReceiver","type":"address"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"name":"execTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"name":"execTransactionFromModule","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"name":"execTransactionFromModuleReturnData","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes","name":"message","type":"bytes"}],"name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getModules","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"start","type":"address"},{"internalType":"uint256","name":"pageSize","type":"uint256"}],"name":"getModulesPaginated","outputs":[{"internalType":"address[]","name":"array","type":"address[]"},{"internalType":"address","name":"next","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address","name":"refundReceiver","type":"address"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"name":"getTransactionHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"prevOwner","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"}],"name":"requiredTxGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"handler","type":"address"}],"name":"setFallbackHandler","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"fallbackHandler","type":"address"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address payable","name":"paymentReceiver","type":"address"}],"name":"setup","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"signMessage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"signedMessages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"prevOwner","type":"address"},{"internalType":"address","name":"oldOwner","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"swapOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] } type TSender = TAccount & { value?: string | number | bigint } type TEventLogOptions<TParams> = { 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 } }, result? }> approveHash (sender: TSender, hashToApprove: TEth.Hex): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> changeMasterCopy (sender: TSender, _masterCopy: TAddress): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> changeThreshold (sender: TSender, _threshold: bigint): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> disableModule (sender: TSender, prevModule: TAddress, module: TAddress): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> enableModule (sender: TSender, module: TAddress): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> 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 } }, result? }> execTransactionFromModule (sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> execTransactionFromModuleReturnData (sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> isValidSignature (sender: TSender, _data: TEth.Hex, _signature: TEth.Hex): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> removeOwner (sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> requiredTxGas (sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> setFallbackHandler (sender: TSender, handler: TAddress): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> 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 } }, result? }> signMessage (sender: TSender, _data: TEth.Hex): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> swapOwner (sender: TSender, prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress): Promise<{ error?: Error & { data?: { type: string, params } }, result? }> } interface IGnosisSafeTxData { addOwnerWithThreshold (sender: TSender, owner: TAddress, _threshold: bigint): Promise<TEth.TxLike> approveHash (sender: TSender, hashToApprove: TEth.Hex): Promise<TEth.TxLike> changeMasterCopy (sender: TSender, _masterCopy: TAddress): Promise<TEth.TxLike> changeThreshold (sender: TSender, _threshold: bigint): Promise<TEth.TxLike> disableModule (sender: TSender, prevModule: TAddress, module: TAddress): Promise<TEth.TxLike> enableModule (sender: TSender, module: TAddress): Promise<TEth.TxLike> 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<TEth.TxLike> execTransactionFromModule (sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<TEth.TxLike> execTransactionFromModuleReturnData (sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<TEth.TxLike> isValidSignature (sender: TSender, _data: TEth.Hex, _signature: TEth.Hex): Promise<TEth.TxLike> removeOwner (sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): Promise<TEth.TxLike> requiredTxGas (sender: TSender, to: TAddress, value: bigint, data: TEth.Hex, operation: number): Promise<TEth.TxLike> setFallbackHandler (sender: TSender, handler: TAddress): Promise<TEth.TxLike> setup (sender: TSender, _owners: TAddress[], _threshold: bigint, to: TAddress, data: TEth.Hex, fallbackHandler: TAddress, paymentToken: TAddress, payment: bigint, paymentReceiver: TAddress): Promise<TEth.TxLike> signMessage (sender: TSender, _data: TEth.Hex): Promise<TEth.TxLike> swapOwner (sender: TSender, prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress): Promise<TEth.TxLike> } type TEvents = TGnosisSafeTypes['Events']; type TEventParams<TEventName extends keyof TEvents> = Partial<TEvents[TEventName]['outputParams']>; type TEventArguments<TEventName extends keyof TEvents> = Partial<TEvents[TEventName]['outputArgs']>;