UNPKG

ton3

Version:

TON Blockchain low-level API tools

66 lines (48 loc) 2.29 kB
## 💎 ton3 [![npm](https://img.shields.io/npm/v/ton3)](https://www.npmjs.com/package/ton3) ![GitHub top language](https://img.shields.io/github/languages/top/tonstack/ton3) [![TON](https://img.shields.io/badge/based%20on-The%20Open%20Network-blue)](https://ton.org/) ton3 is a javascript package inspired by [tonweb](https://github.com/toncenter/tonweb) to work with [TON blockchain](https://ton.org).\ > :warning: Work in progress, API can (and most likely will) be changed! This is not production ready version yet. ## How to install ``` npm i ton3 ``` ## Simple usage ```typescript import { Providers, Mnemonic, Address, Coins, Builder, BOC } from 'ton3' /* Alternatively you can use standalone packages * import { Mnemonic, Address, Coins, Builder, BOC } from 'ton3-core' * import { ProviderRESTV2 } from 'ton3-providers' */ import { Wallets } from 'ton3-contracts' const highloadWalletExample = async () => { const endpoint = 'https://testnet.toncenter.com/api/v2' const apiKey = 'xxx' const provider = new Providers.ProviderRESTV2(endpoint, { apiKey }) const client = await provider.client() const mnemonic = new Mnemonic() const highload = new Wallets.ContractHighloadWalletV2({ workchain: 0, publicKey: mnemonic.keys.public }) console.log(mnemonic.words) // Get mnemonic phrase console.log(highload.address.toString()) // Get contract address // You need to deposit 1 ton to your contract address before deployment // Contract deployment const deploy = highload .createDeployMessage() .sign(mnemonic.keys.private) const { data: deployData } = await client.sendBoc(null, { boc: BOC.toBase64Standard(deploy) }) console.log(deployData) // Create and send payments const transfers = Array(5).fill(null).reduce((acc, _el) => acc.concat({ destination: new Address('xxx'), amount: new Coins('0.01'), body: new Builder().storeUint(0, 32).storeString('My message').cell(), mode: 3 }), []) const payments = highload .createTransferMessage(transfers) .sign(mnemonic.keys.private) const { data: paymentsData } = await client.sendBoc(null, { boc: BOC.toBase64Standard(payments) }) console.log(paymentsData) } ``` ## License MIT License