@tonkite/highload-wallet-v3
TypeScript icon, indicating that this package has built-in type declarations

3.0.2 • Public • Published

tonkite logo

Based on TON NPM Version NPM Downloads GitHub Repo stars Telegram Channel License


Description

Wrapper for interacting with the highload-wallet-v3 contract.

Installation

Using npm:

npm install --save @tonkite/highload-wallet-v3

Using Yarn:

yarn add @tonkite/highload-wallet-v3

Using pnpm:

pnpm add @tonkite/highload-wallet-v3

Quick Start

Initialize TonClient, HighloadWalletV3, HighloadWalletV3QueryIdSequnce:

import { TonClient } from '@ton/ton';
import { HighloadWalletV3 } from '@tonkite/highload-wallet-v3';

/* ... */

// NOTE: You may also use `TonClient4` from `@ton/ton` package.
const tonClient = new TonClient({
  endpoint: 'https://toncenter.com/api/v2/jsonRPC',
  apiKey: 'YOUR API KEY',
});

const queryIdSequence = HighloadWalletV3.newSequence(); // or `HighloadWalletV3.restoreSequence(xxx)`
const wallet = tonClient.open(new HighloadWalletV3(queryIdSequence, keyPair.publicKey));

Send a batch of messages:

import { Address, SendMode, internal, toNano, comment } from '@ton/core';

/* ... */

await wallet.sendBatch(keyPair.secretKey, {
  messages: [
    {
      mode: SendMode.PAY_GAS_SEPARATELY,
      message: internal({
        to: Address.parse('UQDz0wQL6EEdgbPkFgS7nNmywzr468AvgLyhH7PIMALxPEND'),
        value: toNano('0.005'),
        body: comment('Hello Tonkite!'),
      }),
    },
    /* ... */
  ],

  /*
   * NOTE: This it subtotal for all messages + fees.
   *       This value can be omitted, but it's recommended to specify it.
   *       Otherwise, batches will be sent in different blocks (e.a. time-consuming).
   */
  valuePerBatch: toNano('0.015'),

  /*
   * NOTE: Time-shift because time may be out of sync.
   *       The contract accepts older messages, but not those ahead of time.
   */
  createdAt: Math.floor(Date.now() / 1000) - 60,
});

this.sequence.next();

Store a final sequence state during a timeout time-window:

// Store it somewhere after all the operations:
const lastValue = queryIdSequence.current();

/* ... */

// Restore it next time:
const queryIdSequence = HighloadWalletV3.restoreSequence(lastValue);

Emergency Mode

For emergency cases, the wrapper supports emergency mode. A special request identifier is reserved for this, which is not generated in normal mode.

To use emergency mode:

const queryIdSequence = HighloadWalletV3.emergencySequence();

License

Tonkite is Apache 2.0 licensed.

Package Sidebar

Install

npm i @tonkite/highload-wallet-v3

Weekly Downloads

26

Version

3.0.2

License

Apache-2.0

Unpacked Size

42.9 kB

Total Files

21

Last publish

Collaborators

  • nick.nekilov