@soku-dex/sdk
v0.0.12
Published
TON DEX SDK
Readme
Soku Dex
A decentralized exchange (DEX) built on TON blockchain.
How to use
Soku Dex SDK Reference
The Soku Dex SDK provides an interface for interacting with decentralized exchange contracts on the TON blockchain. This document covers all exported classes, types, and utilities.
Table of Contents
Installation
npm i --save @soku-dex/sdkAPI Docs
You can check latest API docs here
Quick Examples
Creating a Liquidity Pool
import { LiquidityPool } from '../sdk';
import { TonClient } from '@ton/ton';
const client = new TonClient({ endpoint: 'https://toncenter.com/api/v2/jsonRPC' });
const pool = await LiquidityPool.create({
network: 'testnet',
client,
sender: yourSender,
curve: 'balanced',
tokenType0: 'jetton',
tokenType1: 'jetton',
tokenMaster0: jettonMaster0,
tokenMaster1: jettonMaster1,
dryRun: false
});
console.log('Pool deployed at:', pool.address);Performing a Swap
import { Dex } from '../sdk';
const dex = new Dex(client, dexAddress);
// Simulate the swap first
const simulation = await dex.simulateDexSwap(1000, true);
console.log('Expected output:', simulation.amountOut);
console.log('Fees:', simulation.fees);
// Build the swap payload
const swapPayload = Dex.buildJettonSwap(
simulation.amountOut,
destinationAddress,
toNano('0.1') // forward TON amount
);Querying Pool State
import { LiquidityPool } from '../sdk';
const pool = new LiquidityPool(client, poolAddress);
const state = await pool.getLatest();
console.log('Pool balance:', state.balance);
console.log('Pool data:', state.data);Working with Different Token Types
import { LiquidityPool, TOKEN_TYPES } from '../sdk';
// Create a TON/Jetton pool
const pool = await LiquidityPool.create({
network: 'mainnet',
client,
sender,
curve: 'unbalanced',
tokenType0: 'ton', // Native TON
tokenType1: 'jetton', // Jetton token
tokenMaster1: jettonMaster, // Only needed for jetton
dryRun: false
});