@solana/errors 8.6.0 → 8.6.1-canary-20261102124108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.mjs CHANGED
@@ -4,7 +4,7 @@ import { Command, InvalidArgumentError } from 'commander';
4
4
  // src/cli.ts
5
5
 
6
6
  // package.json
7
- var version = "8.6.0";
7
+ var version = "8.6.1-canary-20261102124108";
8
8
 
9
9
  // src/context.ts
10
10
  function decodeEncodedContext(encodedContext) {
@@ -32,6 +32,7 @@ var SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = -32603;
32
32
  var SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602;
33
33
  var SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601;
34
34
  var SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600;
35
+ var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LEADER_SCHEDULE_IDENTITY_NOT_FOUND = -32022;
35
36
  var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SLOT_HISTORY = -32021;
36
37
  var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND = -32020;
37
38
  var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE = -32019;
@@ -517,6 +518,7 @@ var SolanaErrorMessages = {
517
518
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE]: "Epoch rewards period still active at slot $slot",
518
519
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND]: "$__serverMessage",
519
520
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: "$__serverMessage",
521
+ [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LEADER_SCHEDULE_IDENTITY_NOT_FOUND]: "$__serverMessage",
520
522
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: "$__serverMessage",
521
523
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE]: "Failed to query long-term storage; please try again",
522
524
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: "Minimum context slot has not been reached",
@@ -703,6 +705,12 @@ var INSTRUCTION_ERROR_RANGE_SIZE = 1e3;
703
705
  var START_INDEX = "i";
704
706
  var TYPE = "t";
705
707
  function getHumanReadableErrorMessage(code, context = {}) {
708
+ if (!(code in SolanaErrorMessages)) {
709
+ return "__serverMessage" in context ? (
710
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
711
+ `Unknown Solana error code: ${code} (${context.__serverMessage})`
712
+ ) : `Unknown Solana error code: ${code}`;
713
+ }
706
714
  const messageFormatString = SolanaErrorMessages[code];
707
715
  if (messageFormatString.length === 0) {
708
716
  return "";
@@ -775,9 +783,6 @@ program.command("decode").description("Decode a `SolanaErrorCode` to a human-rea
775
783
  if (isNaN(code) || `${code}` !== rawCode) {
776
784
  throw new InvalidArgumentError("It must be an integer");
777
785
  }
778
- if (!(code in SolanaErrorMessages)) {
779
- throw new InvalidArgumentError("There exists no error with that code");
780
- }
781
786
  return code;
782
787
  }).argument("[encodedContext]", "encoded context to interpolate into the error message", (encodedContext) => {
783
788
  try {
@@ -786,6 +791,13 @@ program.command("decode").description("Decode a `SolanaErrorCode` to a human-rea
786
791
  throw new InvalidArgumentError("Encoded context malformed");
787
792
  }
788
793
  }).action((code, context) => {
794
+ if (!(code in SolanaErrorMessages)) {
795
+ console.warn(
796
+ chalk.yellow(
797
+ `This version of @solana/errors has no message for code ${code}. It may come from a newer RPC server, or the code may be mistyped.`
798
+ )
799
+ );
800
+ }
789
801
  const message = getHumanReadableErrorMessage(code, context);
790
802
  console.log(`
791
803
  ${chalk.bold(
@@ -20,6 +20,7 @@ var SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = -32603;
20
20
  var SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602;
21
21
  var SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601;
22
22
  var SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600;
23
+ var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LEADER_SCHEDULE_IDENTITY_NOT_FOUND = -32022;
23
24
  var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SLOT_HISTORY = -32021;
24
25
  var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND = -32020;
25
26
  var SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE = -32019;
@@ -536,6 +537,7 @@ var SolanaErrorMessages = {
536
537
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE]: "Epoch rewards period still active at slot $slot",
537
538
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND]: "$__serverMessage",
538
539
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: "$__serverMessage",
540
+ [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LEADER_SCHEDULE_IDENTITY_NOT_FOUND]: "$__serverMessage",
539
541
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: "$__serverMessage",
540
542
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE]: "Failed to query long-term storage; please try again",
541
543
  [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: "Minimum context slot has not been reached",
@@ -722,6 +724,12 @@ var INSTRUCTION_ERROR_RANGE_SIZE = 1e3;
722
724
  var START_INDEX = "i";
723
725
  var TYPE = "t";
724
726
  function getHumanReadableErrorMessage(code, context = {}) {
727
+ if (!(code in SolanaErrorMessages)) {
728
+ return "__serverMessage" in context ? (
729
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
730
+ `Unknown Solana error code: ${code} (${context.__serverMessage})`
731
+ ) : `Unknown Solana error code: ${code}`;
732
+ }
725
733
  const messageFormatString = SolanaErrorMessages[code];
726
734
  if (messageFormatString.length === 0) {
727
735
  return "";
@@ -1062,6 +1070,7 @@ function getSolanaErrorFromJsonRpcError(putativeErrorResponse) {
1062
1070
  case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET:
1063
1071
  case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND:
1064
1072
  case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX:
1073
+ case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LEADER_SCHEDULE_IDENTITY_NOT_FOUND:
1065
1074
  case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED:
1066
1075
  case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED:
1067
1076
  case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE:
@@ -1069,8 +1078,10 @@ function getSolanaErrorFromJsonRpcError(putativeErrorResponse) {
1069
1078
  errorContext = { __serverMessage: message };
1070
1079
  break;
1071
1080
  default:
1072
- if (typeof data === "object" && !Array.isArray(data)) {
1081
+ if (typeof data === "object" && data !== null && !Array.isArray(data)) {
1073
1082
  errorContext = data;
1083
+ } else {
1084
+ errorContext = { __serverMessage: message };
1074
1085
  }
1075
1086
  }
1076
1087
  out = new SolanaError(code, errorContext);
@@ -1260,6 +1271,7 @@ exports.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = SO
1260
1271
  exports.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE;
1261
1272
  exports.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND;
1262
1273
  exports.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX;
1274
+ exports.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LEADER_SCHEDULE_IDENTITY_NOT_FOUND = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LEADER_SCHEDULE_IDENTITY_NOT_FOUND;
1263
1275
  exports.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED;
1264
1276
  exports.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE;
1265
1277
  exports.SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED;