Hierarchy (view full)

Properties

activeValidationModule: BaseValidationModule
bundler?: IBundler
defaultValidationModule: BaseValidationModule
encodeUpgradeToAndCall: ((_upgradeToImplAddress: `0x${string}`, _upgradeToInitData: `0x${string}`) => Promise<`0x${string}`>)

If your contract supports UUPS, you can implement this method which can be used to upgrade the implementation of the account.

extend: (<R>(fn: ((self: this) => R)) => BiconomySmartAccountV2 & R)

Allows you to add additional functionality and utility methods to this account via a decorator pattern.

NOTE: this method does not allow you to override existing methods on the account.

Type declaration

const account = new BaseSmartCobntractAccount(...).extend((account) => ({
readAccountState: async (...args) => {
return this.rpcProvider.readContract({
address: await this.getAddress(),
abi: ThisContractsAbi
args: args
});
}
}));

account.debugSendUserOperation(...);
paymaster?: IPaymaster
rpcProvider: {
    account: undefined;
    batch?: {
        multicall?: boolean | {
            batchSize?: number;
            wait?: number;
        };
    };
    cacheTime: number;
    call: ((parameters: CallParameters<undefined | Chain>) => Promise<CallReturnType>);
    chain: undefined | Chain;
    createBlockFilter: (() => Promise<{
        id: `0x${string}`;
        request: EIP1193RequestFn<readonly [{
            Method: "eth_getFilterChanges";
            Parameters: [filterId: `0x${string}`];
            ReturnType: `0x${string}`[] | RpcLog[];
        }, {
            Method: "eth_getFilterLogs";
            Parameters: [filterId: `0x${string}`];
            ReturnType: RpcLog[];
        }, {
            Method: "eth_uninstallFilter";
            Parameters: [filterId: `0x${string}`];
            ReturnType: boolean;
        }]>;
        type: "block";
    }>);
    createContractEventFilter: (<const TAbi, TEventName, TArgs, TStrict, TFromBlock, TToBlock>(args: CreateContractEventFilterParameters<TAbi, TEventName, TArgs, TStrict, TFromBlock, TToBlock>) => Promise<CreateContractEventFilterReturnType<TAbi, TEventName, TArgs, TStrict, TFromBlock, TToBlock>>);
    createEventFilter: (<const TAbiEvent, const TAbiEvents, TStrict, TFromBlock, TToBlock, _EventName, _Args>(args?: CreateEventFilterParameters<TAbiEvent, TAbiEvents, TStrict, TFromBlock, TToBlock, _EventName, _Args>) => Promise<{
        [K in string | number | symbol]: Filter<"event", TAbiEvents, _EventName, _Args, TStrict, TFromBlock, TToBlock>[K]
    }>);
    createPendingTransactionFilter: (() => Promise<{
        id: `0x${string}`;
        request: EIP1193RequestFn<readonly [{
            Method: "eth_getFilterChanges";
            Parameters: [filterId: `0x${string}`];
            ReturnType: `0x${string}`[] | RpcLog[];
        }, {
            Method: "eth_getFilterLogs";
            Parameters: [filterId: `0x${string}`];
            ReturnType: RpcLog[];
        }, {
            Method: "eth_uninstallFilter";
            Parameters: [filterId: `0x${string}`];
            ReturnType: boolean;
        }]>;
        type: "transaction";
    }>);
    estimateContractGas: (<TChain, const abi, functionName, args>(args: EstimateContractGasParameters<abi, functionName, args, TChain>) => Promise<bigint>);
    estimateFeesPerGas: (<TChainOverride, TType>(args?: EstimateFeesPerGasParameters<undefined | Chain, TChainOverride, TType>) => Promise<EstimateFeesPerGasReturnType>);
    estimateGas: ((args: EstimateGasParameters<undefined | Chain>) => Promise<bigint>);
    estimateMaxPriorityFeePerGas: (<TChainOverride>(args?: {
        chain: null | TChainOverride;
    }) => Promise<bigint>);
    extend: (<const client>(fn: ((client: Client<Transport, undefined | Chain, undefined, PublicRpcSchema, PublicActions<Transport, undefined | Chain>>) => client)) => Client<Transport, undefined | Chain, undefined, PublicRpcSchema, {
        [K in string | number | symbol]: client[K]
    } & PublicActions<Transport, undefined | Chain>>);
    getBalance: ((args: GetBalanceParameters) => Promise<bigint>);
    getBlobBaseFee: (() => Promise<bigint>);
    getBlock: (<TIncludeTransactions, TBlockTag>(args?: GetBlockParameters<TIncludeTransactions, TBlockTag>) => Promise<{
        baseFeePerGas: null | bigint;
        blobGasUsed: bigint;
        difficulty: bigint;
        excessBlobGas: bigint;
        extraData: `0x${string}`;
        gasLimit: bigint;
        gasUsed: bigint;
        hash: TBlockTag extends "pending"
            ? null
            : `0x${string}`;
        logsBloom: TBlockTag extends "pending"
            ? null
            : `0x${string}`;
        miner: `0x${string}`;
        mixHash: `0x${string}`;
        nonce: TBlockTag extends "pending"
            ? null
            : `0x${string}`;
        number: TBlockTag extends "pending"
            ? null
            : bigint;
        parentHash: `0x${string}`;
        receiptsRoot: `0x${string}`;
        sealFields: `0x${string}`[];
        sha3Uncles: `0x${string}`;
        size: bigint;
        stateRoot: `0x${string}`;
        timestamp: bigint;
        totalDifficulty: null | bigint;
        transactions: TIncludeTransactions extends true
            ? (
                | {
                    accessList?: undefined;
                    blobVersionedHashes?: undefined;
                    blockHash: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : bigint;
                    chainId?: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice: bigint;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas?: undefined;
                    maxPriorityFeePerGas?: undefined;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${string}`;
                    transactionIndex: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : number;
                    type: "legacy";
                    typeHex: null | `0x${string}`;
                    v: bigint;
                    value: bigint;
                    yParity?: undefined;
                }
                | {
                    accessList: AccessList;
                    blobVersionedHashes?: undefined;
                    blockHash: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice: bigint;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas?: undefined;
                    maxPriorityFeePerGas?: undefined;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${string}`;
                    transactionIndex: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : number;
                    type: "eip2930";
                    typeHex: null | `0x${string}`;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                }
                | {
                    accessList: AccessList;
                    blobVersionedHashes?: undefined;
                    blockHash: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice?: undefined;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas: bigint;
                    maxPriorityFeePerGas: bigint;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${string}`;
                    transactionIndex: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : number;
                    type: "eip1559";
                    typeHex: null | `0x${string}`;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                }
                | {
                    accessList: AccessList;
                    blobVersionedHashes: `0x${string}`[];
                    blockHash: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice?: undefined;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas: bigint;
                    maxFeePerGas: bigint;
                    maxPriorityFeePerGas: bigint;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${string}`;
                    transactionIndex: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : number;
                    type: "eip4844";
                    typeHex: null | `0x${string}`;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                })[]
            : `0x${string}`[];
        transactionsRoot: `0x${string}`;
        uncles: `0x${string}`[];
        withdrawals?: Withdrawal[];
        withdrawalsRoot?: `0x${string}`;
    }>);
    getBlockNumber: ((args?: GetBlockNumberParameters) => Promise<bigint>);
    getBlockTransactionCount: ((args?: GetBlockTransactionCountParameters) => Promise<number>);
    getBytecode: ((args: GetBytecodeParameters) => Promise<GetBytecodeReturnType>);
    getChainId: (() => Promise<number>);
    getContractEvents: (<const abi, eventName, strict, fromBlock, toBlock>(args: GetContractEventsParameters<abi, eventName, strict, fromBlock, toBlock>) => Promise<GetContractEventsReturnType<abi, eventName, strict, fromBlock, toBlock>>);
    getEnsAddress: ((args: {
        blockNumber?: bigint;
        blockTag?: BlockTag;
        coinType?: number;
        gatewayUrls?: string[];
        name: string;
        strict?: boolean;
        universalResolverAddress?: `0x${string}`;
    }) => Promise<GetEnsAddressReturnType>);
    getEnsAvatar: ((args: {
        assetGatewayUrls?: AssetGatewayUrls;
        blockNumber?: bigint;
        blockTag?: BlockTag;
        gatewayUrls?: string[];
        name: string;
        strict?: boolean;
        universalResolverAddress?: `0x${string}`;
    }) => Promise<GetEnsAvatarReturnType>);
    getEnsName: ((args: {
        address: `0x${string}`;
        blockNumber?: bigint;
        blockTag?: BlockTag;
        gatewayUrls?: string[];
        strict?: boolean;
        universalResolverAddress?: `0x${string}`;
    }) => Promise<GetEnsNameReturnType>);
    getEnsResolver: ((args: {
        blockNumber?: bigint;
        blockTag?: BlockTag;
        name: string;
        universalResolverAddress?: `0x${string}`;
    }) => Promise<`0x${string}`>);
    getEnsText: ((args: {
        blockNumber?: bigint;
        blockTag?: BlockTag;
        gatewayUrls?: string[];
        key: string;
        name: string;
        strict?: boolean;
        universalResolverAddress?: `0x${string}`;
    }) => Promise<GetEnsTextReturnType>);
    getFeeHistory: ((args: GetFeeHistoryParameters) => Promise<GetFeeHistoryReturnType>);
    getFilterChanges: (<TFilterType, const TAbi, TEventName, TStrict, TFromBlock, TToBlock>(args: GetFilterChangesParameters<TFilterType, TAbi, TEventName, TStrict, TFromBlock, TToBlock>) => Promise<GetFilterChangesReturnType<TFilterType, TAbi, TEventName, TStrict, TFromBlock, TToBlock>>);
    getFilterLogs: (<const TAbi, TEventName, TStrict, TFromBlock, TToBlock>(args: GetFilterLogsParameters<TAbi, TEventName, TStrict, TFromBlock, TToBlock>) => Promise<GetFilterLogsReturnType<TAbi, TEventName, TStrict, TFromBlock, TToBlock>>);
    getGasPrice: (() => Promise<bigint>);
    getLogs: (<const TAbiEvent, const TAbiEvents, TStrict, TFromBlock, TToBlock>(args?: GetLogsParameters<TAbiEvent, TAbiEvents, TStrict, TFromBlock, TToBlock>) => Promise<GetLogsReturnType<TAbiEvent, TAbiEvents, TStrict, TFromBlock, TToBlock>>);
    getProof: ((args: GetProofParameters) => Promise<GetProofReturnType>);
    getStorageAt: ((args: GetStorageAtParameters) => Promise<GetStorageAtReturnType>);
    getTransaction: (<TBlockTag>(args: GetTransactionParameters<TBlockTag>) => Promise<
        | {
            accessList?: undefined;
            blobVersionedHashes?: undefined;
            blockHash: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : `0x${string}`;
            blockNumber: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : bigint;
            chainId?: number;
            from: `0x${string}`;
            gas: bigint;
            gasPrice: bigint;
            hash: `0x${string}`;
            input: `0x${string}`;
            maxFeePerBlobGas?: undefined;
            maxFeePerGas?: undefined;
            maxPriorityFeePerGas?: undefined;
            nonce: number;
            r: `0x${string}`;
            s: `0x${string}`;
            to: null | `0x${string}`;
            transactionIndex: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : number;
            type: "legacy";
            typeHex: null | `0x${string}`;
            v: bigint;
            value: bigint;
            yParity?: undefined;
        }
        | {
            accessList: AccessList;
            blobVersionedHashes?: undefined;
            blockHash: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : `0x${string}`;
            blockNumber: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : bigint;
            chainId: number;
            from: `0x${string}`;
            gas: bigint;
            gasPrice: bigint;
            hash: `0x${string}`;
            input: `0x${string}`;
            maxFeePerBlobGas?: undefined;
            maxFeePerGas?: undefined;
            maxPriorityFeePerGas?: undefined;
            nonce: number;
            r: `0x${string}`;
            s: `0x${string}`;
            to: null | `0x${string}`;
            transactionIndex: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : number;
            type: "eip2930";
            typeHex: null | `0x${string}`;
            v: bigint;
            value: bigint;
            yParity: number;
        }
        | {
            accessList: AccessList;
            blobVersionedHashes?: undefined;
            blockHash: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : `0x${string}`;
            blockNumber: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : bigint;
            chainId: number;
            from: `0x${string}`;
            gas: bigint;
            gasPrice?: undefined;
            hash: `0x${string}`;
            input: `0x${string}`;
            maxFeePerBlobGas?: undefined;
            maxFeePerGas: bigint;
            maxPriorityFeePerGas: bigint;
            nonce: number;
            r: `0x${string}`;
            s: `0x${string}`;
            to: null | `0x${string}`;
            transactionIndex: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : number;
            type: "eip1559";
            typeHex: null | `0x${string}`;
            v: bigint;
            value: bigint;
            yParity: number;
        }
        | {
            accessList: AccessList;
            blobVersionedHashes: `0x${string}`[];
            blockHash: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : `0x${string}`;
            blockNumber: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : bigint;
            chainId: number;
            from: `0x${string}`;
            gas: bigint;
            gasPrice?: undefined;
            hash: `0x${string}`;
            input: `0x${string}`;
            maxFeePerBlobGas: bigint;
            maxFeePerGas: bigint;
            maxPriorityFeePerGas: bigint;
            nonce: number;
            r: `0x${string}`;
            s: `0x${string}`;
            to: null | `0x${string}`;
            transactionIndex: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : number;
            type: "eip4844";
            typeHex: null | `0x${string}`;
            v: bigint;
            value: bigint;
            yParity: number;
        }>);
    getTransactionConfirmations: ((args: GetTransactionConfirmationsParameters<undefined | Chain>) => Promise<bigint>);
    getTransactionCount: ((args: GetTransactionCountParameters) => Promise<number>);
    getTransactionReceipt: ((args: GetTransactionReceiptParameters) => Promise<TransactionReceipt>);
    key: string;
    multicall: (<const contracts, allowFailure>(args: MulticallParameters<contracts, allowFailure>) => Promise<MulticallReturnType<contracts, allowFailure>>);
    name: string;
    pollingInterval: number;
    prepareTransactionRequest: (<const TRequest, TChainOverride, TAccountOverride>(args: PrepareTransactionRequestParameters<undefined | Chain, undefined | Account, TChainOverride, TAccountOverride, TRequest>) => Promise<{
        [K in string | number | symbol]: (UnionRequiredBy<Extract<UnionOmit<(...), (...)> & ((...) extends (...)
            ? (...)
            : (...)) & ((...) extends (...)
            ? (...)
            : (...)), IsNever<(...)> extends true
            ? unknown
            : ExactPartial<(...)>> & {
            chainId?: number;
        }, ParameterTypeToParameters<TRequest["parameters"] extends PrepareTransactionRequestParameterType[]
            ? any[any][number]
            : PrepareTransactionRequestParameterType>> & (unknown extends TRequest["kzg"]
            ? {}
            : Pick<TRequest, "kzg">))[K]
    }>);
    readContract: (<const abi, functionName, args>(args: ReadContractParameters<abi, functionName, args>) => Promise<ReadContractReturnType<abi, functionName, args>>);
    request: EIP1193RequestFn<PublicRpcSchema>;
    sendRawTransaction: ((args: SendRawTransactionParameters) => Promise<`0x${string}`>);
    simulateContract: (<const abi, functionName, args, chainOverride, accountOverride>(args: SimulateContractParameters<abi, functionName, args, undefined | Chain, chainOverride, accountOverride>) => Promise<SimulateContractReturnType<abi, functionName, args, undefined | Chain, undefined | Account, chainOverride, accountOverride>>);
    transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
    type: string;
    uid: string;
    uninstallFilter: ((args: UninstallFilterParameters) => Promise<boolean>);
    verifyMessage: ((args: VerifyMessageParameters) => Promise<boolean>);
    verifyTypedData: ((args: VerifyTypedDataParameters) => Promise<boolean>);
    waitForTransactionReceipt: ((args: WaitForTransactionReceiptParameters<undefined | Chain>) => Promise<TransactionReceipt>);
    watchBlockNumber: ((args: WatchBlockNumberParameters) => WatchBlockNumberReturnType);
    watchBlocks: (<TIncludeTransactions, TBlockTag>(args: WatchBlocksParameters<Transport, undefined | Chain, TIncludeTransactions, TBlockTag>) => WatchBlocksReturnType);
    watchContractEvent: (<const TAbi, TEventName, TStrict>(args: WatchContractEventParameters<TAbi, TEventName, TStrict, Transport>) => WatchContractEventReturnType);
    watchEvent: (<const TAbiEvent, const TAbiEvents, TStrict>(args: WatchEventParameters<TAbiEvent, TAbiEvents, TStrict, Transport>) => WatchEventReturnType);
    watchPendingTransactions: ((args: WatchPendingTransactionsParameters<Transport>) => WatchPendingTransactionsReturnType);
}

The RPC provider the account uses to make RPC calls

