import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers"; import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface IStableSwapInterface extends utils.Interface { functions: { "addLiquidity(uint256[],uint256,uint256)": FunctionFragment; "calculateRemoveLiquidity(uint256)": FunctionFragment; "calculateRemoveLiquidityOneToken(uint256,uint8)": FunctionFragment; "calculateSwap(uint8,uint8,uint256)": FunctionFragment; "calculateSwapFromAddress(address,address,uint256)": FunctionFragment; "calculateSwapOut(uint8,uint8,uint256)": FunctionFragment; "calculateSwapOutFromAddress(address,address,uint256)": FunctionFragment; "calculateTokenAmount(uint256[],bool)": FunctionFragment; "getA()": FunctionFragment; "getToken(uint8)": FunctionFragment; "getTokenBalance(uint8)": FunctionFragment; "getTokenIndex(address)": FunctionFragment; "getVirtualPrice()": FunctionFragment; "initialize(address[],uint8[],string,string,uint256,uint256,uint256,address)": FunctionFragment; "removeLiquidity(uint256,uint256[],uint256)": FunctionFragment; "removeLiquidityImbalance(uint256[],uint256,uint256)": FunctionFragment; "removeLiquidityOneToken(uint256,uint8,uint256,uint256)": FunctionFragment; "swap(uint8,uint8,uint256,uint256,uint256)": FunctionFragment; "swapExact(uint256,address,address,uint256)": FunctionFragment; "swapExactOut(uint256,address,address,uint256)": FunctionFragment; }; encodeFunctionData(functionFragment: "addLiquidity", values: [BigNumberish[], BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "calculateRemoveLiquidity", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "calculateRemoveLiquidityOneToken", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "calculateSwap", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "calculateSwapFromAddress", values: [string, string, BigNumberish]): string; encodeFunctionData(functionFragment: "calculateSwapOut", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "calculateSwapOutFromAddress", values: [string, string, BigNumberish]): string; encodeFunctionData(functionFragment: "calculateTokenAmount", values: [BigNumberish[], boolean]): string; encodeFunctionData(functionFragment: "getA", values?: undefined): string; encodeFunctionData(functionFragment: "getToken", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getTokenBalance", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getTokenIndex", values: [string]): string; encodeFunctionData(functionFragment: "getVirtualPrice", values?: undefined): string; encodeFunctionData(functionFragment: "initialize", values: [ string[], BigNumberish[], string, string, BigNumberish, BigNumberish, BigNumberish, string ]): string; encodeFunctionData(functionFragment: "removeLiquidity", values: [BigNumberish, BigNumberish[], BigNumberish]): string; encodeFunctionData(functionFragment: "removeLiquidityImbalance", values: [BigNumberish[], BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "removeLiquidityOneToken", values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "swap", values: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "swapExact", values: [BigNumberish, string, string, BigNumberish]): string; encodeFunctionData(functionFragment: "swapExactOut", values: [BigNumberish, string, string, BigNumberish]): string; decodeFunctionResult(functionFragment: "addLiquidity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateRemoveLiquidity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateRemoveLiquidityOneToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateSwap", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateSwapFromAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateSwapOut", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateSwapOutFromAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateTokenAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getA", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTokenBalance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTokenIndex", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVirtualPrice", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidityImbalance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidityOneToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapExact", data: BytesLike): Result; decodeFunctionResult(functionFragment: "swapExactOut", data: BytesLike): Result; events: { "AddLiquidity(address,uint256[],uint256[],uint256,uint256)": EventFragment; "NewAdminFee(uint256)": EventFragment; "NewSwapFee(uint256)": EventFragment; "NewWithdrawFee(uint256)": EventFragment; "RampA(uint256,uint256,uint256,uint256)": EventFragment; "RemoveLiquidity(address,uint256[],uint256)": EventFragment; "RemoveLiquidityImbalance(address,uint256[],uint256[],uint256,uint256)": EventFragment; "RemoveLiquidityOne(address,uint256,uint256,uint256,uint256)": EventFragment; "StopRampA(uint256,uint256)": EventFragment; "TokenSwap(address,uint256,uint256,uint128,uint128)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "AddLiquidity"): EventFragment; getEvent(nameOrSignatureOrTopic: "NewAdminFee"): EventFragment; getEvent(nameOrSignatureOrTopic: "NewSwapFee"): EventFragment; getEvent(nameOrSignatureOrTopic: "NewWithdrawFee"): EventFragment; getEvent(nameOrSignatureOrTopic: "RampA"): EventFragment; getEvent(nameOrSignatureOrTopic: "RemoveLiquidity"): EventFragment; getEvent(nameOrSignatureOrTopic: "RemoveLiquidityImbalance"): EventFragment; getEvent(nameOrSignatureOrTopic: "RemoveLiquidityOne"): EventFragment; getEvent(nameOrSignatureOrTopic: "StopRampA"): EventFragment; getEvent(nameOrSignatureOrTopic: "TokenSwap"): EventFragment; } export declare type AddLiquidityEvent = TypedEvent<[ string, BigNumber[], BigNumber[], BigNumber, BigNumber ], { provider: string; tokenAmounts: BigNumber[]; fees: BigNumber[]; invariant: BigNumber; lpTokenSupply: BigNumber; }>; export declare type AddLiquidityEventFilter = TypedEventFilter; export declare type NewAdminFeeEvent = TypedEvent<[ BigNumber ], { newAdminFee: BigNumber; }>; export declare type NewAdminFeeEventFilter = TypedEventFilter; export declare type NewSwapFeeEvent = TypedEvent<[ BigNumber ], { newSwapFee: BigNumber; }>; export declare type NewSwapFeeEventFilter = TypedEventFilter; export declare type NewWithdrawFeeEvent = TypedEvent<[ BigNumber ], { newWithdrawFee: BigNumber; }>; export declare type NewWithdrawFeeEventFilter = TypedEventFilter; export declare type RampAEvent = TypedEvent<[ BigNumber, BigNumber, BigNumber, BigNumber ], { oldA: BigNumber; newA: BigNumber; initialTime: BigNumber; futureTime: BigNumber; }>; export declare type RampAEventFilter = TypedEventFilter; export declare type RemoveLiquidityEvent = TypedEvent<[ string, BigNumber[], BigNumber ], { provider: string; tokenAmounts: BigNumber[]; lpTokenSupply: BigNumber; }>; export declare type RemoveLiquidityEventFilter = TypedEventFilter; export declare type RemoveLiquidityImbalanceEvent = TypedEvent<[ string, BigNumber[], BigNumber[], BigNumber, BigNumber ], { provider: string; tokenAmounts: BigNumber[]; fees: BigNumber[]; invariant: BigNumber; lpTokenSupply: BigNumber; }>; export declare type RemoveLiquidityImbalanceEventFilter = TypedEventFilter; export declare type RemoveLiquidityOneEvent = TypedEvent<[ string, BigNumber, BigNumber, BigNumber, BigNumber ], { provider: string; lpTokenAmount: BigNumber; lpTokenSupply: BigNumber; boughtId: BigNumber; tokensBought: BigNumber; }>; export declare type RemoveLiquidityOneEventFilter = TypedEventFilter; export declare type StopRampAEvent = TypedEvent<[ BigNumber, BigNumber ], { currentA: BigNumber; time: BigNumber; }>; export declare type StopRampAEventFilter = TypedEventFilter; export declare type TokenSwapEvent = TypedEvent<[ string, BigNumber, BigNumber, BigNumber, BigNumber ], { buyer: string; tokensSold: BigNumber; tokensBought: BigNumber; soldId: BigNumber; boughtId: BigNumber; }>; export declare type TokenSwapEventFilter = TypedEventFilter; export interface IStableSwap extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IStableSwapInterface; 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(amounts: BigNumberish[], minToMint: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; calculateRemoveLiquidity(amount: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber[]]>; calculateRemoveLiquidityOneToken(tokenAmount: BigNumberish, tokenIndex: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber] & { availableTokenAmount: BigNumber; }>; calculateSwap(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dx: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>; calculateSwapFromAddress(assetIn: string, assetOut: string, amountIn: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>; calculateSwapOut(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dy: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>; calculateSwapOutFromAddress(assetIn: string, assetOut: string, amountOut: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>; calculateTokenAmount(amounts: BigNumberish[], deposit: boolean, overrides?: CallOverrides): Promise<[BigNumber]>; getA(overrides?: CallOverrides): Promise<[BigNumber]>; getToken(index: BigNumberish, overrides?: CallOverrides): Promise<[string]>; getTokenBalance(index: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>; getTokenIndex(tokenAddress: string, overrides?: CallOverrides): Promise<[number]>; getVirtualPrice(overrides?: CallOverrides): Promise<[BigNumber]>; initialize(pooledTokens: string[], decimals: BigNumberish[], lpTokenName: string, lpTokenSymbol: string, a: BigNumberish, fee: BigNumberish, adminFee: BigNumberish, lpTokenTargetAddress: string, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidity(amount: BigNumberish, minAmounts: BigNumberish[], deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidityImbalance(amounts: BigNumberish[], maxBurnAmount: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidityOneToken(tokenAmount: BigNumberish, tokenIndex: BigNumberish, minAmount: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; swap(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dx: BigNumberish, minDy: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; swapExact(amountIn: BigNumberish, assetIn: string, assetOut: string, minAmountOut: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; swapExactOut(amountOut: BigNumberish, assetIn: string, assetOut: string, maxAmountIn: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; }; addLiquidity(amounts: BigNumberish[], minToMint: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; calculateRemoveLiquidity(amount: BigNumberish, overrides?: CallOverrides): Promise; calculateRemoveLiquidityOneToken(tokenAmount: BigNumberish, tokenIndex: BigNumberish, overrides?: CallOverrides): Promise; calculateSwap(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dx: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapFromAddress(assetIn: string, assetOut: string, amountIn: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapOut(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dy: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapOutFromAddress(assetIn: string, assetOut: string, amountOut: BigNumberish, overrides?: CallOverrides): Promise; calculateTokenAmount(amounts: BigNumberish[], deposit: boolean, overrides?: CallOverrides): Promise; getA(overrides?: CallOverrides): Promise; getToken(index: BigNumberish, overrides?: CallOverrides): Promise; getTokenBalance(index: BigNumberish, overrides?: CallOverrides): Promise; getTokenIndex(tokenAddress: string, overrides?: CallOverrides): Promise; getVirtualPrice(overrides?: CallOverrides): Promise; initialize(pooledTokens: string[], decimals: BigNumberish[], lpTokenName: string, lpTokenSymbol: string, a: BigNumberish, fee: BigNumberish, adminFee: BigNumberish, lpTokenTargetAddress: string, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidity(amount: BigNumberish, minAmounts: BigNumberish[], deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidityImbalance(amounts: BigNumberish[], maxBurnAmount: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidityOneToken(tokenAmount: BigNumberish, tokenIndex: BigNumberish, minAmount: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; swap(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dx: BigNumberish, minDy: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; swapExact(amountIn: BigNumberish, assetIn: string, assetOut: string, minAmountOut: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; swapExactOut(amountOut: BigNumberish, assetIn: string, assetOut: string, maxAmountIn: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; callStatic: { addLiquidity(amounts: BigNumberish[], minToMint: BigNumberish, deadline: BigNumberish, overrides?: CallOverrides): Promise; calculateRemoveLiquidity(amount: BigNumberish, overrides?: CallOverrides): Promise; calculateRemoveLiquidityOneToken(tokenAmount: BigNumberish, tokenIndex: BigNumberish, overrides?: CallOverrides): Promise; calculateSwap(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dx: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapFromAddress(assetIn: string, assetOut: string, amountIn: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapOut(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dy: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapOutFromAddress(assetIn: string, assetOut: string, amountOut: BigNumberish, overrides?: CallOverrides): Promise; calculateTokenAmount(amounts: BigNumberish[], deposit: boolean, overrides?: CallOverrides): Promise; getA(overrides?: CallOverrides): Promise; getToken(index: BigNumberish, overrides?: CallOverrides): Promise; getTokenBalance(index: BigNumberish, overrides?: CallOverrides): Promise; getTokenIndex(tokenAddress: string, overrides?: CallOverrides): Promise; getVirtualPrice(overrides?: CallOverrides): Promise; initialize(pooledTokens: string[], decimals: BigNumberish[], lpTokenName: string, lpTokenSymbol: string, a: BigNumberish, fee: BigNumberish, adminFee: BigNumberish, lpTokenTargetAddress: string, overrides?: CallOverrides): Promise; removeLiquidity(amount: BigNumberish, minAmounts: BigNumberish[], deadline: BigNumberish, overrides?: CallOverrides): Promise; removeLiquidityImbalance(amounts: BigNumberish[], maxBurnAmount: BigNumberish, deadline: BigNumberish, overrides?: CallOverrides): Promise; removeLiquidityOneToken(tokenAmount: BigNumberish, tokenIndex: BigNumberish, minAmount: BigNumberish, deadline: BigNumberish, overrides?: CallOverrides): Promise; swap(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dx: BigNumberish, minDy: BigNumberish, deadline: BigNumberish, overrides?: CallOverrides): Promise; swapExact(amountIn: BigNumberish, assetIn: string, assetOut: string, minAmountOut: BigNumberish, overrides?: CallOverrides): Promise; swapExactOut(amountOut: BigNumberish, assetIn: string, assetOut: string, maxAmountIn: BigNumberish, overrides?: CallOverrides): Promise; }; filters: { "AddLiquidity(address,uint256[],uint256[],uint256,uint256)"(provider?: string | null, tokenAmounts?: null, fees?: null, invariant?: null, lpTokenSupply?: null): AddLiquidityEventFilter; AddLiquidity(provider?: string | null, tokenAmounts?: null, fees?: null, invariant?: null, lpTokenSupply?: null): AddLiquidityEventFilter; "NewAdminFee(uint256)"(newAdminFee?: null): NewAdminFeeEventFilter; NewAdminFee(newAdminFee?: null): NewAdminFeeEventFilter; "NewSwapFee(uint256)"(newSwapFee?: null): NewSwapFeeEventFilter; NewSwapFee(newSwapFee?: null): NewSwapFeeEventFilter; "NewWithdrawFee(uint256)"(newWithdrawFee?: null): NewWithdrawFeeEventFilter; NewWithdrawFee(newWithdrawFee?: null): NewWithdrawFeeEventFilter; "RampA(uint256,uint256,uint256,uint256)"(oldA?: null, newA?: null, initialTime?: null, futureTime?: null): RampAEventFilter; RampA(oldA?: null, newA?: null, initialTime?: null, futureTime?: null): RampAEventFilter; "RemoveLiquidity(address,uint256[],uint256)"(provider?: string | null, tokenAmounts?: null, lpTokenSupply?: null): RemoveLiquidityEventFilter; RemoveLiquidity(provider?: string | null, tokenAmounts?: null, lpTokenSupply?: null): RemoveLiquidityEventFilter; "RemoveLiquidityImbalance(address,uint256[],uint256[],uint256,uint256)"(provider?: string | null, tokenAmounts?: null, fees?: null, invariant?: null, lpTokenSupply?: null): RemoveLiquidityImbalanceEventFilter; RemoveLiquidityImbalance(provider?: string | null, tokenAmounts?: null, fees?: null, invariant?: null, lpTokenSupply?: null): RemoveLiquidityImbalanceEventFilter; "RemoveLiquidityOne(address,uint256,uint256,uint256,uint256)"(provider?: string | null, lpTokenAmount?: null, lpTokenSupply?: null, boughtId?: null, tokensBought?: null): RemoveLiquidityOneEventFilter; RemoveLiquidityOne(provider?: string | null, lpTokenAmount?: null, lpTokenSupply?: null, boughtId?: null, tokensBought?: null): RemoveLiquidityOneEventFilter; "StopRampA(uint256,uint256)"(currentA?: null, time?: null): StopRampAEventFilter; StopRampA(currentA?: null, time?: null): StopRampAEventFilter; "TokenSwap(address,uint256,uint256,uint128,uint128)"(buyer?: string | null, tokensSold?: null, tokensBought?: null, soldId?: null, boughtId?: null): TokenSwapEventFilter; TokenSwap(buyer?: string | null, tokensSold?: null, tokensBought?: null, soldId?: null, boughtId?: null): TokenSwapEventFilter; }; estimateGas: { addLiquidity(amounts: BigNumberish[], minToMint: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; calculateRemoveLiquidity(amount: BigNumberish, overrides?: CallOverrides): Promise; calculateRemoveLiquidityOneToken(tokenAmount: BigNumberish, tokenIndex: BigNumberish, overrides?: CallOverrides): Promise; calculateSwap(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dx: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapFromAddress(assetIn: string, assetOut: string, amountIn: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapOut(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dy: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapOutFromAddress(assetIn: string, assetOut: string, amountOut: BigNumberish, overrides?: CallOverrides): Promise; calculateTokenAmount(amounts: BigNumberish[], deposit: boolean, overrides?: CallOverrides): Promise; getA(overrides?: CallOverrides): Promise; getToken(index: BigNumberish, overrides?: CallOverrides): Promise; getTokenBalance(index: BigNumberish, overrides?: CallOverrides): Promise; getTokenIndex(tokenAddress: string, overrides?: CallOverrides): Promise; getVirtualPrice(overrides?: CallOverrides): Promise; initialize(pooledTokens: string[], decimals: BigNumberish[], lpTokenName: string, lpTokenSymbol: string, a: BigNumberish, fee: BigNumberish, adminFee: BigNumberish, lpTokenTargetAddress: string, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidity(amount: BigNumberish, minAmounts: BigNumberish[], deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidityImbalance(amounts: BigNumberish[], maxBurnAmount: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidityOneToken(tokenAmount: BigNumberish, tokenIndex: BigNumberish, minAmount: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; swap(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dx: BigNumberish, minDy: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; swapExact(amountIn: BigNumberish, assetIn: string, assetOut: string, minAmountOut: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; swapExactOut(amountOut: BigNumberish, assetIn: string, assetOut: string, maxAmountIn: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; }; populateTransaction: { addLiquidity(amounts: BigNumberish[], minToMint: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; calculateRemoveLiquidity(amount: BigNumberish, overrides?: CallOverrides): Promise; calculateRemoveLiquidityOneToken(tokenAmount: BigNumberish, tokenIndex: BigNumberish, overrides?: CallOverrides): Promise; calculateSwap(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dx: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapFromAddress(assetIn: string, assetOut: string, amountIn: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapOut(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dy: BigNumberish, overrides?: CallOverrides): Promise; calculateSwapOutFromAddress(assetIn: string, assetOut: string, amountOut: BigNumberish, overrides?: CallOverrides): Promise; calculateTokenAmount(amounts: BigNumberish[], deposit: boolean, overrides?: CallOverrides): Promise; getA(overrides?: CallOverrides): Promise; getToken(index: BigNumberish, overrides?: CallOverrides): Promise; getTokenBalance(index: BigNumberish, overrides?: CallOverrides): Promise; getTokenIndex(tokenAddress: string, overrides?: CallOverrides): Promise; getVirtualPrice(overrides?: CallOverrides): Promise; initialize(pooledTokens: string[], decimals: BigNumberish[], lpTokenName: string, lpTokenSymbol: string, a: BigNumberish, fee: BigNumberish, adminFee: BigNumberish, lpTokenTargetAddress: string, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidity(amount: BigNumberish, minAmounts: BigNumberish[], deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidityImbalance(amounts: BigNumberish[], maxBurnAmount: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; removeLiquidityOneToken(tokenAmount: BigNumberish, tokenIndex: BigNumberish, minAmount: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; swap(tokenIndexFrom: BigNumberish, tokenIndexTo: BigNumberish, dx: BigNumberish, minDy: BigNumberish, deadline: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; swapExact(amountIn: BigNumberish, assetIn: string, assetOut: string, minAmountOut: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; swapExactOut(amountOut: BigNumberish, assetIn: string, assetOut: string, maxAmountIn: BigNumberish, overrides?: PayableOverrides & { from?: string | Promise; }): Promise; }; }