assertIsFullySignedOffchainMessageEnvelope

function assertIsFullySignedOffchainMessageEnvelope<TEnvelope>(
    offchainMessage,
): asserts offchainMessage is FullySignedOffchainMessageEnvelope &
    TEnvelope;

From time to time you might acquire a OffchainMessageEnvelope, that you expect to be fully signed, from an untrusted network API or user input. Use this function to assert that such an offchain message is fully signed.

Type Parameters

Type Parameter
TEnvelope extends OffchainMessageEnvelope

Parameters

ParameterType
offchainMessageTEnvelope

Returns

asserts offchainMessage is FullySignedOffchainMessageEnvelope & TEnvelope

Example

import { assertIsFullySignedOffchainMessage } from '@solana/offchain-messages';
 
const offchainMessageEnvelope = getOffchainMessageDecoder().decode(offchainMessageBytes);
try {
    // If this type assertion function doesn't throw, then Typescript will upcast
    // `offchainMessageEnvelope` to `FullySignedOffchainMessageEnvelope`.
    assertIsFullySignedOffchainMessageEnvelope(offchainMessage);
    // At this point we know that the offchain message is signed by all required signers.
} catch(e) {
    if (isSolanaError(e, SOLANA_ERROR__OFFCHAIN_MESSAGE__SIGNATURES_MISSING)) {
        setError(`Missing signatures for ${e.context.addresses.join(', ')}`);
    } else {
        throw e;
    }
}

On this page