@tonkite/highload-wallet-v3
v2.0.10
Published
The wrapper for highload-wallet-v3.
Downloads
44
Maintainers
Readme
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,
});
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:
// NOTE: In this case, `sequence.next()` doesn't work, since the emergency queryId is the latest possible.
const queryIdSequence = HighloadWalletV3.emergencySequence();
License
Tonkite is Apache 2.0 licensed.