0xweb
Version:
Contract package manager and other web3 tools
743 lines (638 loc) • 46.2 kB
text/typescript
/**
* 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 Safe 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: TSafeTypes;
$meta = {
"class": "./src/prebuilt/safe/Safe.ts"
}
async $constructor (deployer: TSender, ): Promise<TxWriter> {
throw new Error('Not implemented. Typing purpose. Use the ContractDeployer class to deploy the contract');
}
// 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);
}
// 0x694e80c3
async changeThreshold (sender: TSender, _threshold: bigint): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'changeThreshold'), sender, _threshold);
}
// 0x12fb68e0
async checkNSignatures (dataHash: TEth.Hex, data: TEth.Hex, signatures: TEth.Hex, requiredSignatures: bigint): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'checkNSignatures'), dataHash, data, signatures, requiredSignatures);
}
// 0x934f3a11
async checkSignatures (dataHash: TEth.Hex, data: TEth.Hex, signatures: TEth.Hex): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'checkSignatures'), dataHash, data, signatures);
}
// 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);
}
// 0x3408e470
async getChainId (): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'getChainId'));
}
// 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'));
}
// 0x5624b25b
async getStorageAt (offset: bigint, length: bigint): Promise<TEth.Hex> {
return this.$read(this.$getAbiItem('function', 'getStorageAt'), offset, length);
}
// 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);
}
// 0x2d9ad53d
async isModuleEnabled (module: TAddress): Promise<boolean> {
return this.$read(this.$getAbiItem('function', 'isModuleEnabled'), module);
}
// 0x2f54bf6e
async isOwner (owner: TAddress): Promise<boolean> {
return this.$read(this.$getAbiItem('function', 'isOwner'), owner);
}
// 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);
}
// 0xf08a0323
async setFallbackHandler (sender: TSender, handler: TAddress): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'setFallbackHandler'), sender, handler);
}
// 0xe19a9dd9
async setGuard (sender: TSender, guard: TAddress): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'setGuard'), sender, guard);
}
// 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);
}
// 0x5ae6bd37
async signedMessages (input0: TEth.Hex): Promise<bigint> {
return this.$read(this.$getAbiItem('function', 'signedMessages'), input0);
}
// 0xb4faba09
async simulateAndRevert (sender: TSender, targetContract: TAddress, calldataPayload: TEth.Hex): Promise<TxWriter> {
return this.$write(this.$getAbiItem('function', 'simulateAndRevert'), sender, targetContract, calldataPayload);
}
// 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 ISafeTxCaller;
}
$signed (): TOverrideReturns<ISafeTxCaller, Promise<{ signed: TEth.Hex, error?: Error & { data?: { type: string, params } } }>> {
return super.$signed() as any;
}
$data (): ISafeTxData {
return super.$data() as ISafeTxData;
}
$gas (): TOverrideReturns<ISafeTxCaller, Promise<{ gas?: bigint, price?: bigint, error?: Error & { data?: { type: string, params } } }>> {
return super.$gas() as any;
}
onTransaction <TMethod extends keyof TSafeTypes['Methods']> (method: TMethod, options: Parameters<ContractBase['$onTransaction']>[0]): SubjectStream<{
tx: TEth.Tx
block: TEth.Block<TEth.Hex>
calldata: {
method: TMethod
arguments: TSafeTypes['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);
}
onChangedFallbackHandler (fn?: (event: TClientEventsStreamData<TEventArguments<'ChangedFallbackHandler'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'ChangedFallbackHandler'>>> {
return this.$onLog('ChangedFallbackHandler', fn);
}
onChangedGuard (fn?: (event: TClientEventsStreamData<TEventArguments<'ChangedGuard'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'ChangedGuard'>>> {
return this.$onLog('ChangedGuard', 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);
}
onSafeReceived (fn?: (event: TClientEventsStreamData<TEventArguments<'SafeReceived'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'SafeReceived'>>> {
return this.$onLog('SafeReceived', fn);
}
onSafeSetup (fn?: (event: TClientEventsStreamData<TEventArguments<'SafeSetup'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'SafeSetup'>>> {
return this.$onLog('SafeSetup', 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'>>[];
}
extractLogsChangedFallbackHandler (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'ChangedFallbackHandler'>>[] {
let abi = this.$getAbiItem('event', 'ChangedFallbackHandler');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'ChangedFallbackHandler'>>[];
}
extractLogsChangedGuard (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'ChangedGuard'>>[] {
let abi = this.$getAbiItem('event', 'ChangedGuard');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'ChangedGuard'>>[];
}
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'>>[];
}
extractLogsSafeReceived (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'SafeReceived'>>[] {
let abi = this.$getAbiItem('event', 'SafeReceived');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'SafeReceived'>>[];
}
extractLogsSafeSetup (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'SafeSetup'>>[] {
let abi = this.$getAbiItem('event', 'SafeSetup');
return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'SafeSetup'>>[];
}
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?: { owner?: TAddress }
}): 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 getPastLogsChangedFallbackHandler (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { handler?: TAddress }
}): Promise<ITxLogItem<TEventParams<'ChangedFallbackHandler'>>[]> {
return await this.$getPastLogsParsed('ChangedFallbackHandler', options) as any;
}
async getPastLogsChangedGuard (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { guard?: TAddress }
}): Promise<ITxLogItem<TEventParams<'ChangedGuard'>>[]> {
return await this.$getPastLogsParsed('ChangedGuard', 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?: { module?: TAddress }
}): Promise<ITxLogItem<TEventParams<'DisabledModule'>>[]> {
return await this.$getPastLogsParsed('DisabledModule', options) as any;
}
async getPastLogsEnabledModule (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { module?: TAddress }
}): Promise<ITxLogItem<TEventParams<'EnabledModule'>>[]> {
return await this.$getPastLogsParsed('EnabledModule', options) as any;
}
async getPastLogsExecutionFailure (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { txHash?: TEth.Hex }
}): 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?: { txHash?: TEth.Hex }
}): Promise<ITxLogItem<TEventParams<'ExecutionSuccess'>>[]> {
return await this.$getPastLogsParsed('ExecutionSuccess', options) as any;
}
async getPastLogsRemovedOwner (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { owner?: TAddress }
}): Promise<ITxLogItem<TEventParams<'RemovedOwner'>>[]> {
return await this.$getPastLogsParsed('RemovedOwner', options) as any;
}
async getPastLogsSafeReceived (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { sender?: TAddress }
}): Promise<ITxLogItem<TEventParams<'SafeReceived'>>[]> {
return await this.$getPastLogsParsed('SafeReceived', options) as any;
}
async getPastLogsSafeSetup (options?: {
fromBlock?: number | Date
toBlock?: number | Date
params?: { initiator?: TAddress }
}): Promise<ITxLogItem<TEventParams<'SafeSetup'>>[]> {
return await this.$getPastLogsParsed('SafeSetup', 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":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"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":true,"internalType":"address","name":"handler","type":"address"}],"name":"ChangedFallbackHandler","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guard","type":"address"}],"name":"ChangedGuard","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"ChangedThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"module","type":"address"}],"name":"DisabledModule","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"module","type":"address"}],"name":"EnabledModule","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"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":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payment","type":"uint256"}],"name":"ExecutionSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"RemovedOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"initiator","type":"address"},{"indexed":false,"internalType":"address[]","name":"owners","type":"address[]"},{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"},{"indexed":false,"internalType":"address","name":"initializer","type":"address"},{"indexed":false,"internalType":"address","name":"fallbackHandler","type":"address"}],"name":"SafeSetup","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"SignMsg","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"addOwnerWithThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hashToApprove","type":"bytes32"}],"name":"approveHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"approvedHashes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"changeThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"uint256","name":"requiredSignatures","type":"uint256"}],"name":"checkNSignatures","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"name":"checkSignatures","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"prevModule","type":"address"},{"internalType":"address","name":"module","type":"address"}],"name":"disableModule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"domainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"module","type":"address"}],"name":"enableModule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"view","type":"function"},{"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"}],"stateMutability":"payable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"getStorageAt","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"module","type":"address"}],"name":"isModuleEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"prevOwner","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"handler","type":"address"}],"name":"setFallbackHandler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"guard","type":"address"}],"name":"setGuard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"signedMessages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"targetContract","type":"address"},{"internalType":"bytes","name":"calldataPayload","type":"bytes"}],"name":"simulateAndRevert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"prevOwner","type":"address"},{"internalType":"address","name":"oldOwner","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"swapOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
}
type TSender = TAccount & {
value?: string | number | bigint
}
type TEventLogOptions<TParams> = {
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 } }, result? }>
approveHash (sender: TSender, hashToApprove: TEth.Hex): 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? }>
removeOwner (sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): Promise<{ error?: Error & { data?: { type: string, params } }, result? }>
setFallbackHandler (sender: TSender, handler: TAddress): Promise<{ error?: Error & { data?: { type: string, params } }, result? }>
setGuard (sender: TSender, guard: 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? }>
simulateAndRevert (sender: TSender, targetContract: TAddress, calldataPayload: 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 ISafeTxData {
addOwnerWithThreshold (sender: TSender, owner: TAddress, _threshold: bigint): Promise<TEth.TxLike>
approveHash (sender: TSender, hashToApprove: TEth.Hex): 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>
removeOwner (sender: TSender, prevOwner: TAddress, owner: TAddress, _threshold: bigint): Promise<TEth.TxLike>
setFallbackHandler (sender: TSender, handler: TAddress): Promise<TEth.TxLike>
setGuard (sender: TSender, guard: 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>
simulateAndRevert (sender: TSender, targetContract: TAddress, calldataPayload: TEth.Hex): Promise<TEth.TxLike>
swapOwner (sender: TSender, prevOwner: TAddress, oldOwner: TAddress, newOwner: TAddress): Promise<TEth.TxLike>
}
type TEvents = TSafeTypes['Events'];
type TEventParams<TEventName extends keyof TEvents> = Partial<TEvents[TEventName]['outputParams']>;
type TEventArguments<TEventName extends keyof TEvents> = Partial<TEvents[TEventName]['outputArgs']>;