Kit
Functions

isTransactionMessageWithSingleSendingSigner

isTransactionMessageWithSingleSendingSigner<TTransactionMessage>(transaction): transaction is TransactionMessageWithSingleSendingSigner & TTransactionMessage

Checks whether the provided transaction has exactly one TransactionSendingSigner.

This can be useful when using signAndSendTransactionMessageWithSigners to provide a fallback strategy in case the transaction message cannot be send using this function.

Type Parameters

Type ParameterDescription
TTransactionMessage extends Readonly<{ instructions: readonly Instruction<string, readonly (AccountLookupMeta<string, string> | AccountMeta<string>)[]>[]; version: TransactionVersion; }> & TransactionMessageWithFeePayer<string>The inferred type of the transaction message provided.

Parameters

ParameterType
transactionTTransactionMessage

Returns

transaction is TransactionMessageWithSingleSendingSigner & TTransactionMessage

Example

import {
    isTransactionMessageWithSingleSendingSigner,
    signAndSendTransactionMessageWithSigners,
    signTransactionMessageWithSigners,
} from '@solana/signers';
import { getBase64EncodedWireTransaction } from '@solana/transactions';
 
let transactionSignature: SignatureBytes;
if (isTransactionMessageWithSingleSendingSigner(transactionMessage)) {
    transactionSignature = await signAndSendTransactionMessageWithSigners(transactionMessage);
} else {
    const signedTransaction = await signTransactionMessageWithSigners(transactionMessage);
    const encodedTransaction = getBase64EncodedWireTransaction(signedTransaction);
    transactionSignature = await rpc.sendTransaction(encodedTransaction).send();
}

See

On this page