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 status = await sdk.getTransactionStatus("0x...", bearerToken);
Parameters
| Parameter | Type | Required | Description |
|---|
hash | string | Yes | Transaction hash (0x...) |
bearerToken | string | No | JWT token. Falls back to apiSecretKey if not provided |
Return Value
Returns a Promise<TransactionStatusResponse>:
| Field | Type | Description |
|---|
transactionHash | string | Transaction hash |
status | OnChainTxStatus | Current on-chain status (see below) |
blockNumber | number | undefined | Block number if included in a block |
revertReason | string | undefined | Reason if status is REVERTED |
OnChainTxStatus Values
| Status | Description | Terminal |
|---|
RECEIVED | Transaction received by node | No |
PENDING | Waiting for inclusion | No |
ACCEPTED_ON_L2 | Confirmed on StarkNet L2 | No |
ACCEPTED_ON_L1 | Proven on Ethereum L1 | Yes |
REJECTED | Rejected by sequencer | Yes |
REVERTED | Execution reverted on-chain | Yes |
NOT_RECEIVED | Not found on network | Yes |
Example
// Poll for confirmation
const poll = async (hash: string) => {
const terminalStatuses = ["ACCEPTED_ON_L1", "REJECTED", "REVERTED", "NOT_RECEIVED"];
const MAX_RETRIES = 60; // 60 retries * 3s = 3 minutes max
for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
const { status, revertReason } = await sdk.getTransactionStatus(hash, bearerToken);
if (terminalStatuses.includes(status)) {
if (status === "REVERTED") console.error("Reverted:", revertReason);
return status;
}
await new Promise((r) => setTimeout(r, 3000));
}
throw new Error(`Transaction ${hash} did not reach terminal status after ${MAX_RETRIES} attempts`);
};