isTransactionWithDurableNonceLifetime

function isTransactionWithDurableNonceLifetime(
    transaction,
): transaction is Readonly<{
    messageBytes: TransactionMessageBytes;
    signatures: SignaturesMap;
}> &
    TransactionWithDurableNonceLifetime;

A type guard that returns true if the transaction conforms to the TransactionWithDurableNonceLifetime type, and refines its type for use in your program.

Parameters

ParameterType
transaction| Readonly<{ messageBytes: TransactionMessageBytes; signatures: SignaturesMap; }> | Readonly<{ messageBytes: TransactionMessageBytes; signatures: SignaturesMap; }> & TransactionWithLifetime

Returns

transaction is Readonly<{ messageBytes: TransactionMessageBytes; signatures: SignaturesMap }> & TransactionWithDurableNonceLifetime

Example

import { isTransactionWithDurableNonceLifetime } from '@solana/transactions';
import { fetchNonce } from "@solana-program/system";
 
if (isTransactionWithDurableNonceLifetime(transaction)) {
    // At this point, `transaction` has been refined to a
    // `TransactionWithDurableNonceLifetime`.
    const { nonce, nonceAccountAddress } = transaction.lifetimeConstraint;
    const { data: { blockhash: actualNonce } } = await fetchNonce(nonceAccountAddress);
    setNonceIsValid(nonce === actualNonce);
} else {
    setError(
        `${getSignatureFromTransaction(transaction)} does not have a nonce-based lifetime`,
    );
}

On this page