Cross-platform client for TON blockchain.
- 🚀 Create new wallets
- 🍰 Get balance
✈️ Transfers
yarn add @ton/ton @ton/crypto @ton/core buffer// Add before using library
require("buffer");To use this library you need HTTP API endpoint, you can use one of the public endpoints:
import { TonClient, WalletContractV4, internal } from "@ton/ton";
import { mnemonicNew, mnemonicToPrivateKey } from "@ton/crypto";
// Create Client
const client = new TonClient({
endpoint: 'https://toncenter.com/api/v2/jsonRPC',
});
// Generate new key
const mnemonic = await mnemonicNew();
const keyPair = await mnemonicToPrivateKey(mnemonic);
// Create wallet contract
const wallet = WalletContractV4.create({
workchain: 0, // basechain
publicKey: keyPair.publicKey,
});
const contract = client.open(wallet);
// Get balance
const balance = await contract.getBalance();
// Create a transfer
const seqno = await contract.getSeqno();
const transfer = await contract.createTransfer({
seqno,
secretKey: keyPair.secretKey,
messages: [internal({
value: '1.5',
to: 'EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N',
body: 'Hello world',
})]
});We use biome as our formatter. It's prettier compatible and fast
yarn run formatBy default tests are running using multiple worker threads. It's faster, but
undesirable during debugging. SINGLETHREADED env variable covers this case
SINGLETHREADED=1 yarn run testWe use test coverage to eliminate blind spots in our tests.
The goal is to make all functions runned at least once
- Build a coverage report
yarn run coverage-
Coverage report is build to the
/coveragedirectory -
Open
/coverage/index.htmlto check the report
This library is developed by the Whales Corp. and maintained by Dan Volkov.
MIT