Blockchain Hooks

useCurrentBlock()

Fetches the current block from the blockchain with automatic updates.

const { data, isLoading, error } = useCurrentBlock();

Features:

  • Auto-refreshes every 10 seconds

  • Caches data for 1 minute

  • Returns the latest block information as Connex.Thor.Block

Example:

function BlockInfo() {
  const { data: block } = useCurrentBlock();
  
  return <div>Current Block: {block?.number}</div>;
}

useTxReceipt()

Polls the blockchain for a transaction receipt until it is found or times out.

const { data, isLoading, error } = useTxReceipt(txId, blockTimeout);

Parameters:

  • txId: (string) The transaction ID to monitor

  • blockTimeout: (optional number) Number of blocks to wait before timing out (default: 5)

Returns:

  • data: Transaction receipt (Connex.Thor.Transaction.Receipt)

  • isLoading: Boolean indicating if the receipt is being fetched

  • error: Error object if the operation fails

Example:

function TransactionStatus({ txId }) {
  const { data: receipt, isLoading } = useTxReceipt(txId);
  
  if (isLoading) return <div>Loading...</div>;
  return <div>Transaction Status: {receipt?.reverted ? 'Failed' : 'Success'}</div>;
}

Utility Functions

useEvents()

Fetches events from the blockchain based on specified criteria.

const events = await getEvents({
   abi,
   contractAddress,
   eventName,
   filterParams,
   mapResponse,
   nodeUrl,
});

Last updated

Was this helpful?