JSPM

  • Created
  • Published
  • Downloads 56334
  • Score
    100M100P100Q179733F
  • License GPL-3.0

TonWeb - JavaScript API for TON blockchain

Package Exports

  • tonweb
  • tonweb/src/boc/Cell
  • tonweb/src/boc/Cell.js
  • tonweb/src/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tonweb) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

TonWeb - JavaScript API for TON blockchain

NPM

TonWeb interface is close as possible to the web3.js.

TonWeb has only 3 external dependencies (BN.js, tweetnacl, ethjs-unit) and is not too big (~200kb).

Used by tonwallet.me and ton-wallet plugin.

Install Web

npm install tonweb

import TonWeb from "tonweb"

const tonweb = new TonWeb()

or

<script src="tonweb.js"></script>

const tonweb = new window.TonWeb();

Install NodeJS

npm install tonweb

const TonWeb = require('tonweb');

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(); 

await wallet.deploy(secretKey).send(); // deploy wallet to blockchain

const fee = await wallet.methods.transfer({
    secretKey,
    toAddress: 'EQDjVXa_oltdBP64Nc__p397xLCvGm2IcZ1ba7anSW0NAkeP',
    amount: TonWeb.utils.toNano(0.01), // 0.01 TON
    seqno: seqno,
    payload: 'Hello',
    sendMode: 3,
}).estimateFee();

const Cell = TonWeb.boc.Cell;
const cell = new Cell();
cell.bits.writeUint(0, 32);
cell.bits.writeAddress(address);
cell.bits.writeGrams(1);
console.log(cell.print()); // print cell data like Fift
const bocBytes = cell.toBoc();

const history = await tonweb.getTransactions(address);

const balance = await tonweb.getBalance(address);

tonweb.sendBoc(bocBytes);

Documentation

Each part is documented separately:

tonweb - root class and methods

tonweb-contract-wallet - interaction with wallet's smart contracts.

tonweb-contract - abstract interface to interact with TON smart contracts.

tonweb-boc - serializations of Cell and BitString

tonweb-utils - work with TON Addresses, coin values, byte arrays, hex, hash functions.

Also we use JSDoc in code

Build

npm install 

npx webpack --mode=none

Use as alternative to Fift for building binary messages to smart-contracts

npm install -g tonweb

export NODE_PATH=$(npm root --quiet -g)

Then create your_script.js

const TonWeb = require('tonweb');

const tonweb = new TonWeb();

. . .

run script

node your_script.js