import { TypeTag, U64, U8 } from '@manahippo/move-to-ts'; import { TradeRoute, ApiTradeRoute, SplitSingleRoute, SplitMultiRoute } from './route'; import { SplitStep, TradeStep } from './step'; import { TradingPool } from './TradingPool'; export type UITokenAmount = number; export type UITokenAmountRatio = number; export type PriceType = { xToY: UITokenAmountRatio; yToX: UITokenAmountRatio; }; export type QuoteType = { inputSymbol: string; outputSymbol: string; inputUiAmt: UITokenAmount; outputUiAmt: UITokenAmount; avgPrice: UITokenAmountRatio; initialPrice?: UITokenAmountRatio; finalPrice?: UITokenAmountRatio; priceImpact?: UITokenAmountRatio; gasUnits?: UITokenAmountRatio; gasValue?: UITokenAmountRatio; outUiValueAfterGas?: UITokenAmountRatio; }; export declare enum DexType { Hippo = 1, Econia = 2, Pontem = 3, Basiq = 4, Ditto = 5, Tortuga = 6, Aptoswap = 7, Aux = 8, AnimeSwap = 9, Cetus = 10, Pancake = 11, Obric = 12, CetusV2 = 13, Thala = 14 } export declare const DEX_TYPE_NAME: Record; export type PoolType = U64; export type RawStruct = { address: string; module: string; name: string; }; export type RawPoolInfo = { xCoin: number; yCoin: number; gasUnits: number; address?: string; tickSpacing?: number; poolType?: number; thalaStable?: ThalaStableConfig; thalaWeight?: ThalaWeightConfig; }; export type ThalaStableConfig = { asset_0: number; asset_1: number; asset_2?: number; asset_3?: number; }; export type ThalaWeightConfig = ThalaStableConfig & { weight_0: string; weight_1: string; weight_2?: string; weight_3?: string; }; export type RawSplitPool = { dexType: number; poolType: number; xCoin: number; yCoin: number; }; export type PoolConfig = { pools: Record; splitable_pools?: Record; high_gas_splitable_pool?: Record; splitable_pools_v2?: Record; high_gas_splitable_pool_v2?: Record; }; export type SwapParamType = { numSteps: U8; firstDexType: U8; firstPoolType: U64; firstIsReversed: boolean; secondDexType: U8; secondPoolType: U64; secondIsReversed: boolean; thirdDexType: U8; thirdPoolType: U64; thirdIsReversed: boolean; inAmt: U64; minOutAmt: U64; types: [TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag]; }; export type SplitSwapStepParamType = { dexTypes: U8[]; poolTypes: U64[]; isXtoY: boolean[]; scales: U64[]; eTypes: [TypeTag, TypeTag, TypeTag]; }; export type SplitSwapParamType = { firstDexTypes: U8[]; firstPoolTypes: U64[]; firstIsXtoY: boolean[]; firstScales: U64[]; secondDexTypes: U8[]; secondPoolTypes: U64[]; secondIsXtoY: boolean[]; secondScales: U64[]; thirdDexTypes: U8[]; thirdPoolTypes: U64[]; thirdIsXtoY: boolean[]; thirdScales: U64[]; xIn: U64; minOut: U64; types: [ TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag ]; }; export type SplitSwapV2_1_2_ParamType = { route1_scale: U64; route1_step1_dex_types: U8[]; route1_step1_pool_types: U64[]; route1_step1_is_x_to_y: boolean[]; route1_step1_scales: U64[]; route2_scale: U64; route2_step1_dex_types: U8[]; route2_step1_pool_types: U64[]; route2_step1_is_x_to_y: boolean[]; route2_step1_scales: U64[]; route2_step2_dex_types: U8[]; route2_step2_pool_types: U64[]; route2_step2_is_x_to_y: boolean[]; route2_step2_scales: U64[]; input_amount: U64; min_out: U64; types: [TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag, TypeTag]; }; export interface QuoteDirectInterface { getQuoteDirect(inputUiAmt: UITokenAmount): QuoteType; } export interface IApiTradeStepJSON { dexType: number; poolType: string; isXToY: boolean; tagE: string; } export interface IApiRouteJSON { tokens: string[]; steps: IApiTradeStepJSON[]; } export interface IApiSplitStepUnitJSON { step: IApiTradeStepJSON; quote: QuoteType; scale: number; } export interface IApiSplitStepJSON { units: IApiSplitStepUnitJSON[]; } export interface IApiSplitSingleRouteJSON { tokens: string[]; splitSteps: IApiSplitStepJSON[]; } export interface IApiSplitMultiRouteUnitJSON { route: IApiSplitSingleRouteJSON; quote: QuoteType; scale: number; } export interface IApiSplitMultiRouteJSON { units: IApiSplitMultiRouteUnitJSON[]; } export interface IApiSplitMultiRouteAndQuoteJSON { route: IApiSplitMultiRouteJSON; quote: QuoteType; } /** * Normal-Route */ export interface PoolAndQuote { pool: TradingPool; quote: QuoteType; } export interface StepAndQuote { step: TradeStep; quote: QuoteType; } export interface RouteAndQuote { route: TradeRoute; quote: QuoteType; } export interface DetailedRouteAndQuote extends RouteAndQuote { innerStepQuotes: QuoteType[]; } /** * Split-Single-Route */ export interface SplitStepUnit { step: TradeStep; quote: QuoteType; scale: number; } export interface SplitStepAndQuote { step: SplitStep; quote: QuoteType; } export interface SplitSingleRouteAndQuote { route: SplitSingleRoute; quote: QuoteType; } /** * Split-Multi-Route */ export interface SplitMultiRouteUnit { route: SplitSingleRoute; quote: QuoteType; scale: number; } export interface SplitMultiRouteAndQuote { route: SplitMultiRoute; quote: QuoteType; } /** * JSON-API */ export interface IApiRouteAndQuote { route: ApiTradeRoute; quote: QuoteType; } export interface IUiQuotesResult { allRoutesCount: number; routes: IApiRouteAndQuote[]; } export interface IUiQuotesV3Result { allRoutesCount: number; routes: SplitMultiRouteAndQuote[]; } export interface IApiRouteAndQuoteJSON { route: IApiRouteJSON; quote: QuoteType; } export interface IUiQuotesResultJSON { allRoutesCount: number; routes: IApiRouteAndQuoteJSON[]; } export interface IUiQuotesV3ResultJSON { allRoutesCount: number; routes: IApiSplitMultiRouteAndQuoteJSON[]; } export type TokenTypeFullname = string; export type SplitMultiRouteType_1_2 = { oneStepRoute?: SplitSingleRouteAndQuote; twoStepRoutes: SplitSingleRouteAndQuote[]; }; //# sourceMappingURL=types.d.ts.map