@polycity/sdk
Version:
🛠An SDK for building applications on top of PolyCityDex Protocol.
53 lines (52 loc) • 2.05 kB
TypeScript
import { BigNumber } from '@ethersproject/bignumber';
import { Pool, RToken, RouteLeg, MultiRoute } from '../types/MultiRouterTypes';
declare class Edge {
readonly GasConsumption = 40000;
readonly MINIMUM_LIQUIDITY = 1000;
pool: Pool;
vert0: Vertice;
vert1: Vertice;
direction: boolean;
amountInPrevious: number;
amountOutPrevious: number;
constructor(p: Pool, v0: Vertice, v1: Vertice);
reserve(v: Vertice): BigNumber;
calcOutput(v: Vertice, amountIn: number): number[];
checkMinimalLiquidityExceededAfterSwap(from: Vertice, amountOut: number): boolean;
testApply(from: Vertice, amountIn: number, amountOut: number): boolean;
applySwap(from: Vertice): void;
}
declare class Vertice {
token: RToken;
edges: Edge[];
price: number;
gasPrice: number;
bestIncome: number;
gasSpent: number;
bestTotal: number;
bestSource?: Edge;
constructor(t: RToken);
getNeibour(e?: Edge): Vertice | undefined;
}
export declare class Graph {
vertices: Vertice[];
edges: Edge[];
tokens: Map<RToken, Vertice>;
constructor(pools: Pool[], baseToken: RToken, gasPrice: number);
setPrices(from: Vertice, price: number, gasPrice: number): void;
getOrCreateVertice(token: RToken): Vertice;
findBestPath(from: RToken, to: RToken, amountIn: number): {
path: Edge[];
output: number;
gasSpent: number;
totalOutput: number;
} | undefined;
addPath(from: Vertice | undefined, to: Vertice | undefined, path: Edge[]): void;
findBestRoute(from: RToken, to: RToken, amountIn: number, mode: number | number[]): MultiRoute;
getRouteLegs(): RouteLeg[];
edgeFrom(e: Edge): [Vertice, number] | undefined;
getOutputEdges(v: Vertice): Edge[];
topologySort(): Vertice[];
}
export declare function findMultiRouting(from: RToken, to: RToken, amountIn: number, pools: Pool[], baseToken: RToken, gasPrice: number, steps?: number | number[]): MultiRoute;
export {};