TonLib Node JS
TonLib Node JS implementation based on FFI-NAPI library.
Supported Operating Systems
- Ubuntu 18
- Windows x86_64
- Mac OS 10.15
Installation
yarn
yarn add @kibcode/tonlib-node
npm
npm i @kibcode/tonlib-node
Examples
Common usage
/**
* This example shows common usage of TonLib Node JS client.
*/
import {Client} from './src';
import {testInitConfig} from './test-init-config';
(async () => {
// Create tonlib client.
const client = new Client();
// Let's listen to all events coming from tonlib. It is worth paying attention
// to the fact, that you will additionally receive messages which are request
// responses as long as responses are events.
//
// So, when you call client.request, you will see its response event here too.
client.on(data => console.log('Hey, I got some data!', data));
// Send command to decrease count of logs, received from tonlib.
client.send({'@type': 'setLogVerbosityLevel', 'new_verbosity_level': 1});
// For future examples, lets define function which gets some address
// information.
function getAddressInformation(timeout: number) {
return client
.request({
'@type': 'getAccountState',
account_address: {
'@type': 'accountAddress',
account_address: 'EQAogu1aTrj2GWzA3BsHGxadmOTheuRubH5GY54XSRFr497x'
}
}, {timeout})
.then(i => console.log('Address information:', i))
.catch(e => console.log('Error while getting address information:', e));
}
// Then, lets try to get it.
// At this stage, it is known that we will get an error connected with
// tonlib internal initialization state.
await getAddressInformation(10000);
// So, to solve this problem, we should firstly send init request.
await client.request(testInitConfig).then(r => console.log('Init result:', r));
// Finally, we can now get address information.
await getAddressInformation(30000);
})();
Usage with types generator
/**
* This example shows how to use TonLib Node JS client along with types,
* generated with TypesGenerator.
*
* You can find more information about generating types via separate
* package @ton.js/types-generator or use already generated types placed in
* @ton.js/types
*/
import {Client} from './src';
import {TonLib} from '@ton.js/types';
// Create TonLib Node client instance.
const client = new Client();
// Use send method with specified type which we received from generator.
// Type usage will make us to pass all the fields required for this type
// and as a result, we will not receive any error.
client.send<TonLib.Combinators.SetLogVerbosityLevel>({
'@type': 'setLogVerbosityLevel',
new_verbosity_level: 1,
});