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 IHashflowAavePortal { type XChainQuoteStruct = { srcChainId: BigNumberish; dstChainId: BigNumberish; srcPool: AddressLike; dstPool: BytesLike; srcExternalAccount: AddressLike; dstExternalAccount: BytesLike; dstTrader: BytesLike; baseToken: AddressLike; quoteToken: BytesLike; baseTokenAmount: BigNumberish; quoteTokenAmount: BigNumberish; quoteExpiry: BigNumberish; nonce: BigNumberish; txid: BytesLike; xChainMessenger: AddressLike; signature: BytesLike; }; type XChainQuoteStructOutput = [ srcChainId: bigint, dstChainId: bigint, srcPool: string, dstPool: string, srcExternalAccount: string, dstExternalAccount: string, dstTrader: string, baseToken: string, quoteToken: string, 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; baseTokenAmount: bigint; quoteTokenAmount: bigint; quoteExpiry: bigint; nonce: bigint; txid: string; xChainMessenger: string; signature: string; }; } export interface IHashflowAavePortalInterface extends Interface { getFunction(nameOrSignature: "aavePool" | "freeze" | "frozen" | "hashflowRouter" | "killswitch" | "receiveAssetPosition" | "transferAssetPosition" | "updateKillswitch" | "updateRemotePortal" | "wormholeMessenger"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Freeze" | "ReceiveAssetPosition" | "TransferAssetPosition" | "UpdateKillswitch" | "UpdateRemotePortal"): EventFragment; encodeFunctionData(functionFragment: "aavePool", values?: undefined): string; encodeFunctionData(functionFragment: "freeze", values?: undefined): string; encodeFunctionData(functionFragment: "frozen", values?: undefined): string; encodeFunctionData(functionFragment: "hashflowRouter", values?: undefined): string; encodeFunctionData(functionFragment: "killswitch", values?: undefined): string; encodeFunctionData(functionFragment: "receiveAssetPosition", values: [AddressLike, BigNumberish, AddressLike, BytesLike]): string; encodeFunctionData(functionFragment: "transferAssetPosition", values: [IHashflowAavePortal.XChainQuoteStruct, BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "updateKillswitch", values: [boolean]): string; encodeFunctionData(functionFragment: "updateRemotePortal", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "wormholeMessenger", values?: undefined): string; decodeFunctionResult(functionFragment: "aavePool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "freeze", data: BytesLike): Result; decodeFunctionResult(functionFragment: "frozen", data: BytesLike): Result; decodeFunctionResult(functionFragment: "hashflowRouter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "killswitch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "receiveAssetPosition", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferAssetPosition", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateKillswitch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateRemotePortal", data: BytesLike): Result; decodeFunctionResult(functionFragment: "wormholeMessenger", data: BytesLike): Result; } export declare namespace FreezeEvent { type InputTuple = []; type OutputTuple = []; interface OutputObject { } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ReceiveAssetPositionEvent { type InputTuple = [ asset: AddressLike, aToken: AddressLike, amount: BigNumberish, target: AddressLike, txid: BytesLike ]; type OutputTuple = [ asset: string, aToken: string, amount: bigint, target: string, txid: string ]; interface OutputObject { asset: string; aToken: string; amount: bigint; target: string; txid: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TransferAssetPositionEvent { type InputTuple = [ asset: AddressLike, aToken: AddressLike, amount: BigNumberish, dstHashflowChainId: BigNumberish, dstAsset: AddressLike, dstAmount: BigNumberish, target: AddressLike, txid: BytesLike, dstContract: BytesLike, dstCalldata: BytesLike ]; type OutputTuple = [ asset: string, aToken: string, amount: bigint, dstHashflowChainId: bigint, dstAsset: string, dstAmount: bigint, target: string, txid: string, dstContract: string, dstCalldata: string ]; interface OutputObject { asset: string; aToken: string; amount: bigint; dstHashflowChainId: bigint; dstAsset: string; dstAmount: bigint; target: string; txid: string; dstContract: string; dstCalldata: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateKillswitchEvent { type InputTuple = [killswitch: boolean]; type OutputTuple = [killswitch: boolean]; interface OutputObject { killswitch: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateRemotePortalEvent { type InputTuple = [hashflowChainId: BigNumberish, portal: AddressLike]; type OutputTuple = [hashflowChainId: bigint, portal: string]; interface OutputObject { hashflowChainId: bigint; portal: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IHashflowAavePortal extends BaseContract { connect(runner?: ContractRunner | null): IHashflowAavePortal; waitForDeployment(): Promise; interface: IHashflowAavePortalInterface; 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; aavePool: TypedContractMethod<[], [string], "nonpayable">; freeze: TypedContractMethod<[], [void], "nonpayable">; frozen: TypedContractMethod<[], [boolean], "nonpayable">; hashflowRouter: TypedContractMethod<[], [string], "nonpayable">; killswitch: TypedContractMethod<[], [boolean], "nonpayable">; receiveAssetPosition: TypedContractMethod<[ asset: AddressLike, amount: BigNumberish, onBehalfOf: AddressLike, txid: BytesLike ], [ void ], "nonpayable">; transferAssetPosition: TypedContractMethod<[ quote: IHashflowAavePortal.XChainQuoteStruct, underlyingAssetAmount: BigNumberish, target: AddressLike ], [ void ], "payable">; updateKillswitch: TypedContractMethod<[ killswitch: boolean ], [ void ], "nonpayable">; updateRemotePortal: TypedContractMethod<[ hashflowChainId: BigNumberish, portal: AddressLike ], [ void ], "nonpayable">; wormholeMessenger: TypedContractMethod<[], [string], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "aavePool"): TypedContractMethod<[], [string], "nonpayable">; getFunction(nameOrSignature: "freeze"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "frozen"): TypedContractMethod<[], [boolean], "nonpayable">; getFunction(nameOrSignature: "hashflowRouter"): TypedContractMethod<[], [string], "nonpayable">; getFunction(nameOrSignature: "killswitch"): TypedContractMethod<[], [boolean], "nonpayable">; getFunction(nameOrSignature: "receiveAssetPosition"): TypedContractMethod<[ asset: AddressLike, amount: BigNumberish, onBehalfOf: AddressLike, txid: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "transferAssetPosition"): TypedContractMethod<[ quote: IHashflowAavePortal.XChainQuoteStruct, underlyingAssetAmount: BigNumberish, target: AddressLike ], [ void ], "payable">; getFunction(nameOrSignature: "updateKillswitch"): TypedContractMethod<[killswitch: boolean], [void], "nonpayable">; getFunction(nameOrSignature: "updateRemotePortal"): TypedContractMethod<[ hashflowChainId: BigNumberish, portal: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "wormholeMessenger"): TypedContractMethod<[], [string], "nonpayable">; getEvent(key: "Freeze"): TypedContractEvent; getEvent(key: "ReceiveAssetPosition"): TypedContractEvent; getEvent(key: "TransferAssetPosition"): TypedContractEvent; getEvent(key: "UpdateKillswitch"): TypedContractEvent; getEvent(key: "UpdateRemotePortal"): TypedContractEvent; filters: { "Freeze()": TypedContractEvent; Freeze: TypedContractEvent; "ReceiveAssetPosition(address,address,uint256,address,bytes32)": TypedContractEvent; ReceiveAssetPosition: TypedContractEvent; "TransferAssetPosition(address,address,uint256,uint16,address,uint256,address,bytes32,bytes32,bytes)": TypedContractEvent; TransferAssetPosition: TypedContractEvent; "UpdateKillswitch(bool)": TypedContractEvent; UpdateKillswitch: TypedContractEvent; "UpdateRemotePortal(uint16,address)": TypedContractEvent; UpdateRemotePortal: TypedContractEvent; }; }