UNPKG

@hashflow/contracts-evm

Version:

EVM Smart Contracts for Solidity

944 lines (943 loc) 41.5 kB
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 IHashflowRouter { type XChainFillMessageStruct = { srcHashflowChainId: BigNumberish; srcPool: BytesLike; dstPool: AddressLike; dstExternalAccount: AddressLike; dstTrader: AddressLike; quoteToken: AddressLike; quoteTokenAmount: BigNumberish; txid: BytesLike; srcCaller: BytesLike; dstContract: AddressLike; dstContractCalldata: BytesLike; }; type XChainFillMessageStructOutput = [ srcHashflowChainId: bigint, srcPool: string, dstPool: string, dstExternalAccount: string, dstTrader: string, quoteToken: string, quoteTokenAmount: bigint, txid: string, srcCaller: string, dstContract: string, dstContractCalldata: string ] & { srcHashflowChainId: bigint; srcPool: string; dstPool: string; dstExternalAccount: string; dstTrader: string; quoteToken: string; quoteTokenAmount: bigint; txid: string; srcCaller: string; dstContract: string; dstContractCalldata: string; }; } export declare namespace IQuote { type RFQMQuoteStruct = { pool: AddressLike; externalAccount: AddressLike; trader: AddressLike; baseToken: AddressLike; quoteToken: AddressLike; baseTokenAmount: BigNumberish; quoteTokenAmount: BigNumberish; quoteExpiry: BigNumberish; txid: BytesLike; takerSignature: BytesLike; makerSignature: BytesLike; }; type RFQMQuoteStructOutput = [ pool: string, externalAccount: string, trader: string, baseToken: string, quoteToken: string, baseTokenAmount: bigint, quoteTokenAmount: bigint, quoteExpiry: bigint, txid: string, takerSignature: string, makerSignature: string ] & { pool: string; externalAccount: string; trader: string; baseToken: string; quoteToken: string; baseTokenAmount: bigint; quoteTokenAmount: bigint; quoteExpiry: bigint; txid: string; takerSignature: string; makerSignature: string; }; type RFQTQuoteStruct = { pool: AddressLike; externalAccount: AddressLike; trader: AddressLike; effectiveTrader: AddressLike; baseToken: AddressLike; quoteToken: AddressLike; effectiveBaseTokenAmount: BigNumberish; baseTokenAmount: BigNumberish; quoteTokenAmount: BigNumberish; quoteExpiry: BigNumberish; nonce: BigNumberish; txid: BytesLike; signature: BytesLike; }; type RFQTQuoteStructOutput = [ pool: string, externalAccount: string, trader: string, effectiveTrader: string, baseToken: string, quoteToken: string, effectiveBaseTokenAmount: bigint, baseTokenAmount: bigint, quoteTokenAmount: bigint, quoteExpiry: bigint, nonce: bigint, txid: string, signature: string ] & { pool: string; externalAccount: string; trader: string; effectiveTrader: string; baseToken: string; quoteToken: string; effectiveBaseTokenAmount: bigint; baseTokenAmount: bigint; quoteTokenAmount: bigint; quoteExpiry: bigint; nonce: bigint; txid: string; signature: string; }; type XChainRFQMQuoteStruct = { srcChainId: BigNumberish; dstChainId: BigNumberish; srcPool: AddressLike; dstPool: BytesLike; srcExternalAccount: AddressLike; dstExternalAccount: BytesLike; trader: AddressLike; dstTrader: BytesLike; baseToken: AddressLike; quoteToken: BytesLike; baseTokenAmount: BigNumberish; quoteTokenAmount: BigNumberish; quoteExpiry: BigNumberish; txid: BytesLike; xChainMessenger: AddressLike; takerSignature: BytesLike; makerSignature: BytesLike; }; type XChainRFQMQuoteStructOutput = [ srcChainId: bigint, dstChainId: bigint, srcPool: string, dstPool: string, srcExternalAccount: string, dstExternalAccount: string, trader: string, dstTrader: string, baseToken: string, quoteToken: string, baseTokenAmount: bigint, quoteTokenAmount: bigint, quoteExpiry: bigint, txid: string, xChainMessenger: string, takerSignature: string, makerSignature: 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; quoteExpiry: bigint; txid: string; xChainMessenger: string; takerSignature: string; makerSignature: string; }; type XChainRFQTQuoteStruct = { srcChainId: BigNumberish; dstChainId: BigNumberish; srcPool: AddressLike; dstPool: BytesLike; srcExternalAccount: AddressLike; dstExternalAccount: BytesLike; dstTrader: BytesLike; baseToken: AddressLike; quoteToken: BytesLike; effectiveBaseTokenAmount: BigNumberish; baseTokenAmount: BigNumberish; quoteTokenAmount: BigNumberish; quoteExpiry: BigNumberish; nonce: BigNumberish; txid: BytesLike; xChainMessenger: AddressLike; signature: BytesLike; }; type XChainRFQTQuoteStructOutput = [ srcChainId: bigint, dstChainId: bigint, srcPool: string, dstPool: string, srcExternalAccount: string, dstExternalAccount: string, dstTrader: string, baseToken: string, quoteToken: string, effectiveBaseTokenAmount: bigint, baseTokenAmount: bigint, quoteTokenAmount: bigint, quoteExpiry: bigint, nonce: bigint, txid: string, xChainMessenger: string, signature: string ] & { srcChainId: bigint; dstChainId: bigint; srcPool: string; dstPool: string; srcExternalAccount: string; dstExternalAccount: string; dstTrader: string; baseToken: string; quoteToken: string; effectiveBaseTokenAmount: bigint; baseTokenAmount: bigint; quoteTokenAmount: bigint; quoteExpiry: bigint; nonce: bigint; txid: string; xChainMessenger: string; signature: string; }; } export interface HashflowRouterInterface extends Interface { getFunction(nameOrSignature: "_WETH" | "acceptOwnership" | "authorizedPools" | "authorizedXChainCallers" | "authorizedXChainMessengersByCallee" | "authorizedXChainMessengersByPool" | "authorizedXChainPools" | "eip712Domain" | "factory" | "fillXChain" | "forceUnauthorizePool" | "initialize" | "killswitchPool" | "limitOrderGuardian" | "owner" | "pendingOwner" | "renounceOwnership" | "tradeRFQM" | "tradeRFQMLimitOrder" | "tradeRFQMLimitOrderWithPermit" | "tradeRFQMWithPermit" | "tradeRFQT" | "tradeRFQTWithPermit" | "tradeXChainRFQM" | "tradeXChainRFQMWithPermit" | "tradeXChainRFQT" | "tradeXChainRFQTWithPermit" | "transferOwnership" | "updateLimitOrderGuardian" | "updatePoolAuthorization" | "updateXChainCallerAuthorization" | "updateXChainMessengerAuthorization" | "updateXChainMessengerCallerAuthorization" | "updateXChainPoolAuthorization" | "withdrawFunds"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "EIP712DomainChanged" | "Initialized" | "OwnershipTransferStarted" | "OwnershipTransferred" | "UpdateLimitOrderGuardian" | "UpdatePoolAuthorizaton" | "UpdateXChainCallerAuthorization" | "UpdateXChainMessengerAuthorization" | "UpdateXChainMessengerCallerAuthorization" | "UpdateXChainPoolAuthorization"): EventFragment; encodeFunctionData(functionFragment: "_WETH", values?: undefined): string; encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "authorizedPools", values: [AddressLike]): string; encodeFunctionData(functionFragment: "authorizedXChainCallers", values: [AddressLike, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "authorizedXChainMessengersByCallee", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "authorizedXChainMessengersByPool", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "authorizedXChainPools", values: [BytesLike, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "eip712Domain", values?: undefined): string; encodeFunctionData(functionFragment: "factory", values?: undefined): string; encodeFunctionData(functionFragment: "fillXChain", values: [IHashflowRouter.XChainFillMessageStruct]): string; encodeFunctionData(functionFragment: "forceUnauthorizePool", values: [AddressLike]): string; encodeFunctionData(functionFragment: "initialize", values: [AddressLike]): string; encodeFunctionData(functionFragment: "killswitchPool", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "limitOrderGuardian", values?: undefined): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "pendingOwner", values?: undefined): string; encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "tradeRFQM", values: [IQuote.RFQMQuoteStruct]): string; encodeFunctionData(functionFragment: "tradeRFQMLimitOrder", values: [IQuote.RFQMQuoteStruct, BytesLike]): string; encodeFunctionData(functionFragment: "tradeRFQMLimitOrderWithPermit", values: [ IQuote.RFQMQuoteStruct, BytesLike, BigNumberish, BigNumberish, BytesLike, BytesLike, BigNumberish ]): string; encodeFunctionData(functionFragment: "tradeRFQMWithPermit", values: [ IQuote.RFQMQuoteStruct, BigNumberish, BigNumberish, BytesLike, BytesLike, BigNumberish ]): string; encodeFunctionData(functionFragment: "tradeRFQT", values: [IQuote.RFQTQuoteStruct]): string; encodeFunctionData(functionFragment: "tradeRFQTWithPermit", values: [ IQuote.RFQTQuoteStruct, BigNumberish, BigNumberish, BytesLike, BytesLike, BigNumberish ]): string; encodeFunctionData(functionFragment: "tradeXChainRFQM", values: [IQuote.XChainRFQMQuoteStruct, BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "tradeXChainRFQMWithPermit", values: [ IQuote.XChainRFQMQuoteStruct, BytesLike, BytesLike, BigNumberish, BigNumberish, BytesLike, BytesLike, BigNumberish ]): string; encodeFunctionData(functionFragment: "tradeXChainRFQT", values: [IQuote.XChainRFQTQuoteStruct, BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "tradeXChainRFQTWithPermit", values: [ IQuote.XChainRFQTQuoteStruct, BytesLike, BytesLike, BigNumberish, BigNumberish, BytesLike, BytesLike, BigNumberish ]): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateLimitOrderGuardian", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updatePoolAuthorization", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "updateXChainCallerAuthorization", values: [BigNumberish, BytesLike, boolean]): string; encodeFunctionData(functionFragment: "updateXChainMessengerAuthorization", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "updateXChainMessengerCallerAuthorization", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "updateXChainPoolAuthorization", values: [BigNumberish, BytesLike, boolean]): string; encodeFunctionData(functionFragment: "withdrawFunds", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "_WETH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "authorizedPools", data: BytesLike): Result; decodeFunctionResult(functionFragment: "authorizedXChainCallers", data: BytesLike): Result; decodeFunctionResult(functionFragment: "authorizedXChainMessengersByCallee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "authorizedXChainMessengersByPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "authorizedXChainPools", data: BytesLike): Result; decodeFunctionResult(functionFragment: "eip712Domain", data: BytesLike): Result; decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; decodeFunctionResult(functionFragment: "fillXChain", data: BytesLike): Result; decodeFunctionResult(functionFragment: "forceUnauthorizePool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult(functionFragment: "killswitchPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "limitOrderGuardian", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pendingOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeRFQM", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeRFQMLimitOrder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeRFQMLimitOrderWithPermit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeRFQMWithPermit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeRFQT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeRFQTWithPermit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeXChainRFQM", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeXChainRFQMWithPermit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeXChainRFQT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeXChainRFQTWithPermit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateLimitOrderGuardian", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updatePoolAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateXChainCallerAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateXChainMessengerAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateXChainMessengerCallerAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateXChainPoolAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawFunds", data: BytesLike): Result; } export declare namespace EIP712DomainChangedEvent { type InputTuple = []; type OutputTuple = []; interface OutputObject { } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace InitializedEvent { type InputTuple = [version: BigNumberish]; type OutputTuple = [version: bigint]; interface OutputObject { version: bigint; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace OwnershipTransferStartedEvent { type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [previousOwner: string, newOwner: string]; interface OutputObject { previousOwner: string; newOwner: string; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace OwnershipTransferredEvent { type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [previousOwner: string, newOwner: string]; interface OutputObject { previousOwner: string; newOwner: string; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace UpdateLimitOrderGuardianEvent { type InputTuple = [guardian: AddressLike]; type OutputTuple = [guardian: string]; interface OutputObject { guardian: string; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace UpdatePoolAuthorizatonEvent { type InputTuple = [pool: AddressLike, authorized: boolean]; type OutputTuple = [pool: string, authorized: boolean]; interface OutputObject { pool: string; authorized: boolean; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace UpdateXChainCallerAuthorizationEvent { type InputTuple = [ pool: AddressLike, otherHashflowChainId: BigNumberish, caller: BytesLike, authorized: boolean ]; type OutputTuple = [ pool: string, otherHashflowChainId: bigint, caller: string, authorized: boolean ]; interface OutputObject { pool: string; otherHashflowChainId: bigint; caller: string; authorized: boolean; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace UpdateXChainMessengerAuthorizationEvent { type InputTuple = [ pool: AddressLike, xChainMessenger: AddressLike, authorized: boolean ]; type OutputTuple = [ pool: string, xChainMessenger: string, authorized: boolean ]; interface OutputObject { pool: string; xChainMessenger: string; authorized: boolean; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace UpdateXChainMessengerCallerAuthorizationEvent { type InputTuple = [ callee: AddressLike, xChainMessenger: AddressLike, authorized: boolean ]; type OutputTuple = [ callee: string, xChainMessenger: string, authorized: boolean ]; interface OutputObject { callee: string; xChainMessenger: string; authorized: boolean; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace UpdateXChainPoolAuthorizationEvent { type InputTuple = [ pool: AddressLike, otherHashflowChainId: BigNumberish, otherChainPool: BytesLike, authorized: boolean ]; type OutputTuple = [ pool: string, otherHashflowChainId: bigint, otherChainPool: string, authorized: boolean ]; interface OutputObject { pool: string; otherHashflowChainId: bigint; otherChainPool: string; authorized: boolean; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export interface HashflowRouter extends BaseContract { connect(runner?: ContractRunner | null): HashflowRouter; waitForDeployment(): Promise<this>; interface: HashflowRouterInterface; queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>; queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>; on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>; on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>; once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>; once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>; listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>; listeners(eventName?: string): Promise<Array<Listener>>; removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>; _WETH: TypedContractMethod<[], [string], "view">; acceptOwnership: TypedContractMethod<[], [void], "nonpayable">; authorizedPools: TypedContractMethod<[arg0: AddressLike], [boolean], "view">; authorizedXChainCallers: TypedContractMethod<[ arg0: AddressLike, arg1: BigNumberish, arg2: BytesLike ], [ boolean ], "view">; authorizedXChainMessengersByCallee: TypedContractMethod<[ arg0: AddressLike, arg1: AddressLike ], [ boolean ], "view">; authorizedXChainMessengersByPool: TypedContractMethod<[ arg0: AddressLike, arg1: AddressLike ], [ boolean ], "view">; authorizedXChainPools: TypedContractMethod<[ arg0: BytesLike, arg1: BigNumberish, arg2: BytesLike ], [ boolean ], "view">; eip712Domain: TypedContractMethod<[ ], [ [ string, string, string, bigint, string, string, bigint[] ] & { fields: string; name: string; version: string; chainId: bigint; verifyingContract: string; salt: string; extensions: bigint[]; } ], "view">; factory: TypedContractMethod<[], [string], "view">; fillXChain: TypedContractMethod<[ fillMessage: IHashflowRouter.XChainFillMessageStruct ], [ void ], "nonpayable">; forceUnauthorizePool: TypedContractMethod<[ pool: AddressLike ], [ void ], "nonpayable">; initialize: TypedContractMethod<[ _factory: AddressLike ], [ void ], "nonpayable">; killswitchPool: TypedContractMethod<[ pool: AddressLike, enabled: boolean ], [ void ], "nonpayable">; limitOrderGuardian: TypedContractMethod<[], [string], "view">; owner: TypedContractMethod<[], [string], "view">; pendingOwner: TypedContractMethod<[], [string], "view">; renounceOwnership: TypedContractMethod<[], [void], "view">; tradeRFQM: TypedContractMethod<[ quote: IQuote.RFQMQuoteStruct ], [ void ], "nonpayable">; tradeRFQMLimitOrder: TypedContractMethod<[ quote: IQuote.RFQMQuoteStruct, guardianSignature: BytesLike ], [ void ], "nonpayable">; tradeRFQMLimitOrderWithPermit: TypedContractMethod<[ quote: IQuote.RFQMQuoteStruct, guardianSignature: BytesLike, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, amountToApprove: BigNumberish ], [ void ], "nonpayable">; tradeRFQMWithPermit: TypedContractMethod<[ quote: IQuote.RFQMQuoteStruct, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, amountToApprove: BigNumberish ], [ void ], "nonpayable">; tradeRFQT: TypedContractMethod<[ quote: IQuote.RFQTQuoteStruct ], [ void ], "payable">; tradeRFQTWithPermit: TypedContractMethod<[ quote: IQuote.RFQTQuoteStruct, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, amountToApprove: BigNumberish ], [ void ], "nonpayable">; tradeXChainRFQM: TypedContractMethod<[ quote: IQuote.XChainRFQMQuoteStruct, dstContract: BytesLike, dstCalldata: BytesLike ], [ void ], "payable">; tradeXChainRFQMWithPermit: TypedContractMethod<[ quote: IQuote.XChainRFQMQuoteStruct, dstContract: BytesLike, dstCalldata: BytesLike, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, amountToApprove: BigNumberish ], [ void ], "payable">; tradeXChainRFQT: TypedContractMethod<[ quote: IQuote.XChainRFQTQuoteStruct, dstContract: BytesLike, dstCalldata: BytesLike ], [ void ], "payable">; tradeXChainRFQTWithPermit: TypedContractMethod<[ quote: IQuote.XChainRFQTQuoteStruct, dstContract: BytesLike, dstCalldata: BytesLike, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, amountToApprove: BigNumberish ], [ void ], "payable">; transferOwnership: TypedContractMethod<[ newOwner: AddressLike ], [ void ], "nonpayable">; updateLimitOrderGuardian: TypedContractMethod<[ guardian: AddressLike ], [ void ], "nonpayable">; updatePoolAuthorization: TypedContractMethod<[ pool: AddressLike, authorized: boolean ], [ void ], "nonpayable">; updateXChainCallerAuthorization: TypedContractMethod<[ otherHashflowChainId: BigNumberish, caller: BytesLike, authorized: boolean ], [ void ], "nonpayable">; updateXChainMessengerAuthorization: TypedContractMethod<[ xChainMessenger: AddressLike, authorized: boolean ], [ void ], "nonpayable">; updateXChainMessengerCallerAuthorization: TypedContractMethod<[ xChainMessenger: AddressLike, authorized: boolean ], [ void ], "nonpayable">; updateXChainPoolAuthorization: TypedContractMethod<[ otherHashflowChainId: BigNumberish, otherPool: BytesLike, authorized: boolean ], [ void ], "nonpayable">; withdrawFunds: TypedContractMethod<[ token: AddressLike ], [ void ], "nonpayable">; getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T; getFunction(nameOrSignature: "_WETH"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "acceptOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "authorizedPools"): TypedContractMethod<[arg0: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "authorizedXChainCallers"): TypedContractMethod<[ arg0: AddressLike, arg1: BigNumberish, arg2: BytesLike ], [ boolean ], "view">; getFunction(nameOrSignature: "authorizedXChainMessengersByCallee"): TypedContractMethod<[ arg0: AddressLike, arg1: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "authorizedXChainMessengersByPool"): TypedContractMethod<[ arg0: AddressLike, arg1: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "authorizedXChainPools"): TypedContractMethod<[ arg0: BytesLike, arg1: BigNumberish, arg2: BytesLike ], [ boolean ], "view">; getFunction(nameOrSignature: "eip712Domain"): TypedContractMethod<[ ], [ [ string, string, string, bigint, string, string, bigint[] ] & { fields: string; name: string; version: string; chainId: bigint; verifyingContract: string; salt: string; extensions: bigint[]; } ], "view">; getFunction(nameOrSignature: "factory"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "fillXChain"): TypedContractMethod<[ fillMessage: IHashflowRouter.XChainFillMessageStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "forceUnauthorizePool"): TypedContractMethod<[pool: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "initialize"): TypedContractMethod<[_factory: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "killswitchPool"): TypedContractMethod<[ pool: AddressLike, enabled: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "limitOrderGuardian"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "pendingOwner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "view">; getFunction(nameOrSignature: "tradeRFQM"): TypedContractMethod<[quote: IQuote.RFQMQuoteStruct], [void], "nonpayable">; getFunction(nameOrSignature: "tradeRFQMLimitOrder"): TypedContractMethod<[ quote: IQuote.RFQMQuoteStruct, guardianSignature: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "tradeRFQMLimitOrderWithPermit"): TypedContractMethod<[ quote: IQuote.RFQMQuoteStruct, guardianSignature: BytesLike, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, amountToApprove: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "tradeRFQMWithPermit"): TypedContractMethod<[ quote: IQuote.RFQMQuoteStruct, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, amountToApprove: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "tradeRFQT"): TypedContractMethod<[quote: IQuote.RFQTQuoteStruct], [void], "payable">; getFunction(nameOrSignature: "tradeRFQTWithPermit"): TypedContractMethod<[ quote: IQuote.RFQTQuoteStruct, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, amountToApprove: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "tradeXChainRFQM"): TypedContractMethod<[ quote: IQuote.XChainRFQMQuoteStruct, dstContract: BytesLike, dstCalldata: BytesLike ], [ void ], "payable">; getFunction(nameOrSignature: "tradeXChainRFQMWithPermit"): TypedContractMethod<[ quote: IQuote.XChainRFQMQuoteStruct, dstContract: BytesLike, dstCalldata: BytesLike, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, amountToApprove: BigNumberish ], [ void ], "payable">; getFunction(nameOrSignature: "tradeXChainRFQT"): TypedContractMethod<[ quote: IQuote.XChainRFQTQuoteStruct, dstContract: BytesLike, dstCalldata: BytesLike ], [ void ], "payable">; getFunction(nameOrSignature: "tradeXChainRFQTWithPermit"): TypedContractMethod<[ quote: IQuote.XChainRFQTQuoteStruct, dstContract: BytesLike, dstCalldata: BytesLike, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, amountToApprove: BigNumberish ], [ void ], "payable">; getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updateLimitOrderGuardian"): TypedContractMethod<[guardian: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updatePoolAuthorization"): TypedContractMethod<[ pool: AddressLike, authorized: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateXChainCallerAuthorization"): TypedContractMethod<[ otherHashflowChainId: BigNumberish, caller: BytesLike, authorized: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateXChainMessengerAuthorization"): TypedContractMethod<[ xChainMessenger: AddressLike, authorized: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateXChainMessengerCallerAuthorization"): TypedContractMethod<[ xChainMessenger: AddressLike, authorized: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateXChainPoolAuthorization"): TypedContractMethod<[ otherHashflowChainId: BigNumberish, otherPool: BytesLike, authorized: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "withdrawFunds"): TypedContractMethod<[token: AddressLike], [void], "nonpayable">; getEvent(key: "EIP712DomainChanged"): TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>; getEvent(key: "Initialized"): TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>; getEvent(key: "OwnershipTransferStarted"): TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>; getEvent(key: "OwnershipTransferred"): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>; getEvent(key: "UpdateLimitOrderGuardian"): TypedContractEvent<UpdateLimitOrderGuardianEvent.InputTuple, UpdateLimitOrderGuardianEvent.OutputTuple, UpdateLimitOrderGuardianEvent.OutputObject>; getEvent(key: "UpdatePoolAuthorizaton"): TypedContractEvent<UpdatePoolAuthorizatonEvent.InputTuple, UpdatePoolAuthorizatonEvent.OutputTuple, UpdatePoolAuthorizatonEvent.OutputObject>; getEvent(key: "UpdateXChainCallerAuthorization"): TypedContractEvent<UpdateXChainCallerAuthorizationEvent.InputTuple, UpdateXChainCallerAuthorizationEvent.OutputTuple, UpdateXChainCallerAuthorizationEvent.OutputObject>; getEvent(key: "UpdateXChainMessengerAuthorization"): TypedContractEvent<UpdateXChainMessengerAuthorizationEvent.InputTuple, UpdateXChainMessengerAuthorizationEvent.OutputTuple, UpdateXChainMessengerAuthorizationEvent.OutputObject>; getEvent(key: "UpdateXChainMessengerCallerAuthorization"): TypedContractEvent<UpdateXChainMessengerCallerAuthorizationEvent.InputTuple, UpdateXChainMessengerCallerAuthorizationEvent.OutputTuple, UpdateXChainMessengerCallerAuthorizationEvent.OutputObject>; getEvent(key: "UpdateXChainPoolAuthorization"): TypedContractEvent<UpdateXChainPoolAuthorizationEvent.InputTuple, UpdateXChainPoolAuthorizationEvent.OutputTuple, UpdateXChainPoolAuthorizationEvent.OutputObject>; filters: { "EIP712DomainChanged()": TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>; EIP712DomainChanged: TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>; "Initialized(uint8)": TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>; Initialized: TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>; "OwnershipTransferStarted(address,address)": TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>; OwnershipTransferStarted: TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>; "OwnershipTransferred(address,address)": TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>; OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>; "UpdateLimitOrderGuardian(address)": TypedContractEvent<UpdateLimitOrderGuardianEvent.InputTuple, UpdateLimitOrderGuardianEvent.OutputTuple, UpdateLimitOrderGuardianEvent.OutputObject>; UpdateLimitOrderGuardian: TypedContractEvent<UpdateLimitOrderGuardianEvent.InputTuple, UpdateLimitOrderGuardianEvent.OutputTuple, UpdateLimitOrderGuardianEvent.OutputObject>; "UpdatePoolAuthorizaton(address,bool)": TypedContractEvent<UpdatePoolAuthorizatonEvent.InputTuple, UpdatePoolAuthorizatonEvent.OutputTuple, UpdatePoolAuthorizatonEvent.OutputObject>; UpdatePoolAuthorizaton: TypedContractEvent<UpdatePoolAuthorizatonEvent.InputTuple, UpdatePoolAuthorizatonEvent.OutputTuple, UpdatePoolAuthorizatonEvent.OutputObject>; "UpdateXChainCallerAuthorization(address,uint16,bytes32,bool)": TypedContractEvent<UpdateXChainCallerAuthorizationEvent.InputTuple, UpdateXChainCallerAuthorizationEvent.OutputTuple, UpdateXChainCallerAuthorizationEvent.OutputObject>; UpdateXChainCallerAuthorization: TypedContractEvent<UpdateXChainCallerAuthorizationEvent.InputTuple, UpdateXChainCallerAuthorizationEvent.OutputTuple, UpdateXChainCallerAuthorizationEvent.OutputObject>; "UpdateXChainMessengerAuthorization(address,address,bool)": TypedContractEvent<UpdateXChainMessengerAuthorizationEvent.InputTuple, UpdateXChainMessengerAuthorizationEvent.OutputTuple, UpdateXChainMessengerAuthorizationEvent.OutputObject>; UpdateXChainMessengerAuthorization: TypedContractEvent<UpdateXChainMessengerAuthorizationEvent.InputTuple, UpdateXChainMessengerAuthorizationEvent.OutputTuple, UpdateXChainMessengerAuthorizationEvent.OutputObject>; "UpdateXChainMessengerCallerAuthorization(address,address,bool)": TypedContractEvent<UpdateXChainMessengerCallerAuthorizationEvent.InputTuple, UpdateXChainMessengerCallerAuthorizationEvent.OutputTuple, UpdateXChainMessengerCallerAuthorizationEvent.OutputObject>; UpdateXChainMessengerCallerAuthorization: TypedContractEvent<UpdateXChainMessengerCallerAuthorizationEvent.InputTuple, UpdateXChainMessengerCallerAuthorizationEvent.OutputTuple, UpdateXChainMessengerCallerAuthorizationEvent.OutputObject>; "UpdateXChainPoolAuthorization(address,uint16,bytes32,bool)": TypedContractEvent<UpdateXChainPoolAuthorizationEvent.InputTuple, UpdateXChainPoolAuthorizationEvent.OutputTuple, UpdateXChainPoolAuthorizationEvent.OutputObject>; UpdateXChainPoolAuthorization: TypedContractEvent<UpdateXChainPoolAuthorizationEvent.InputTuple, UpdateXChainPoolAuthorizationEvent.OutputTuple, UpdateXChainPoolAuthorizationEvent.OutputObject>; }; }