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, PromiseOrValue } from "../../common"; export interface DEXInterface extends utils.Interface { functions: { "addLiquidity(address,address,uint256,uint256,uint256)": FunctionFragment; "getLiquidityPool(address,address)": FunctionFragment; "getLiquidityTokenAddress(address,address)": FunctionFragment; "getSwapSupplyAmount(address[],uint256)": FunctionFragment; "getSwapTargetAmount(address[],uint256)": FunctionFragment; "removeLiquidity(address,address,uint256,uint256,uint256)": FunctionFragment; "swapWithExactSupply(address[],uint256,uint256)": FunctionFragment; "swapWithExactTarget(address[],uint256,uint256)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "addLiquidity" | "getLiquidityPool" | "getLiquidityTokenAddress" | "getSwapSupplyAmount" | "getSwapTargetAmount" | "removeLiquidity" | "swapWithExactSupply" | "swapWithExactTarget"): FunctionFragment; encodeFunctionData(functionFragment: "addLiquidity", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "getLiquidityPool", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "getLiquidityTokenAddress", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "getSwapSupplyAmount", values: [PromiseOrValue[], PromiseOrValue]): string; encodeFunctionData(functionFragment: "getSwapTargetAmount", values: [PromiseOrValue[], PromiseOrValue]): string; encodeFunctionData(functionFragment: "removeLiquidity", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "swapWithExactSupply", values: [ PromiseOrValue[], PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "swapWithExactTarget", values: [ PromiseOrValue[], PromiseOrValue, PromiseOrValue ]): string; decodeFunctionResult(functionFragment: "addLiquidity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getLiquidityPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getLiquidityTokenAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getSwapSupplyAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getSwapTargetAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapWithExactSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapWithExactTarget", data: BytesLike): Result; events: { "AddedLiquidity(address,address,address,uint256,uint256)": EventFragment; "RemovedLiquidity(address,address,address,uint256)": EventFragment; "Swaped(address,address[],uint256,uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "AddedLiquidity"): EventFragment; getEvent(nameOrSignatureOrTopic: "RemovedLiquidity"): EventFragment; getEvent(nameOrSignatureOrTopic: "Swaped"): EventFragment; } export interface AddedLiquidityEventObject { sender: string; tokenA: string; tokenB: string; maxAmountA: BigNumber; maxAmountB: BigNumber; } export declare type AddedLiquidityEvent = TypedEvent<[ string, string, string, BigNumber, BigNumber ], AddedLiquidityEventObject>; export declare type AddedLiquidityEventFilter = TypedEventFilter; export interface RemovedLiquidityEventObject { sender: string; tokenA: string; tokenB: string; removeShare: BigNumber; } export declare type RemovedLiquidityEvent = TypedEvent<[ string, string, string, BigNumber ], RemovedLiquidityEventObject>; export declare type RemovedLiquidityEventFilter = TypedEventFilter; export interface SwapedEventObject { sender: string; path: string[]; supplyAmount: BigNumber; targetAmount: BigNumber; } export declare type SwapedEvent = TypedEvent<[ string, string[], BigNumber, BigNumber ], SwapedEventObject>; export declare type SwapedEventFilter = TypedEventFilter; export interface DEX extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: DEXInterface; 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: { addLiquidity(tokenA: PromiseOrValue, tokenB: PromiseOrValue, maxAmountA: PromiseOrValue, maxAmountB: PromiseOrValue, minShareIncrement: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getLiquidityPool(tokenA: PromiseOrValue, tokenB: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; getLiquidityTokenAddress(tokenA: PromiseOrValue, tokenB: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; getSwapSupplyAmount(path: PromiseOrValue[], targetAmount: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; getSwapTargetAmount(path: PromiseOrValue[], supplyAmount: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; removeLiquidity(tokenA: PromiseOrValue, tokenB: PromiseOrValue, removeShare: PromiseOrValue, minWithdrawnA: PromiseOrValue, minWithdrawnB: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; swapWithExactSupply(path: PromiseOrValue[], supplyAmount: PromiseOrValue, minTargetAmount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; swapWithExactTarget(path: PromiseOrValue[], targetAmount: PromiseOrValue, maxSupplyAmount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; addLiquidity(tokenA: PromiseOrValue, tokenB: PromiseOrValue, maxAmountA: PromiseOrValue, maxAmountB: PromiseOrValue, minShareIncrement: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getLiquidityPool(tokenA: PromiseOrValue, tokenB: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; getLiquidityTokenAddress(tokenA: PromiseOrValue, tokenB: PromiseOrValue, overrides?: CallOverrides): Promise; getSwapSupplyAmount(path: PromiseOrValue[], targetAmount: PromiseOrValue, overrides?: CallOverrides): Promise; getSwapTargetAmount(path: PromiseOrValue[], supplyAmount: PromiseOrValue, overrides?: CallOverrides): Promise; removeLiquidity(tokenA: PromiseOrValue, tokenB: PromiseOrValue, removeShare: PromiseOrValue, minWithdrawnA: PromiseOrValue, minWithdrawnB: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; swapWithExactSupply(path: PromiseOrValue[], supplyAmount: PromiseOrValue, minTargetAmount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; swapWithExactTarget(path: PromiseOrValue[], targetAmount: PromiseOrValue, maxSupplyAmount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; callStatic: { addLiquidity(tokenA: PromiseOrValue, tokenB: PromiseOrValue, maxAmountA: PromiseOrValue, maxAmountB: PromiseOrValue, minShareIncrement: PromiseOrValue, overrides?: CallOverrides): Promise; getLiquidityPool(tokenA: PromiseOrValue, tokenB: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>; getLiquidityTokenAddress(tokenA: PromiseOrValue, tokenB: PromiseOrValue, overrides?: CallOverrides): Promise; getSwapSupplyAmount(path: PromiseOrValue[], targetAmount: PromiseOrValue, overrides?: CallOverrides): Promise; getSwapTargetAmount(path: PromiseOrValue[], supplyAmount: PromiseOrValue, overrides?: CallOverrides): Promise; removeLiquidity(tokenA: PromiseOrValue, tokenB: PromiseOrValue, removeShare: PromiseOrValue, minWithdrawnA: PromiseOrValue, minWithdrawnB: PromiseOrValue, overrides?: CallOverrides): Promise; swapWithExactSupply(path: PromiseOrValue[], supplyAmount: PromiseOrValue, minTargetAmount: PromiseOrValue, overrides?: CallOverrides): Promise; swapWithExactTarget(path: PromiseOrValue[], targetAmount: PromiseOrValue, maxSupplyAmount: PromiseOrValue, overrides?: CallOverrides): Promise; }; filters: { "AddedLiquidity(address,address,address,uint256,uint256)"(sender?: PromiseOrValue | null, tokenA?: PromiseOrValue | null, tokenB?: PromiseOrValue | null, maxAmountA?: null, maxAmountB?: null): AddedLiquidityEventFilter; AddedLiquidity(sender?: PromiseOrValue | null, tokenA?: PromiseOrValue | null, tokenB?: PromiseOrValue | null, maxAmountA?: null, maxAmountB?: null): AddedLiquidityEventFilter; "RemovedLiquidity(address,address,address,uint256)"(sender?: PromiseOrValue | null, tokenA?: PromiseOrValue | null, tokenB?: PromiseOrValue | null, removeShare?: null): RemovedLiquidityEventFilter; RemovedLiquidity(sender?: PromiseOrValue | null, tokenA?: PromiseOrValue | null, tokenB?: PromiseOrValue | null, removeShare?: null): RemovedLiquidityEventFilter; "Swaped(address,address[],uint256,uint256)"(sender?: PromiseOrValue | null, path?: null, supplyAmount?: null, targetAmount?: null): SwapedEventFilter; Swaped(sender?: PromiseOrValue | null, path?: null, supplyAmount?: null, targetAmount?: null): SwapedEventFilter; }; estimateGas: { addLiquidity(tokenA: PromiseOrValue, tokenB: PromiseOrValue, maxAmountA: PromiseOrValue, maxAmountB: PromiseOrValue, minShareIncrement: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getLiquidityPool(tokenA: PromiseOrValue, tokenB: PromiseOrValue, overrides?: CallOverrides): Promise; getLiquidityTokenAddress(tokenA: PromiseOrValue, tokenB: PromiseOrValue, overrides?: CallOverrides): Promise; getSwapSupplyAmount(path: PromiseOrValue[], targetAmount: PromiseOrValue, overrides?: CallOverrides): Promise; getSwapTargetAmount(path: PromiseOrValue[], supplyAmount: PromiseOrValue, overrides?: CallOverrides): Promise; removeLiquidity(tokenA: PromiseOrValue, tokenB: PromiseOrValue, removeShare: PromiseOrValue, minWithdrawnA: PromiseOrValue, minWithdrawnB: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; swapWithExactSupply(path: PromiseOrValue[], supplyAmount: PromiseOrValue, minTargetAmount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; swapWithExactTarget(path: PromiseOrValue[], targetAmount: PromiseOrValue, maxSupplyAmount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; populateTransaction: { addLiquidity(tokenA: PromiseOrValue, tokenB: PromiseOrValue, maxAmountA: PromiseOrValue, maxAmountB: PromiseOrValue, minShareIncrement: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getLiquidityPool(tokenA: PromiseOrValue, tokenB: PromiseOrValue, overrides?: CallOverrides): Promise; getLiquidityTokenAddress(tokenA: PromiseOrValue, tokenB: PromiseOrValue, overrides?: CallOverrides): Promise; getSwapSupplyAmount(path: PromiseOrValue[], targetAmount: PromiseOrValue, overrides?: CallOverrides): Promise; getSwapTargetAmount(path: PromiseOrValue[], supplyAmount: PromiseOrValue, overrides?: CallOverrides): Promise; removeLiquidity(tokenA: PromiseOrValue, tokenB: PromiseOrValue, removeShare: PromiseOrValue, minWithdrawnA: PromiseOrValue, minWithdrawnB: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; swapWithExactSupply(path: PromiseOrValue[], supplyAmount: PromiseOrValue, minTargetAmount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; swapWithExactTarget(path: PromiseOrValue[], targetAmount: PromiseOrValue, maxSupplyAmount: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; }