Type declaration

  • account: undefined

    The Account of the Client.

  • Optionalbatch?: {
        multicall?: boolean | {
            batchSize?: number;
            wait?: number;
        };
    }

    Flags for batch settings.

    • Optionalmulticall?: boolean | {
          batchSize?: number;
          wait?: number;
      }

      Toggle to enable eth_call multicall aggregation.

  • cacheTime: number

    Time (in ms) that cached data will remain in memory.

  • call: ((parameters: CallParameters<undefined | Chain>) => Promise<CallReturnType>)

    Executes a new message call immediately without submitting a transaction to the network.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const data = await client.call({
    account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
    data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    })
  • chain: undefined | Chain

    Chain for the client.

  • createBlockFilter: (() => Promise<{
        id: `0x${string}`;
        request: EIP1193RequestFn<readonly [{
            Method: "eth_getFilterChanges";
            Parameters: [filterId: `0x${string}`];
            ReturnType: `0x${string}`[] | RpcLog[];
        }, {
            Method: "eth_getFilterLogs";
            Parameters: [filterId: `0x${string}`];
            ReturnType: RpcLog[];
        }, {
            Method: "eth_uninstallFilter";
            Parameters: [filterId: `0x${string}`];
            ReturnType: boolean;
        }]>;
        type: "block";
    }>)

    Creates a Filter to listen for new block hashes that can be used with getFilterChanges.

    import { createPublicClient, createBlockFilter, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const filter = await createBlockFilter(client)
    // { id: "0x345a6572337856574a76364e457a4366", type: 'block' }
      • (): Promise<{
            id: `0x${string}`;
            request: EIP1193RequestFn<readonly [{
                Method: "eth_getFilterChanges";
                Parameters: [filterId: `0x${string}`];
                ReturnType: `0x${string}`[] | RpcLog[];
            }, {
                Method: "eth_getFilterLogs";
                Parameters: [filterId: `0x${string}`];
                ReturnType: RpcLog[];
            }, {
                Method: "eth_uninstallFilter";
                Parameters: [filterId: `0x${string}`];
                ReturnType: boolean;
            }]>;
            type: "block";
        }>
      • Returns Promise<{
            id: `0x${string}`;
            request: EIP1193RequestFn<readonly [{
                Method: "eth_getFilterChanges";
                Parameters: [filterId: `0x${string}`];
                ReturnType: `0x${string}`[] | RpcLog[];
            }, {
                Method: "eth_getFilterLogs";
                Parameters: [filterId: `0x${string}`];
                ReturnType: RpcLog[];
            }, {
                Method: "eth_uninstallFilter";
                Parameters: [filterId: `0x${string}`];
                ReturnType: boolean;
            }]>;
            type: "block";
        }>

        Filter. CreateBlockFilterReturnType

  • createContractEventFilter: (<const TAbi, TEventName, TArgs, TStrict, TFromBlock, TToBlock>(args: CreateContractEventFilterParameters<TAbi, TEventName, TArgs, TStrict, TFromBlock, TToBlock>) => Promise<CreateContractEventFilterReturnType<TAbi, TEventName, TArgs, TStrict, TFromBlock, TToBlock>>)

    Creates a Filter to retrieve event logs that can be used with getFilterChanges or getFilterLogs.

    import { createPublicClient, http, parseAbi } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const filter = await client.createContractEventFilter({
    abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
    })
  • createEventFilter: (<const TAbiEvent, const TAbiEvents, TStrict, TFromBlock, TToBlock, _EventName, _Args>(args?: CreateEventFilterParameters<TAbiEvent, TAbiEvents, TStrict, TFromBlock, TToBlock, _EventName, _Args>) => Promise<{
        [K in string | number | symbol]: Filter<"event", TAbiEvents, _EventName, _Args, TStrict, TFromBlock, TToBlock>[K]
    }>)

    Creates a Filter to listen for new events that can be used with getFilterChanges.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const filter = await client.createEventFilter({
    address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',
    })
  • createPendingTransactionFilter: (() => Promise<{
        id: `0x${string}`;
        request: EIP1193RequestFn<readonly [{
            Method: "eth_getFilterChanges";
            Parameters: [filterId: `0x${string}`];
            ReturnType: `0x${string}`[] | RpcLog[];
        }, {
            Method: "eth_getFilterLogs";
            Parameters: [filterId: `0x${string}`];
            ReturnType: RpcLog[];
        }, {
            Method: "eth_uninstallFilter";
            Parameters: [filterId: `0x${string}`];
            ReturnType: boolean;
        }]>;
        type: "transaction";
    }>)

    Creates a Filter to listen for new pending transaction hashes that can be used with getFilterChanges.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const filter = await client.createPendingTransactionFilter()
    // { id: "0x345a6572337856574a76364e457a4366", type: 'transaction' }
      • (): Promise<{
            id: `0x${string}`;
            request: EIP1193RequestFn<readonly [{
                Method: "eth_getFilterChanges";
                Parameters: [filterId: `0x${string}`];
                ReturnType: `0x${string}`[] | RpcLog[];
            }, {
                Method: "eth_getFilterLogs";
                Parameters: [filterId: `0x${string}`];
                ReturnType: RpcLog[];
            }, {
                Method: "eth_uninstallFilter";
                Parameters: [filterId: `0x${string}`];
                ReturnType: boolean;
            }]>;
            type: "transaction";
        }>
      • Returns Promise<{
            id: `0x${string}`;
            request: EIP1193RequestFn<readonly [{
                Method: "eth_getFilterChanges";
                Parameters: [filterId: `0x${string}`];
                ReturnType: `0x${string}`[] | RpcLog[];
            }, {
                Method: "eth_getFilterLogs";
                Parameters: [filterId: `0x${string}`];
                ReturnType: RpcLog[];
            }, {
                Method: "eth_uninstallFilter";
                Parameters: [filterId: `0x${string}`];
                ReturnType: boolean;
            }]>;
            type: "transaction";
        }>

        Filter. CreateBlockFilterReturnType

  • estimateContractGas: (<TChain, const abi, functionName, args>(args: EstimateContractGasParameters<abi, functionName, args, TChain>) => Promise<bigint>)

    Estimates the gas required to successfully execute a contract write function call.

    Internally, uses a Public Client to call the estimateGas action with ABI-encoded data.

    import { createPublicClient, http, parseAbi } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const gas = await client.estimateContractGas({
    address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
    abi: parseAbi(['function mint() public']),
    functionName: 'mint',
    account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
    })
  • estimateFeesPerGas: (<TChainOverride, TType>(args?: EstimateFeesPerGasParameters<undefined | Chain, TChainOverride, TType>) => Promise<EstimateFeesPerGasReturnType>)

    Returns an estimate for the fees per gas for a transaction to be included in the next block.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const maxPriorityFeePerGas = await client.estimateFeesPerGas()
    // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }
  • estimateGas: ((args: EstimateGasParameters<undefined | Chain>) => Promise<bigint>)

    Estimates the gas necessary to complete a transaction without submitting it to the network.

    import { createPublicClient, http, parseEther } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const gasEstimate = await client.estimateGas({
    account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1'),
    })
  • estimateMaxPriorityFeePerGas: (<TChainOverride>(args?: {
        chain: null | TChainOverride;
    }) => Promise<bigint>)

    Returns an estimate for the max priority fee per gas (in wei) for a transaction to be included in the next block.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const maxPriorityFeePerGas = await client.estimateMaxPriorityFeePerGas()
    // 10000000n
  • extend: (<const client>(fn: ((client: Client<Transport, undefined | Chain, undefined, PublicRpcSchema, PublicActions<Transport, undefined | Chain>>) => client)) => Client<Transport, undefined | Chain, undefined, PublicRpcSchema, {
        [K in string | number | symbol]: client[K]
    } & PublicActions<Transport, undefined | Chain>>)
  • getBalance: ((args: GetBalanceParameters) => Promise<bigint>)

    Returns the balance of an address in wei.

    You can convert the balance to ether units with formatEther.

    const balance = await getBalance(client, {
    address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
    blockTag: 'safe'
    })
    const balanceAsEther = formatEther(balance)
    // "6.942"
    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const balance = await client.getBalance({
    address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
    })
    // 10000000000000000000000n (wei)
  • getBlobBaseFee: (() => Promise<bigint>)

    Returns the base fee per blob gas in wei.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'
    import { getBlobBaseFee } from 'viem/public'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const blobBaseFee = await client.getBlobBaseFee()
  • getBlock: (<TIncludeTransactions, TBlockTag>(args?: GetBlockParameters<TIncludeTransactions, TBlockTag>) => Promise<{
        baseFeePerGas: null | bigint;
        blobGasUsed: bigint;
        difficulty: bigint;
        excessBlobGas: bigint;
        extraData: `0x${string}`;
        gasLimit: bigint;
        gasUsed: bigint;
        hash: TBlockTag extends "pending"
            ? null
            : `0x${string}`;
        logsBloom: TBlockTag extends "pending"
            ? null
            : `0x${string}`;
        miner: `0x${string}`;
        mixHash: `0x${string}`;
        nonce: TBlockTag extends "pending"
            ? null
            : `0x${string}`;
        number: TBlockTag extends "pending"
            ? null
            : bigint;
        parentHash: `0x${string}`;
        receiptsRoot: `0x${string}`;
        sealFields: `0x${string}`[];
        sha3Uncles: `0x${string}`;
        size: bigint;
        stateRoot: `0x${string}`;
        timestamp: bigint;
        totalDifficulty: null | bigint;
        transactions: TIncludeTransactions extends true
            ? (
                | {
                    accessList?: undefined;
                    blobVersionedHashes?: undefined;
                    blockHash: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : bigint;
                    chainId?: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice: bigint;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas?: undefined;
                    maxPriorityFeePerGas?: undefined;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${string}`;
                    transactionIndex: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : number;
                    type: "legacy";
                    typeHex: null | `0x${string}`;
                    v: bigint;
                    value: bigint;
                    yParity?: undefined;
                }
                | {
                    accessList: AccessList;
                    blobVersionedHashes?: undefined;
                    blockHash: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice: bigint;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas?: undefined;
                    maxPriorityFeePerGas?: undefined;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${string}`;
                    transactionIndex: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : number;
                    type: "eip2930";
                    typeHex: null | `0x${string}`;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                }
                | {
                    accessList: AccessList;
                    blobVersionedHashes?: undefined;
                    blockHash: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice?: undefined;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas?: undefined;
                    maxFeePerGas: bigint;
                    maxPriorityFeePerGas: bigint;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${string}`;
                    transactionIndex: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : number;
                    type: "eip1559";
                    typeHex: null | `0x${string}`;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                }
                | {
                    accessList: AccessList;
                    blobVersionedHashes: `0x${string}`[];
                    blockHash: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : `0x${string}`;
                    blockNumber: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : bigint;
                    chainId: number;
                    from: `0x${string}`;
                    gas: bigint;
                    gasPrice?: undefined;
                    hash: `0x${string}`;
                    input: `0x${string}`;
                    maxFeePerBlobGas: bigint;
                    maxFeePerGas: bigint;
                    maxPriorityFeePerGas: bigint;
                    nonce: number;
                    r: `0x${string}`;
                    s: `0x${string}`;
                    to: null | `0x${string}`;
                    transactionIndex: (TBlockTag extends "pending"
                            ? true
                            : false) extends true
                        ? null
                        : number;
                    type: "eip4844";
                    typeHex: null | `0x${string}`;
                    v: bigint;
                    value: bigint;
                    yParity: number;
                })[]
            : `0x${string}`[];
        transactionsRoot: `0x${string}`;
        uncles: `0x${string}`[];
        withdrawals?: Withdrawal[];
        withdrawalsRoot?: `0x${string}`;
    }>)

    Returns information about a block at a block number, hash, or tag.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const block = await client.getBlock()
      • <TIncludeTransactions, TBlockTag>(args?): Promise<{
            baseFeePerGas: null | bigint;
            blobGasUsed: bigint;
            difficulty: bigint;
            excessBlobGas: bigint;
            extraData: `0x${string}`;
            gasLimit: bigint;
            gasUsed: bigint;
            hash: TBlockTag extends "pending"
                ? null
                : `0x${string}`;
            logsBloom: TBlockTag extends "pending"
                ? null
                : `0x${string}`;
            miner: `0x${string}`;
            mixHash: `0x${string}`;
            nonce: TBlockTag extends "pending"
                ? null
                : `0x${string}`;
            number: TBlockTag extends "pending"
                ? null
                : bigint;
            parentHash: `0x${string}`;
            receiptsRoot: `0x${string}`;
            sealFields: `0x${string}`[];
            sha3Uncles: `0x${string}`;
            size: bigint;
            stateRoot: `0x${string}`;
            timestamp: bigint;
            totalDifficulty: null | bigint;
            transactions: TIncludeTransactions extends true
                ? (
                    | {
                        accessList?: undefined;
                        blobVersionedHashes?: undefined;
                        blockHash: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : `0x${string}`;
                        blockNumber: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : bigint;
                        chainId?: number;
                        from: `0x${string}`;
                        gas: bigint;
                        gasPrice: bigint;
                        hash: `0x${string}`;
                        input: `0x${string}`;
                        maxFeePerBlobGas?: undefined;
                        maxFeePerGas?: undefined;
                        maxPriorityFeePerGas?: undefined;
                        nonce: number;
                        r: `0x${string}`;
                        s: `0x${string}`;
                        to: null | `0x${string}`;
                        transactionIndex: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : number;
                        type: "legacy";
                        typeHex: null | `0x${string}`;
                        v: bigint;
                        value: bigint;
                        yParity?: undefined;
                    }
                    | {
                        accessList: AccessList;
                        blobVersionedHashes?: undefined;
                        blockHash: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : `0x${string}`;
                        blockNumber: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : bigint;
                        chainId: number;
                        from: `0x${string}`;
                        gas: bigint;
                        gasPrice: bigint;
                        hash: `0x${string}`;
                        input: `0x${string}`;
                        maxFeePerBlobGas?: undefined;
                        maxFeePerGas?: undefined;
                        maxPriorityFeePerGas?: undefined;
                        nonce: number;
                        r: `0x${string}`;
                        s: `0x${string}`;
                        to: null | `0x${string}`;
                        transactionIndex: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : number;
                        type: "eip2930";
                        typeHex: null | `0x${string}`;
                        v: bigint;
                        value: bigint;
                        yParity: number;
                    }
                    | {
                        accessList: AccessList;
                        blobVersionedHashes?: undefined;
                        blockHash: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : `0x${string}`;
                        blockNumber: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : bigint;
                        chainId: number;
                        from: `0x${string}`;
                        gas: bigint;
                        gasPrice?: undefined;
                        hash: `0x${string}`;
                        input: `0x${string}`;
                        maxFeePerBlobGas?: undefined;
                        maxFeePerGas: bigint;
                        maxPriorityFeePerGas: bigint;
                        nonce: number;
                        r: `0x${string}`;
                        s: `0x${string}`;
                        to: null | `0x${string}`;
                        transactionIndex: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : number;
                        type: "eip1559";
                        typeHex: null | `0x${string}`;
                        v: bigint;
                        value: bigint;
                        yParity: number;
                    }
                    | {
                        accessList: AccessList;
                        blobVersionedHashes: `0x${string}`[];
                        blockHash: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : `0x${string}`;
                        blockNumber: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : bigint;
                        chainId: number;
                        from: `0x${string}`;
                        gas: bigint;
                        gasPrice?: undefined;
                        hash: `0x${string}`;
                        input: `0x${string}`;
                        maxFeePerBlobGas: bigint;
                        maxFeePerGas: bigint;
                        maxPriorityFeePerGas: bigint;
                        nonce: number;
                        r: `0x${string}`;
                        s: `0x${string}`;
                        to: null | `0x${string}`;
                        transactionIndex: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : number;
                        type: "eip4844";
                        typeHex: null | `0x${string}`;
                        v: bigint;
                        value: bigint;
                        yParity: number;
                    })[]
                : `0x${string}`[];
            transactionsRoot: `0x${string}`;
            uncles: `0x${string}`[];
            withdrawals?: Withdrawal[];
            withdrawalsRoot?: `0x${string}`;
        }>
      • Type Parameters

        • TIncludeTransactions extends boolean = false
        • TBlockTag extends BlockTag = "latest"

        Returns Promise<{
            baseFeePerGas: null | bigint;
            blobGasUsed: bigint;
            difficulty: bigint;
            excessBlobGas: bigint;
            extraData: `0x${string}`;
            gasLimit: bigint;
            gasUsed: bigint;
            hash: TBlockTag extends "pending"
                ? null
                : `0x${string}`;
            logsBloom: TBlockTag extends "pending"
                ? null
                : `0x${string}`;
            miner: `0x${string}`;
            mixHash: `0x${string}`;
            nonce: TBlockTag extends "pending"
                ? null
                : `0x${string}`;
            number: TBlockTag extends "pending"
                ? null
                : bigint;
            parentHash: `0x${string}`;
            receiptsRoot: `0x${string}`;
            sealFields: `0x${string}`[];
            sha3Uncles: `0x${string}`;
            size: bigint;
            stateRoot: `0x${string}`;
            timestamp: bigint;
            totalDifficulty: null | bigint;
            transactions: TIncludeTransactions extends true
                ? (
                    | {
                        accessList?: undefined;
                        blobVersionedHashes?: undefined;
                        blockHash: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : `0x${string}`;
                        blockNumber: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : bigint;
                        chainId?: number;
                        from: `0x${string}`;
                        gas: bigint;
                        gasPrice: bigint;
                        hash: `0x${string}`;
                        input: `0x${string}`;
                        maxFeePerBlobGas?: undefined;
                        maxFeePerGas?: undefined;
                        maxPriorityFeePerGas?: undefined;
                        nonce: number;
                        r: `0x${string}`;
                        s: `0x${string}`;
                        to: null | `0x${string}`;
                        transactionIndex: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : number;
                        type: "legacy";
                        typeHex: null | `0x${string}`;
                        v: bigint;
                        value: bigint;
                        yParity?: undefined;
                    }
                    | {
                        accessList: AccessList;
                        blobVersionedHashes?: undefined;
                        blockHash: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : `0x${string}`;
                        blockNumber: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : bigint;
                        chainId: number;
                        from: `0x${string}`;
                        gas: bigint;
                        gasPrice: bigint;
                        hash: `0x${string}`;
                        input: `0x${string}`;
                        maxFeePerBlobGas?: undefined;
                        maxFeePerGas?: undefined;
                        maxPriorityFeePerGas?: undefined;
                        nonce: number;
                        r: `0x${string}`;
                        s: `0x${string}`;
                        to: null | `0x${string}`;
                        transactionIndex: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : number;
                        type: "eip2930";
                        typeHex: null | `0x${string}`;
                        v: bigint;
                        value: bigint;
                        yParity: number;
                    }
                    | {
                        accessList: AccessList;
                        blobVersionedHashes?: undefined;
                        blockHash: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : `0x${string}`;
                        blockNumber: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : bigint;
                        chainId: number;
                        from: `0x${string}`;
                        gas: bigint;
                        gasPrice?: undefined;
                        hash: `0x${string}`;
                        input: `0x${string}`;
                        maxFeePerBlobGas?: undefined;
                        maxFeePerGas: bigint;
                        maxPriorityFeePerGas: bigint;
                        nonce: number;
                        r: `0x${string}`;
                        s: `0x${string}`;
                        to: null | `0x${string}`;
                        transactionIndex: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : number;
                        type: "eip1559";
                        typeHex: null | `0x${string}`;
                        v: bigint;
                        value: bigint;
                        yParity: number;
                    }
                    | {
                        accessList: AccessList;
                        blobVersionedHashes: `0x${string}`[];
                        blockHash: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : `0x${string}`;
                        blockNumber: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : bigint;
                        chainId: number;
                        from: `0x${string}`;
                        gas: bigint;
                        gasPrice?: undefined;
                        hash: `0x${string}`;
                        input: `0x${string}`;
                        maxFeePerBlobGas: bigint;
                        maxFeePerGas: bigint;
                        maxPriorityFeePerGas: bigint;
                        nonce: number;
                        r: `0x${string}`;
                        s: `0x${string}`;
                        to: null | `0x${string}`;
                        transactionIndex: (TBlockTag extends "pending"
                                ? true
                                : false) extends true
                            ? null
                            : number;
                        type: "eip4844";
                        typeHex: null | `0x${string}`;
                        v: bigint;
                        value: bigint;
                        yParity: number;
                    })[]
                : `0x${string}`[];
            transactionsRoot: `0x${string}`;
            uncles: `0x${string}`[];
            withdrawals?: Withdrawal[];
            withdrawalsRoot?: `0x${string}`;
        }>

        Information about the block. GetBlockReturnType

  • getBlockNumber: ((args?: GetBlockNumberParameters) => Promise<bigint>)
    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const blockNumber = await client.getBlockNumber()
    // 69420n
  • getBlockTransactionCount: ((args?: GetBlockTransactionCountParameters) => Promise<number>)

    Returns the number of Transactions at a block number, hash, or tag.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const count = await client.getBlockTransactionCount()
  • getBytecode: ((args: GetBytecodeParameters) => Promise<GetBytecodeReturnType>)

    Retrieves the bytecode at an address.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const code = await client.getBytecode({
    address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
    })
  • getChainId: (() => Promise<number>)

    Returns the chain ID associated with the current network.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const chainId = await client.getChainId()
    // 1
  • getContractEvents: (<const abi, eventName, strict, fromBlock, toBlock>(args: GetContractEventsParameters<abi, eventName, strict, fromBlock, toBlock>) => Promise<GetContractEventsReturnType<abi, eventName, strict, fromBlock, toBlock>>)

    Returns a list of event logs emitted by a contract.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'
    import { wagmiAbi } from './abi'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const logs = await client.getContractEvents(client, {
    address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
    abi: wagmiAbi,
    eventName: 'Transfer'
    })
  • getEnsAddress: ((args: {
        blockNumber?: bigint;
        blockTag?: BlockTag;
        coinType?: number;
        gatewayUrls?: string[];
        name: string;
        strict?: boolean;
        universalResolverAddress?: `0x${string}`;
    }) => Promise<GetEnsAddressReturnType>)

    Calls resolve(bytes, bytes) on ENS Universal Resolver Contract.

    Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'
    import { normalize } from 'viem/ens'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const ensAddress = await client.getEnsAddress({
    name: normalize('wevm.eth'),
    })
    // '0xd2135CfB216b74109775236E36d4b433F1DF507B'
      • (args): Promise<GetEnsAddressReturnType>
      • Parameters

        • args: {
              blockNumber?: bigint;
              blockTag?: BlockTag;
              coinType?: number;
              gatewayUrls?: string[];
              name: string;
              strict?: boolean;
              universalResolverAddress?: `0x${string}`;
          }
          • OptionalblockNumber?: bigint

            The balance of the account at a block number.

          • OptionalblockTag?: BlockTag

            The balance of the account at a block tag.

            'latest'
            
          • OptionalcoinType?: number

            ENSIP-9 compliant coinType used to resolve addresses for other chains

          • OptionalgatewayUrls?: string[]

            Universal Resolver gateway URLs to use for resolving CCIP-read requests.

          • name: string

            Name to get the address for.

          • Optionalstrict?: boolean

            Whether or not to throw errors propagated from the ENS Universal Resolver Contract.

          • OptionaluniversalResolverAddress?: `0x${string}`

            Address of ENS Universal Resolver Contract.

        Returns Promise<GetEnsAddressReturnType>

        Address for ENS name or null if not found. GetEnsAddressReturnType

  • getEnsAvatar: ((args: {
        assetGatewayUrls?: AssetGatewayUrls;
        blockNumber?: bigint;
        blockTag?: BlockTag;
        gatewayUrls?: string[];
        name: string;
        strict?: boolean;
        universalResolverAddress?: `0x${string}`;
    }) => Promise<GetEnsAvatarReturnType>)

    Calls getEnsText with key set to 'avatar'.

    Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'
    import { normalize } from 'viem/ens'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const ensAvatar = await client.getEnsAvatar({
    name: normalize('wevm.eth'),
    })
    // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'
      • (args): Promise<GetEnsAvatarReturnType>
      • Parameters

        • args: {
              assetGatewayUrls?: AssetGatewayUrls;
              blockNumber?: bigint;
              blockTag?: BlockTag;
              gatewayUrls?: string[];
              name: string;
              strict?: boolean;
              universalResolverAddress?: `0x${string}`;
          }
          • OptionalassetGatewayUrls?: AssetGatewayUrls

            Gateway urls to resolve IPFS and/or Arweave assets.

          • OptionalblockNumber?: bigint

            The balance of the account at a block number.

          • OptionalblockTag?: BlockTag

            The balance of the account at a block tag.

            'latest'
            
          • OptionalgatewayUrls?: string[]

            Universal Resolver gateway URLs to use for resolving CCIP-read requests.

          • name: string

            ENS name to get Text for.

          • Optionalstrict?: boolean

            Whether or not to throw errors propagated from the ENS Universal Resolver Contract.

          • OptionaluniversalResolverAddress?: `0x${string}`

            Address of ENS Universal Resolver Contract.

        Returns Promise<GetEnsAvatarReturnType>

        Avatar URI or null if not found. GetEnsAvatarReturnType

  • getEnsName: ((args: {
        address: `0x${string}`;
        blockNumber?: bigint;
        blockTag?: BlockTag;
        gatewayUrls?: string[];
        strict?: boolean;
        universalResolverAddress?: `0x${string}`;
    }) => Promise<GetEnsNameReturnType>)

    Calls reverse(bytes) on ENS Universal Resolver Contract to "reverse resolve" the address to the primary ENS name.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const ensName = await client.getEnsName({
    address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
    })
    // 'wevm.eth'
      • (args): Promise<GetEnsNameReturnType>
      • Parameters

        • args: {
              address: `0x${string}`;
              blockNumber?: bigint;
              blockTag?: BlockTag;
              gatewayUrls?: string[];
              strict?: boolean;
              universalResolverAddress?: `0x${string}`;
          }
          • address: `0x${string}`

            Address to get ENS name for.

          • OptionalblockNumber?: bigint

            The balance of the account at a block number.

          • OptionalblockTag?: BlockTag

            The balance of the account at a block tag.

            'latest'
            
          • OptionalgatewayUrls?: string[]

            Universal Resolver gateway URLs to use for resolving CCIP-read requests.

          • Optionalstrict?: boolean

            Whether or not to throw errors propagated from the ENS Universal Resolver Contract.

          • OptionaluniversalResolverAddress?: `0x${string}`

            Address of ENS Universal Resolver Contract.

        Returns Promise<GetEnsNameReturnType>

        Name or null if not found. GetEnsNameReturnType

  • getEnsResolver: ((args: {
        blockNumber?: bigint;
        blockTag?: BlockTag;
        name: string;
        universalResolverAddress?: `0x${string}`;
    }) => Promise<`0x${string}`>)

    Calls findResolver(bytes) on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.

    Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'
    import { normalize } from 'viem/ens'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const resolverAddress = await client.getEnsResolver({
    name: normalize('wevm.eth'),
    })
    // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'
      • (args): Promise<`0x${string}`>
      • Parameters

        • args: {
              blockNumber?: bigint;
              blockTag?: BlockTag;
              name: string;
              universalResolverAddress?: `0x${string}`;
          }
          • OptionalblockNumber?: bigint

            The balance of the account at a block number.

          • OptionalblockTag?: BlockTag

            The balance of the account at a block tag.

            'latest'
            
          • name: string

            Name to get the address for.

          • OptionaluniversalResolverAddress?: `0x${string}`

            Address of ENS Universal Resolver Contract.

        Returns Promise<`0x${string}`>

        Address for ENS resolver. GetEnsResolverReturnType

  • getEnsText: ((args: {
        blockNumber?: bigint;
        blockTag?: BlockTag;
        gatewayUrls?: string[];
        key: string;
        name: string;
        strict?: boolean;
        universalResolverAddress?: `0x${string}`;
    }) => Promise<GetEnsTextReturnType>)

    Calls resolve(bytes, bytes) on ENS Universal Resolver Contract.

    Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'
    import { normalize } from 'viem/ens'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const twitterRecord = await client.getEnsText({
    name: normalize('wevm.eth'),
    key: 'com.twitter',
    })
    // 'wagmi_sh'
      • (args): Promise<GetEnsTextReturnType>
      • Parameters

        • args: {
              blockNumber?: bigint;
              blockTag?: BlockTag;
              gatewayUrls?: string[];
              key: string;
              name: string;
              strict?: boolean;
              universalResolverAddress?: `0x${string}`;
          }
          • OptionalblockNumber?: bigint

            The balance of the account at a block number.

          • OptionalblockTag?: BlockTag

            The balance of the account at a block tag.

            'latest'
            
          • OptionalgatewayUrls?: string[]

            Universal Resolver gateway URLs to use for resolving CCIP-read requests.

          • key: string

            Text record to retrieve.

          • name: string

            ENS name to get Text for.

          • Optionalstrict?: boolean

            Whether or not to throw errors propagated from the ENS Universal Resolver Contract.

          • OptionaluniversalResolverAddress?: `0x${string}`

            Address of ENS Universal Resolver Contract.

        Returns Promise<GetEnsTextReturnType>

        Address for ENS resolver. GetEnsTextReturnType

  • getFeeHistory: ((args: GetFeeHistoryParameters) => Promise<GetFeeHistoryReturnType>)

    Returns a collection of historical gas information.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const feeHistory = await client.getFeeHistory({
    blockCount: 4,
    rewardPercentiles: [25, 75],
    })
  • getFilterChanges: (<TFilterType, const TAbi, TEventName, TStrict, TFromBlock, TToBlock>(args: GetFilterChangesParameters<TFilterType, TAbi, TEventName, TStrict, TFromBlock, TToBlock>) => Promise<GetFilterChangesReturnType<TFilterType, TAbi, TEventName, TStrict, TFromBlock, TToBlock>>)

    Returns a list of logs or hashes based on a Filter since the last time it was called.

    A Filter can be created from the following actions:

    Depending on the type of filter, the return value will be different:

    • If the filter was created with createContractEventFilter or createEventFilter, it returns a list of logs.
    • If the filter was created with createPendingTransactionFilter, it returns a list of transaction hashes.
    • If the filter was created with createBlockFilter, it returns a list of block hashes.
    // Blocks
    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const filter = await client.createBlockFilter()
    const hashes = await client.getFilterChanges({ filter })
    // Contract Events
    import { createPublicClient, http, parseAbi } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const filter = await client.createContractEventFilter({
    address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
    abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
    eventName: 'Transfer',
    })
    const logs = await client.getFilterChanges({ filter })
    // Raw Events
    import { createPublicClient, http, parseAbiItem } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const filter = await client.createEventFilter({
    address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
    event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),
    })
    const logs = await client.getFilterChanges({ filter })
    // Transactions
    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const filter = await client.createPendingTransactionFilter()
    const hashes = await client.getFilterChanges({ filter })
  • getFilterLogs: (<const TAbi, TEventName, TStrict, TFromBlock, TToBlock>(args: GetFilterLogsParameters<TAbi, TEventName, TStrict, TFromBlock, TToBlock>) => Promise<GetFilterLogsReturnType<TAbi, TEventName, TStrict, TFromBlock, TToBlock>>)

    Returns a list of event logs since the filter was created.

    getFilterLogs is only compatible with event filters.

    import { createPublicClient, http, parseAbiItem } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const filter = await client.createEventFilter({
    address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
    event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),
    })
    const logs = await client.getFilterLogs({ filter })
  • getGasPrice: (() => Promise<bigint>)

    Returns the current price of gas (in wei).

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const gasPrice = await client.getGasPrice()
  • getLogs: (<const TAbiEvent, const TAbiEvents, TStrict, TFromBlock, TToBlock>(args?: GetLogsParameters<TAbiEvent, TAbiEvents, TStrict, TFromBlock, TToBlock>) => Promise<GetLogsReturnType<TAbiEvent, TAbiEvents, TStrict, TFromBlock, TToBlock>>)

    Returns a list of event logs matching the provided parameters.

    import { createPublicClient, http, parseAbiItem } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const logs = await client.getLogs()
  • getProof: ((args: GetProofParameters) => Promise<GetProofReturnType>)

    Returns the account and storage values of the specified account including the Merkle-proof.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const block = await client.getProof({
    address: '0x...',
    storageKeys: ['0x...'],
    })
  • getStorageAt: ((args: GetStorageAtParameters) => Promise<GetStorageAtReturnType>)

    Returns the value from a storage slot at a given address.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'
    import { getStorageAt } from 'viem/contract'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const code = await client.getStorageAt({
    address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
    slot: toHex(0),
    })
  • getTransaction: (<TBlockTag>(args: GetTransactionParameters<TBlockTag>) => Promise<
        | {
            accessList?: undefined;
            blobVersionedHashes?: undefined;
            blockHash: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : `0x${string}`;
            blockNumber: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : bigint;
            chainId?: number;
            from: `0x${string}`;
            gas: bigint;
            gasPrice: bigint;
            hash: `0x${string}`;
            input: `0x${string}`;
            maxFeePerBlobGas?: undefined;
            maxFeePerGas?: undefined;
            maxPriorityFeePerGas?: undefined;
            nonce: number;
            r: `0x${string}`;
            s: `0x${string}`;
            to: null | `0x${string}`;
            transactionIndex: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : number;
            type: "legacy";
            typeHex: null | `0x${string}`;
            v: bigint;
            value: bigint;
            yParity?: undefined;
        }
        | {
            accessList: AccessList;
            blobVersionedHashes?: undefined;
            blockHash: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : `0x${string}`;
            blockNumber: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : bigint;
            chainId: number;
            from: `0x${string}`;
            gas: bigint;
            gasPrice: bigint;
            hash: `0x${string}`;
            input: `0x${string}`;
            maxFeePerBlobGas?: undefined;
            maxFeePerGas?: undefined;
            maxPriorityFeePerGas?: undefined;
            nonce: number;
            r: `0x${string}`;
            s: `0x${string}`;
            to: null | `0x${string}`;
            transactionIndex: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : number;
            type: "eip2930";
            typeHex: null | `0x${string}`;
            v: bigint;
            value: bigint;
            yParity: number;
        }
        | {
            accessList: AccessList;
            blobVersionedHashes?: undefined;
            blockHash: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : `0x${string}`;
            blockNumber: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : bigint;
            chainId: number;
            from: `0x${string}`;
            gas: bigint;
            gasPrice?: undefined;
            hash: `0x${string}`;
            input: `0x${string}`;
            maxFeePerBlobGas?: undefined;
            maxFeePerGas: bigint;
            maxPriorityFeePerGas: bigint;
            nonce: number;
            r: `0x${string}`;
            s: `0x${string}`;
            to: null | `0x${string}`;
            transactionIndex: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : number;
            type: "eip1559";
            typeHex: null | `0x${string}`;
            v: bigint;
            value: bigint;
            yParity: number;
        }
        | {
            accessList: AccessList;
            blobVersionedHashes: `0x${string}`[];
            blockHash: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : `0x${string}`;
            blockNumber: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : bigint;
            chainId: number;
            from: `0x${string}`;
            gas: bigint;
            gasPrice?: undefined;
            hash: `0x${string}`;
            input: `0x${string}`;
            maxFeePerBlobGas: bigint;
            maxFeePerGas: bigint;
            maxPriorityFeePerGas: bigint;
            nonce: number;
            r: `0x${string}`;
            s: `0x${string}`;
            to: null | `0x${string}`;
            transactionIndex: (TBlockTag extends "pending"
                    ? true
                    : false) extends true
                ? null
                : number;
            type: "eip4844";
            typeHex: null | `0x${string}`;
            v: bigint;
            value: bigint;
            yParity: number;
        }>)
    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const transaction = await client.getTransaction({
    hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
    })
      • <TBlockTag>(args): Promise<
            | {
                accessList?: undefined;
                blobVersionedHashes?: undefined;
                blockHash: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId?: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas?: undefined;
                maxPriorityFeePerGas?: undefined;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "legacy";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity?: undefined;
            }
            | {
                accessList: AccessList;
                blobVersionedHashes?: undefined;
                blockHash: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas?: undefined;
                maxPriorityFeePerGas?: undefined;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "eip2930";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
            }
            | {
                accessList: AccessList;
                blobVersionedHashes?: undefined;
                blockHash: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice?: undefined;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "eip1559";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
            }
            | {
                accessList: AccessList;
                blobVersionedHashes: `0x${string}`[];
                blockHash: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice?: undefined;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas: bigint;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "eip4844";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
            }>
      • Type Parameters

        Returns Promise<
            | {
                accessList?: undefined;
                blobVersionedHashes?: undefined;
                blockHash: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId?: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas?: undefined;
                maxPriorityFeePerGas?: undefined;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "legacy";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity?: undefined;
            }
            | {
                accessList: AccessList;
                blobVersionedHashes?: undefined;
                blockHash: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas?: undefined;
                maxPriorityFeePerGas?: undefined;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "eip2930";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
            }
            | {
                accessList: AccessList;
                blobVersionedHashes?: undefined;
                blockHash: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice?: undefined;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "eip1559";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
            }
            | {
                accessList: AccessList;
                blobVersionedHashes: `0x${string}`[];
                blockHash: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : bigint;
                chainId: number;
                from: `0x${string}`;
                gas: bigint;
                gasPrice?: undefined;
                hash: `0x${string}`;
                input: `0x${string}`;
                maxFeePerBlobGas: bigint;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (TBlockTag extends "pending"
                        ? true
                        : false) extends true
                    ? null
                    : number;
                type: "eip4844";
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
            }>

        The transaction information. GetTransactionReturnType

  • getTransactionConfirmations: ((args: GetTransactionConfirmationsParameters<undefined | Chain>) => Promise<bigint>)

    Returns the number of blocks passed (confirmations) since the transaction was processed on a block.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const confirmations = await client.getTransactionConfirmations({
    hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
    })
  • getTransactionCount: ((args: GetTransactionCountParameters) => Promise<number>)

    Returns the number of Transactions an Account has broadcast / sent.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const transactionCount = await client.getTransactionCount({
    address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
    })
  • getTransactionReceipt: ((args: GetTransactionReceiptParameters) => Promise<TransactionReceipt>)
    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const transactionReceipt = await client.getTransactionReceipt({
    hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
    })
  • key: string

    A key for the client.

  • multicall: (<const contracts, allowFailure>(args: MulticallParameters<contracts, allowFailure>) => Promise<MulticallReturnType<contracts, allowFailure>>)

    Similar to readContract, but batches up multiple functions on a contract in a single RPC call via the multicall3 contract.

    import { createPublicClient, http, parseAbi } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const abi = parseAbi([
    'function balanceOf(address) view returns (uint256)',
    'function totalSupply() view returns (uint256)',
    ])
    const result = await client.multicall({
    contracts: [
    {
    address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
    abi,
    functionName: 'balanceOf',
    args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],
    },
    {
    address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
    abi,
    functionName: 'totalSupply',
    },
    ],
    })
    // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]
  • name: string

    A name for the client.

  • pollingInterval: number

    Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds.

  • prepareTransactionRequest: (<const TRequest, TChainOverride, TAccountOverride>(args: PrepareTransactionRequestParameters<undefined | Chain, undefined | Account, TChainOverride, TAccountOverride, TRequest>) => Promise<{
        [K in string | number | symbol]: (UnionRequiredBy<Extract<UnionOmit<(...), (...)> & ((...) extends (...)
            ? (...)
            : (...)) & ((...) extends (...)
            ? (...)
            : (...)), IsNever<(...)> extends true
            ? unknown
            : ExactPartial<(...)>> & {
            chainId?: number;
        }, ParameterTypeToParameters<TRequest["parameters"] extends PrepareTransactionRequestParameterType[]
            ? any[any][number]
            : PrepareTransactionRequestParameterType>> & (unknown extends TRequest["kzg"]
            ? {}
            : Pick<TRequest, "kzg">))[K]
    }>)

    Prepares a transaction request for signing.

    import { createWalletClient, custom } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createWalletClient({
    chain: mainnet,
    transport: custom(window.ethereum),
    })
    const request = await client.prepareTransactionRequest({
    account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
    to: '0x0000000000000000000000000000000000000000',
    value: 1n,
    })
    // Account Hoisting
    import { createWalletClient, http } from 'viem'
    import { privateKeyToAccount } from 'viem/accounts'
    import { mainnet } from 'viem/chains'

    const client = createWalletClient({
    account: privateKeyToAccount('0x…'),
    chain: mainnet,
    transport: custom(window.ethereum),
    })
    const request = await client.prepareTransactionRequest({
    to: '0x0000000000000000000000000000000000000000',
    value: 1n,
    })
      • <const TRequest, TChainOverride, TAccountOverride>(args): Promise<{
            [K in string | number | symbol]: (UnionRequiredBy<Extract<UnionOmit<(...), (...)> & ((...) extends (...)
                ? (...)
                : (...)) & ((...) extends (...)
                ? (...)
                : (...)), IsNever<(...)> extends true
                ? unknown
                : ExactPartial<(...)>> & {
                chainId?: number;
            }, ParameterTypeToParameters<TRequest["parameters"] extends PrepareTransactionRequestParameterType[]
                ? any[any][number]
                : PrepareTransactionRequestParameterType>> & (unknown extends TRequest["kzg"]
                ? {}
                : Pick<TRequest, "kzg">))[K]
        }>
      • Type Parameters

        • const TRequest extends (
              | Omit<{
                  accessList?: undefined;
                  blobs?: undefined;
                  data?: `0x${string}`;
                  from: `0x${string}`;
                  gas?: bigint;
                  gasPrice?: bigint;
                  maxFeePerBlobGas?: undefined;
                  maxFeePerGas?: undefined;
                  maxPriorityFeePerGas?: undefined;
                  nonce?: number;
                  to?: null | `0x${string}`;
                  type?: "legacy";
                  value?: bigint;
              }, "from">
              | Omit<{
                  accessList?: AccessList;
                  blobs?: undefined;
                  data?: `0x${string}`;
                  from: `0x${string}`;
                  gas?: bigint;
                  gasPrice?: bigint;
                  maxFeePerBlobGas?: undefined;
                  maxFeePerGas?: undefined;
                  maxPriorityFeePerGas?: undefined;
                  nonce?: number;
                  to?: null | `0x${string}`;
                  type?: "eip2930";
                  value?: bigint;
              }, "from">
              | Omit<{
                  accessList?: AccessList;
                  blobs?: undefined;
                  data?: `0x${string}`;
                  from: `0x${string}`;
                  gas?: bigint;
                  gasPrice?: undefined;
                  maxFeePerBlobGas?: undefined;
                  maxFeePerGas?: bigint;
                  maxPriorityFeePerGas?: bigint;
                  nonce?: number;
                  to?: null | `0x${string}`;
                  type?: "eip1559";
                  value?: bigint;
              }, "from">
              | Omit<{
                  accessList?: AccessList;
                  blobs: readonly `0x${string}`[] | readonly Uint8Array[];
                  data?: `0x${string}`;
                  from: `0x${string}`;
                  gas?: bigint;
                  gasPrice?: undefined;
                  maxFeePerBlobGas: bigint;
                  maxFeePerGas?: bigint;
                  maxPriorityFeePerGas?: bigint;
                  nonce?: number;
                  to: null | `0x${string}`;
                  type?: "eip4844";
                  value?: bigint;
              }, "from">) & {
              kzg?: Kzg;
          } & {
              parameters?: PrepareTransactionRequestParameterType[];
          }
        • TChainOverride extends undefined | Chain = undefined
        • TAccountOverride extends undefined | `0x${string}` | Account = undefined

        Returns Promise<{
            [K in string | number | symbol]: (UnionRequiredBy<Extract<UnionOmit<(...), (...)> & ((...) extends (...)
                ? (...)
                : (...)) & ((...) extends (...)
                ? (...)
                : (...)), IsNever<(...)> extends true
                ? unknown
                : ExactPartial<(...)>> & {
                chainId?: number;
            }, ParameterTypeToParameters<TRequest["parameters"] extends PrepareTransactionRequestParameterType[]
                ? any[any][number]
                : PrepareTransactionRequestParameterType>> & (unknown extends TRequest["kzg"]
                ? {}
                : Pick<TRequest, "kzg">))[K]
        }>

        The transaction request. PrepareTransactionRequestReturnType

  • readContract: (<const abi, functionName, args>(args: ReadContractParameters<abi, functionName, args>) => Promise<ReadContractReturnType<abi, functionName, args>>)

    Calls a read-only function on a contract, and returns the response.

    A "read-only" function (constant function) on a Solidity contract is denoted by a view or pure keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas.

    Internally, uses a Public Client to call the call action with ABI-encoded data.

    import { createPublicClient, http, parseAbi } from 'viem'
    import { mainnet } from 'viem/chains'
    import { readContract } from 'viem/contract'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const result = await client.readContract({
    address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
    abi: parseAbi(['function balanceOf(address) view returns (uint256)']),
    functionName: 'balanceOf',
    args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],
    })
    // 424122n
  • request: EIP1193RequestFn<PublicRpcSchema>

    Request function wrapped with friendly error handling

  • sendRawTransaction: ((args: SendRawTransactionParameters) => Promise<`0x${string}`>)

    Sends a signed transaction to the network

    import { createWalletClient, custom } from 'viem'
    import { mainnet } from 'viem/chains'
    import { sendRawTransaction } from 'viem/wallet'

    const client = createWalletClient({
    chain: mainnet,
    transport: custom(window.ethereum),
    })

    const hash = await client.sendRawTransaction({
    serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'
    })
  • simulateContract: (<const abi, functionName, args, chainOverride, accountOverride>(args: SimulateContractParameters<abi, functionName, args, undefined | Chain, chainOverride, accountOverride>) => Promise<SimulateContractReturnType<abi, functionName, args, undefined | Chain, undefined | Account, chainOverride, accountOverride>>)

    Simulates/validates a contract interaction. This is useful for retrieving return data and revert reasons of contract write functions.

    This function does not require gas to execute and does not change the state of the blockchain. It is almost identical to readContract, but also supports contract write functions.

    Internally, uses a Public Client to call the call action with ABI-encoded data.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const result = await client.simulateContract({
    address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
    abi: parseAbi(['function mint(uint32) view returns (uint32)']),
    functionName: 'mint',
    args: ['69420'],
    account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
    })
  • transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>

    The RPC transport

  • type: string

    The type of client.

  • uid: string

    A unique ID for the client.

  • uninstallFilter: ((args: UninstallFilterParameters) => Promise<boolean>)

    Destroys a Filter that was created from one of the following Actions:

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'
    import { createPendingTransactionFilter, uninstallFilter } from 'viem/public'

    const filter = await client.createPendingTransactionFilter()
    const uninstalled = await client.uninstallFilter({ filter })
    // true
  • verifyMessage: ((args: VerifyMessageParameters) => Promise<boolean>)
  • verifyTypedData: ((args: VerifyTypedDataParameters) => Promise<boolean>)
  • waitForTransactionReceipt: ((args: WaitForTransactionReceiptParameters<undefined | Chain>) => Promise<TransactionReceipt>)

    Waits for the Transaction to be included on a Block (one confirmation), and then returns the Transaction Receipt. If the Transaction reverts, then the action will throw an error.

    The waitForTransactionReceipt action additionally supports Replacement detection (e.g. sped up Transactions).

    Transactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.

    There are 3 types of Transaction Replacement reasons:

    • repriced: The gas price has been modified (e.g. different maxFeePerGas)
    • cancelled: The Transaction has been cancelled (e.g. value === 0n)
    • replaced: The Transaction has been replaced (e.g. different value or data)
    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const transactionReceipt = await client.waitForTransactionReceipt({
    hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
    })
  • watchBlockNumber: ((args: WatchBlockNumberParameters) => WatchBlockNumberReturnType)

    Watches and returns incoming block numbers.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const unwatch = await client.watchBlockNumber({
    onBlockNumber: (blockNumber) => console.log(blockNumber),
    })
  • watchBlocks: (<TIncludeTransactions, TBlockTag>(args: WatchBlocksParameters<Transport, undefined | Chain, TIncludeTransactions, TBlockTag>) => WatchBlocksReturnType)

    Watches and returns information for incoming blocks.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const unwatch = await client.watchBlocks({
    onBlock: (block) => console.log(block),
    })
  • watchContractEvent: (<const TAbi, TEventName, TStrict>(args: WatchContractEventParameters<TAbi, TEventName, TStrict, Transport>) => WatchContractEventReturnType)

    Watches and returns emitted contract event logs.

    This Action will batch up all the event logs found within the pollingInterval, and invoke them via onLogs.

    watchContractEvent will attempt to create an Event Filter and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. eth_newFilter), then watchContractEvent will fall back to using getLogs instead.

    import { createPublicClient, http, parseAbi } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const unwatch = client.watchContractEvent({
    address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
    abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),
    eventName: 'Transfer',
    args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },
    onLogs: (logs) => console.log(logs),
    })
  • watchEvent: (<const TAbiEvent, const TAbiEvents, TStrict>(args: WatchEventParameters<TAbiEvent, TAbiEvents, TStrict, Transport>) => WatchEventReturnType)

    Watches and returns emitted Event Logs.

    This Action will batch up all the Event Logs found within the pollingInterval, and invoke them via onLogs.

    watchEvent will attempt to create an Event Filter and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. eth_newFilter), then watchEvent will fall back to using getLogs instead.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const unwatch = client.watchEvent({
    onLogs: (logs) => console.log(logs),
    })
  • watchPendingTransactions: ((args: WatchPendingTransactionsParameters<Transport>) => WatchPendingTransactionsReturnType)

    Watches and returns pending transaction hashes.

    This Action will batch up all the pending transactions found within the pollingInterval, and invoke them via onTransactions.

    import { createPublicClient, http } from 'viem'
    import { mainnet } from 'viem/chains'

    const client = createPublicClient({
    chain: mainnet,
    transport: http(),
    })
    const unwatch = await client.watchPendingTransactions({
    onTransactions: (hashes) => console.log(hashes),
    })

Methods

  • Returns Promise<{
        abi: readonly [{
            inputs: readonly [{
                internalType: "contract IEntryPoint";
                name: "anEntryPoint";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "constructor";
        }, {
            inputs: readonly [];
            name: "AlreadyInitialized";
            type: "error";
        }, {
            inputs: readonly [];
            name: "BaseImplementationCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "caller";
                type: "address";
            }];
            name: "CallerIsNotAnEntryPoint";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "caller";
                type: "address";
            }];
            name: "CallerIsNotEntryPoint";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "caller";
                type: "address";
            }];
            name: "CallerIsNotEntryPointOrOwner";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "caller";
                type: "address";
            }];
            name: "CallerIsNotEntryPointOrSelf";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "caller";
                type: "address";
            }];
            name: "CallerIsNotOwner";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "caller";
                type: "address";
            }];
            name: "CallerIsNotSelf";
            type: "error";
        }, {
            inputs: readonly [];
            name: "DelegateCallsOnly";
            type: "error";
        }, {
            inputs: readonly [];
            name: "EntryPointCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [];
            name: "HandlerCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "implementationAddress";
                type: "address";
            }];
            name: "InvalidImplementation";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "caller";
                type: "address";
            }];
            name: "MixedAuthFail";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "module";
                type: "address";
            }];
            name: "ModuleAlreadyEnabled";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "expectedModule";
                type: "address";
            }, {
                internalType: "address";
                name: "returnedModule";
                type: "address";
            }, {
                internalType: "address";
                name: "prevModule";
                type: "address";
            }];
            name: "ModuleAndPrevModuleMismatch";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "module";
                type: "address";
            }];
            name: "ModuleCannotBeZeroOrSentinel";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "module";
                type: "address";
            }];
            name: "ModuleNotEnabled";
            type: "error";
        }, {
            inputs: readonly [];
            name: "ModulesAlreadyInitialized";
            type: "error";
        }, {
            inputs: readonly [];
            name: "ModulesSetupExecutionFailed";
            type: "error";
        }, {
            inputs: readonly [];
            name: "OwnerCanNotBeSelf";
            type: "error";
        }, {
            inputs: readonly [];
            name: "OwnerCannotBeZero";
            type: "error";
        }, {
            inputs: readonly [];
            name: "OwnerProvidedIsSame";
            type: "error";
        }, {
            inputs: readonly [];
            name: "TransferToZeroAddressAttempt";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "destLength";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "valueLength";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "funcLength";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "operationLength";
                type: "uint256";
            }];
            name: "WrongBatchProvided";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "bytes";
                name: "contractSignature";
                type: "bytes";
            }];
            name: "WrongContractSignature";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "uintS";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "contractSignatureLength";
                type: "uint256";
            }, {
                internalType: "uint256";
                name: "signatureLength";
                type: "uint256";
            }];
            name: "WrongContractSignatureFormat";
            type: "error";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "moduleAddressProvided";
                type: "address";
            }];
            name: "WrongValidationModule";
            type: "error";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "previousHandler";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "handler";
                type: "address";
            }];
            name: "ChangedFallbackHandler";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "module";
                type: "address";
            }];
            name: "DisabledModule";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "module";
                type: "address";
            }];
            name: "EnabledModule";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "value";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }, {
                indexed: false;
                internalType: "enum Enum.Operation";
                name: "operation";
                type: "uint8";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "txGas";
                type: "uint256";
            }];
            name: "ExecutionFailure";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "module";
                type: "address";
            }];
            name: "ExecutionFromModuleFailure";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "module";
                type: "address";
            }];
            name: "ExecutionFromModuleSuccess";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "value";
                type: "uint256";
            }, {
                indexed: true;
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }, {
                indexed: false;
                internalType: "enum Enum.Operation";
                name: "operation";
                type: "uint8";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "txGas";
                type: "uint256";
            }];
            name: "ExecutionSuccess";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "oldImplementation";
                type: "address";
            }, {
                indexed: true;
                internalType: "address";
                name: "newImplementation";
                type: "address";
            }];
            name: "ImplementationUpdated";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: false;
                internalType: "address";
                name: "module";
                type: "address";
            }, {
                indexed: false;
                internalType: "address";
                name: "to";
                type: "address";
            }, {
                indexed: false;
                internalType: "uint256";
                name: "value";
                type: "uint256";
            }, {
                indexed: false;
                internalType: "bytes";
                name: "data";
                type: "bytes";
            }, {
                indexed: false;
                internalType: "enum Enum.Operation";
                name: "operation";
                type: "uint8";
            }];
            name: "ModuleTransaction";
            type: "event";
        }, {
            anonymous: false;
            inputs: readonly [{
                indexed: true;
                internalType: "address";
                name: "sender";
                type: "address";
            }, {
                indexed: true;
                internalType: "uint256";
                name: "value";
                type: "uint256";
            }];
            name: "SmartAccountReceivedNativeToken";
            type: "event";
        }, {
            stateMutability: "nonpayable";
            type: "fallback";
        }, {
            inputs: readonly [];
            name: "VERSION";
            outputs: readonly [{
                internalType: "string";
                name: "";
                type: "string";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "addDeposit";
            outputs: readonly [];
            stateMutability: "payable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "prevModule";
                type: "address";
            }, {
                internalType: "address";
                name: "module";
                type: "address";
            }];
            name: "disableModule";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "module";
                type: "address";
            }];
            name: "enableModule";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [];
            name: "entryPoint";
            outputs: readonly [{
                internalType: "contract IEntryPoint";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "to";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "value";
                type: "uint256[]";
            }, {
                internalType: "bytes[]";
                name: "data";
                type: "bytes[]";
            }, {
                internalType: "enum Enum.Operation[]";
                name: "operations";
                type: "uint8[]";
            }];
            name: "execBatchTransactionFromModule";
            outputs: readonly [{
                internalType: "bool";
                name: "success";
                type: "bool";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                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: "txGas";
                type: "uint256";
            }];
            name: "execTransactionFromModule";
            outputs: readonly [{
                internalType: "bool";
                name: "success";
                type: "bool";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                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: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                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: readonly [{
                internalType: "bool";
                name: "success";
                type: "bool";
            }, {
                internalType: "bytes";
                name: "returnData";
                type: "bytes";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "dest";
                type: "address";
            }, {
                internalType: "uint256";
                name: "value";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "func";
                type: "bytes";
            }];
            name: "execute";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "dest";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "value";
                type: "uint256[]";
            }, {
                internalType: "bytes[]";
                name: "func";
                type: "bytes[]";
            }];
            name: "executeBatch";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address[]";
                name: "dest";
                type: "address[]";
            }, {
                internalType: "uint256[]";
                name: "value";
                type: "uint256[]";
            }, {
                internalType: "bytes[]";
                name: "func";
                type: "bytes[]";
            }];
            name: "executeBatch_y6U";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "dest";
                type: "address";
            }, {
                internalType: "uint256";
                name: "value";
                type: "uint256";
            }, {
                internalType: "bytes";
                name: "func";
                type: "bytes";
            }];
            name: "execute_ncC";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [];
            name: "getDeposit";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "getFallbackHandler";
            outputs: readonly [{
                internalType: "address";
                name: "_handler";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "getImplementation";
            outputs: readonly [{
                internalType: "address";
                name: "_implementation";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "start";
                type: "address";
            }, {
                internalType: "uint256";
                name: "pageSize";
                type: "uint256";
            }];
            name: "getModulesPaginated";
            outputs: readonly [{
                internalType: "address[]";
                name: "array";
                type: "address[]";
            }, {
                internalType: "address";
                name: "next";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "handler";
                type: "address";
            }, {
                internalType: "address";
                name: "moduleSetupContract";
                type: "address";
            }, {
                internalType: "bytes";
                name: "moduleSetupData";
                type: "bytes";
            }];
            name: "init";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "module";
                type: "address";
            }];
            name: "isModuleEnabled";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes32";
                name: "dataHash";
                type: "bytes32";
            }, {
                internalType: "bytes";
                name: "signature";
                type: "bytes";
            }];
            name: "isValidSignature";
            outputs: readonly [{
                internalType: "bytes4";
                name: "";
                type: "bytes4";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint192";
                name: "_key";
                type: "uint192";
            }];
            name: "nonce";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            name: "noncesDeprecated";
            outputs: readonly [{
                internalType: "uint256";
                name: "";
                type: "uint256";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [];
            name: "ownerDeprecated";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "handler";
                type: "address";
            }];
            name: "setFallbackHandler";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "setupContract";
                type: "address";
            }, {
                internalType: "bytes";
                name: "setupData";
                type: "bytes";
            }];
            name: "setupAndEnableModule";
            outputs: readonly [{
                internalType: "address";
                name: "";
                type: "address";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "bytes4";
                name: "_interfaceId";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                internalType: "bool";
                name: "";
                type: "bool";
            }];
            stateMutability: "view";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address";
                name: "_implementation";
                type: "address";
            }];
            name: "updateImplementation";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                components: readonly [{
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "nonce";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "initCode";
                    type: "bytes";
                }, {
                    internalType: "bytes";
                    name: "callData";
                    type: "bytes";
                }, {
                    internalType: "uint256";
                    name: "callGasLimit";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "verificationGasLimit";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "preVerificationGas";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "maxFeePerGas";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "maxPriorityFeePerGas";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "paymasterAndData";
                    type: "bytes";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                internalType: "struct UserOperation";
                name: "userOp";
                type: "tuple";
            }, {
                internalType: "bytes32";
                name: "userOpHash";
                type: "bytes32";
            }, {
                internalType: "uint256";
                name: "missingAccountFunds";
                type: "uint256";
            }];
            name: "validateUserOp";
            outputs: readonly [{
                internalType: "uint256";
                name: "validationData";
                type: "uint256";
            }];
            stateMutability: "nonpayable";
            type: "function";
        }, {
            inputs: readonly [{
                internalType: "address payable";
                name: "withdrawAddress";
                type: "address";
            }, {
                internalType: "uint256";
                name: "amount";
                type: "uint256";
            }];
            name: "withdrawDepositTo";
            outputs: readonly [];
            stateMutability: "payable";
            type: "function";
        }, {
            stateMutability: "payable";
            type: "receive";
        }];
        address: `0x${string}`;
        createEventFilter: {
            ChangedFallbackHandler: (<const TArgs, TStrict>(...parameters: [args: {
                handler:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                previousHandler:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            } | ({
                    handler:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                    previousHandler:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                } extends TArgs
                ? Readonly<TArgs>
                : never), options?: {
                fromBlock?: bigint | BlockTag;
                toBlock?: bigint | BlockTag;
            } & {
                strict?: TStrict;
            }]) => Promise<CreateContractEventFilterReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ChangedFallbackHandler", TArgs, TStrict>>);
            DisabledModule: (<const TArgs, TStrict>(...parameters: [options?: {
                fromBlock?: bigint | BlockTag;
                toBlock?: bigint | BlockTag;
            } & {
                strict?: TStrict;
            }]) => Promise<CreateContractEventFilterReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "DisabledModule", TArgs, TStrict>>);
            EnabledModule: (<const TArgs, TStrict>(...parameters: [options?: {
                fromBlock?: bigint | BlockTag;
                toBlock?: bigint | BlockTag;
            } & {
                strict?: TStrict;
            }]) => Promise<CreateContractEventFilterReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "EnabledModule", TArgs, TStrict>>);
            ExecutionFailure: (<const TArgs, TStrict>(...parameters: [args: {
                data:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                to:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                value:
                    | undefined
                    | null
                    | bigint
                    | bigint[];
            } | ({
                    data:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                    to:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                    value:
                        | undefined
                        | null
                        | bigint
                        | bigint[];
                } extends TArgs
                ? Readonly<TArgs>
                : never), options?: {
                fromBlock?: bigint | BlockTag;
                toBlock?: bigint | BlockTag;
            } & {
                strict?: TStrict;
            }]) => Promise<CreateContractEventFilterReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ExecutionFailure", TArgs, TStrict>>);
            ExecutionFromModuleFailure: (<const TArgs, TStrict>(...parameters: [args: {
                module:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            } | ({
                    module:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                } extends TArgs
                ? Readonly<TArgs>
                : never), options?: {
                fromBlock?: bigint | BlockTag;
                toBlock?: bigint | BlockTag;
            } & {
                strict?: TStrict;
            }]) => Promise<CreateContractEventFilterReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ExecutionFromModuleFailure", TArgs, TStrict>>);
            ExecutionFromModuleSuccess: (<const TArgs, TStrict>(...parameters: [args: {
                module:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            } | ({
                    module:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                } extends TArgs
                ? Readonly<TArgs>
                : never), options?: {
                fromBlock?: bigint | BlockTag;
                toBlock?: bigint | BlockTag;
            } & {
                strict?: TStrict;
            }]) => Promise<CreateContractEventFilterReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ExecutionFromModuleSuccess", TArgs, TStrict>>);
            ExecutionSuccess: (<const TArgs, TStrict>(...parameters: [args: {
                data:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                to:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                value:
                    | undefined
                    | null
                    | bigint
                    | bigint[];
            } | ({
                    data:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                    to:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                    value:
                        | undefined
                        | null
                        | bigint
                        | bigint[];
                } extends TArgs
                ? Readonly<TArgs>
                : never), options?: {
                fromBlock?: bigint | BlockTag;
                toBlock?: bigint | BlockTag;
            } & {
                strict?: TStrict;
            }]) => Promise<CreateContractEventFilterReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ExecutionSuccess", TArgs, TStrict>>);
            ImplementationUpdated: (<const TArgs, TStrict>(...parameters: [args: {
                newImplementation:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                oldImplementation:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            } | ({
                    newImplementation:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                    oldImplementation:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                } extends TArgs
                ? Readonly<TArgs>
                : never), options?: {
                fromBlock?: bigint | BlockTag;
                toBlock?: bigint | BlockTag;
            } & {
                strict?: TStrict;
            }]) => Promise<CreateContractEventFilterReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ImplementationUpdated", TArgs, TStrict>>);
            ModuleTransaction: (<const TArgs, TStrict>(...parameters: [options?: {
                fromBlock?: bigint | BlockTag;
                toBlock?: bigint | BlockTag;
            } & {
                strict?: TStrict;
            }]) => Promise<CreateContractEventFilterReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ModuleTransaction", TArgs, TStrict>>);
            SmartAccountReceivedNativeToken: (<const TArgs, TStrict>(...parameters: [args: {
                sender:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                value:
                    | undefined
                    | null
                    | bigint
                    | bigint[];
            } | ({
                    sender:
                        | undefined
                        | null
                        | `0x${string}`
                        | `0x${(...)}`[];
                    value:
                        | undefined
                        | null
                        | bigint
                        | bigint[];
                } extends TArgs
                ? Readonly<TArgs>
                : never), options?: {
                fromBlock?: bigint | BlockTag;
                toBlock?: bigint | BlockTag;
            } & {
                strict?: TStrict;
            }]) => Promise<CreateContractEventFilterReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "SmartAccountReceivedNativeToken", TArgs, TStrict>>);
        };
        estimateGas: {
            addDeposit: ((...parameters: [options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "addDeposit", readonly [], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            disableModule: ((...parameters: [args: readonly [`0x${string}`, `0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "disableModule", readonly [`0x${(...)}`, `0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            enableModule: ((...parameters: [args: readonly [`0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "enableModule", readonly [`0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            execBatchTransactionFromModule: ((...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[], readonly number[]], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "execBatchTransactionFromModule", readonly [readonly (...)[], readonly (...)[], readonly (...)[], readonly (...)[]], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            execTransactionFromModule: ((...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`, number, bigint], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)], "execTransactionFromModule", (...) | (...), (...) | (...)>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>] | [args: readonly [`0x${string}`, bigint, `0x${string}`, number], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)], "execTransactionFromModule", (...) | (...), (...) | (...)>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            execTransactionFromModuleReturnData: ((...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`, number], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "execTransactionFromModuleReturnData", readonly [`0x${(...)}`, bigint, `0x${(...)}`, number], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            execute: ((...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "execute", readonly [`0x${(...)}`, bigint, `0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            executeBatch: ((...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[]], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "executeBatch", readonly [readonly (...)[], readonly (...)[], readonly (...)[]], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            executeBatch_y6U: ((...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[]], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "executeBatch_y6U", readonly [readonly (...)[], readonly (...)[], readonly (...)[]], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            execute_ncC: ((...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "execute_ncC", readonly [`0x${(...)}`, bigint, `0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            init: ((...parameters: [args: readonly [`0x${string}`, `0x${string}`, `0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "init", readonly [`0x${(...)}`, `0x${(...)}`, `0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            setFallbackHandler: ((...parameters: [args: readonly [`0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "setFallbackHandler", readonly [`0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            setupAndEnableModule: ((...parameters: [args: readonly [`0x${string}`, `0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "setupAndEnableModule", readonly [`0x${(...)}`, `0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            updateImplementation: ((...parameters: [args: readonly [`0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "updateImplementation", readonly [`0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            validateUserOp: ((...parameters: [args: readonly [{
                callData: `0x${string}`;
                callGasLimit: bigint;
                initCode: `0x${string}`;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: bigint;
                paymasterAndData: `0x${string}`;
                preVerificationGas: bigint;
                sender: `0x${string}`;
                signature: `0x${string}`;
                verificationGasLimit: bigint;
            }, `0x${string}`, bigint], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "validateUserOp", readonly [{
                callData: ...;
                callGasLimit: ...;
                initCode: ...;
                maxFeePerGas: ...;
                maxPriorityFeePerGas: ...;
                nonce: ...;
                paymasterAndData: ...;
                preVerificationGas: ...;
                sender: ...;
                signature: ...;
                verificationGasLimit: ...;
            }, `0x${(...)}`, bigint], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            withdrawDepositTo: ((...parameters: [args: readonly [`0x${string}`, bigint], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "withdrawDepositTo", readonly [`0x${(...)}`, bigint], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
        } & {
            addDeposit: ((...parameters: [options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "addDeposit", readonly [], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            disableModule: ((...parameters: [args: readonly [`0x${string}`, `0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "disableModule", readonly [`0x${(...)}`, `0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            enableModule: ((...parameters: [args: readonly [`0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "enableModule", readonly [`0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            execBatchTransactionFromModule: ((...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[], readonly number[]], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "execBatchTransactionFromModule", readonly [readonly (...)[], readonly (...)[], readonly (...)[], readonly (...)[]], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            execTransactionFromModule: ((...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`, number, bigint], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)], "execTransactionFromModule", (...) | (...), (...) | (...)>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>] | [args: readonly [`0x${string}`, bigint, `0x${string}`, number], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)], "execTransactionFromModule", (...) | (...), (...) | (...)>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            execTransactionFromModuleReturnData: ((...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`, number], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "execTransactionFromModuleReturnData", readonly [`0x${(...)}`, bigint, `0x${(...)}`, number], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            execute: ((...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "execute", readonly [`0x${(...)}`, bigint, `0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            executeBatch: ((...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[]], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "executeBatch", readonly [readonly (...)[], readonly (...)[], readonly (...)[]], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            executeBatch_y6U: ((...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[]], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "executeBatch_y6U", readonly [readonly (...)[], readonly (...)[], readonly (...)[]], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            execute_ncC: ((...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "execute_ncC", readonly [`0x${(...)}`, bigint, `0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            init: ((...parameters: [args: readonly [`0x${string}`, `0x${string}`, `0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "init", readonly [`0x${(...)}`, `0x${(...)}`, `0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            setFallbackHandler: ((...parameters: [args: readonly [`0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "setFallbackHandler", readonly [`0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            setupAndEnableModule: ((...parameters: [args: readonly [`0x${string}`, `0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "setupAndEnableModule", readonly [`0x${(...)}`, `0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            updateImplementation: ((...parameters: [args: readonly [`0x${string}`], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "updateImplementation", readonly [`0x${(...)}`], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            validateUserOp: ((...parameters: [args: readonly [{
                callData: `0x${string}`;
                callGasLimit: bigint;
                initCode: `0x${string}`;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: bigint;
                paymasterAndData: `0x${string}`;
                preVerificationGas: bigint;
                sender: `0x${string}`;
                signature: `0x${string}`;
                verificationGasLimit: bigint;
            }, `0x${string}`, bigint], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "validateUserOp", readonly [{
                callData: ...;
                callGasLimit: ...;
                initCode: ...;
                maxFeePerGas: ...;
                maxPriorityFeePerGas: ...;
                nonce: ...;
                paymasterAndData: ...;
                preVerificationGas: ...;
                sender: ...;
                signature: ...;
                verificationGasLimit: ...;
            }, `0x${(...)}`, bigint], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
            withdrawDepositTo: ((...parameters: [args: readonly [`0x${string}`, bigint], options: Prettify<UnionOmit<EstimateContractGasParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "withdrawDepositTo", readonly [`0x${(...)}`, bigint], undefined | Chain>,
                | "address"
                | "abi"
                | "args"
                | "functionName">>]) => Promise<bigint>);
        };
        getEvents: {
            ChangedFallbackHandler: ((...parameters: [args?: {
                handler:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                previousHandler:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            }, options?: {
                blockHash?: `0x${string}`;
                fromBlock?: bigint | BlockTag;
                strict?: boolean;
                toBlock?: bigint | BlockTag;
            }]) => Promise<GetContractEventsReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ChangedFallbackHandler">>);
            DisabledModule: ((...parameters: [options?: {
                blockHash?: `0x${string}`;
                fromBlock?: bigint | BlockTag;
                strict?: boolean;
                toBlock?: bigint | BlockTag;
            }]) => Promise<GetContractEventsReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "DisabledModule">>);
            EnabledModule: ((...parameters: [options?: {
                blockHash?: `0x${string}`;
                fromBlock?: bigint | BlockTag;
                strict?: boolean;
                toBlock?: bigint | BlockTag;
            }]) => Promise<GetContractEventsReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "EnabledModule">>);
            ExecutionFailure: ((...parameters: [args?: {
                data:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                to:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                value:
                    | undefined
                    | null
                    | bigint
                    | bigint[];
            }, options?: {
                blockHash?: `0x${string}`;
                fromBlock?: bigint | BlockTag;
                strict?: boolean;
                toBlock?: bigint | BlockTag;
            }]) => Promise<GetContractEventsReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ExecutionFailure">>);
            ExecutionFromModuleFailure: ((...parameters: [args?: {
                module:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            }, options?: {
                blockHash?: `0x${string}`;
                fromBlock?: bigint | BlockTag;
                strict?: boolean;
                toBlock?: bigint | BlockTag;
            }]) => Promise<GetContractEventsReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ExecutionFromModuleFailure">>);
            ExecutionFromModuleSuccess: ((...parameters: [args?: {
                module:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            }, options?: {
                blockHash?: `0x${string}`;
                fromBlock?: bigint | BlockTag;
                strict?: boolean;
                toBlock?: bigint | BlockTag;
            }]) => Promise<GetContractEventsReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ExecutionFromModuleSuccess">>);
            ExecutionSuccess: ((...parameters: [args?: {
                data:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                to:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                value:
                    | undefined
                    | null
                    | bigint
                    | bigint[];
            }, options?: {
                blockHash?: `0x${string}`;
                fromBlock?: bigint | BlockTag;
                strict?: boolean;
                toBlock?: bigint | BlockTag;
            }]) => Promise<GetContractEventsReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ExecutionSuccess">>);
            ImplementationUpdated: ((...parameters: [args?: {
                newImplementation:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                oldImplementation:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            }, options?: {
                blockHash?: `0x${string}`;
                fromBlock?: bigint | BlockTag;
                strict?: boolean;
                toBlock?: bigint | BlockTag;
            }]) => Promise<GetContractEventsReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ImplementationUpdated">>);
            ModuleTransaction: ((...parameters: [options?: {
                blockHash?: `0x${string}`;
                fromBlock?: bigint | BlockTag;
                strict?: boolean;
                toBlock?: bigint | BlockTag;
            }]) => Promise<GetContractEventsReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "ModuleTransaction">>);
            SmartAccountReceivedNativeToken: ((...parameters: [args?: {
                sender:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                value:
                    | undefined
                    | null
                    | bigint
                    | bigint[];
            }, options?: {
                blockHash?: `0x${string}`;
                fromBlock?: bigint | BlockTag;
                strict?: boolean;
                toBlock?: bigint | BlockTag;
            }]) => Promise<GetContractEventsReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "SmartAccountReceivedNativeToken">>);
        };
        read: {
            VERSION: ((...parameters: [options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<string>);
            entryPoint: ((...parameters: [options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<`0x${string}`>);
            getDeposit: ((...parameters: [options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<bigint>);
            getFallbackHandler: ((...parameters: [options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<`0x${string}`>);
            getImplementation: ((...parameters: [options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<`0x${string}`>);
            getModulesPaginated: ((...parameters: [args: readonly [`0x${string}`, bigint], options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<readonly [readonly `0x${string}`[], `0x${string}`]>);
            isModuleEnabled: ((...parameters: [args: readonly [`0x${string}`], options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<boolean>);
            isValidSignature: ((...parameters: [args: readonly [`0x${string}`, `0x${string}`], options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<`0x${string}`>);
            nonce: ((...parameters: [args: readonly [bigint], options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<bigint>);
            noncesDeprecated: ((...parameters: [args: readonly [bigint], options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<bigint>);
            ownerDeprecated: ((...parameters: [options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<`0x${string}`>);
            supportsInterface: ((...parameters: [args: readonly [`0x${string}`], options?: {
                account?: `0x${string}` | Account;
                blockNumber?: bigint;
                blockTag?: BlockTag;
                stateOverride?: StateOverride;
            }]) => Promise<boolean>);
        };
        simulate: {
            addDeposit: (<TChainOverride, TAccountOverride>(...parameters: [options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "addDeposit", readonly [], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "addDeposit", readonly [], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            disableModule: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`, `0x${string}`], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "disableModule", readonly [`0x${string}`, `0x${string}`], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "disableModule", readonly [`0x${string}`, `0x${string}`], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            enableModule: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "enableModule", readonly [`0x${string}`], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "enableModule", readonly [`0x${string}`], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            execBatchTransactionFromModule: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[], readonly number[]], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "execBatchTransactionFromModule", readonly [readonly `0x${(...)}`[], readonly bigint[], readonly `0x${(...)}`[], readonly number[]], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "execBatchTransactionFromModule", readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[], readonly number[]], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            execTransactionFromModule: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`, number, bigint], options?: Omit<SimulateContractParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "execTransactionFromModule", readonly [(...), (...), (...), (...), (...)] | readonly [(...), (...), (...), (...)], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">] | [args: readonly [`0x${string}`, bigint, `0x${string}`, number], options?: Omit<SimulateContractParameters<readonly [{
                inputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                anonymous: ...;
                inputs: ...;
                name: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                inputs: ...;
                name: ...;
                outputs: ...;
                stateMutability: ...;
                type: ...;
            }, {
                stateMutability: ...;
                type: ...;
            }], "execTransactionFromModule", readonly [(...), (...), (...), (...), (...)] | readonly [(...), (...), (...), (...)], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "execTransactionFromModule", readonly [`0x${string}`, bigint, `0x${string}`, number, bigint] | readonly [`0x${string}`, bigint, `0x${string}`, number], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            execTransactionFromModuleReturnData: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`, number], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "execTransactionFromModuleReturnData", readonly [`0x${string}`, bigint, `0x${string}`, number], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "execTransactionFromModuleReturnData", readonly [`0x${string}`, bigint, `0x${string}`, number], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            execute: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "execute", readonly [`0x${string}`, bigint, `0x${string}`], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "execute", readonly [`0x${string}`, bigint, `0x${string}`], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            executeBatch: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[]], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "executeBatch", readonly [readonly `0x${(...)}`[], readonly bigint[], readonly `0x${(...)}`[]], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "executeBatch", readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[]], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            executeBatch_y6U: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[]], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "executeBatch_y6U", readonly [readonly `0x${(...)}`[], readonly bigint[], readonly `0x${(...)}`[]], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "executeBatch_y6U", readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[]], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            execute_ncC: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "execute_ncC", readonly [`0x${string}`, bigint, `0x${string}`], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "execute_ncC", readonly [`0x${string}`, bigint, `0x${string}`], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            init: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`, `0x${string}`, `0x${string}`], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "init", readonly [`0x${string}`, `0x${string}`, `0x${string}`], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "init", readonly [`0x${string}`, `0x${string}`, `0x${string}`], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            setFallbackHandler: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "setFallbackHandler", readonly [`0x${string}`], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "setFallbackHandler", readonly [`0x${string}`], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            setupAndEnableModule: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`, `0x${string}`], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "setupAndEnableModule", readonly [`0x${string}`, `0x${string}`], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "setupAndEnableModule", readonly [`0x${string}`, `0x${string}`], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            updateImplementation: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "updateImplementation", readonly [`0x${string}`], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "updateImplementation", readonly [`0x${string}`], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            validateUserOp: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [{
                callData: `0x${string}`;
                callGasLimit: bigint;
                initCode: `0x${string}`;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: bigint;
                paymasterAndData: `0x${string}`;
                preVerificationGas: bigint;
                sender: `0x${string}`;
                signature: `0x${string}`;
                verificationGasLimit: bigint;
            }, `0x${string}`, bigint], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "validateUserOp", readonly [{
                callData: `0x${(...)}`;
                callGasLimit: bigint;
                initCode: `0x${(...)}`;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: bigint;
                paymasterAndData: `0x${(...)}`;
                preVerificationGas: bigint;
                sender: `0x${(...)}`;
                signature: `0x${(...)}`;
                verificationGasLimit: bigint;
            }, `0x${string}`, bigint], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "validateUserOp", readonly [{
                callData: `0x${string}`;
                callGasLimit: bigint;
                initCode: `0x${string}`;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: bigint;
                paymasterAndData: `0x${string}`;
                preVerificationGas: bigint;
                sender: `0x${string}`;
                signature: `0x${string}`;
                verificationGasLimit: bigint;
            }, `0x${string}`, bigint], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
            withdrawDepositTo: (<TChainOverride, TAccountOverride>(...parameters: [args: readonly [`0x${string}`, bigint], options?: Omit<SimulateContractParameters<readonly [{
                inputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [(...)];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...)];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [(...), (...)];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execBatchTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...), (...)];
                name: "execTransactionFromModuleReturnData";
                outputs: readonly [(...), (...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "getModulesPaginated";
                outputs: readonly [(...), (...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "init";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "isModuleEnabled";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "isValidSignature";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "nonce";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "noncesDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "setupAndEnableModule";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "supportsInterface";
                outputs: readonly [(...)];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [(...)];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...), (...)];
                name: "validateUserOp";
                outputs: readonly [(...)];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [(...), (...)];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "withdrawDepositTo", readonly [`0x${string}`, bigint], undefined | Chain, TChainOverride, TAccountOverride>,
                | "address"
                | "abi"
                | "args"
                | "functionName">]) => Promise<SimulateContractReturnType<readonly [{
                inputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "anEntryPoint";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                inputs: readonly [];
                name: "AlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "BaseImplementationCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotAnEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPoint";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotEntryPointOrSelf";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotOwner";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "CallerIsNotSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "DelegateCallsOnly";
                type: "error";
            }, {
                inputs: readonly [];
                name: "EntryPointCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "HandlerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "implementationAddress";
                    type: "address";
                }];
                name: "InvalidImplementation";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "caller";
                    type: "address";
                }];
                name: "MixedAuthFail";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleAlreadyEnabled";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "expectedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "returnedModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }];
                name: "ModuleAndPrevModuleMismatch";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleCannotBeZeroOrSentinel";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ModuleNotEnabled";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesAlreadyInitialized";
                type: "error";
            }, {
                inputs: readonly [];
                name: "ModulesSetupExecutionFailed";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCanNotBeSelf";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerCannotBeZero";
                type: "error";
            }, {
                inputs: readonly [];
                name: "OwnerProvidedIsSame";
                type: "error";
            }, {
                inputs: readonly [];
                name: "TransferToZeroAddressAttempt";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "destLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "valueLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "funcLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "operationLength";
                    type: "uint256";
                }];
                name: "WrongBatchProvided";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "bytes";
                    name: "contractSignature";
                    type: "bytes";
                }];
                name: "WrongContractSignature";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "uintS";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "contractSignatureLength";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "signatureLength";
                    type: "uint256";
                }];
                name: "WrongContractSignatureFormat";
                type: "error";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "moduleAddressProvided";
                    type: "address";
                }];
                name: "WrongValidationModule";
                type: "error";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "previousHandler";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "ChangedFallbackHandler";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "DisabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "EnabledModule";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "ExecutionFromModuleSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: true;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "txGas";
                    type: "uint256";
                }];
                name: "ExecutionSuccess";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "oldImplementation";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "newImplementation";
                    type: "address";
                }];
                name: "ImplementationUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "module";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "to";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }, {
                    indexed: false;
                    internalType: "enum Enum.Operation";
                    name: "operation";
                    type: "uint8";
                }];
                name: "ModuleTransaction";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "SmartAccountReceivedNativeToken";
                type: "event";
            }, {
                stateMutability: "nonpayable";
                type: "fallback";
            }, {
                inputs: readonly [];
                name: "VERSION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "addDeposit";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "prevModule";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "disableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "enableModule";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "entryPoint";
                outputs: readonly [{
                    internalType: "contract IEntryPoint";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "to";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "data";
                    type: "bytes[]";
                }, {
                    internalType: "enum Enum.Operation[]";
                    name: "operations";
                    type: "uint8[]";
                }];
                name: "execBatchTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: "txGas";
                    type: "uint256";
                }];
                name: "execTransactionFromModule";
                outputs: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    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: readonly [{
                    internalType: "bool";
                    name: "success";
                    type: "bool";
                }, {
                    internalType: "bytes";
                    name: "returnData";
                    type: "bytes";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address[]";
                    name: "dest";
                    type: "address[]";
                }, {
                    internalType: "uint256[]";
                    name: "value";
                    type: "uint256[]";
                }, {
                    internalType: "bytes[]";
                    name: "func";
                    type: "bytes[]";
                }];
                name: "executeBatch_y6U";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "dest";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "func";
                    type: "bytes";
                }];
                name: "execute_ncC";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getDeposit";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getFallbackHandler";
                outputs: readonly [{
                    internalType: "address";
                    name: "_handler";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "getImplementation";
                outputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "start";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "pageSize";
                    type: "uint256";
                }];
                name: "getModulesPaginated";
                outputs: readonly [{
                    internalType: "address[]";
                    name: "array";
                    type: "address[]";
                }, {
                    internalType: "address";
                    name: "next";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "moduleSetupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "moduleSetupData";
                    type: "bytes";
                }];
                name: "init";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "module";
                    type: "address";
                }];
                name: "isModuleEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "dataHash";
                    type: "bytes32";
                }, {
                    internalType: "bytes";
                    name: "signature";
                    type: "bytes";
                }];
                name: "isValidSignature";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint192";
                    name: "_key";
                    type: "uint192";
                }];
                name: "nonce";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "noncesDeprecated";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ownerDeprecated";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "handler";
                    type: "address";
                }];
                name: "setFallbackHandler";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "setupContract";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "setupData";
                    type: "bytes";
                }];
                name: "setupAndEnableModule";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "_interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "_implementation";
                    type: "address";
                }];
                name: "updateImplementation";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    components: readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)];
                    internalType: "struct UserOperation";
                    name: "userOp";
                    type: "tuple";
                }, {
                    internalType: "bytes32";
                    name: "userOpHash";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "missingAccountFunds";
                    type: "uint256";
                }];
                name: "validateUserOp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "validationData";
                    type: "uint256";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "withdrawAddress";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "withdrawDepositTo";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }], "withdrawDepositTo", readonly [`0x${string}`, bigint], undefined | Chain, undefined, TChainOverride, TAccountOverride>>);
        };
        watchEvent: {
            ChangedFallbackHandler: ((...parameters: [args: {
                handler:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                previousHandler:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            }, options: {
                batch?: boolean;
                onError?: ((error: Error) => void);
                onLogs: WatchContractEventOnLogsFn<readonly [{
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "constructor";
                }, {
                    inputs: readonly [];
                    name: "AlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "BaseImplementationCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotAnEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrSelf";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "DelegateCallsOnly";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "EntryPointCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "HandlerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "InvalidImplementation";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "MixedAuthFail";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAlreadyEnabled";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAndPrevModuleMismatch";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleCannotBeZeroOrSentinel";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleNotEnabled";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesAlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesSetupExecutionFailed";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCanNotBeSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerProvidedIsSame";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "TransferToZeroAddressAttempt";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongBatchProvided";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignature";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignatureFormat";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongValidationModule";
                    type: "error";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ChangedFallbackHandler";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "DisabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "EnabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ImplementationUpdated";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleTransaction";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "SmartAccountReceivedNativeToken";
                    type: "event";
                }, {
                    stateMutability: "nonpayable";
                    type: "fallback";
                }, {
                    inputs: readonly [];
                    name: "VERSION";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "addDeposit";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "disableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "enableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "entryPoint";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execBatchTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModuleReturnData";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch_y6U";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute_ncC";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getDeposit";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getFallbackHandler";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getImplementation";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "getModulesPaginated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "init";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isModuleEnabled";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isValidSignature";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "nonce";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "noncesDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "ownerDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setFallbackHandler";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setupAndEnableModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "supportsInterface";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "updateImplementation";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        components: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "validateUserOp";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "withdrawDepositTo";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    stateMutability: "payable";
                    type: "receive";
                }], "ChangedFallbackHandler", undefined>;
                poll?: true;
                pollingInterval?: number;
                strict?: boolean;
            }]) => WatchContractEventReturnType);
            DisabledModule: ((...parameters: [options: {
                batch?: boolean;
                onError?: ((error: Error) => void);
                onLogs: WatchContractEventOnLogsFn<readonly [{
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "constructor";
                }, {
                    inputs: readonly [];
                    name: "AlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "BaseImplementationCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotAnEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrSelf";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "DelegateCallsOnly";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "EntryPointCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "HandlerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "InvalidImplementation";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "MixedAuthFail";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAlreadyEnabled";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAndPrevModuleMismatch";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleCannotBeZeroOrSentinel";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleNotEnabled";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesAlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesSetupExecutionFailed";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCanNotBeSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerProvidedIsSame";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "TransferToZeroAddressAttempt";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongBatchProvided";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignature";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignatureFormat";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongValidationModule";
                    type: "error";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ChangedFallbackHandler";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "DisabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "EnabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ImplementationUpdated";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleTransaction";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "SmartAccountReceivedNativeToken";
                    type: "event";
                }, {
                    stateMutability: "nonpayable";
                    type: "fallback";
                }, {
                    inputs: readonly [];
                    name: "VERSION";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "addDeposit";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "disableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "enableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "entryPoint";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execBatchTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModuleReturnData";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch_y6U";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute_ncC";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getDeposit";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getFallbackHandler";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getImplementation";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "getModulesPaginated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "init";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isModuleEnabled";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isValidSignature";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "nonce";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "noncesDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "ownerDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setFallbackHandler";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setupAndEnableModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "supportsInterface";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "updateImplementation";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        components: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "validateUserOp";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "withdrawDepositTo";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    stateMutability: "payable";
                    type: "receive";
                }], "DisabledModule", undefined>;
                poll?: true;
                pollingInterval?: number;
                strict?: boolean;
            }]) => WatchContractEventReturnType);
            EnabledModule: ((...parameters: [options: {
                batch?: boolean;
                onError?: ((error: Error) => void);
                onLogs: WatchContractEventOnLogsFn<readonly [{
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "constructor";
                }, {
                    inputs: readonly [];
                    name: "AlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "BaseImplementationCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotAnEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrSelf";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "DelegateCallsOnly";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "EntryPointCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "HandlerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "InvalidImplementation";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "MixedAuthFail";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAlreadyEnabled";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAndPrevModuleMismatch";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleCannotBeZeroOrSentinel";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleNotEnabled";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesAlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesSetupExecutionFailed";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCanNotBeSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerProvidedIsSame";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "TransferToZeroAddressAttempt";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongBatchProvided";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignature";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignatureFormat";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongValidationModule";
                    type: "error";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ChangedFallbackHandler";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "DisabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "EnabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ImplementationUpdated";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleTransaction";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "SmartAccountReceivedNativeToken";
                    type: "event";
                }, {
                    stateMutability: "nonpayable";
                    type: "fallback";
                }, {
                    inputs: readonly [];
                    name: "VERSION";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "addDeposit";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "disableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "enableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "entryPoint";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execBatchTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModuleReturnData";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch_y6U";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute_ncC";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getDeposit";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getFallbackHandler";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getImplementation";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "getModulesPaginated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "init";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isModuleEnabled";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isValidSignature";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "nonce";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "noncesDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "ownerDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setFallbackHandler";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setupAndEnableModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "supportsInterface";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "updateImplementation";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        components: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "validateUserOp";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "withdrawDepositTo";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    stateMutability: "payable";
                    type: "receive";
                }], "EnabledModule", undefined>;
                poll?: true;
                pollingInterval?: number;
                strict?: boolean;
            }]) => WatchContractEventReturnType);
            ExecutionFailure: ((...parameters: [args: {
                data:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                to:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                value:
                    | undefined
                    | null
                    | bigint
                    | bigint[];
            }, options: {
                batch?: boolean;
                onError?: ((error: Error) => void);
                onLogs: WatchContractEventOnLogsFn<readonly [{
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "constructor";
                }, {
                    inputs: readonly [];
                    name: "AlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "BaseImplementationCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotAnEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrSelf";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "DelegateCallsOnly";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "EntryPointCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "HandlerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "InvalidImplementation";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "MixedAuthFail";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAlreadyEnabled";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAndPrevModuleMismatch";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleCannotBeZeroOrSentinel";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleNotEnabled";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesAlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesSetupExecutionFailed";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCanNotBeSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerProvidedIsSame";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "TransferToZeroAddressAttempt";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongBatchProvided";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignature";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignatureFormat";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongValidationModule";
                    type: "error";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ChangedFallbackHandler";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "DisabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "EnabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ImplementationUpdated";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleTransaction";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "SmartAccountReceivedNativeToken";
                    type: "event";
                }, {
                    stateMutability: "nonpayable";
                    type: "fallback";
                }, {
                    inputs: readonly [];
                    name: "VERSION";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "addDeposit";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "disableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "enableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "entryPoint";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execBatchTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModuleReturnData";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch_y6U";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute_ncC";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getDeposit";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getFallbackHandler";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getImplementation";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "getModulesPaginated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "init";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isModuleEnabled";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isValidSignature";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "nonce";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "noncesDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "ownerDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setFallbackHandler";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setupAndEnableModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "supportsInterface";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "updateImplementation";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        components: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "validateUserOp";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "withdrawDepositTo";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    stateMutability: "payable";
                    type: "receive";
                }], "ExecutionFailure", undefined>;
                poll?: true;
                pollingInterval?: number;
                strict?: boolean;
            }]) => WatchContractEventReturnType);
            ExecutionFromModuleFailure: ((...parameters: [args: {
                module:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            }, options: {
                batch?: boolean;
                onError?: ((error: Error) => void);
                onLogs: WatchContractEventOnLogsFn<readonly [{
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "constructor";
                }, {
                    inputs: readonly [];
                    name: "AlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "BaseImplementationCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotAnEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrSelf";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "DelegateCallsOnly";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "EntryPointCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "HandlerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "InvalidImplementation";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "MixedAuthFail";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAlreadyEnabled";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAndPrevModuleMismatch";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleCannotBeZeroOrSentinel";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleNotEnabled";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesAlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesSetupExecutionFailed";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCanNotBeSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerProvidedIsSame";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "TransferToZeroAddressAttempt";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongBatchProvided";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignature";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignatureFormat";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongValidationModule";
                    type: "error";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ChangedFallbackHandler";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "DisabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "EnabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ImplementationUpdated";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleTransaction";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "SmartAccountReceivedNativeToken";
                    type: "event";
                }, {
                    stateMutability: "nonpayable";
                    type: "fallback";
                }, {
                    inputs: readonly [];
                    name: "VERSION";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "addDeposit";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "disableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "enableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "entryPoint";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execBatchTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModuleReturnData";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch_y6U";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute_ncC";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getDeposit";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getFallbackHandler";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getImplementation";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "getModulesPaginated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "init";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isModuleEnabled";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isValidSignature";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "nonce";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "noncesDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "ownerDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setFallbackHandler";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setupAndEnableModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "supportsInterface";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "updateImplementation";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        components: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "validateUserOp";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "withdrawDepositTo";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    stateMutability: "payable";
                    type: "receive";
                }], "ExecutionFromModuleFailure", undefined>;
                poll?: true;
                pollingInterval?: number;
                strict?: boolean;
            }]) => WatchContractEventReturnType);
            ExecutionFromModuleSuccess: ((...parameters: [args: {
                module:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            }, options: {
                batch?: boolean;
                onError?: ((error: Error) => void);
                onLogs: WatchContractEventOnLogsFn<readonly [{
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "constructor";
                }, {
                    inputs: readonly [];
                    name: "AlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "BaseImplementationCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotAnEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrSelf";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "DelegateCallsOnly";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "EntryPointCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "HandlerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "InvalidImplementation";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "MixedAuthFail";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAlreadyEnabled";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAndPrevModuleMismatch";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleCannotBeZeroOrSentinel";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleNotEnabled";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesAlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesSetupExecutionFailed";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCanNotBeSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerProvidedIsSame";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "TransferToZeroAddressAttempt";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongBatchProvided";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignature";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignatureFormat";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongValidationModule";
                    type: "error";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ChangedFallbackHandler";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "DisabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "EnabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ImplementationUpdated";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleTransaction";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "SmartAccountReceivedNativeToken";
                    type: "event";
                }, {
                    stateMutability: "nonpayable";
                    type: "fallback";
                }, {
                    inputs: readonly [];
                    name: "VERSION";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "addDeposit";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "disableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "enableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "entryPoint";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execBatchTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModuleReturnData";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch_y6U";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute_ncC";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getDeposit";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getFallbackHandler";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getImplementation";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "getModulesPaginated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "init";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isModuleEnabled";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isValidSignature";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "nonce";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "noncesDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "ownerDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setFallbackHandler";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setupAndEnableModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "supportsInterface";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "updateImplementation";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        components: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "validateUserOp";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "withdrawDepositTo";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    stateMutability: "payable";
                    type: "receive";
                }], "ExecutionFromModuleSuccess", undefined>;
                poll?: true;
                pollingInterval?: number;
                strict?: boolean;
            }]) => WatchContractEventReturnType);
            ExecutionSuccess: ((...parameters: [args: {
                data:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                to:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                value:
                    | undefined
                    | null
                    | bigint
                    | bigint[];
            }, options: {
                batch?: boolean;
                onError?: ((error: Error) => void);
                onLogs: WatchContractEventOnLogsFn<readonly [{
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "constructor";
                }, {
                    inputs: readonly [];
                    name: "AlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "BaseImplementationCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotAnEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrSelf";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "DelegateCallsOnly";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "EntryPointCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "HandlerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "InvalidImplementation";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "MixedAuthFail";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAlreadyEnabled";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAndPrevModuleMismatch";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleCannotBeZeroOrSentinel";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleNotEnabled";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesAlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesSetupExecutionFailed";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCanNotBeSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerProvidedIsSame";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "TransferToZeroAddressAttempt";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongBatchProvided";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignature";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignatureFormat";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongValidationModule";
                    type: "error";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ChangedFallbackHandler";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "DisabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "EnabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ImplementationUpdated";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleTransaction";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "SmartAccountReceivedNativeToken";
                    type: "event";
                }, {
                    stateMutability: "nonpayable";
                    type: "fallback";
                }, {
                    inputs: readonly [];
                    name: "VERSION";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "addDeposit";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "disableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "enableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "entryPoint";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execBatchTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModuleReturnData";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch_y6U";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute_ncC";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getDeposit";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getFallbackHandler";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getImplementation";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "getModulesPaginated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "init";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isModuleEnabled";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isValidSignature";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "nonce";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "noncesDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "ownerDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setFallbackHandler";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setupAndEnableModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "supportsInterface";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "updateImplementation";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        components: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "validateUserOp";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "withdrawDepositTo";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    stateMutability: "payable";
                    type: "receive";
                }], "ExecutionSuccess", undefined>;
                poll?: true;
                pollingInterval?: number;
                strict?: boolean;
            }]) => WatchContractEventReturnType);
            ImplementationUpdated: ((...parameters: [args: {
                newImplementation:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                oldImplementation:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
            }, options: {
                batch?: boolean;
                onError?: ((error: Error) => void);
                onLogs: WatchContractEventOnLogsFn<readonly [{
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "constructor";
                }, {
                    inputs: readonly [];
                    name: "AlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "BaseImplementationCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotAnEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrSelf";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "DelegateCallsOnly";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "EntryPointCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "HandlerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "InvalidImplementation";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "MixedAuthFail";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAlreadyEnabled";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAndPrevModuleMismatch";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleCannotBeZeroOrSentinel";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleNotEnabled";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesAlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesSetupExecutionFailed";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCanNotBeSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerProvidedIsSame";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "TransferToZeroAddressAttempt";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongBatchProvided";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignature";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignatureFormat";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongValidationModule";
                    type: "error";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ChangedFallbackHandler";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "DisabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "EnabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ImplementationUpdated";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleTransaction";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "SmartAccountReceivedNativeToken";
                    type: "event";
                }, {
                    stateMutability: "nonpayable";
                    type: "fallback";
                }, {
                    inputs: readonly [];
                    name: "VERSION";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "addDeposit";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "disableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "enableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "entryPoint";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execBatchTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModuleReturnData";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch_y6U";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute_ncC";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getDeposit";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getFallbackHandler";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getImplementation";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "getModulesPaginated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "init";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isModuleEnabled";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isValidSignature";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "nonce";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "noncesDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "ownerDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setFallbackHandler";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setupAndEnableModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "supportsInterface";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "updateImplementation";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        components: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "validateUserOp";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "withdrawDepositTo";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    stateMutability: "payable";
                    type: "receive";
                }], "ImplementationUpdated", undefined>;
                poll?: true;
                pollingInterval?: number;
                strict?: boolean;
            }]) => WatchContractEventReturnType);
            ModuleTransaction: ((...parameters: [options: {
                batch?: boolean;
                onError?: ((error: Error) => void);
                onLogs: WatchContractEventOnLogsFn<readonly [{
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "constructor";
                }, {
                    inputs: readonly [];
                    name: "AlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "BaseImplementationCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotAnEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrSelf";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "DelegateCallsOnly";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "EntryPointCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "HandlerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "InvalidImplementation";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "MixedAuthFail";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAlreadyEnabled";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAndPrevModuleMismatch";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleCannotBeZeroOrSentinel";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleNotEnabled";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesAlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesSetupExecutionFailed";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCanNotBeSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerProvidedIsSame";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "TransferToZeroAddressAttempt";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongBatchProvided";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignature";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignatureFormat";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongValidationModule";
                    type: "error";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ChangedFallbackHandler";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "DisabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "EnabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ImplementationUpdated";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleTransaction";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "SmartAccountReceivedNativeToken";
                    type: "event";
                }, {
                    stateMutability: "nonpayable";
                    type: "fallback";
                }, {
                    inputs: readonly [];
                    name: "VERSION";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "addDeposit";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "disableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "enableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "entryPoint";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execBatchTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModuleReturnData";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch_y6U";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute_ncC";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getDeposit";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getFallbackHandler";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getImplementation";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "getModulesPaginated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "init";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isModuleEnabled";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isValidSignature";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "nonce";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "noncesDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "ownerDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setFallbackHandler";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setupAndEnableModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "supportsInterface";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "updateImplementation";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        components: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "validateUserOp";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "withdrawDepositTo";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    stateMutability: "payable";
                    type: "receive";
                }], "ModuleTransaction", undefined>;
                poll?: true;
                pollingInterval?: number;
                strict?: boolean;
            }]) => WatchContractEventReturnType);
            SmartAccountReceivedNativeToken: ((...parameters: [args: {
                sender:
                    | undefined
                    | null
                    | `0x${string}`
                    | `0x${string}`[];
                value:
                    | undefined
                    | null
                    | bigint
                    | bigint[];
            }, options: {
                batch?: boolean;
                onError?: ((error: Error) => void);
                onLogs: WatchContractEventOnLogsFn<readonly [{
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "constructor";
                }, {
                    inputs: readonly [];
                    name: "AlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "BaseImplementationCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotAnEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPoint";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotEntryPointOrSelf";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotOwner";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "CallerIsNotSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "DelegateCallsOnly";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "EntryPointCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "HandlerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "InvalidImplementation";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "MixedAuthFail";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAlreadyEnabled";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleAndPrevModuleMismatch";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleCannotBeZeroOrSentinel";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleNotEnabled";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesAlreadyInitialized";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "ModulesSetupExecutionFailed";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCanNotBeSelf";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerCannotBeZero";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "OwnerProvidedIsSame";
                    type: "error";
                }, {
                    inputs: readonly [];
                    name: "TransferToZeroAddressAttempt";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongBatchProvided";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignature";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongContractSignatureFormat";
                    type: "error";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "WrongValidationModule";
                    type: "error";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ChangedFallbackHandler";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "DisabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "EnabledModule";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleFailure";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionFromModuleSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ExecutionSuccess";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ImplementationUpdated";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "ModuleTransaction";
                    type: "event";
                }, {
                    anonymous: false;
                    inputs: readonly [{
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        indexed: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "SmartAccountReceivedNativeToken";
                    type: "event";
                }, {
                    stateMutability: "nonpayable";
                    type: "fallback";
                }, {
                    inputs: readonly [];
                    name: "VERSION";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "addDeposit";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "disableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "enableModule";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "entryPoint";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execBatchTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execTransactionFromModuleReturnData";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "executeBatch_y6U";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "execute_ncC";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getDeposit";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getFallbackHandler";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "getImplementation";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "getModulesPaginated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "init";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isModuleEnabled";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "isValidSignature";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "nonce";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "noncesDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [];
                    name: "ownerDeprecated";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setFallbackHandler";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "setupAndEnableModule";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "supportsInterface";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "view";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "updateImplementation";
                    outputs: readonly [];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        components: ...;
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "validateUserOp";
                    outputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    stateMutability: "nonpayable";
                    type: "function";
                }, {
                    inputs: readonly [{
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }, {
                        internalType: ...;
                        name: ...;
                        type: ...;
                    }];
                    name: "withdrawDepositTo";
                    outputs: readonly [];
                    stateMutability: "payable";
                    type: "function";
                }, {
                    stateMutability: "payable";
                    type: "receive";
                }], "SmartAccountReceivedNativeToken", undefined>;
                poll?: true;
                pollingInterval?: number;
                strict?: boolean;
            }]) => WatchContractEventReturnType);
        };
        write: {
            addDeposit: (<TChainOverride, Options>(...parameters: [options: Options]) => Promise<`0x${string}`>);
            disableModule: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`, `0x${string}`], options: Options]) => Promise<`0x${string}`>);
            enableModule: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`], options: Options]) => Promise<`0x${string}`>);
            execBatchTransactionFromModule: (<TChainOverride, Options>(...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[], readonly number[]], options: Options]) => Promise<`0x${string}`>);
            execTransactionFromModule: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`, number, bigint], options: Options] | [args: readonly [`0x${string}`, bigint, `0x${string}`, number], options: Options]) => Promise<`0x${string}`>);
            execTransactionFromModuleReturnData: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`, number], options: Options]) => Promise<`0x${string}`>);
            execute: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`], options: Options]) => Promise<`0x${string}`>);
            executeBatch: (<TChainOverride, Options>(...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[]], options: Options]) => Promise<`0x${string}`>);
            executeBatch_y6U: (<TChainOverride, Options>(...parameters: [args: readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[]], options: Options]) => Promise<`0x${string}`>);
            execute_ncC: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`, bigint, `0x${string}`], options: Options]) => Promise<`0x${string}`>);
            init: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`, `0x${string}`, `0x${string}`], options: Options]) => Promise<`0x${string}`>);
            setFallbackHandler: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`], options: Options]) => Promise<`0x${string}`>);
            setupAndEnableModule: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`, `0x${string}`], options: Options]) => Promise<`0x${string}`>);
            updateImplementation: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`], options: Options]) => Promise<`0x${string}`>);
            validateUserOp: (<TChainOverride, Options>(...parameters: [args: readonly [{
                callData: `0x${string}`;
                callGasLimit: bigint;
                initCode: `0x${string}`;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                nonce: bigint;
                paymasterAndData: `0x${string}`;
                preVerificationGas: bigint;
                sender: `0x${string}`;
                signature: `0x${string}`;
                verificationGasLimit: bigint;
            }, `0x${string}`, bigint], options: Options]) => Promise<`0x${string}`>);
            withdrawDepositTo: (<TChainOverride, Options>(...parameters: [args: readonly [`0x${string}`, bigint], options: Options]) => Promise<`0x${string}`>);
        };
    }>

  • Parameters

    • userOp: Partial<UserOperationStruct>

      partial user operation without signature and paymasterAndData

    • tokenPaymasterRequest: BiconomyTokenPaymasterRequest

      This dto provides information about fee quote. Fee quote is received from earlier request getFeeQuotesOrData() to the Biconomy paymaster. maxFee and token decimals from the quote, along with the spender is required to append approval transaction.

    Returns Promise<Partial<UserOperationStruct>>

    updated userOp with new callData, callGasLimit

    This method should be called when gas is paid in ERC20 token using TokenPaymaster

    Optional method to update the userOp.calldata with batched transaction which approves the paymaster spender with necessary amount(if required)

  • Builds a user operation

    This method will also simulate the validation and execution of the user operation, telling the user if the user operation will be successful or not.

    Parameters

    Returns Promise<Partial<UserOperationStruct>>

    Promise<PartialUserOperationStruct>> the built user operation to be sent.

    import { createClient } from "viem"
    import { createSmartAccountClient } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonAmoy } from "viem/chains";

    const signer = createWalletClient({
    account,
    chain: polygonAmoy,
    transport: http(),
    });

    const smartAccount = await createSmartAccountClient({ signer, bundlerUrl }); // Retrieve bundler url from dashboard
    const encodedCall = encodeFunctionData({
    abi: parseAbi(["function safeMint(address to) public"]),
    functionName: "safeMint",
    args: ["0x..."],
    });

    const transaction = {
    to: nftAddress,
    data: encodedCall
    }

    const userOp = await smartAccount.buildUserOp([{ to: "0x...", data: encodedCall }]);
  • Deploys the smart contract

    This method will deploy a Smart Account contract. It is useful for deploying in a moment when you know that gas prices are low, and you want to deploy the account before sending the first user operation. This step can otherwise be skipped, as the deployment will alternatively be bundled with the first user operation.

    Parameters

    Returns Promise<UserOpResponse>

    Promise<UserOpResponse> that you can use to track the user operation.

    Throws an error if the account has already been deployed.

    Throws an error if the account has not enough native token balance to deploy, if not using a paymaster.

    import { createClient } from "viem"
    import { createSmartAccountClient } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonAmoy } from "viem/chains";

    const signer = createWalletClient({
    account,
    chain: polygonAmoy,
    transport: http(),
    });

    const smartAccount = await createSmartAccountClient({
    signer,
    biconomyPaymasterApiKey,
    bundlerUrl
    });

    // If you want to use a paymaster...
    const { wait } = await smartAccount.deploy({
    paymasterServiceData: { mode: PaymasterMode.SPONSORED },
    });

    // Or if you can't use a paymaster send native token to this address:
    const counterfactualAddress = await smartAccount.getAccountAddress();

    // Then deploy the account
    const { wait } = await smartAccount.deploy();

    const { success, receipt } = await wait();
  • Parameters

    • prevModule: `0x${string}`
    • moduleAddress: `0x${string}`

    Returns Promise<UserOpResponse>

  • Parameters

    • moduleAddress: `0x${string}`

    Returns Promise<UserOpResponse>

  • Not all contracts support batch execution. If your contract does, this method should encode a list of transactions into the call data that will be passed to your contract's batch execution method.

    Returns Promise<`0x${string}`>

  • Parameters

    • to: `0x${string}`

      { target } address of transaction

    • value: bigint

      represents amount of native tokens

    • data: `0x${string}`

      represent data associated with transaction

    Returns Promise<`0x${string}`>

    encoded data for execute function

  • Parameters

    • to: `0x${string}`[]

      { target } array of addresses in transaction

    • value: bigint[]

      represents array of amount of native tokens associated with each transaction

    • data: `0x${string}`[]

      represent array of data associated with each transaction

    Returns Promise<`0x${string}`>

    encoded data for executeBatch function

  • Parameters

    Returns Promise<`0x${string}`>

  • Return the value to put into the "initCode" field, if the account is not yet deployed. This value holds the "factory" address, followed by this account's information

    Returns Promise<`0x${string}`>

  • Parameters

    • OptionalpageSize: number

    Returns Promise<string[]>

  • Returns balances for the smartAccount instance.

    This method will fetch tokens info given an array of token addresses for the smartAccount instance. The balance of the native token will always be returned as the last element in the reponse array, with the address set to 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE.

    Parameters

    • Optionaladdresses: `0x${string}`[]

      Optional. Array of asset addresses to fetch the balances of. If not provided, the method will return only the balance of the native token.

    Returns Promise<BalancePayload[]>

    Promise<Array> - An array of token balances (plus the native token balance) of the smartAccount instance.

    import { createClient } from "viem"
    import { createSmartAccountClient } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonAmoy } from "viem/chains";

    const signer = createWalletClient({
    account,
    chain: polygonAmoy,
    transport: http(),
    });

    const token = "0x747A4168DB14F57871fa8cda8B5455D8C2a8e90a";
    const smartAccount = await createSmartAccountClient({ signer, bundlerUrl });
    const [tokenBalanceFromSmartAccount, nativeTokenBalanceFromSmartAccount] = await smartAccount.getBalances([token]);

    console.log(tokenBalanceFromSmartAccount);
    // {
    // amount: 1000000000000000n,
    // decimals: 6,
    // address: "0x747A4168DB14F57871fa8cda8B5455D8C2a8e90a",
    // formattedAmount: "1000000",
    // chainId: 80002
    // }

    // or to get the nativeToken balance

    const [nativeTokenBalanceFromSmartAccount] = await smartAccount.getBalances();

    console.log(nativeTokenBalanceFromSmartAccount);
    // {
    // amount: 1000000000000000n,
    // decimals: 18,
    // address: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
    // formattedAmount: "1",
    // chainId: 80002
    // }
  • Return the account's address. This value is valid even before deploying the contract.

    Parameters

    Returns Promise<`0x${string}`>

  • Parameters

    • prevModule: `0x${string}`
    • moduleAddress: `0x${string}`

    Returns Promise<Transaction>

  • Returns string

  • This method should return a signature that will not revert during validation. It does not have to pass validation, just not cause the contract to revert. This is required for gas estimation so that the gas estimate are accurate.

    Returns `0x${string}`

  • Parameters

    Returns Promise<`0x${string}`>

  • Parameters

    • moduleAddress: `0x${string}`

    Returns Promise<Transaction>

  • Returns `0x${string}`

    the address of the entry point contract for the smart account

  • Returns `0x${string}`

    the address of the factory contract for the smart account

  • Returns Promise<undefined | `0x${string}`>

  • Returns an upper estimate for the gas spent on a specific user operation

    This method will fetch an approximate gas estimate for the user operation, given the current state of the network. It is regularly an overestimate, and the actual gas spent will likely be lower. It is unlikely to be an underestimate unless the network conditions rapidly change.

    Parameters

    Returns Promise<bigint>

    Promise - The estimated gas cost in wei.

    import { createClient } from "viem"
    import { createSmartAccountClient } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonAmoy } from "viem/chains";

    const signer = createWalletClient({
    account,
    chain: polygonAmoy,
    transport: http(),
    });

    const smartAccount = await createSmartAccountClient({ signer, bundlerUrl, paymasterUrl }); // Retrieve bundler/paymaster url from dashboard
    const encodedCall = encodeFunctionData({
    abi: parseAbi(["function safeMint(address to) public"]),
    functionName: "safeMint",
    args: ["0x..."],
    });

    const tx = {
    to: nftAddress,
    data: encodedCall
    }

    const amountInWei = await smartAccount.getGasEstimates([tx, tx], {
    paymasterServiceData: {
    mode: PaymasterMode.SPONSORED,
    },
    });

    console.log(amountInWei.toString());
  • Returns Promise<`0x${string}`>

    the init code for the account

  • Parameters

    • messageHash: `0x${string}`
    • signature: `0x${string}`

    Returns Promise<`0x${string}`>

  • Parameters

    • OptionalnonceKey: number

    Returns Promise<bigint>

    the nonce of the account

  • Parameters

    • moduleAddress: `0x${string}`
    • moduleSetupData: `0x${string}`

    Returns Promise<Transaction>

  • Parameters

    • moduleSignature: `0x${string}`
    • OptionalmoduleAddress: `0x${string}`

    Returns `0x${string}`

  • Returns SmartAccountSigner<any>

    the current account signer instance that the smart account client operations are being signed with.

    The signer is expected to be the owner or one of the owners of the account for the signatures to be valid for the acting account.

  • Returns Promise<SupportedToken[]>

    Promise<SupportedToken>

    This function will return an array of supported tokens from the erc20 paymaster associated with the Smart Account

    import { createClient } from "viem"
    import { createSmartAccountClient } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonAmoy } from "viem/chains";

    const signer = createWalletClient({
    account,
    chain: polygonAmoy,
    transport: http(),
    });

    const smartAccount = await createSmartAccountClient({ signer, bundlerUrl, biconomyPaymasterApiKey }); // Retrieve bundler url from dashboard
    const tokens = await smartAccount.getSupportedTokens();

    // [
    // {
    // symbol: "USDC",
    // tokenAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
    // decimal: 6,
    // logoUrl: "https://assets.coingecko.com/coins/images/279/large/usd-coin.png?1595353707",
    // premiumPercentage: 0.1,
    // }
    // ]
  • Parameters

    Returns Promise<FeeQuotesOrDataResponse>

    Promise

    This function will retrieve fees from the paymaster in erc20 mode

    import { createClient } from "viem"
    import { createSmartAccountClient } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonAmoy } from "viem/chains";

    const signer = createWalletClient({
    account,
    chain: polygonAmoy,
    transport: http(),
    });

    const smartAccount = await createSmartAccountClient({ signer, bundlerUrl }); // Retrieve bundler url from dashboard
    const encodedCall = encodeFunctionData({
    abi: parseAbi(["function safeMint(address to) public"]),
    functionName: "safeMint",
    args: ["0x..."],
    });

    const transaction = {
    to: nftAddress,
    data: encodedCall
    }

    const feeQuotesResponse: FeeQuotesOrDataResponse = await smartAccount.getTokenFees(transaction, { paymasterServiceData: { mode: PaymasterMode.ERC20 } });

    const userSeletedFeeQuote = feeQuotesResponse.feeQuotes?.[0];

    const { wait } = await smartAccount.sendTransaction(transaction, {
    paymasterServiceData: {
    mode: PaymasterMode.ERC20,
    feeQuote: userSeletedFeeQuote,
    spender: feeQuotesResponse.tokenPaymasterAddress,
    },
    });

    const { success, receipt } = await wait();
  • Parameters

    Returns Promise<`0x${string}`>

  • Returns Promise<`0x${string}`>

  • Returns Promise<boolean>

  • Returns boolean

  • Returns boolean

  • Parameters

    • moduleAddress: `0x${string}`

    Returns Promise<boolean>

  • Parameters

    • userOp: UserOperationStruct

      The signed user operation to send

    • OptionalsimulationType: SimulationType

      The type of simulation to perform ("validation" | "validation_and_execution")

    Returns Promise<UserOpResponse>

    This function call will take 'signedUserOp' as input and send it to the bundler

  • Sends a transaction (builds and sends a user op in sequence)

    Parameters

    Returns Promise<UserOpResponse>

    Promise<UserOpResponse> that you can use to track the user operation.

    import { createClient } from "viem"
    import { createSmartAccountClient } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonAmoy } from "viem/chains";

    const signer = createWalletClient({
    account,
    chain: polygonAmoy,
    transport: http(),
    });

    const smartAccount = await createSmartAccountClient({ signer, bundlerUrl }); // Retrieve bundler url from dashboard
    const encodedCall = encodeFunctionData({
    abi: parseAbi(["function safeMint(address to) public"]),
    functionName: "safeMint",
    args: ["0x..."],
    });

    const transaction = {
    to: nftAddress,
    data: encodedCall
    }

    const { waitForTxHash } = await smartAccount.sendTransaction(transaction);
    const { transactionHash, userOperationReceipt } = await wait();

    This example shows how to increase the estimated gas values for a transaction using gasOffset parameter.

    import { createClient } from "viem"
    import { createSmartAccountClient } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonAmoy } from "viem/chains";

    const signer = createWalletClient({
    account,
    chain: polygonAmoy,
    transport: http(),
    });

    const smartAccount = await createSmartAccountClient({ signer, bundlerUrl }); // Retrieve bundler url from dashboard
    const encodedCall = encodeFunctionData({
    abi: parseAbi(["function safeMint(address to) public"]),
    functionName: "safeMint",
    args: ["0x..."],
    });

    const transaction = {
    to: nftAddress,
    data: encodedCall
    }

    const { waitForTxHash } = await smartAccount.sendTransaction(transaction, {
    gasOffset: {
    verificationGasLimitOffsetPct: 25, // 25% increase for the already estimated gas limit
    preVerificationGasOffsetPct: 10 // 10% increase for the already estimated gas limit
    }
    });
    const { transactionHash, userOperationReceipt } = await wait();
  • Parameters

    Returns Promise<UserOpResponse>

    Promise Sends a user operation

    This function will take a user op as an input, sign it with the owner key, and send it to the bundler.

    import { createClient } from "viem"
    import { createSmartAccountClient } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonAmoy } from "viem/chains";

    const signer = createWalletClient({
    account,
    chain: polygonAmoy,
    transport: http(),
    });

    const smartAccount = await createSmartAccountClient({ signer, bundlerUrl }); // Retrieve bundler url from dashboard
    const encodedCall = encodeFunctionData({
    abi: parseAbi(["function safeMint(address to) public"]),
    functionName: "safeMint",
    args: ["0x..."],
    });

    const transaction = {
    to: nftAddress,
    data: encodedCall
    }

    const userOp = await smartAccount.buildUserOp([transaction]);

    const { wait } = await smartAccount.sendUserOp(userOp);
    const { success, receipt } = await wait();
  • this should return an ERC-191 compliant message and is used to sign UO Hashes

    Parameters

    • message: string | Uint8Array

    Returns Promise<`0x${string}`>

  • This method should wrap the result of signMessage as per EIP-6492

    Parameters

    • msg: string | Uint8Array

      the message to sign

    Returns Promise<`0x${string}`>

  • If your contract supports signing and verifying typed data, you should implement this method.

    Parameters

    Returns Promise<`0x${string}`>

  • Similar to the signMessageWith6492 method above, this method should wrap the result of signTypedData as per EIP-6492

    Parameters

    Returns Promise<`0x${string}`>

  • Parameters

    Returns Promise<`0x${string}`>

  • If your account handles 1271 signatures of personal_sign differently than it does UserOperations, you can implement two different approaches to signing

    Parameters

    • uoHash: `0x${string}`

      The hash of the UserOperation to sign

    Returns Promise<`0x${string}`>

    the signature of the UserOperation

  • Transfers ownership of the smart account to a new owner.

    Parameters

    Returns Promise<UserOpResponse>

    A Promise that resolves to a UserOpResponse or rejects with an Error.

    This function will transfer ownership of the smart account to a new owner. If you use session key manager module, after transferring the ownership you will need to re-create a session for the smart account with the new owner (signer) and specify "accountAddress" in "createSmartAccountClient" function.


    let walletClient = createWalletClient({
    account,
    chain: baseSepolia,
    transport: http()
    });

    let smartAccount = await createSmartAccountClient({
    signer: walletClient,
    paymasterUrl: "https://paymaster.biconomy.io/api/v1/...",
    bundlerUrl: `https://bundler.biconomy.io/api/v2/84532/nJPK7B3ru.dd7f7861-190d-41bd-af80-6877f74b8f44`,
    chainId: 84532
    });
    const response = await smartAccount.transferOwnership(newOwner, DEFAULT_ECDSA_OWNERSHIP_MODULE, {paymasterServiceData: {mode: PaymasterMode.SPONSORED}});

    walletClient = createWalletClient({
    newOwnerAccount,
    chain: baseSepolia,
    transport: http()
    })

    smartAccount = await createSmartAccountClient({
    signer: walletClient,
    paymasterUrl: "https://paymaster.biconomy.io/api/v1/...",
    bundlerUrl: `https://bundler.biconomy.io/api/v2/84532/nJPK7B3ru.dd7f7861-190d-41bd-af80-6877f74b8f44`,
    chainId: 84532,
    accountAddress: await smartAccount.getAccountAddress()
    })
  • Parameters

    Returns boolean

  • Transfers funds from Smart Account to recipient (usually EOA)

    Parameters

    • OptionalwithdrawalRequests: null | WithdrawalRequest[]

      Array of withdrawal requests WithdrawalRequest. If withdrawal request is an empty array, it will transfer the balance of the native token. Using a paymaster will ensure no dust remains in the smart account.

    • OptionaldefaultRecipient: null | `0x${string}`
    • OptionalbuildUseropDto: BuildUserOpOptions

    Returns Promise<UserOpResponse>

    Promise - An object containing the status of the transaction.

    import { createClient } from "viem"
    import { createSmartAccountClient, NATIVE_TOKEN_ALIAS } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonMumbai } from "viem/chains";

    const token = "0x747A4168DB14F57871fa8cda8B5455D8C2a8e90a";
    const signer = createWalletClient({
    account,
    chain: polygonMumbai,
    transport: http(),
    });

    const smartAccount = await createSmartAccountClient({ signer, bundlerUrl, biconomyPaymasterApiKey });

    const { wait } = await smartAccount.withdraw(
    [
    { address: token }, // omit the amount to withdraw the full balance
    { address: NATIVE_TOKEN_ALIAS, amount: BigInt(1) }
    ],
    account.address, // Default recipient used if no recipient is present in the withdrawal request
    {
    paymasterServiceData: { mode: PaymasterMode.SPONSORED },
    }
    );

    // OR to withdraw all of the native token, leaving no dust in the smart account

    const { wait } = await smartAccount.withdraw([], account.address, {
    paymasterServiceData: { mode: PaymasterMode.SPONSORED },
    });

    const { success } = await wait();
  • Creates a new instance of BiconomySmartAccountV2

    This method will create a BiconomySmartAccountV2 instance but will not deploy the Smart Account Deployment of the Smart Account will be donewith the first user operation.

    Parameters

    Returns Promise<BiconomySmartAccountV2>

    A promise that resolves to a new instance of BiconomySmartAccountV2.

    An error if something is wrong with the smart account instance creation.

    import { createClient } from "viem"
    import { createSmartAccountClient, BiconomySmartAccountV2 } from "@biconomy/account"
    import { createWalletClient, http } from "viem";
    import { polygonAmoy } from "viem/chains";

    const signer = createWalletClient({
    account,
    chain: polygonAmoy,
    transport: http(),
    });

    const bundlerUrl = "" // Retrieve bundler url from dashboard

    const smartAccountFromStaticCreate = await BiconomySmartAccountV2.create({ signer, bundlerUrl });

    // Is the same as...

    const smartAccount = await createSmartAccountClient({ signer, bundlerUrl });