Table of content:
Install with npm:
npm install @galacticcouncil/sdk
Off-chain routing, build to find the most suitable routes across the pools. Building block for TradeRouter.
getPools(): PoolBase[]
getAllAssets(): Asset[]
getAssetPairs(token: string): Asset[]
getAllPaths(tokenIn: string, tokenOut: string): Hop[][]
Off-chain optimization of orders across pools for best price execution. TradeRouter does not perform any on-chain transations.
getBestSpotPrice(tokenIn: string, tokenOut: string): Amount
getBestSell(tokenIn: string, tokenOut: string, amountIn: BigNumber | number | string): Trade
getBestBuy(tokenIn: string, tokenOut: string, amountOut: BigNumber | number | string): Trade
For type signature visit types.ts
// Import
import { ApiPromise, WsProvider } from '@polkadot/api';
import { TradeRouter, PoolService, PoolType } from '@galacticcouncil/sdk';
// Initialize Polkadot API
const wsProvider = new WsProvider('wss://rpc.hydradx.cloud');
const api = await ApiPromise.create({ provider: wsProvider });
// Initialize Trade Router
const poolService = new PoolService(api);
const tradeRouter = new TradeRouter(poolService, {
includeOnly: [PoolType.XYK],
});
// Do something
const result = await tradeRouter.getAllAssets();
console.log(result);
SDK Examples and testing helpers.
Run: $ npx tsx ./test/script/examples/<examplePackage>/<exampleName>.ts
with valid example package & name.
To demonstrate full working examples on real chain see script section.
Component list and current status ⬇️
- 🧪 Done
- 🛠 Work in progress
- ⏳ Planning to build
Name | Type | |
---|---|---|
Router | API | 🧪 |
TradeRouter | API | 🧪 |
XYK | Math | 🧪 |
XYK | Pool | 🧪 |
Omni | Math | 🧪 |
Omni | Pool | 🧪 |
LBP | Math | 🧪 |
LBP | Pool | 🧪 |
Stable | Math | 🧪 |
Stable | Pool | 🧪 |
- Node.js (version 18 or higher)
In case of unexpected sdk behaviour, please create well-written issue here. It makes it easier to find & fix the problem accordingly.