import { Interface } from '@ethersproject/abi'; import { SwapSide } from '../../constants'; import { AdapterExchangeParam, Address, DexExchangeParam, ExchangeTxInfo, NumberAsString, PreprocessTransactionOptions, SimpleExchangeParam, Token, TxInfo } from '../../types'; import { IDexTxBuilder } from '../idex'; import { SimpleExchange } from '../simple-exchange'; import { IDexHelper } from '../../dex-helper'; import { Logger } from 'log4js'; import { OptimalSwapExchange } from '@paraswap/core'; import { CurveV2DirectSwap, CurveV2DirectSwapParam, CurveV2SwapType } from './types'; type CurveV2Data = { i: number; j: number; exchange: string; originalPoolAddress: Address; swapType: CurveV2SwapType; isApproved?: boolean; }; export type DirectCurveV2Param = [ fromToken: Address, toToken: Address, exchange: Address, poolAddress: Address, fromAmount: NumberAsString, toAmount: NumberAsString, expectedAmount: NumberAsString, feePercent: NumberAsString, i: NumberAsString, j: NumberAsString, partner: Address, isApproved: boolean, swapType: CurveV2SwapType, beneficiary: Address, needWrapNative: boolean, permit: string, uuid: string ]; export declare class CurveV2 extends SimpleExchange implements IDexTxBuilder { readonly dexHelper: IDexHelper; static dexKeys: string[]; exchangeRouterInterface: Interface; genericFactoryZapIface: Interface; minConversionRate: string; needWrapNative: boolean; logger: Logger; readonly directSwapIface: Interface; constructor(dexHelper: IDexHelper); getAdapterParam(_0: string, _1: string, _2: string, _3: string, data: CurveV2Data, side: SwapSide): AdapterExchangeParam; preProcessTransaction(optimalSwapExchange: OptimalSwapExchange, srcToken: Token, _0: Token, _1: SwapSide, options: PreprocessTransactionOptions): Promise<[OptimalSwapExchange, ExchangeTxInfo]>; getDirectParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, expectedAmount: NumberAsString, data: CurveV2Data, side: SwapSide, permit: string, uuid: string, feePercent: NumberAsString, _0: NumberAsString, partner: string, beneficiary: string, contractMethod: string): TxInfo; getDirectParamV6(srcToken: Address, destToken: Address, fromAmount: NumberAsString, toAmount: NumberAsString, quotedAmount: NumberAsString, data: CurveV2Data, side: SwapSide, permit: string, uuid: string, partnerAndFee: string, beneficiary: string, blockNumber: number, contractMethod: string): { params: CurveV2DirectSwap; encoder: (params: CurveV2DirectSwapParam, partnerAndFee: string, permit: string) => string; networkFee: string; }; static getDirectFunctionNameV6(): string[]; static getDirectFunctionName(): string[]; getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: CurveV2Data, side: SwapSide): Promise; getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: CurveV2Data, side: SwapSide): DexExchangeParam; } export {};