UNPKG

@syncswap/sdk

Version:

SyncSwap TypeScript SDK for building DeFi applications

310 lines 7.56 kB
import { BigNumber } from "ethers"; export interface PoolTokenMetadata { token: string; decimals: number; symbol: string; name: string; } export interface FeeData { gamma: BigNumber; minFee: number; maxFee: number; } export interface CryptoPoolData { gamma: BigNumber; invariantLast: BigNumber; priceScale: BigNumber; futureParamsTime: BigNumber; virtualPrice: BigNumber; totalSupply: BigNumber; } export interface GraphRangePoolDayData { id: string; date: number; feesUSD: string; volumeUSD: string; tvlUSD: string; token0Price: string; token1Price: string; tick: string; sqrtPrice: string; liquidity: string; } export interface RangePoolDayData { dailyStats: GraphRangePoolDayData[]; lastUpdate: number; } export interface IRangePosition { tokenId: BigNumber; token0: string; token1: string; tickSpacing: number; tickLower: number; tickUpper: number; liquidity: BigNumber; feeGrowthInside0LastX128: BigNumber; feeGrowthInside1LastX128: BigNumber; tokensOwed0: BigNumber; tokensOwed1: BigNumber; tickLowerFeeGrowthOutside0X128: BigNumber; tickLowerFeeGrowthOutside1X128: BigNumber; tickUpperFeeGrowthOutside0X128: BigNumber; tickUpperFeeGrowthOutside1X128: BigNumber; pool: string; reserve0: BigNumber; reserve1: BigNumber; tickCurrent: number; protocolFee: number; swapFee01: number; swapFee10: number; sqrtPriceX96: BigNumber; poolLiquidity: BigNumber; poolStakedLiquidity: BigNumber; feeGrowthGlobal0X128: BigNumber; feeGrowthGlobal1X128: BigNumber; apr?: number; feesHours?: number; token0Amount: BigNumber; token0Value: BigNumber; token1Amount: BigNumber; token1Value: BigNumber; token0ValueUSD?: BigNumber | null; token1ValueUSD?: BigNumber | null; } export interface PoolData { isV2: boolean; isV3: boolean; isUniswap: boolean; deprecated: boolean; pool: string; poolType: number; swapFee01: FeeData; swapFee10: FeeData; protocolFee: number; token0: PoolTokenMetadata; token1: PoolTokenMetadata; reserve0: BigNumber; reserve1: BigNumber; totalSupply: BigNumber; accountBalance: BigNumber; routerAllowance: BigNumber; token0Value: BigNumber; token1Value: BigNumber; feesCurrentEpoch: BigNumber; feesLastEpoch: BigNumber; feeStartTime: BigNumber; totalFeeValue: BigNumber; volume0: BigNumber; volume1: BigNumber; a: BigNumber; cryptoPoolData: CryptoPoolData[]; uniswapV3PoolData?: UniswapV3PoolData[]; feesData?: RangePoolDayData[]; rangePositions?: IRangePosition[]; } export interface UniswapV3PoolData { tickSpacing: number; sqrtPriceX96: BigNumber; tick: number; liquidity: BigNumber; } export interface RoutePoolData { isV2: boolean; isV3: boolean; isUniswap: boolean; pool: string; tokenA: string; tokenB: string; poolType: number; reserveA: BigNumber; reserveB: BigNumber; swapFeeAB: FeeData; swapFeeBA: FeeData; a: BigNumber; cryptoPoolData: CryptoPoolData[]; rangePoolData: UniswapV3PoolData[]; } export interface RoutePoolsRawData { poolsDirect: RoutePoolData[]; poolsA: RoutePoolData[]; poolsB: RoutePoolData[]; poolsBase: RoutePoolData[]; } export interface RouteInput { tokenIn: string; tokenOut: string; direction: RouteDirection; amount: BigNumber; } export interface QuoteAmount { amount: BigNumber; quote: BigNumber; fee: BigNumber; } export interface PSMRoute { type: RouteType; amount: QuoteAmount; } export declare enum RouteType { WETH_WRAP = "WETH_WRAP", WETH_UNWRAP = "WETH_UNWRAP", TOKEN_WRAP = "TOKEN_WRAP", TOKEN_UNWRAP = "TOKEN_UNWRAP", PSM_SWAP = "PSM_SWAP", PSM_MINT = "PSM_MINT", PSM_BURN = "PSM_BURN", AMM_SWAP = "AMM_SWAP" } export interface BaseRoute { type: RouteType; amountIn: BigNumber; amountOut: BigNumber; amountQuote: BigNumber; gas: BigNumber; gasEstimate: BigNumber; } export interface WrappedRoute { success: boolean; type: RouteType; amountIn: BigNumber; amountOut: BigNumber; quote: BigNumber; route: SwapRoute | PSMRoute | BaseRoute; direction: RouteDirection; priceImpact: BigNumber; gas: BigNumber; gasEstimate: BigNumber; network?: string; } export interface RoutePools { tokenA: string; tokenB: string; routeTokens: string[]; directPoolOptimal: RoutePoolData | null; pools: RoutePoolsRawData; } export declare enum PoolTypes { CLASSIC = 1, STABLE = 2, AQUA = 3, UNISWAP_V3 = 4 } export interface GetAmountParams { poolType: PoolTypes; swap0For1: boolean; tokenIn: string; tokenOut: string; amount: BigNumber; reserveIn: BigNumber; reserveOut: BigNumber; reserve0: BigNumber; reserve1: BigNumber; swapFee: FeeData; tokenInPrecisionMultiplier?: BigNumber; tokenOutPrecisionMultiplier?: BigNumber; a?: BigNumber; gamma?: BigNumber; priceScale?: BigNumber; futureParamsTime?: BigNumber; invariantLast?: BigNumber; virtualPrice?: BigNumber; totalSupply?: BigNumber; tickSpacing?: number; sqrtPriceX96?: BigNumber; tick?: number; liquidity?: BigNumber; } export interface SwapRoute { isETH?: boolean; isETHOut?: boolean; tokenIn: string; tokenOut: string; found: boolean; amountIn: BigNumber; amountOut: BigNumber; quote: BigNumber; paths: PathWithAmounts[]; priceImpact: BigNumber; gas: BigNumber; network?: string; } export interface StepData { pool: RoutePoolData; tokenIn: string; } export interface CryptoPoolData { gamma: BigNumber; invariantLast: BigNumber; priceScale: BigNumber; futureParamsTime: BigNumber; virtualPrice: BigNumber; totalSupply: BigNumber; } export interface Step { pool: RoutePoolData; swapFee: FeeData; tokenIn: string; tokenOut: string; zeroForOne: boolean; } export type Path = Step[]; export interface StepWithAmount extends Step { amountIn: BigNumber; updatedStep: Step | null; sqrtPriceLimitX96: BigNumber | null; tokenOut: string; zeroForOne: boolean; } export declare enum RouteDirection { EXACT_IN = 0, EXACT_OUT = 1 } export interface PathWithAmounts { direction: RouteDirection; stepsWithAmount: StepWithAmount[]; amountIn: BigNumber; amountOut: BigNumber; quote: BigNumber; } export type BestPathsWithAmounts = { found: boolean; direction: RouteDirection; pathsWithAmounts: PathWithAmounts[]; amountIn: BigNumber; amountOut: BigNumber; quote: BigNumber; bestPriceImpact: BigNumber | null; gas: BigNumber; }; export interface PermitSignature { signature: string; data: { token: string; owner: string; spender: string; amount: BigNumber; nonce: BigNumber; deadline: BigNumber; }; } export interface ISplitPermitParams { token: string; approveAmount: BigNumber; deadline: BigNumber; v: number; r: string; s: string; } export interface SwapStepData { pool: string; data: string; callback: string; callbackData: string; useVault: boolean; } export interface SwapPathData { steps: SwapStepData[]; tokenIn: string; amountIn: BigNumber; } //# sourceMappingURL=types.d.ts.map