import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export type ContextInfoStruct = { timestamp: BigNumberish; }; export type ContextInfoStructOutput = [BigNumber] & { timestamp: BigNumber; }; export declare namespace IForwarder { type ForwardRequestStruct = { from: string; to: string; value: BigNumberish; gas: BigNumberish; nonce: BigNumberish; data: BytesLike; validUntil: BigNumberish; }; type ForwardRequestStructOutput = [ string, string, BigNumber, BigNumber, BigNumber, string, BigNumber ] & { from: string; to: string; value: BigNumber; gas: BigNumber; nonce: BigNumber; data: string; validUntil: BigNumber; }; } export declare namespace GsnTypes { type RelayDataStruct = { gasPrice: BigNumberish; pctRelayFee: BigNumberish; baseRelayFee: BigNumberish; relayWorker: string; paymaster: string; forwarder: string; paymasterData: BytesLike; clientId: BigNumberish; }; type RelayDataStructOutput = [ BigNumber, BigNumber, BigNumber, string, string, string, string, BigNumber ] & { gasPrice: BigNumber; pctRelayFee: BigNumber; baseRelayFee: BigNumber; relayWorker: string; paymaster: string; forwarder: string; paymasterData: string; clientId: BigNumber; }; type RelayRequestStruct = { request: IForwarder.ForwardRequestStruct; relayData: GsnTypes.RelayDataStruct; }; type RelayRequestStructOutput = [ IForwarder.ForwardRequestStructOutput, GsnTypes.RelayDataStructOutput ] & { request: IForwarder.ForwardRequestStructOutput; relayData: GsnTypes.RelayDataStructOutput; }; } export declare namespace IPaymaster { type GasAndDataLimitsStruct = { acceptanceBudget: BigNumberish; preRelayedCallGasLimit: BigNumberish; postRelayedCallGasLimit: BigNumberish; calldataSizeLimit: BigNumberish; }; type GasAndDataLimitsStructOutput = [ BigNumber, BigNumber, BigNumber, BigNumber ] & { acceptanceBudget: BigNumber; preRelayedCallGasLimit: BigNumber; postRelayedCallGasLimit: BigNumber; calldataSizeLimit: BigNumber; }; } export interface FactoryPaymasterInterface extends utils.Interface { functions: { "CALLDATA_SIZE_LIMIT()": FunctionFragment; "FORWARDER_HUB_OVERHEAD()": FunctionFragment; "PAYMASTER_ACCEPTANCE_BUDGET()": FunctionFragment; "POST_RELAYED_CALL_GAS_LIMIT()": FunctionFragment; "PRE_RELAYED_CALL_GAS_LIMIT()": FunctionFragment; "_verifyForwarder(((address,address,uint256,uint256,uint256,bytes,uint256),(uint256,uint256,uint256,address,address,address,bytes,uint256)))": FunctionFragment; "getGasAndDataLimits()": FunctionFragment; "getHubAddr()": FunctionFragment; "getRelayHubDeposit()": FunctionFragment; "isApprovedContract(address)": FunctionFragment; "owner()": FunctionFragment; "postRelayedCall(bytes,bool,uint256,(uint256,uint256,uint256,address,address,address,bytes,uint256))": FunctionFragment; "preRelayedCall(((address,address,uint256,uint256,uint256,bytes,uint256),(uint256,uint256,uint256,address,address,address,bytes,uint256)),bytes,bytes,uint256)": FunctionFragment; "renounceOwnership()": FunctionFragment; "setRelayHub(address)": FunctionFragment; "setTrustedForwarder(address)": FunctionFragment; "transferOwnership(address)": FunctionFragment; "trustedForwarder()": FunctionFragment; "versionPaymaster()": FunctionFragment; "withdrawRelayHubDepositTo(uint256,address)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "CALLDATA_SIZE_LIMIT" | "FORWARDER_HUB_OVERHEAD" | "PAYMASTER_ACCEPTANCE_BUDGET" | "POST_RELAYED_CALL_GAS_LIMIT" | "PRE_RELAYED_CALL_GAS_LIMIT" | "_verifyForwarder" | "getGasAndDataLimits" | "getHubAddr" | "getRelayHubDeposit" | "isApprovedContract" | "owner" | "postRelayedCall" | "preRelayedCall" | "renounceOwnership" | "setRelayHub" | "setTrustedForwarder" | "transferOwnership" | "trustedForwarder" | "versionPaymaster" | "withdrawRelayHubDepositTo"): FunctionFragment; encodeFunctionData(functionFragment: "CALLDATA_SIZE_LIMIT", values?: undefined): string; encodeFunctionData(functionFragment: "FORWARDER_HUB_OVERHEAD", values?: undefined): string; encodeFunctionData(functionFragment: "PAYMASTER_ACCEPTANCE_BUDGET", values?: undefined): string; encodeFunctionData(functionFragment: "POST_RELAYED_CALL_GAS_LIMIT", values?: undefined): string; encodeFunctionData(functionFragment: "PRE_RELAYED_CALL_GAS_LIMIT", values?: undefined): string; encodeFunctionData(functionFragment: "_verifyForwarder", values: [GsnTypes.RelayRequestStruct]): string; encodeFunctionData(functionFragment: "getGasAndDataLimits", values?: undefined): string; encodeFunctionData(functionFragment: "getHubAddr", values?: undefined): string; encodeFunctionData(functionFragment: "getRelayHubDeposit", values?: undefined): string; encodeFunctionData(functionFragment: "isApprovedContract", values: [string]): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "postRelayedCall", values: [BytesLike, boolean, BigNumberish, GsnTypes.RelayDataStruct]): string; encodeFunctionData(functionFragment: "preRelayedCall", values: [GsnTypes.RelayRequestStruct, BytesLike, BytesLike, BigNumberish]): string; encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "setRelayHub", values: [string]): string; encodeFunctionData(functionFragment: "setTrustedForwarder", values: [string]): string; encodeFunctionData(functionFragment: "transferOwnership", values: [string]): string; encodeFunctionData(functionFragment: "trustedForwarder", values?: undefined): string; encodeFunctionData(functionFragment: "versionPaymaster", values?: undefined): string; encodeFunctionData(functionFragment: "withdrawRelayHubDepositTo", values: [BigNumberish, string]): string; decodeFunctionResult(functionFragment: "CALLDATA_SIZE_LIMIT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "FORWARDER_HUB_OVERHEAD", data: BytesLike): Result; decodeFunctionResult(functionFragment: "PAYMASTER_ACCEPTANCE_BUDGET", data: BytesLike): Result; decodeFunctionResult(functionFragment: "POST_RELAYED_CALL_GAS_LIMIT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "PRE_RELAYED_CALL_GAS_LIMIT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "_verifyForwarder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getGasAndDataLimits", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHubAddr", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRelayHubDeposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isApprovedContract", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "postRelayedCall", data: BytesLike): Result; decodeFunctionResult(functionFragment: "preRelayedCall", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setRelayHub", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setTrustedForwarder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "trustedForwarder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "versionPaymaster", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawRelayHubDepositTo", data: BytesLike): Result; events: { "OwnershipTransferred(address,address)": EventFragment; "PostRelayed((uint256))": EventFragment; "PreRelayed((uint256))": EventFragment; }; getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; getEvent(nameOrSignatureOrTopic: "PostRelayed"): EventFragment; getEvent(nameOrSignatureOrTopic: "PreRelayed"): EventFragment; } export interface OwnershipTransferredEventObject { previousOwner: string; newOwner: string; } export type OwnershipTransferredEvent = TypedEvent<[ string, string ], OwnershipTransferredEventObject>; export type OwnershipTransferredEventFilter = TypedEventFilter; export interface PostRelayedEventObject { arg0: ContextInfoStructOutput; } export type PostRelayedEvent = TypedEvent<[ ContextInfoStructOutput ], PostRelayedEventObject>; export type PostRelayedEventFilter = TypedEventFilter; export interface PreRelayedEventObject { arg0: ContextInfoStructOutput; } export type PreRelayedEvent = TypedEvent<[ ContextInfoStructOutput ], PreRelayedEventObject>; export type PreRelayedEventFilter = TypedEventFilter; export interface FactoryPaymaster extends BaseContract { contractName: "FactoryPaymaster"; connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: FactoryPaymasterInterface; 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: { CALLDATA_SIZE_LIMIT(overrides?: CallOverrides): Promise<[BigNumber]>; FORWARDER_HUB_OVERHEAD(overrides?: CallOverrides): Promise<[BigNumber]>; PAYMASTER_ACCEPTANCE_BUDGET(overrides?: CallOverrides): Promise<[BigNumber]>; POST_RELAYED_CALL_GAS_LIMIT(overrides?: CallOverrides): Promise<[BigNumber]>; PRE_RELAYED_CALL_GAS_LIMIT(overrides?: CallOverrides): Promise<[BigNumber]>; _verifyForwarder(relayRequest: GsnTypes.RelayRequestStruct, overrides?: CallOverrides): Promise<[void]>; getGasAndDataLimits(overrides?: CallOverrides): Promise<[ IPaymaster.GasAndDataLimitsStructOutput ] & { limits: IPaymaster.GasAndDataLimitsStructOutput; }>; getHubAddr(overrides?: CallOverrides): Promise<[string]>; getRelayHubDeposit(overrides?: CallOverrides): Promise<[BigNumber]>; isApprovedContract(arg0: string, overrides?: CallOverrides): Promise<[boolean]>; owner(overrides?: CallOverrides): Promise<[string]>; postRelayedCall(context_: BytesLike, arg1: boolean, arg2: BigNumberish, arg3: GsnTypes.RelayDataStruct, overrides?: Overrides & { from?: string; }): Promise; preRelayedCall(relayRequest_: GsnTypes.RelayRequestStruct, arg1: BytesLike, arg2: BytesLike, arg3: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; renounceOwnership(overrides?: Overrides & { from?: string; }): Promise; setRelayHub(hub: string, overrides?: Overrides & { from?: string; }): Promise; setTrustedForwarder(forwarder: string, overrides?: Overrides & { from?: string; }): Promise; transferOwnership(newOwner: string, overrides?: Overrides & { from?: string; }): Promise; trustedForwarder(overrides?: CallOverrides): Promise<[string]>; versionPaymaster(overrides?: CallOverrides): Promise<[string]>; withdrawRelayHubDepositTo(amount: BigNumberish, target: string, overrides?: Overrides & { from?: string; }): Promise; }; CALLDATA_SIZE_LIMIT(overrides?: CallOverrides): Promise; FORWARDER_HUB_OVERHEAD(overrides?: CallOverrides): Promise; PAYMASTER_ACCEPTANCE_BUDGET(overrides?: CallOverrides): Promise; POST_RELAYED_CALL_GAS_LIMIT(overrides?: CallOverrides): Promise; PRE_RELAYED_CALL_GAS_LIMIT(overrides?: CallOverrides): Promise; _verifyForwarder(relayRequest: GsnTypes.RelayRequestStruct, overrides?: CallOverrides): Promise; getGasAndDataLimits(overrides?: CallOverrides): Promise; getHubAddr(overrides?: CallOverrides): Promise; getRelayHubDeposit(overrides?: CallOverrides): Promise; isApprovedContract(arg0: string, overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; postRelayedCall(context_: BytesLike, arg1: boolean, arg2: BigNumberish, arg3: GsnTypes.RelayDataStruct, overrides?: Overrides & { from?: string; }): Promise; preRelayedCall(relayRequest_: GsnTypes.RelayRequestStruct, arg1: BytesLike, arg2: BytesLike, arg3: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; renounceOwnership(overrides?: Overrides & { from?: string; }): Promise; setRelayHub(hub: string, overrides?: Overrides & { from?: string; }): Promise; setTrustedForwarder(forwarder: string, overrides?: Overrides & { from?: string; }): Promise; transferOwnership(newOwner: string, overrides?: Overrides & { from?: string; }): Promise; trustedForwarder(overrides?: CallOverrides): Promise; versionPaymaster(overrides?: CallOverrides): Promise; withdrawRelayHubDepositTo(amount: BigNumberish, target: string, overrides?: Overrides & { from?: string; }): Promise; callStatic: { CALLDATA_SIZE_LIMIT(overrides?: CallOverrides): Promise; FORWARDER_HUB_OVERHEAD(overrides?: CallOverrides): Promise; PAYMASTER_ACCEPTANCE_BUDGET(overrides?: CallOverrides): Promise; POST_RELAYED_CALL_GAS_LIMIT(overrides?: CallOverrides): Promise; PRE_RELAYED_CALL_GAS_LIMIT(overrides?: CallOverrides): Promise; _verifyForwarder(relayRequest: GsnTypes.RelayRequestStruct, overrides?: CallOverrides): Promise; getGasAndDataLimits(overrides?: CallOverrides): Promise; getHubAddr(overrides?: CallOverrides): Promise; getRelayHubDeposit(overrides?: CallOverrides): Promise; isApprovedContract(arg0: string, overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; postRelayedCall(context_: BytesLike, arg1: boolean, arg2: BigNumberish, arg3: GsnTypes.RelayDataStruct, overrides?: CallOverrides): Promise; preRelayedCall(relayRequest_: GsnTypes.RelayRequestStruct, arg1: BytesLike, arg2: BytesLike, arg3: BigNumberish, overrides?: CallOverrides): Promise<[string, boolean] & { context: string; }>; renounceOwnership(overrides?: CallOverrides): Promise; setRelayHub(hub: string, overrides?: CallOverrides): Promise; setTrustedForwarder(forwarder: string, overrides?: CallOverrides): Promise; transferOwnership(newOwner: string, overrides?: CallOverrides): Promise; trustedForwarder(overrides?: CallOverrides): Promise; versionPaymaster(overrides?: CallOverrides): Promise; withdrawRelayHubDepositTo(amount: BigNumberish, target: string, overrides?: CallOverrides): Promise; }; filters: { "OwnershipTransferred(address,address)"(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter; OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): OwnershipTransferredEventFilter; "PostRelayed((uint256))"(arg0?: null): PostRelayedEventFilter; PostRelayed(arg0?: null): PostRelayedEventFilter; "PreRelayed((uint256))"(arg0?: null): PreRelayedEventFilter; PreRelayed(arg0?: null): PreRelayedEventFilter; }; estimateGas: { CALLDATA_SIZE_LIMIT(overrides?: CallOverrides): Promise; FORWARDER_HUB_OVERHEAD(overrides?: CallOverrides): Promise; PAYMASTER_ACCEPTANCE_BUDGET(overrides?: CallOverrides): Promise; POST_RELAYED_CALL_GAS_LIMIT(overrides?: CallOverrides): Promise; PRE_RELAYED_CALL_GAS_LIMIT(overrides?: CallOverrides): Promise; _verifyForwarder(relayRequest: GsnTypes.RelayRequestStruct, overrides?: CallOverrides): Promise; getGasAndDataLimits(overrides?: CallOverrides): Promise; getHubAddr(overrides?: CallOverrides): Promise; getRelayHubDeposit(overrides?: CallOverrides): Promise; isApprovedContract(arg0: string, overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; postRelayedCall(context_: BytesLike, arg1: boolean, arg2: BigNumberish, arg3: GsnTypes.RelayDataStruct, overrides?: Overrides & { from?: string; }): Promise; preRelayedCall(relayRequest_: GsnTypes.RelayRequestStruct, arg1: BytesLike, arg2: BytesLike, arg3: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; renounceOwnership(overrides?: Overrides & { from?: string; }): Promise; setRelayHub(hub: string, overrides?: Overrides & { from?: string; }): Promise; setTrustedForwarder(forwarder: string, overrides?: Overrides & { from?: string; }): Promise; transferOwnership(newOwner: string, overrides?: Overrides & { from?: string; }): Promise; trustedForwarder(overrides?: CallOverrides): Promise; versionPaymaster(overrides?: CallOverrides): Promise; withdrawRelayHubDepositTo(amount: BigNumberish, target: string, overrides?: Overrides & { from?: string; }): Promise; }; populateTransaction: { CALLDATA_SIZE_LIMIT(overrides?: CallOverrides): Promise; FORWARDER_HUB_OVERHEAD(overrides?: CallOverrides): Promise; PAYMASTER_ACCEPTANCE_BUDGET(overrides?: CallOverrides): Promise; POST_RELAYED_CALL_GAS_LIMIT(overrides?: CallOverrides): Promise; PRE_RELAYED_CALL_GAS_LIMIT(overrides?: CallOverrides): Promise; _verifyForwarder(relayRequest: GsnTypes.RelayRequestStruct, overrides?: CallOverrides): Promise; getGasAndDataLimits(overrides?: CallOverrides): Promise; getHubAddr(overrides?: CallOverrides): Promise; getRelayHubDeposit(overrides?: CallOverrides): Promise; isApprovedContract(arg0: string, overrides?: CallOverrides): Promise; owner(overrides?: CallOverrides): Promise; postRelayedCall(context_: BytesLike, arg1: boolean, arg2: BigNumberish, arg3: GsnTypes.RelayDataStruct, overrides?: Overrides & { from?: string; }): Promise; preRelayedCall(relayRequest_: GsnTypes.RelayRequestStruct, arg1: BytesLike, arg2: BytesLike, arg3: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; renounceOwnership(overrides?: Overrides & { from?: string; }): Promise; setRelayHub(hub: string, overrides?: Overrides & { from?: string; }): Promise; setTrustedForwarder(forwarder: string, overrides?: Overrides & { from?: string; }): Promise; transferOwnership(newOwner: string, overrides?: Overrides & { from?: string; }): Promise; trustedForwarder(overrides?: CallOverrides): Promise; versionPaymaster(overrides?: CallOverrides): Promise; withdrawRelayHubDepositTo(amount: BigNumberish, target: string, overrides?: Overrides & { from?: string; }): Promise; }; }