assertIsTransactionWithDurableNonceLifetime

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

From time to time you might acquire a transaction, that you expect to have a nonce-based lifetime, from for example a wallet. Use this function to assert that such a transaction actually has a nonce-based lifetime.

Parameters

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

Returns

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

Example

import { assertIsTransactionWithDurableNonceLifetime } from '@solana/transactions';
 
try {
    // If this type assertion function doesn't throw, then
    // Typescript will upcast `transaction` to `TransactionWithDurableNonceLifetime`.
    assertIsTransactionWithDurableNonceLifetime(transaction);
    // At this point, `transaction` is a `TransactionWithDurableNonceLifetime` that can be used
    // with the RPC.
    const { nonce, nonceAccountAddress } = transaction.lifetimeConstraint;
    const { data: { blockhash: actualNonce } } = await fetchNonce(nonceAccountAddress);
} catch (e) {
    // `transaction` turned out not to have a nonce-based lifetime
}

On this page