Documentation Index
Fetch the complete documentation index at: https://docs.chipipay.com/llms.txt
Use this file to discover all available pages before exploring further.
const bearerToken = await getBearerToken();
const status = await browserClient.getTransactionStatus("0x...", bearerToken);
Parameters
hash (string): Transaction hash (0x...)
bearerToken (string): Bearer token for authentication
Return Value
Returns a Promise<TransactionStatusResponse> with:
transactionHash (string): Transaction hash
status (OnChainTxStatus): RECEIVED, PENDING, ACCEPTED_ON_L2, ACCEPTED_ON_L1, REJECTED, REVERTED, or NOT_RECEIVED
blockNumber (number, optional): Block number if included in a block
revertReason (string, optional): Reason if REVERTED
Example Implementation
import { ChipiBrowserSDK } from "@chipi-stack/backend";
const browserClient = new ChipiBrowserSDK({
apiPublicKey: process.env.CHIPI_PUBLIC_KEY,
});
async function pollStatus(txHash: string) {
const terminal = ["ACCEPTED_ON_L1", "REJECTED", "REVERTED", "NOT_RECEIVED"];
const bearerToken = await getBearerToken();
const MAX_RETRIES = 60; // 60 retries * 3s = 3 minutes max
for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
const { status, revertReason } = await browserClient.getTransactionStatus(
txHash,
bearerToken,
);
console.log(`Status: ${status} (attempt ${attempt + 1}/${MAX_RETRIES})`);
if (terminal.includes(status)) {
if (status === "REVERTED") console.error("Reverted:", revertReason);
return status;
}
await new Promise((r) => setTimeout(r, 3000));
}
throw new Error(`Transaction ${txHash} did not reach terminal status after ${MAX_RETRIES} attempts`);
}