rubic-sdk
Version:
Simplify dApp creation
85 lines (84 loc) • 2.13 kB
TypeScript
import { BigNumber } from 'ethers';
export interface RoutePools {
directPoolOptimal: RoutePoolData;
routeTokens: string[];
tokenA: string;
tokenB: string;
timestamp: number;
pools: RoutePoolsBlockchain;
}
export interface RoutePoolData {
isAlpha?: boolean;
vault?: string;
pool: string;
poolType: string;
reserveA: BigNumber;
reserveB: BigNumber;
swapFeeAB: string;
swapFeeBA: string;
tokenA: string;
tokenB: string;
}
export interface RoutePoolsBlockchain {
poolsA: RoutePoolData[];
poolsB: RoutePoolData[];
poolsBase: RoutePoolData[];
poolsDirect: RoutePoolData[];
}
export interface GroupAmounts {
pathsWithAmounts: PathWithAmounts[];
amountOut: BigNumber;
quoteOut: BigNumber;
}
export interface GetAmountParams {
stable: boolean;
amount: BigNumber;
reserveIn: BigNumber;
reserveOut: BigNumber;
swapFee: BigNumber;
tokenInPrecisionMultiplier?: BigNumber;
tokenOutPrecisionMultiplier?: BigNumber;
}
export interface SwapRoute {
tokenIn: string;
tokenOut: string;
found: boolean;
amountIn: BigNumber;
amountOut: BigNumber;
quote: BigNumber;
paths: PathWithAmounts[];
priceImpact: BigNumber;
gas: BigNumber;
}
export interface Step {
pool: RoutePoolData;
swapFee: string;
tokenIn: string;
}
export type Path = Step[];
export interface StepWithAmount extends Step {
amountIn: BigNumber;
updatedStep: Step | null;
}
export declare const routeDirection: {
readonly EXACT_IN: "EXACT_IN";
readonly EXACT_OUT: "EXACT_OUT";
};
export type RouteDirection = (typeof routeDirection)[keyof typeof routeDirection];
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;
};