0.0.1-alpha.1 • Published 2 years ago

@kibcode/tonlib-node v0.0.1-alpha.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

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,
});