Method Signature
align.blockchain.transactions.getStatus(
txHash: string,
network: Network
): Promise<TransactionStatus>
Parameters
Transaction hash to check
Network where the transaction was sent
Returns
Status: pending, confirmed, failed
Number of block confirmations
Block number (if confirmed)
Examples
import Align from "@tolbel/align";
const align = new Align({
apiKey: process.env.ALIGN_API_KEY!,
environment: "sandbox",
});
const status = await align.blockchain.transactions.getStatus(
"0x123abc...",
"polygon"
);
console.log(`Status: ${status.status}`);
console.log(`Confirmations: ${status.confirmations}`);
if (status.status === "confirmed") {
console.log(`Confirmed in block ${status.blockNumber}`);
}
const status = await align.blockchain.transactions.getStatus(
txHash,
"polygon"
);
console.log("Status:", status.status);
Polling for Confirmation
async function pollStatus(txHash: string, network: string) {
const maxAttempts = 30;
for (let i = 0; i < maxAttempts; i++) {
const status = await align.blockchain.transactions.getStatus(
txHash,
network
);
if (status.status === "confirmed") {
console.log("Transaction confirmed!");
return status;
}
if (status.status === "failed") {
throw new Error("Transaction failed");
}
console.log(`Pending... (attempt ${i + 1}/${maxAttempts})`);
await new Promise((r) => setTimeout(r, 2000)); // Wait 2 seconds
}
throw new Error("Transaction not confirmed in time");
}
For simpler code, use waitForConfirmation() instead of polling manually.