3.0.2 • Published 5 months ago

@tonkite/highload-wallet-v3 v3.0.2

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
5 months ago

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.

3.0.2

5 months ago

3.0.1

5 months ago

3.0.0

5 months ago

2.0.11

5 months ago

2.0.10

11 months ago

2.0.9

11 months ago

2.0.8

11 months ago

2.0.7

11 months ago

2.0.6

11 months ago

2.0.5

11 months ago

2.0.4

11 months ago

2.0.3

11 months ago

2.0.2

11 months ago

2.0.1

11 months ago

2.0.0

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago