{"version":3,"file":"ProgramError.mjs","sources":["../../../src/errors/ProgramError.ts"],"sourcesContent":["import { Program } from '../types';\nimport {\n  ConvergenceError,\n  ConvergenceErrorInputWithoutSource,\n  ConvergenceErrorOptions,\n} from './ConvergenceError';\n\ntype UnderlyingProgramError = Error & { code?: number; logs?: string[] };\n\n/** @group Errors */\nexport class ProgramError extends ConvergenceError {\n  public program: Program;\n\n  constructor(program: Program, input: ConvergenceErrorInputWithoutSource) {\n    super({\n      ...input,\n      key: `program.${input.key}`,\n      title: `${program.name} > ${input.title}`,\n      source: 'program',\n      sourceDetails: `${program.name} [${program.address.toBase58()}]`,\n    });\n    this.program = program;\n  }\n}\n\n/** @group Errors */\nexport class ParsedProgramError extends ProgramError {\n  constructor(\n    program: Program,\n    cause: UnderlyingProgramError,\n    options?: Omit<ConvergenceErrorOptions, 'cause' | 'logs'>\n  ) {\n    const ofCode = cause.code ? ` of code [${cause.code}]` : '';\n    super(program, {\n      key: 'parsed_program_error',\n      title: cause.message,\n      problem:\n        `The program [${program.name}] ` +\n        `at address [${program.address.toBase58()}] ` +\n        `raised an error${ofCode} ` +\n        `that translates to \"${cause.message}\".`,\n      solution: 'Check the error message provided by the program.',\n      options: {\n        ...options,\n        logs: cause.logs,\n        cause,\n      },\n    });\n  }\n}\n\n/** @group Errors */\nexport class UnknownProgramError extends ProgramError {\n  constructor(\n    program: Program,\n    cause: UnderlyingProgramError,\n    options?: Omit<ConvergenceErrorOptions, 'cause' | 'logs'>\n  ) {\n    const ofCode = cause.code ? ` of code [${cause.code}]` : '';\n    super(program, {\n      key: 'unknown_program_error',\n      title: 'Unknown Program Error',\n      problem:\n        `The program [${\n          program.name\n        }] at address [${program.address.toBase58()}] ` +\n        `raised an error${ofCode} that is not recognized by the programs registered by the SDK.`,\n      solution:\n        'Unfortunately, you will need to check the unparsed ' +\n        'error below to investigate what went wrong. ' +\n        'To get more helpful error messages, ensure the program that failed is ' +\n        'registered by the SDK and provides an \"errorResolver\" method.',\n      options: {\n        ...options,\n        logs: cause.logs,\n        cause,\n      },\n    });\n  }\n}\n"],"names":["ProgramError","_ConvergenceError","_inherits","program","input","_this","_classCallCheck","_callSuper","_objectSpread","key","concat","title","name","source","sourceDetails","address","toBase58","_createClass","ConvergenceError","ParsedProgramError","_ProgramError","cause","options","ofCode","code","message","problem","solution","logs","UnknownProgramError","_ProgramError2"],"mappings":"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"}