UNPKG

@hashflow/contracts-evm

Version:

EVM Smart Contracts for Solidity

619 lines (618 loc) 26.4 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 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 declare namespace IHashflowPool { type AuthorizedXChainPoolStruct = { chainId: BigNumberish; pool: BytesLike; }; type AuthorizedXChainPoolStructOutput = [ chainId: bigint, pool: string ] & { chainId: bigint; pool: string; }; } export interface IHashflowPoolInterface extends Interface { getFunction(nameOrSignature: "approveToken" | "decreaseTokenAllowance" | "fillXChain" | "getReserves" | "increaseTokenAllowance" | "initialize" | "isValidSignature" | "killswitchOperations" | "name" | "nonces" | "operations" | "removeLiquidity" | "router" | "signerConfiguration" | "tradeRFQM" | "tradeRFQT" | "tradeXChainRFQM" | "tradeXChainRFQT" | "updateSigner" | "updateWithdrawalAccount" | "updateXChainMessengerAuthorization" | "updateXChainPoolAuthorization"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "RemoveLiquidity" | "Trade" | "UpdateSigner" | "UpdateWithdrawalAccount" | "XChainTrade" | "XChainTradeFill"): EventFragment; encodeFunctionData(functionFragment: "approveToken", values: [AddressLike, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "decreaseTokenAllowance", values: [AddressLike, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "fillXChain", values: [AddressLike, BytesLike, AddressLike, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "getReserves", values: [AddressLike]): string; encodeFunctionData(functionFragment: "increaseTokenAllowance", values: [AddressLike, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "initialize", values: [string, AddressLike, AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "isValidSignature", values: [BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "killswitchOperations", values: [boolean]): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData(functionFragment: "nonces", values: [AddressLike]): string; encodeFunctionData(functionFragment: "operations", values?: undefined): string; encodeFunctionData(functionFragment: "removeLiquidity", values: [AddressLike, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "router", values?: undefined): string; encodeFunctionData(functionFragment: "signerConfiguration", values?: undefined): string; encodeFunctionData(functionFragment: "tradeRFQM", values: [IQuote.RFQMQuoteStruct]): string; encodeFunctionData(functionFragment: "tradeRFQT", values: [IQuote.RFQTQuoteStruct]): string; encodeFunctionData(functionFragment: "tradeXChainRFQM", values: [IQuote.XChainRFQMQuoteStruct]): string; encodeFunctionData(functionFragment: "tradeXChainRFQT", values: [IQuote.XChainRFQTQuoteStruct, AddressLike]): string; encodeFunctionData(functionFragment: "updateSigner", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateWithdrawalAccount", values: [AddressLike[], boolean]): string; encodeFunctionData(functionFragment: "updateXChainMessengerAuthorization", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "updateXChainPoolAuthorization", values: [IHashflowPool.AuthorizedXChainPoolStruct[], boolean]): string; decodeFunctionResult(functionFragment: "approveToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "decreaseTokenAllowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "fillXChain", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReserves", data: BytesLike): Result; decodeFunctionResult(functionFragment: "increaseTokenAllowance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isValidSignature", data: BytesLike): Result; decodeFunctionResult(functionFragment: "killswitchOperations", data: BytesLike): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; decodeFunctionResult(functionFragment: "operations", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "router", data: BytesLike): Result; decodeFunctionResult(functionFragment: "signerConfiguration", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeRFQM", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeRFQT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeXChainRFQM", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tradeXChainRFQT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateSigner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateWithdrawalAccount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateXChainMessengerAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateXChainPoolAuthorization", data: BytesLike): Result; } export declare namespace RemoveLiquidityEvent { type InputTuple = [ token: AddressLike, recipient: AddressLike, withdrawAmount: BigNumberish ]; type OutputTuple = [ token: string, recipient: string, withdrawAmount: bigint ]; interface OutputObject { token: string; recipient: string; withdrawAmount: bigint; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace TradeEvent { type InputTuple = [ trader: AddressLike, effectiveTrader: AddressLike, txid: BytesLike, baseToken: AddressLike, quoteToken: AddressLike, baseTokenAmount: BigNumberish, quoteTokenAmount: BigNumberish ]; type OutputTuple = [ trader: string, effectiveTrader: string, txid: string, baseToken: string, quoteToken: string, baseTokenAmount: bigint, quoteTokenAmount: bigint ]; interface OutputObject { trader: string; effectiveTrader: string; txid: string; baseToken: string; quoteToken: string; baseTokenAmount: bigint; quoteTokenAmount: bigint; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace UpdateSignerEvent { type InputTuple = [signer: AddressLike, prevSigner: AddressLike]; type OutputTuple = [signer: string, prevSigner: string]; interface OutputObject { signer: string; prevSigner: string; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace UpdateWithdrawalAccountEvent { type InputTuple = [account: AddressLike, authorized: boolean]; type OutputTuple = [account: string, authorized: boolean]; interface OutputObject { account: string; authorized: boolean; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace XChainTradeEvent { type InputTuple = [ dstChainId: BigNumberish, dstPool: BytesLike, trader: AddressLike, dstTrader: BytesLike, txid: BytesLike, baseToken: AddressLike, quoteToken: BytesLike, baseTokenAmount: BigNumberish, quoteTokenAmount: BigNumberish ]; type OutputTuple = [ dstChainId: bigint, dstPool: string, trader: string, dstTrader: string, txid: string, baseToken: string, quoteToken: string, baseTokenAmount: bigint, quoteTokenAmount: bigint ]; interface OutputObject { dstChainId: bigint; dstPool: string; trader: string; dstTrader: string; txid: string; baseToken: string; quoteToken: string; baseTokenAmount: bigint; quoteTokenAmount: bigint; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace XChainTradeFillEvent { type InputTuple = [txid: BytesLike]; type OutputTuple = [txid: string]; interface OutputObject { txid: string; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export interface IHashflowPool extends BaseContract { connect(runner?: ContractRunner | null): IHashflowPool; waitForDeployment(): Promise<this>; interface: IHashflowPoolInterface; 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>; approveToken: TypedContractMethod<[ token: AddressLike, spender: AddressLike, amount: BigNumberish ], [ void ], "nonpayable">; decreaseTokenAllowance: TypedContractMethod<[ token: AddressLike, spender: AddressLike, amount: BigNumberish ], [ void ], "nonpayable">; fillXChain: TypedContractMethod<[ externalAccount: AddressLike, txid: BytesLike, trader: AddressLike, quoteToken: AddressLike, quoteTokenAmount: BigNumberish ], [ void ], "nonpayable">; getReserves: TypedContractMethod<[token: AddressLike], [bigint], "view">; increaseTokenAllowance: TypedContractMethod<[ token: AddressLike, spender: AddressLike, amount: BigNumberish ], [ void ], "nonpayable">; initialize: TypedContractMethod<[ name: string, signer: AddressLike, operations: AddressLike, router: AddressLike ], [ void ], "nonpayable">; isValidSignature: TypedContractMethod<[ hash: BytesLike, signature: BytesLike ], [ string ], "view">; killswitchOperations: TypedContractMethod<[ enabled: boolean ], [ void ], "nonpayable">; name: TypedContractMethod<[], [string], "view">; nonces: TypedContractMethod<[trader: AddressLike], [bigint], "view">; operations: TypedContractMethod<[], [string], "view">; removeLiquidity: TypedContractMethod<[ token: AddressLike, recipient: AddressLike, amount: BigNumberish ], [ void ], "nonpayable">; router: TypedContractMethod<[], [string], "view">; signerConfiguration: TypedContractMethod<[], [[string, boolean]], "view">; tradeRFQM: TypedContractMethod<[ quote: IQuote.RFQMQuoteStruct ], [ void ], "nonpayable">; tradeRFQT: TypedContractMethod<[ quote: IQuote.RFQTQuoteStruct ], [ void ], "payable">; tradeXChainRFQM: TypedContractMethod<[ quote: IQuote.XChainRFQMQuoteStruct ], [ void ], "nonpayable">; tradeXChainRFQT: TypedContractMethod<[ quote: IQuote.XChainRFQTQuoteStruct, trader: AddressLike ], [ void ], "payable">; updateSigner: TypedContractMethod<[ signer: AddressLike ], [ void ], "nonpayable">; updateWithdrawalAccount: TypedContractMethod<[ withdrawalAccounts: AddressLike[], authorized: boolean ], [ void ], "nonpayable">; updateXChainMessengerAuthorization: TypedContractMethod<[ xChainMessenger: AddressLike, authorized: boolean ], [ void ], "nonpayable">; updateXChainPoolAuthorization: TypedContractMethod<[ pools: IHashflowPool.AuthorizedXChainPoolStruct[], authorized: boolean ], [ void ], "nonpayable">; getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T; getFunction(nameOrSignature: "approveToken"): TypedContractMethod<[ token: AddressLike, spender: AddressLike, amount: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "decreaseTokenAllowance"): TypedContractMethod<[ token: AddressLike, spender: AddressLike, amount: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "fillXChain"): TypedContractMethod<[ externalAccount: AddressLike, txid: BytesLike, trader: AddressLike, quoteToken: AddressLike, quoteTokenAmount: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "getReserves"): TypedContractMethod<[token: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "increaseTokenAllowance"): TypedContractMethod<[ token: AddressLike, spender: AddressLike, amount: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "initialize"): TypedContractMethod<[ name: string, signer: AddressLike, operations: AddressLike, router: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "isValidSignature"): TypedContractMethod<[ hash: BytesLike, signature: BytesLike ], [ string ], "view">; getFunction(nameOrSignature: "killswitchOperations"): TypedContractMethod<[enabled: boolean], [void], "nonpayable">; getFunction(nameOrSignature: "name"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "nonces"): TypedContractMethod<[trader: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "operations"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "removeLiquidity"): TypedContractMethod<[ token: AddressLike, recipient: AddressLike, amount: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "router"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "signerConfiguration"): TypedContractMethod<[], [[string, boolean]], "view">; getFunction(nameOrSignature: "tradeRFQM"): TypedContractMethod<[quote: IQuote.RFQMQuoteStruct], [void], "nonpayable">; getFunction(nameOrSignature: "tradeRFQT"): TypedContractMethod<[quote: IQuote.RFQTQuoteStruct], [void], "payable">; getFunction(nameOrSignature: "tradeXChainRFQM"): TypedContractMethod<[ quote: IQuote.XChainRFQMQuoteStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "tradeXChainRFQT"): TypedContractMethod<[ quote: IQuote.XChainRFQTQuoteStruct, trader: AddressLike ], [ void ], "payable">; getFunction(nameOrSignature: "updateSigner"): TypedContractMethod<[signer: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updateWithdrawalAccount"): TypedContractMethod<[ withdrawalAccounts: AddressLike[], authorized: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateXChainMessengerAuthorization"): TypedContractMethod<[ xChainMessenger: AddressLike, authorized: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateXChainPoolAuthorization"): TypedContractMethod<[ pools: IHashflowPool.AuthorizedXChainPoolStruct[], authorized: boolean ], [ void ], "nonpayable">; getEvent(key: "RemoveLiquidity"): TypedContractEvent<RemoveLiquidityEvent.InputTuple, RemoveLiquidityEvent.OutputTuple, RemoveLiquidityEvent.OutputObject>; getEvent(key: "Trade"): TypedContractEvent<TradeEvent.InputTuple, TradeEvent.OutputTuple, TradeEvent.OutputObject>; getEvent(key: "UpdateSigner"): TypedContractEvent<UpdateSignerEvent.InputTuple, UpdateSignerEvent.OutputTuple, UpdateSignerEvent.OutputObject>; getEvent(key: "UpdateWithdrawalAccount"): TypedContractEvent<UpdateWithdrawalAccountEvent.InputTuple, UpdateWithdrawalAccountEvent.OutputTuple, UpdateWithdrawalAccountEvent.OutputObject>; getEvent(key: "XChainTrade"): TypedContractEvent<XChainTradeEvent.InputTuple, XChainTradeEvent.OutputTuple, XChainTradeEvent.OutputObject>; getEvent(key: "XChainTradeFill"): TypedContractEvent<XChainTradeFillEvent.InputTuple, XChainTradeFillEvent.OutputTuple, XChainTradeFillEvent.OutputObject>; filters: { "RemoveLiquidity(address,address,uint256)": TypedContractEvent<RemoveLiquidityEvent.InputTuple, RemoveLiquidityEvent.OutputTuple, RemoveLiquidityEvent.OutputObject>; RemoveLiquidity: TypedContractEvent<RemoveLiquidityEvent.InputTuple, RemoveLiquidityEvent.OutputTuple, RemoveLiquidityEvent.OutputObject>; "Trade(address,address,bytes32,address,address,uint256,uint256)": TypedContractEvent<TradeEvent.InputTuple, TradeEvent.OutputTuple, TradeEvent.OutputObject>; Trade: TypedContractEvent<TradeEvent.InputTuple, TradeEvent.OutputTuple, TradeEvent.OutputObject>; "UpdateSigner(address,address)": TypedContractEvent<UpdateSignerEvent.InputTuple, UpdateSignerEvent.OutputTuple, UpdateSignerEvent.OutputObject>; UpdateSigner: TypedContractEvent<UpdateSignerEvent.InputTuple, UpdateSignerEvent.OutputTuple, UpdateSignerEvent.OutputObject>; "UpdateWithdrawalAccount(address,bool)": TypedContractEvent<UpdateWithdrawalAccountEvent.InputTuple, UpdateWithdrawalAccountEvent.OutputTuple, UpdateWithdrawalAccountEvent.OutputObject>; UpdateWithdrawalAccount: TypedContractEvent<UpdateWithdrawalAccountEvent.InputTuple, UpdateWithdrawalAccountEvent.OutputTuple, UpdateWithdrawalAccountEvent.OutputObject>; "XChainTrade(uint16,bytes32,address,bytes32,bytes32,address,bytes32,uint256,uint256)": TypedContractEvent<XChainTradeEvent.InputTuple, XChainTradeEvent.OutputTuple, XChainTradeEvent.OutputObject>; XChainTrade: TypedContractEvent<XChainTradeEvent.InputTuple, XChainTradeEvent.OutputTuple, XChainTradeEvent.OutputObject>; "XChainTradeFill(bytes32)": TypedContractEvent<XChainTradeFillEvent.InputTuple, XChainTradeFillEvent.OutputTuple, XChainTradeFillEvent.OutputObject>; XChainTradeFill: TypedContractEvent<XChainTradeFillEvent.InputTuple, XChainTradeFillEvent.OutputTuple, XChainTradeFillEvent.OutputObject>; }; }