Skip to content

cryptoalgebra/tonco-sdk

Repository files navigation

TONCO

Mainnet Version Testnet Version License

A TypeScript/JavaScript SDK for building applications on top of the TONCO DEX.
This SDK helps developers interact with TONCO pools, handle liquidity positions, and execute swaps.

✨ Features


📦 Installation

Using npm:

npm install @toncodex/sdk@mainnet

or yarn:

yarn add @toncodex/sdk@mainnet

The SDK works with types from the @ton/ton library and uses JSBI for calculations. For the best experience, make sure to install these dependencies as well:

yarn add @ton/ton @ton/core @ton/crypto
yarn add jsbi@3.2.5

🚀 Getting Started

Creating Jetton instance

const jetton0 = new Jetton(
  pTON_MINTER, // address
  9, // decimals
  'TON', // symbol
  'TON', // name
  'https://cache.tonapi.io/imgproxy/0boBDKrVQY502vqLLXqwwZTS87PyqSQq0hke-x11lqs/rs:fill:200:200:1/g:no/aHR0cHM6Ly90b25jby5pby9zdGF0aWMvdG9rZW4vVE9OX1RPS0VOLndlYnA.webp' // image
)

Retrieving pool data

import { TonClient } from '@ton/ton';
import { Address, OpenedContract } from '@ton/core';

const client = new TonClient({
  endpoint: 'https://toncenter.com/api/v2/jsonRPC',
});

const poolAddress = "EQD25vStEwc-h1QT1qlsYPQwqU5IiOhox5II0C_xsDNpMVo7" // TON - USDT

const contract = new PoolV3Contract(Address.parse(poolAddress));
const poolContract = client.open(contract) as OpenedContract<PoolV3Contract>;
const poolData = await poolContract.getPoolStateAndConfiguration();

Creating Pool instance

const jetton0 = new Jetton(
  pTON_MINTER,
  9,
  'TON',
  'TON',
  'https://cache.tonapi.io/imgproxy/0boBDKrVQY502vqLLXqwwZTS87PyqSQq0hke-x11lqs/rs:fill:200:200:1/g:no/aHR0cHM6Ly90b25jby5pby9zdGF0aWMvdG9rZW4vVE9OX1RPS0VOLndlYnA.webp'
)
const jetton1 = new Jetton(
  'EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs'
  6,
  'USD₮',
  'Tether USD',
  'https://tether.to/images/logoCircle.png'
)

const pool = new Pool(
  jetton0,
  jetton1,
  poolData.lp_fee_current,
  poolData.price_sqrt.toString(),
  poolData.liquidity.toString(),
  poolData.tick,
  poolData.tick_spacing,
);

Retrieving position data

import { TonClient } from '@ton/ton';
import { Address, OpenedContract } from '@ton/core';

const client = new TonClient({
  endpoint: 'https://toncenter.com/api/v2/jsonRPC',
});

const positionNFTAddress = "EQAy5YMXX7e3916Io3Mi9DG3Xf7UAz2bKMMioYCOeYlDm7Ry" // #3143 LP Position: [ -62160 -> -56100 ]

const positionContract = client.open(
  new PositionNFTV3Contract(Address.parse(positionNFTAddress)),
);

const positionInfo = await positionContract.getPositionInfo();

Creating Position instance

const liquidity = positionInfo.liquidity.toString();
const tickLower = positionInfo.tickLow;
const tickUpper = positionInfo.tickHigh;

const position = new Position({
  pool, // pool instance
  tickLower,
  tickUpper,
  liquidity,
});

📚 Examples & Integration

Usage examples and integration guide are available on the official TONCO documentation:

📄 License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors