ton3 client
Archived โ early experimental TON SDK, no longer maintained.>
Preserved for historical reference only. The code may be outdated and is not recommended for new projects.
๐ @tegro/ton3-client
:warning: Work in progress, API can (and most likely will) be changed!
How to install
npm i @tegro/ton3-client
Simple usage
import { TonClient } from '@tegro/ton3-client';
import { Coins, Address } from 'ton3-core';
const endpoint = 'https://api.toncenter.com/jsonRPC'; // jsonRPC API url const apiKey = 'HEREWILLBEYOURAPIKEYIFITIS_REQUIRED';
const tonClient = new TonClient({ endpoint, apiKey });
// This is a part of Tegro Wallet const getBestWalletTypeByPublicKey = async (publicKey: Uint8Array) => { const walletTypes = ['org.ton.wallets.v3.r2', 'org.ton.wallets.v4.r2']; let maxBalance = new Coins(0); let bestContract = walletTypes[0]; for (const walletType of walletTypes) { const wallet = Wallet.openByPubKey({ workchain: 0, publicKey, version: walletType, }); const balance = await tonClient.getBalance(wallet.address); if (balance.gt(maxBalance)) { maxBalance = balance; bestContract = walletType; } } return bestContract; }
TON DNS example
// ... tonClient has been declared before
const getAddressFromDomain = async (domain: string) => { if (!(/\S+.ton\b/.test(domain))) return undefined; // is not domain try { const mbAddr = await tonClient.DNS.getWalletAddress(domain); return mbAddr instanceof Address ? mbAddr : undefined; } catch { return undefined; } }
Jettons example
// ... tonClient has been declared before
const jettonsExample = async (jettonAddress: Address, myAddress: Address) => { // user jetton wallet address const jettonWallet = await tonClient.Jetton.getWalletAddress(jettonAddress, myAddress); // jetton metadata const { content } = await tonClient.Jetton.getData(jettonAddress); const deployed = await tonClient.isContractDeployed(jettonWallet); // user jetton balance const balance = deployed ? await tonClient.Jetton.getBalance(jettonWallet) : new Coins(0, { decimals: meta.decimals }); // user jetton transactions const transactions = deployed ? await tonClient.Jetton.getTransactions(jettonWallet) : [] }
Bug Report
If you have questions or suggestions, please file an Issue.License
MIT License