import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers"; import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export type UserOperationStruct = { sender: string; nonce: BigNumberish; initCode: BytesLike; callData: BytesLike; callGasLimit: BigNumberish; verificationGasLimit: BigNumberish; preVerificationGas: BigNumberish; maxFeePerGas: BigNumberish; maxPriorityFeePerGas: BigNumberish; paymasterAndData: BytesLike; signature: BytesLike; }; export type UserOperationStructOutput = [ string, BigNumber, string, string, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, string, string ] & { sender: string; nonce: BigNumber; initCode: string; callData: string; callGasLimit: BigNumber; verificationGasLimit: BigNumber; preVerificationGas: BigNumber; maxFeePerGas: BigNumber; maxPriorityFeePerGas: BigNumber; paymasterAndData: string; signature: string; }; export interface SimpleWalletInterface extends utils.Interface { contractName: "SimpleWallet"; functions: { "addDeposit()": FunctionFragment; "entryPoint()": FunctionFragment; "exec(address,uint256,bytes)": FunctionFragment; "execBatch(address[],bytes[])": FunctionFragment; "execFromEntryPoint(address,uint256,bytes)": FunctionFragment; "getDeposit()": FunctionFragment; "nonce()": FunctionFragment; "owner()": FunctionFragment; "transfer(address,uint256)": FunctionFragment; "updateEntryPoint(address)": FunctionFragment; "validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,address,uint256)": FunctionFragment; "withdrawDepositTo(address,uint256)": FunctionFragment; }; encodeFunctionData(functionFragment: "addDeposit", values?: undefined): string; encodeFunctionData(functionFragment: "entryPoint", values?: undefined): string; encodeFunctionData(functionFragment: "exec", values: [string, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "execBatch", values: [string[], BytesLike[]]): string; encodeFunctionData(functionFragment: "execFromEntryPoint", values: [string, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "getDeposit", values?: undefined): string; encodeFunctionData(functionFragment: "nonce", values?: undefined): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "transfer", values: [string, BigNumberish]): string; encodeFunctionData(functionFragment: "updateEntryPoint", values: [string]): string; encodeFunctionData(functionFragment: "validateUserOp", values: [UserOperationStruct, BytesLike, string, BigNumberish]): string; encodeFunctionData(functionFragment: "withdrawDepositTo", values: [string, BigNumberish]): string; decodeFunctionResult(functionFragment: "addDeposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "entryPoint", data: BytesLike): Result; decodeFunctionResult(functionFragment: "exec", data: BytesLike): Result; decodeFunctionResult(functionFragment: "execBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "execFromEntryPoint", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDeposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "nonce", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateEntryPoint", data: BytesLike): Result; decodeFunctionResult(functionFragment: "validateUserOp", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawDepositTo", data: BytesLike): Result; events: { "EntryPointChanged(address,address)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "EntryPointChanged"): EventFragment; } export type EntryPointChangedEvent = TypedEvent<[ string, string ], { oldEntryPoint: string; newEntryPoint: string; }>; export type EntryPointChangedEventFilter = TypedEventFilter; export interface SimpleWallet extends BaseContract { contractName: "SimpleWallet"; connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: SimpleWalletInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { addDeposit(overrides?: PayableOverrides & { from?: string | Promise; }): Promise; entryPoint(overrides?: CallOverrides): Promise<[string]>; exec(dest: string, value: BigNumberish, func: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; execBatch(dest: string[], func: BytesLike[], overrides?: Overrides & { from?: string | Promise; }): Promise; execFromEntryPoint(dest: string, value: BigNumberish, func: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; getDeposit(overrides?: CallOverrides): Promise<[BigNumber]>; nonce(overrides?: CallOverrides): Promise<[BigNumber]>; owner(overrides?: CallOverrides): Promise<[string]>; transfer(dest: string, amount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; updateEntryPoint(newEntryPoint: string, overrides?: Overrides & { from?: string | Promise; }): Promise; validateUserOp(userOp: UserOperationStruct, requestId: BytesLike, aggregator: string, missingWalletFunds: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawDepositTo(withdrawAddress: string, amount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; }; addDeposit(overrides?: PayableOverrides & { from?: string | Promise; }): Promise; entryPoint(overrides?: CallOverrides): Promise; exec(dest: string, value: BigNumberish, func: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; execBatch(dest: string[], func: BytesLike[], overrides?: Overrides & { from?: string | Promise; }): Promise; execFromEntryPoint(dest: string, value: BigNumberish, func: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; getDeposit(overrides?: CallOverrides): Promise; nonce(overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; transfer(dest: string, amount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; updateEntryPoint(newEntryPoint: string, overrides?: Overrides & { from?: string | Promise; }): Promise; validateUserOp(userOp: UserOperationStruct, requestId: BytesLike, aggregator: string, missingWalletFunds: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawDepositTo(withdrawAddress: string, amount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; callStatic: { addDeposit(overrides?: CallOverrides): Promise; entryPoint(overrides?: CallOverrides): Promise; exec(dest: string, value: BigNumberish, func: BytesLike, overrides?: CallOverrides): Promise; execBatch(dest: string[], func: BytesLike[], overrides?: CallOverrides): Promise; execFromEntryPoint(dest: string, value: BigNumberish, func: BytesLike, overrides?: CallOverrides): Promise; getDeposit(overrides?: CallOverrides): Promise; nonce(overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; transfer(dest: string, amount: BigNumberish, overrides?: CallOverrides): Promise; updateEntryPoint(newEntryPoint: string, overrides?: CallOverrides): Promise; validateUserOp(userOp: UserOperationStruct, requestId: BytesLike, aggregator: string, missingWalletFunds: BigNumberish, overrides?: CallOverrides): Promise; withdrawDepositTo(withdrawAddress: string, amount: BigNumberish, overrides?: CallOverrides): Promise; }; filters: { "EntryPointChanged(address,address)"(oldEntryPoint?: string | null, newEntryPoint?: string | null): EntryPointChangedEventFilter; EntryPointChanged(oldEntryPoint?: string | null, newEntryPoint?: string | null): EntryPointChangedEventFilter; }; estimateGas: { addDeposit(overrides?: PayableOverrides & { from?: string | Promise; }): Promise; entryPoint(overrides?: CallOverrides): Promise; exec(dest: string, value: BigNumberish, func: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; execBatch(dest: string[], func: BytesLike[], overrides?: Overrides & { from?: string | Promise; }): Promise; execFromEntryPoint(dest: string, value: BigNumberish, func: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; getDeposit(overrides?: CallOverrides): Promise; nonce(overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; transfer(dest: string, amount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; updateEntryPoint(newEntryPoint: string, overrides?: Overrides & { from?: string | Promise; }): Promise; validateUserOp(userOp: UserOperationStruct, requestId: BytesLike, aggregator: string, missingWalletFunds: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawDepositTo(withdrawAddress: string, amount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; }; populateTransaction: { addDeposit(overrides?: PayableOverrides & { from?: string | Promise; }): Promise; entryPoint(overrides?: CallOverrides): Promise; exec(dest: string, value: BigNumberish, func: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; execBatch(dest: string[], func: BytesLike[], overrides?: Overrides & { from?: string | Promise; }): Promise; execFromEntryPoint(dest: string, value: BigNumberish, func: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; getDeposit(overrides?: CallOverrides): Promise; nonce(overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; transfer(dest: string, amount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; updateEntryPoint(newEntryPoint: string, overrides?: Overrides & { from?: string | Promise; }): Promise; validateUserOp(userOp: UserOperationStruct, requestId: BytesLike, aggregator: string, missingWalletFunds: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawDepositTo(withdrawAddress: string, amount: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; }; }