@fxwallet/ton-lib
v0.0.64
Published
TonWeb - JavaScript API for TON blockchain
Readme
fx-ton-lib
JavaScript SDK for The Open Network (TON), used by FxWallet.
This package is a fork of tonweb maintained for FxWallet's needs. It provides wallet contracts, BoC (de)serialization, Jetton / NFT helpers, payment channels, DNS, Ledger transports, and an HTTP provider for toncenter.com.
Installation
npm install fx-ton-libUsage
Node.js
const TonWeb = require('fx-ton-lib');
const tonweb = new TonWeb();Browser (ES module)
import TonWeb from 'fx-ton-lib';
const tonweb = new TonWeb();Overview example
const tonweb = new TonWeb();
const wallet = tonweb.wallet.create({ publicKey });
const address = await wallet.getAddress();
const nonBounceableAddress = address.toString(true, true, false);
const seqno = await wallet.methods.seqno().call();
// Deploy wallet to blockchain
await wallet.deploy(secretKey).send();
// Estimate fee
const fee = await wallet.methods.transfer({
secretKey,
toAddress: 'EQDjVXa_oltdBP64Nc__p397xLCvGm2IcZ1ba7anSW0NAkeP',
amount: TonWeb.utils.toNano(0.01), // 0.01 TON
seqno,
payload: 'Hello',
sendMode: 3,
}).estimateFee();
// Build a Cell
const Cell = TonWeb.boc.Cell;
const cell = new Cell();
cell.bits.writeUint(0, 32);
cell.bits.writeAddress(address);
cell.bits.writeGrams(1);
const bocBytes = cell.toBoc();
const history = await tonweb.getTransactions(address);
const balance = await tonweb.getBalance(address);
await tonweb.sendBoc(bocBytes);Providers
By default, mainnet toncenter.com API is used. Without an API key, request rate is limited. You can also run your own ton-http-api.
Mainnet with API key:
const tonweb = new TonWeb(
new TonWeb.HttpProvider('https://toncenter.com/api/v2/jsonRPC', {
apiKey: 'YOUR_MAINNET_TONCENTER_API_KEY',
})
);Testnet with API key:
const tonweb = new TonWeb(
new TonWeb.HttpProvider('https://testnet.toncenter.com/api/v2/jsonRPC', {
apiKey: 'YOUR_TESTNET_TONCENTER_API_KEY',
})
);Modules
This package preserves the upstream tonweb module layout. Refer to the upstream docs for the public API:
- tonweb — root class and methods
- tonweb-contract-wallet — wallet smart contracts
- tonweb-contract — abstract contract interface
- tonweb-boc — Cell and BitString
- tonweb-utils — addresses, coin values, hex, hashes
JSDoc is also available throughout the source.
Build
npm install
npm run buildCredits
Based on tonweb by the TonCenter team (rulon, tolya-yanot).
License
GPL-3.0
