Class SolanaError<TErrorCode>

Encapsulates an error's stacktrace, a Solana-specific numeric code that indicates what went wrong, and optional context if the type of error indicated by the code supports it.

Type Parameters

Hierarchy

Constructors

Properties

cause?: TErrorCode extends -32002 ? SolanaError<SolanaErrorCode> : unknown = ...

Indicates the root cause of this SolanaError, if any.

For example, a transaction error might have an instruction error as its root cause. In this case, you will be able to access the instruction error on the transaction error as cause.

context: Readonly<
    {
        "-32001": { __serverMessage: string } & { __code: -32001 };
        "-32002": Omit<RpcSimulateTransactionResult, "err"> & { __code: -32002 };
        "-32003": object & { __code: -32003 };
        "-32004": { __serverMessage: string } & { __code: -32004 };
        "-32005": { numSlotsBehind?: number } & { __code: -32005 };
        "-32006": { __serverMessage: string } & { __code: -32006 };
        "-32007": { __serverMessage: string } & { __code: -32007 };
        "-32008": object & { __code: -32008 };
        "-32009": { __serverMessage: string } & { __code: -32009 };
        "-32010": { __serverMessage: string } & { __code: -32010 };
        "-32011": object & { __code: -32011 };
        "-32012": { __serverMessage: string } & { __code: -32012 };
        "-32013": object & { __code: -32013 };
        "-32014": { __serverMessage: string } & { __code: -32014 };
        "-32015": { __serverMessage: string } & { __code: -32015 };
        "-32016": { contextSlot: bigint } & { __code: -32016 };
        "-32600": { __serverMessage: string } & { __code: -32600 };
        "-32601": { __serverMessage: string } & { __code: -32601 };
        "-32602": { __serverMessage: string } & { __code: -32602 };
        "-32603": { __serverMessage: string } & { __code: -32603 };
        "-32700": { __serverMessage: string } & { __code: -32700 };
        "1": { currentBlockHeight: bigint; lastValidBlockHeight: bigint } & {
            __code: 1;
        };
        "2": { actualNonceValue: string; expectedNonceValue: string } & {
            __code: 2;
        };
        "2800000": { actualLength: number } & { __code: 2800000 };
        "2800001": { actualLength: number } & { __code: 2800001 };
        "2800002": { putativeAddress: string } & { __code: 2800002 };
        "2800003": object & { __code: 2800003 };
        "2800004": object & { __code: 2800004 };
        "2800005": { bump: number } & { __code: 2800005 };
        "2800006": { actual: number; maxSeeds: number } & { __code: 2800006 };
        "2800007": { actual: number; index: number; maxSeedLength: number } & {
            __code: 2800007;
        };
        "2800008": object & { __code: 2800008 };
        "2800009": object & { __code: 2800009 };
        "2800010": object & { __code: 2800010 };
        "3": { nonceAccountAddress: string } & { __code: 3 };
        "3230000": { address: string } & { __code: 3230000 };
        "32300001": { addresses: string[] } & { __code: 32300001 };
        "3230002": { address: string } & { __code: 3230002 };
        "3230003": { address: string } & { __code: 3230003 };
        "3230004": { addresses: string[] } & { __code: 3230004 };
        "3610000": object & { __code: 3610000 };
        "3610001": object & { __code: 3610001 };
        "3610002": object & { __code: 3610002 };
        "3610003": object & { __code: 3610003 };
        "3610004": object & { __code: 3610004 };
        "3610005": object & { __code: 3610005 };
        "3610006": object & { __code: 3610006 };
        "3610007": { key: CryptoKey } & { __code: 3610007 };
        "3611000": object & { __code: 3611000 };
        "3704000": { byteLength: number } & { __code: 3704000 };
        "3704001": { actualLength: number } & { __code: 3704001 };
        "3704002": { actualLength: number } & { __code: 3704002 };
        "3704003": { actualLength: number } & { __code: 3704003 };
        "3704004": object & { __code: 3704004 };
        "4": { actualLength: number } & { __code: 4 };
        "4128000": { data?: ReadonlyUint8Array; programAddress: string } & {
            __code: 4128000;
        };
        "4128001": { accountAddresses?: string[]; programAddress: string } & {
            __code: 4128001;
        };
        "4128002": {
            actualProgramAddress: string;
            expectedProgramAddress: string;
        } & { __code: 4128002 };
        "4615000": { index: number } & {
            errorName: string;
            index: number;
            instructionErrorContext?: unknown;
        } & { __code: 4615000 };
        "4615001": { index: number } & { __code: 4615001 };
        "4615002": { index: number } & { __code: 4615002 };
        "4615003": { index: number } & { __code: 4615003 };
        "4615004": { index: number } & { __code: 4615004 };
        "4615005": { index: number } & { __code: 4615005 };
        "4615006": { index: number } & { __code: 4615006 };
        "4615007": { index: number } & { __code: 4615007 };
        "4615008": { index: number } & { __code: 4615008 };
        "4615009": { index: number } & { __code: 4615009 };
        "4615010": { index: number } & { __code: 4615010 };
        "4615011": { index: number } & { __code: 4615011 };
        "4615012": { index: number } & { __code: 4615012 };
        "4615013": { index: number } & { __code: 4615013 };
        "4615014": { index: number } & { __code: 4615014 };
        "4615015": { index: number } & { __code: 4615015 };
        "4615016": { index: number } & { __code: 4615016 };
        "4615017": { index: number } & { __code: 4615017 };
        "4615018": { index: number } & { __code: 4615018 };
        "4615019": { index: number } & { __code: 4615019 };
        "4615020": { index: number } & { __code: 4615020 };
        "4615021": { index: number } & { __code: 4615021 };
        "4615022": { index: number } & { __code: 4615022 };
        "4615023": { index: number } & { __code: 4615023 };
        "4615024": { index: number } & { __code: 4615024 };
        "4615025": { index: number } & { __code: 4615025 };
        "4615026": { index: number } & { code: number; index: number } & {
            __code: 4615026;
        };
        "4615027": { index: number } & { __code: 4615027 };
        "4615028": { index: number } & { __code: 4615028 };
        "4615029": { index: number } & { __code: 4615029 };
        "4615030": { index: number } & { __code: 4615030 };
        "4615031": { index: number } & { __code: 4615031 };
        "4615032": { index: number } & { __code: 4615032 };
        "4615033": { index: number } & { __code: 4615033 };
        "4615034": { index: number } & { __code: 4615034 };
        "4615035": { index: number } & { __code: 4615035 };
        "4615036": { index: number } & { __code: 4615036 };
        "4615037": { index: number } & { __code: 4615037 };
        "4615038": { index: number } & { __code: 4615038 };
        "4615039": { index: number } & { __code: 4615039 };
        "4615040": { index: number } & { __code: 4615040 };
        "4615041": { index: number } & { __code: 4615041 };
        "4615042": { index: number } & { __code: 4615042 };
        "4615043": { index: number } & { __code: 4615043 };
        "4615044": { index: number } & { __code: 4615044 };
        "4615045": { index: number } & { encodedData: string; index: number } & {
            __code: 4615045;
        };
        "4615046": { index: number } & { __code: 4615046 };
        "4615047": { index: number } & { __code: 4615047 };
        "4615048": { index: number } & { __code: 4615048 };
        "4615049": { index: number } & { __code: 4615049 };
        "4615050": { index: number } & { __code: 4615050 };
        "4615051": { index: number } & { __code: 4615051 };
        "4615052": { index: number } & { __code: 4615052 };
        "4615053": { index: number } & { __code: 4615053 };
        "4615054": { index: number } & { __code: 4615054 };
        "5": { actualLength: number } & { __code: 5 };
        "5508000": { address: string } & { __code: 5508000 };
        "5508001": { address: string } & { __code: 5508001 };
        "5508002": { address: string } & { __code: 5508002 };
        "5508003": { address: string } & { __code: 5508003 };
        "5508004": { address: string } & { __code: 5508004 };
        "5508005": { address: string } & { __code: 5508005 };
        "5508006": { address: string } & { __code: 5508006 };
        "5508007": { address: string } & { __code: 5508007 };
        "5508008": { address: string } & { __code: 5508008 };
        "5508009": object & { __code: 5508009 };
        "5508010": object & { __code: 5508010 };
        "5508011": object & { __code: 5508011 };
        "5663000": { programAddress: string } & { __code: 5663000 };
        "5663001": { programAddress: string } & { __code: 5663001 };
        "5663002": object & { __code: 5663002 };
        "5663003": object & { __code: 5663003 };
        "5663004": { actualVersion: number } & { __code: 5663004 };
        "5663005": { lookupTableAddresses: string[] } & { __code: 5663005 };
        "5663006": {
            highestKnownIndex: number;
            highestRequestedIndex: number;
            lookupTableAddress: string;
        } & { __code: 5663006 };
        "5663007": { index: number } & { __code: 5663007 };
        "5663008": object & { __code: 5663008 };
        "5663009": { addresses: string[] } & { __code: 5663009 };
        "5663010": { index: number } & { __code: 5663010 };
        "5663011": object & { __code: 5663011 };
        "5663012": object & { __code: 5663012 };
        "5663013": object & { __code: 5663013 };
        "5663014": object & { __code: 5663014 };
        "5663015": { expectedAddresses: string[]; unexpectedAddresses: string[] } & {
            __code: 5663015;
        };
        "5663016": object & { __code: 5663016 };
        "5663017": {
            numRequiredSignatures: number;
            signaturesLength: number;
            signerAddresses: string[];
        } & { __code: 5663017 };
        "5663018": object & { __code: 5663018 };
        "5663019": { unitsConsumed: number } & { __code: 5663019 };
        "6": object & { __code: 6 };
        "7": { value: string } & { __code: 7 };
        "7050000": { errorName: string; transactionErrorContext?: unknown } & {
            __code: 7050000;
        };
        "7050001": object & { __code: 7050001 };
        "7050002": object & { __code: 7050002 };
        "7050003": object & { __code: 7050003 };
        "7050004": object & { __code: 7050004 };
        "7050005": object & { __code: 7050005 };
        "7050006": object & { __code: 7050006 };
        "7050007": object & { __code: 7050007 };
        "7050008": object & { __code: 7050008 };
        "7050009": object & { __code: 7050009 };
        "7050010": object & { __code: 7050010 };
        "7050011": object & { __code: 7050011 };
        "7050012": object & { __code: 7050012 };
        "7050013": object & { __code: 7050013 };
        "7050014": object & { __code: 7050014 };
        "7050015": object & { __code: 7050015 };
        "7050016": object & { __code: 7050016 };
        "7050017": object & { __code: 7050017 };
        "7050018": object & { __code: 7050018 };
        "7050019": object & { __code: 7050019 };
        "7050020": object & { __code: 7050020 };
        "7050021": object & { __code: 7050021 };
        "7050022": object & { __code: 7050022 };
        "7050023": object & { __code: 7050023 };
        "7050024": object & { __code: 7050024 };
        "7050025": object & { __code: 7050025 };
        "7050026": object & { __code: 7050026 };
        "7050027": object & { __code: 7050027 };
        "7050028": object & { __code: 7050028 };
        "7050029": object & { __code: 7050029 };
        "7050030": { index: number } & { __code: 7050030 };
        "7050031": { accountIndex: number } & { __code: 7050031 };
        "7050032": object & { __code: 7050032 };
        "7050033": object & { __code: 7050033 };
        "7050034": object & { __code: 7050034 };
        "7050035": { accountIndex: number } & { __code: 7050035 };
        "7050036": object & { __code: 7050036 };
        "8": { value: string } & { __code: 8 };
        "8078000": { codecDescription: string } & { __code: 8078000 };
        "8078001": {
            bytesLength: number;
            codecDescription: string;
            expected: number;
        } & { __code: 8078001 };
        "8078002": object & { __code: 8078002 };
        "8078003": object & { __code: 8078003 };
        "8078004": object & { __code: 8078004 };
        "8078005": { decoderFixedSize: number; encoderFixedSize: number } & {
            __code: 8078005;
        };
        "8078006": {
            decoderMaxSize: undefined
            | number;
            encoderMaxSize: undefined | number;
        } & { __code: 8078006 };
        "8078007": {
            actual: number | bigint;
            codecDescription: string;
            expected: number | bigint;
        } & { __code: 8078007 };
        "8078008": {
            discriminator: number | bigint;
            formattedValidDiscriminators: string;
            validDiscriminators: number[];
        } & { __code: 8078008 };
        "8078009": {
            value: undefined | null | string | number | bigint | boolean;
            variants: readonly (
                undefined
                | null
                | string
                | number
                | bigint
                | boolean
            )[];
        } & { __code: 8078009 };
        "8078010": {
            formattedNumericalValues: string;
            numericalValues: number[];
            stringValues: string[];
            variant: string | number | symbol;
        } & { __code: 8078010 };
        "8078011": {
            codecDescription: string;
            max: number | bigint;
            min: number | bigint;
            value: number | bigint;
        } & { __code: 8078011 };
        "8078012": { alphabet: string; base: number; value: string } & {
            __code: 8078012;
        };
        "8078013": { bytesLength: number; codecDescription: string } & {
            __code: 8078013;
        };
        "8078014": {
            bytesLength: number;
            codecDescription: string;
            offset: number;
        } & { __code: 8078014 };
        "8078015": {
            value: undefined | null | string | number | bigint | boolean;
            variants: readonly (
                undefined
                | null
                | string
                | number
                | bigint
                | boolean
            )[];
        } & { __code: 8078015 };
        "8078016": {
            discriminator: number | bigint;
            maxRange: number;
            minRange: number;
        } & { __code: 8078016 };
        "8078017": { maxRange: number; minRange: number; variant: number } & {
            __code: 8078017;
        };
        "8078018": {
            constant: ReadonlyUint8Array;
            data: ReadonlyUint8Array;
            hexConstant: string;
            hexData: string;
            offset: number;
        } & { __code: 8078018 };
        "8078019": {
            codecDescription: string;
            expectedSize: number;
            hexZeroValue: string;
            zeroValue: ReadonlyUint8Array;
        } & { __code: 8078019 };
        "8078020": {
            encodedBytes: ReadonlyUint8Array;
            hexEncodedBytes: string;
            hexSentinel: string;
            sentinel: ReadonlyUint8Array;
        } & { __code: 8078020 };
        "8078021": {
            decodedBytes: ReadonlyUint8Array;
            hexDecodedBytes: string;
            hexSentinel: string;
            sentinel: ReadonlyUint8Array;
        } & { __code: 8078021 };
        "8078022": { stringValues: string[] } & { __code: 8078022 };
        "8100000": {
            argumentLabel: string;
            keyPath: readonly (string | number | symbol)[];
            methodName: string;
            optionalPathLabel: string;
            path?: string;
            value: bigint;
        } & { __code: 8100000 };
        "8100001": { headers: string[] } & { __code: 8100001 };
        "8100002": { headers: Headers; message: string; statusCode: number } & {
            __code: 8100002;
        };
        "8100003": { method: string; params: unknown[] } & { __code: 8100003 };
        "8190000": { notificationName: string } & { __code: 8190000 };
        "8190001": object & { __code: 8190001 };
        "8190002": object & { __code: 8190002 };
        "8190003": object & { __code: 8190003 };
        "8190004": { errorEvent: Event } & { __code: 8190004 };
        "9": { value: bigint } & { __code: 9 };
        "9900000": object & { __code: 9900000 };
        "9900001": object & { __code: 9900001 };
        "9900002": { cacheKey: string } & { __code: 9900002 };
        "9900003": { unexpectedValue: unknown } & { __code: 9900003 };
        "9900004": { channelName: string; supportedChannelNames: string[] } & {
            __code: 9900004;
        };
    },
>[TErrorCode]

Contains context that can assist in understanding or recovering from a SolanaError.

message: string
name: string
stack?: string
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Optional override for formatting stack traces

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    Parameters

    • targetObject: object
    • OptionalconstructorOpt: Function

    Returns void