PendingTransaction
type PendingTransaction = Pick<TransactionCommon, "transaction" | "toJSON" | "toPretty"> & {
data: SendZkAppResponse;
errors: string[];
hash: string;
status: PendingTransactionStatus;
safeWait: Promise<
| RejectedTransaction
| IncludedTransaction>;
setFee: TransactionPromise<boolean, false>;
setFeePerSnarkCost: TransactionPromise<boolean, false>;
wait: Promise<IncludedTransaction>;
};
Defined in: lib/mina/v1/transaction.ts:172
Represents a transaction that has been submitted to the blockchain but has not yet reached a final state. The PendingTransaction type extends certain functionalities from the base Transaction type, adding methods to monitor the transaction's progress towards being finalized (either included in a block or rejected).
Type declaration
data?
optional data: SendZkAppResponse;
Optional. Contains response data from a ZkApp transaction submission.
errors
errors: string[];
An array of error messages related to the transaction processing.
Example
if (!pendingTransaction.status === 'rejected') {
console.error(`Transaction errors: ${pendingTransaction.errors.join(', ')}`);
}
hash
hash: string;
Returns the transaction hash as a string identifier.
Example
const txHash = pendingTransaction.hash;
console.log(`Transaction hash: ${txHash}`);
status
status: PendingTransactionStatus;
Example
if (pendingTransaction.status === 'pending') {
console.log('Transaction accepted for processing by the Mina daemon.');
try {
await pendingTransaction.wait();
console.log('Transaction successfully included in a block.');
} catch (error) {
console.error('Transaction was rejected or failed to be included in a block:', error);
}
} else {
console.error('Transaction was not accepted for processing by the Mina daemon.');
}
safeWait()
Waits for the transaction to be included in a block. This method polls the Mina daemon to check the transaction's status
Parameters
options?
Configuration options for polling behavior.
interval
number
The time interval, in milliseconds, between each polling attempt.
maxAttempts
number
The maximum number of polling attempts.
Returns
Promise
<
| RejectedTransaction
| IncludedTransaction
>
A promise that resolves to the transaction's final state.
Example
const transaction = await pendingTransaction.wait({ maxAttempts: 5, interval: 1000 });
console.log(transaction.status); // 'included' or 'rejected'
setFee()
setFee is the same as (newFee) but for a PendingTransaction.
Parameters
newFee
Returns
TransactionPromise
<boolean
, false
>
setFeePerSnarkCost()
setFeePerSnarkCost is the same as (newFeePerSnarkCost) but for a PendingTransaction.
Parameters
newFeePerSnarkCost
number
Returns
TransactionPromise
<boolean
, false
>
wait()
Waits for the transaction to be included in a block. This method polls the Mina daemon to check the transaction's status, and throws an error if the transaction is rejected.
Parameters
options?
Configuration options for polling behavior.
interval
number
The interval, in milliseconds, between status checks.
maxAttempts
number
The maximum number of attempts to check the transaction status.
Returns
Promise
<IncludedTransaction
>
A promise that resolves to the transaction's final state or throws an error.
Throws
If the transaction is rejected or fails to finalize within the given attempts.
Example
try {
const transaction = await pendingTransaction.wait({ maxAttempts: 10, interval: 2000 });
console.log('Transaction included in a block.');
} catch (error) {
console.error('Transaction rejected or failed to finalize:', error);
}