useTx

Creates and manages general Substrate transactions with improved type safety. Provides functions to sign and send transactions, estimate fees, and track transaction progress.

Props

Name
Type
Description

txBuilder

(tx) => TxFunction

Callback function that receives the tx object and returns a transaction method (e.g., (tx) => tx.system.remark).

options

NetworkOptions?

Optional network selection options (e.g., { networkId: 'polkadot' }).

Return Type

Name
Type
Description

signAndSend

(params?) => Promise<void>

Function to sign and send the transaction. Accepts { args?, txOptions?, callback? }.

getEstimatedFee

(params?) => Promise<bigint>

Function to estimate the transaction fee. Accepts { args?, txOptions? }.

inProgress

boolean

Whether a transaction is currently in progress (from signing to finalization).

inBestBlockProgress

boolean

Whether the transaction has been included in the best block.

Basic Usage

System remark transaction:

import { useTx } from 'typink';

function RemarkExample() {
  const remarkTx = useTx((tx) => tx.system.remark);

  const handleSend = async () => {
    await remarkTx.signAndSend({
      args: ['Hello from Typink!'],
      callback: (result) => {
        console.log('Transaction status:', result.status.type);
      },
    });
  };

  return (
    <button
      onClick={handleSend}
      disabled={remarkTx.inBestBlockProgress}>
      {remarkTx.inBestBlockProgress ? 'Sending...' : 'Send Remark'}
    </button>
  );
}

Balance transfer transaction:

Last updated

Was this helpful?