@toncodex/tetra-sdk
v1.0.2
Published
<p align="center"> <a href="https://tonco.io/"><img alt="TONCO" src="https://app.tonco.io/tonco-logo.svg" width="360"></a> </p>
Readme
✨ Features
- Pool state management (ticks, liquidity, and fees)
- Liquidity position management
- Price and tick calculations
- Swap simulation logic
- Creating messages for operations
📦 Installation
Using npm:
npm install @toncodex/sdk@mainnetor yarn:
yarn add @toncodex/sdk@mainnetThe 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 [email protected]🚀 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.
