import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common"; export declare namespace IHashflowXChainMessenger { type XChainQuoteStruct = { srcChainId: BigNumberish; dstChainId: BigNumberish; srcPool: AddressLike; dstPool: BytesLike; srcExternalAccount: AddressLike; dstExternalAccount: BytesLike; trader: AddressLike; dstTrader: BytesLike; baseToken: AddressLike; quoteToken: BytesLike; baseTokenAmount: BigNumberish; quoteTokenAmount: BigNumberish; txid: BytesLike; }; type XChainQuoteStructOutput = [ srcChainId: bigint, dstChainId: bigint, srcPool: string, dstPool: string, srcExternalAccount: string, dstExternalAccount: string, trader: string, dstTrader: string, baseToken: string, quoteToken: string, baseTokenAmount: bigint, quoteTokenAmount: bigint, txid: string ] & { srcChainId: bigint; dstChainId: bigint; srcPool: string; dstPool: string; srcExternalAccount: string; dstExternalAccount: string; trader: string; dstTrader: string; baseToken: string; quoteToken: string; baseTokenAmount: bigint; quoteTokenAmount: bigint; txid: string; }; } export interface IHashflowWormholeMessengerInterface extends Interface { getFunction(nameOrSignature: "hChainId" | "hChainIdToWormholeChainId" | "permissionedRelayers" | "router" | "tradeXChain" | "updatePermissionedRelayer" | "updateWormhole" | "updateWormholeChainIdForHashflowChainId" | "updateWormholeConsistencyLevel" | "updateWormholeConsistencyLevelFast" | "updateXChainRemoteAddress" | "withdrawFunds" | "wormholeChainIdToHChainId" | "wormholeConsistencyLevel" | "wormholeConsistencyLevelFast" | "wormholeEndpoint" | "wormholeReceive" | "xChainRemotes"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "UpdatePermissionedRelayer" | "UpdateWormholeChainId" | "UpdateWormholeConsistencyLevel" | "UpdateWormholeConsistencyLevelFast" | "UpdateWormholeEndpoint" | "UpdateXChainRemoteAddress" | "WormholeReceive" | "WormholeSend" | "WormholeSendFast"): EventFragment; encodeFunctionData(functionFragment: "hChainId", values?: undefined): string; encodeFunctionData(functionFragment: "hChainIdToWormholeChainId", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "permissionedRelayers", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "router", values?: undefined): string; encodeFunctionData(functionFragment: "tradeXChain", values: [ IHashflowXChainMessenger.XChainQuoteStruct, AddressLike, BytesLike, BytesLike ]): string; encodeFunctionData(functionFragment: "updatePermissionedRelayer", values: [BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "updateWormhole", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateWormholeChainIdForHashflowChainId", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "updateWormholeConsistencyLevel", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updateWormholeConsistencyLevelFast", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updateXChainRemoteAddress", values: [BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "withdrawFunds", values?: undefined): string; encodeFunctionData(functionFragment: "wormholeChainIdToHChainId", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "wormholeConsistencyLevel", values?: undefined): string; encodeFunctionData(functionFragment: "wormholeConsistencyLevelFast", values?: undefined): string; encodeFunctionData(functionFragment: "wormholeEndpoint", values?: undefined): string; encodeFunctionData(functionFragment: "wormholeReceive", values: [BytesLike]): string; encodeFunctionData(functionFragment: "xChainRemotes", values: [BigNumberish]): string; decodeFunctionResult(functionFragment: "hChainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "hChainIdToWormholeChainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "permissionedRelayers", data: BytesLike): Result; decodeFunctionResult(functionFragment: "router", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeXChain", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updatePermissionedRelayer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateWormhole", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateWormholeChainIdForHashflowChainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateWormholeConsistencyLevel", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateWormholeConsistencyLevelFast", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateXChainRemoteAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawFunds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "wormholeChainIdToHChainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "wormholeConsistencyLevel", data: BytesLike): Result; decodeFunctionResult(functionFragment: "wormholeConsistencyLevelFast", data: BytesLike): Result; decodeFunctionResult(functionFragment: "wormholeEndpoint", data: BytesLike): Result; decodeFunctionResult(functionFragment: "wormholeReceive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "xChainRemotes", data: BytesLike): Result; } export declare namespace UpdatePermissionedRelayerEvent { type InputTuple = [hChainId: BigNumberish, relayer: BytesLike]; type OutputTuple = [hChainId: bigint, relayer: string]; interface OutputObject { hChainId: bigint; relayer: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateWormholeChainIdEvent { type InputTuple = [ hChainId: BigNumberish, wormholeChainId: BigNumberish ]; type OutputTuple = [hChainId: bigint, wormholeChainId: bigint]; interface OutputObject { hChainId: bigint; wormholeChainId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateWormholeConsistencyLevelEvent { type InputTuple = [consistencyLevel: BigNumberish]; type OutputTuple = [consistencyLevel: bigint]; interface OutputObject { consistencyLevel: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateWormholeConsistencyLevelFastEvent { type InputTuple = [consistencyLevel: BigNumberish]; type OutputTuple = [consistencyLevel: bigint]; interface OutputObject { consistencyLevel: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateWormholeEndpointEvent { type InputTuple = [ wormholeEndpoint: AddressLike, prevWormholeEndpoint: AddressLike ]; type OutputTuple = [ wormholeEndpoint: string, prevWormholeEndpoint: string ]; interface OutputObject { wormholeEndpoint: string; prevWormholeEndpoint: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateXChainRemoteAddressEvent { type InputTuple = [chainId: BigNumberish, remoteAddress: BytesLike]; type OutputTuple = [chainId: bigint, remoteAddress: string]; interface OutputObject { chainId: bigint; remoteAddress: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace WormholeReceiveEvent { type InputTuple = [txid: BytesLike]; type OutputTuple = [txid: string]; interface OutputObject { txid: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace WormholeSendEvent { type InputTuple = [ txid: BytesLike, value: BigNumberish, sequence: BigNumberish ]; type OutputTuple = [txid: string, value: bigint, sequence: bigint]; interface OutputObject { txid: string; value: bigint; sequence: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace WormholeSendFastEvent { type InputTuple = [ txid: BytesLike, value: BigNumberish, sequence: BigNumberish ]; type OutputTuple = [txid: string, value: bigint, sequence: bigint]; interface OutputObject { txid: string; value: bigint; sequence: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IHashflowWormholeMessenger extends BaseContract { connect(runner?: ContractRunner | null): IHashflowWormholeMessenger; waitForDeployment(): Promise; interface: IHashflowWormholeMessengerInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; hChainId: TypedContractMethod<[], [bigint], "view">; hChainIdToWormholeChainId: TypedContractMethod<[ hChainId: BigNumberish ], [ bigint ], "view">; permissionedRelayers: TypedContractMethod<[ hChainId: BigNumberish ], [ string ], "view">; router: TypedContractMethod<[], [string], "view">; tradeXChain: TypedContractMethod<[ xChainQuote: IHashflowXChainMessenger.XChainQuoteStruct, caller: AddressLike, dstContract: BytesLike, dstCalldata: BytesLike ], [ void ], "payable">; updatePermissionedRelayer: TypedContractMethod<[ hChainId: BigNumberish, relayer: BytesLike ], [ void ], "nonpayable">; updateWormhole: TypedContractMethod<[ wormhole: AddressLike ], [ void ], "nonpayable">; updateWormholeChainIdForHashflowChainId: TypedContractMethod<[ hChainId: BigNumberish, wormholeChainId: BigNumberish ], [ void ], "nonpayable">; updateWormholeConsistencyLevel: TypedContractMethod<[ consistencyLevel: BigNumberish ], [ void ], "nonpayable">; updateWormholeConsistencyLevelFast: TypedContractMethod<[ consistencyLevel: BigNumberish ], [ void ], "nonpayable">; updateXChainRemoteAddress: TypedContractMethod<[ hChainId: BigNumberish, remoteAddress: BytesLike ], [ void ], "nonpayable">; withdrawFunds: TypedContractMethod<[], [void], "nonpayable">; wormholeChainIdToHChainId: TypedContractMethod<[ wormholeChainId: BigNumberish ], [ bigint ], "view">; wormholeConsistencyLevel: TypedContractMethod<[], [bigint], "view">; wormholeConsistencyLevelFast: TypedContractMethod<[], [bigint], "view">; wormholeEndpoint: TypedContractMethod<[], [string], "view">; wormholeReceive: TypedContractMethod<[ encodedVM: BytesLike ], [ void ], "nonpayable">; xChainRemotes: TypedContractMethod<[ hChainId: BigNumberish ], [ string ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "hChainId"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "hChainIdToWormholeChainId"): TypedContractMethod<[hChainId: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "permissionedRelayers"): TypedContractMethod<[hChainId: BigNumberish], [string], "view">; getFunction(nameOrSignature: "router"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "tradeXChain"): TypedContractMethod<[ xChainQuote: IHashflowXChainMessenger.XChainQuoteStruct, caller: AddressLike, dstContract: BytesLike, dstCalldata: BytesLike ], [ void ], "payable">; getFunction(nameOrSignature: "updatePermissionedRelayer"): TypedContractMethod<[ hChainId: BigNumberish, relayer: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateWormhole"): TypedContractMethod<[wormhole: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updateWormholeChainIdForHashflowChainId"): TypedContractMethod<[ hChainId: BigNumberish, wormholeChainId: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateWormholeConsistencyLevel"): TypedContractMethod<[ consistencyLevel: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateWormholeConsistencyLevelFast"): TypedContractMethod<[ consistencyLevel: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateXChainRemoteAddress"): TypedContractMethod<[ hChainId: BigNumberish, remoteAddress: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "withdrawFunds"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "wormholeChainIdToHChainId"): TypedContractMethod<[wormholeChainId: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "wormholeConsistencyLevel"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "wormholeConsistencyLevelFast"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "wormholeEndpoint"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "wormholeReceive"): TypedContractMethod<[encodedVM: BytesLike], [void], "nonpayable">; getFunction(nameOrSignature: "xChainRemotes"): TypedContractMethod<[hChainId: BigNumberish], [string], "view">; getEvent(key: "UpdatePermissionedRelayer"): TypedContractEvent; getEvent(key: "UpdateWormholeChainId"): TypedContractEvent; getEvent(key: "UpdateWormholeConsistencyLevel"): TypedContractEvent; getEvent(key: "UpdateWormholeConsistencyLevelFast"): TypedContractEvent; getEvent(key: "UpdateWormholeEndpoint"): TypedContractEvent; getEvent(key: "UpdateXChainRemoteAddress"): TypedContractEvent; getEvent(key: "WormholeReceive"): TypedContractEvent; getEvent(key: "WormholeSend"): TypedContractEvent; getEvent(key: "WormholeSendFast"): TypedContractEvent; filters: { "UpdatePermissionedRelayer(uint16,bytes32)": TypedContractEvent; UpdatePermissionedRelayer: TypedContractEvent; "UpdateWormholeChainId(uint256,uint256)": TypedContractEvent; UpdateWormholeChainId: TypedContractEvent; "UpdateWormholeConsistencyLevel(uint256)": TypedContractEvent; UpdateWormholeConsistencyLevel: TypedContractEvent; "UpdateWormholeConsistencyLevelFast(uint256)": TypedContractEvent; UpdateWormholeConsistencyLevelFast: TypedContractEvent; "UpdateWormholeEndpoint(address,address)": TypedContractEvent; UpdateWormholeEndpoint: TypedContractEvent; "UpdateXChainRemoteAddress(uint16,bytes)": TypedContractEvent; UpdateXChainRemoteAddress: TypedContractEvent; "WormholeReceive(bytes32)": TypedContractEvent; WormholeReceive: TypedContractEvent; "WormholeSend(bytes32,uint256,uint256)": TypedContractEvent; WormholeSend: TypedContractEvent; "WormholeSendFast(bytes32,uint256,uint256)": TypedContractEvent; WormholeSendFast: TypedContractEvent; }; }