@galacticcouncil/sdk
TypeScript icon, indicating that this package has built-in type declarations

5.3.0 • Public • Published

Galactic SDK

npm version

Hydration trade router & pool utilities.

Table of content:

Installation

Install with npm:

npm install @galacticcouncil/sdk

Troubleshooting

As of v2.x .wasm files are no longer embedded in bundle but rather deferred to improve load performance & decrease module size (esm only).

For more details visit TROUBLESHOOTING.md

Components

Router

Off-chain routing, build to find the most suitable routes across the pools. Building block for TradeRouter.

API

getPools(): PoolBase[]
getAllAssets(): Asset[]
getAssetPairs(token: string): Asset[]
getAllPaths(tokenIn: string, tokenOut: string): Hop[][]

TradeRouter

Off-chain optimization of orders across pools for best price execution. TradeRouter does not perform any on-chain transations.

API

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
getBuy(tokenIn: string, tokenOut: string, amountOut: BigNumber | number | string, route?: Hop[]): Trade
getSell(tokenIn: string, tokenOut: string, amountIn: BigNumber | number | string, route?: Hop[]): Trade

For type signature visit types.ts

Usage

// 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);
await poolService.syncRegistry(); // Wait until pools initialized (optional), fallback to lazy init
const tradeRouter = new TradeRouter(poolService);

// Sell 5 USDT(10) for HDX(0)
const trade = await tradeRouter.getBestSell('10', '0', '5');
// Human readable output
console.log(trade.toHuman());
// Build tx given the slippage amount
console.log(trade.toTx(amount));

Examples

SDK Examples and testing helpers.

Run

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.

Roadmap

Component list and current status ⬇️

  • 🧪 Done
  • 🛠 Work in progress
  • ⏳ Planning to build
Name Type
Dca API
Router API 🧪
TradeRouter API 🧪
Twap API
LBP Math 🧪
LBP Pool 🧪
Omni Math 🧪
Omni Pool 🧪
Stable Math 🧪
Stable Pool 🧪
XYK Math 🧪
XYK Pool 🧪

Package Sidebar

Install

npm i @galacticcouncil/sdk

Weekly Downloads

287

Version

5.3.0

License

none

Unpacked Size

167 kB

Total Files

46

Last publish

Collaborators

  • nohaapav
  • mrq