via tonweb

This section contains a guide for sending transactions in TON blockchain using tonweb

Tonweb package uses the transfer method to send a transaction to the blockchain. An example of the usage is on their README.

import TonWeb from "tonweb";
import TonWebMnemonic from "tonweb-mnemonic";
import { TonClient, toNano } from "@ton/ton";
import { DEX, pTON } from "@ston-fi/sdk";

const tonWeb = new TonWeb();
const client = new TonWeb.HttpProvider();

const tonClient = new TonClient({
  endpoint: "https://toncenter.com/api/v2/jsonRPC",
});

const mnemonics = Array.from(
  { length: 24 },
  (_, i) => `your mnemonic word ${i + 1}`
); // replace with your mnemonic
const keyPair = await TonWebMnemonic.mnemonicToKeyPair(mnemonics);

const wallet = new tonWeb.wallet.all.v4R2(client, {
  publicKey: keyPair.publicKey,
});

const dex = tonClient.open(new DEX.v1.Router());

const txParams = await dex.getSwapTonToJettonTxParams({
  offerAmount: toNano("1"), // swap 1 TON
  askJettonAddress: "EQA2kCVNwVsil2EM2mB0SkXytxCqQjS4mttjDpnXmwG9T6bO", // for a STON
  minAskAmount: toNano("0.1"), // but not less than 0.1 STON
  proxyTon: new pTON.v1(),
  userWalletAddress: (await wallet.getAddress()).toString(),
});

await wallet.methods
  .transfer({
    secretKey: keyPair.secretKey,
    toAddress: txParams.to.toString(),
    amount: new tonWeb.utils.BN(txParams.value),
    seqno: (await wallet.methods.seqno().call()) ?? 0,
    payload: TonWeb.boc.Cell.oneFromBoc(
      TonWeb.utils.base64ToBytes(txParams.body?.toBoc().toString("base64"))
    ),
    sendMode: 3,
  })
  .send();

Last updated