@alcorexchange/alcor-swap-sdk
Version:
**npm** ``` npm i @alcorexchange/alcor-swap-sdk ``` **yarn** ``` yarn add @alcorexchange/alcor-swap-sdk ``` ## Usage ### Import:
46 lines (45 loc) • 1.67 kB
TypeScript
import { Token, Pool, Route, Trade } from '../entities';
import { CurrencyAmount } from '../entities/fractions';
import { TradeType } from '../internalConstants';
/**
* WASM-accelerated trade calculator
*/
export declare class WASMTradeCalculator {
private initialized;
private poolsMap;
/**
* Initialize with pools including full swap data
*/
initializeWithPools(pools: Pool[]): Promise<void>;
/**
* Calculate trade output for a single route (WASM-accelerated)
*/
calculateTradeOutput(route: Route<Token, Token>, amountIn: CurrencyAmount<Token>): {
amountOut: CurrencyAmount<Token>;
priceImpact: number;
};
/**
* Batch calculate trades for multiple routes and amounts
*/
calculateTradesBatch(routes: Route<Token, Token>[], amounts: CurrencyAmount<Token>[]): Array<{
route: Route<Token, Token>;
amountIn: CurrencyAmount<Token>;
amountOut: CurrencyAmount<Token>;
priceImpact: number;
} | null>;
/**
* Clear all pools from memory
*/
clear(): void;
}
/**
* Create a WASM-accelerated Trade from a route
*/
export declare function createTradeFromRouteWASM(route: Route<Token, Token>, amount: CurrencyAmount<Token>, tradeType: TradeType, pools: Pool[]): Promise<Trade<Token, Token, TradeType>>;
/**
* Find best trade with split using WASM acceleration
*/
export declare function bestTradeWithSplitWASM(routes: Route<Token, Token>[], amount: CurrencyAmount<Token>, percents: number[], tradeType: TradeType, pools: Pool[], swapConfig?: {
minSplits: number;
maxSplits: number;
}): Promise<Trade<Token, Token, TradeType> | null>;