UNPKG

@ledgerhq/live-common

Version:
74 lines 3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.CompleteExchangeError = void 0; exports.convertTransportError = convertTransportError; exports.getErrorDetails = getErrorDetails; exports.getErrorName = getErrorName; exports.getErrorMessage = getErrorMessage; exports.getSwapStepFromError = getSwapStepFromError; const errors_1 = require("@ledgerhq/errors"); const hw_app_exchange_1 = require("@ledgerhq/hw-app-exchange"); const ReturnCode_1 = require("@ledgerhq/hw-app-exchange/ReturnCode"); const get_1 = __importDefault(require("lodash/get")); class CompleteExchangeError extends Error { step; title; constructor(step, title, message) { super(message); this.name = "CompleteExchangeError"; this.title = title; this.step = step; } } exports.CompleteExchangeError = CompleteExchangeError; function convertTransportError(step, err) { if (err instanceof errors_1.TransportStatusError) { const errorCode = step === "CHECK_REFUND_ADDRESS" && err.statusCode == null ? ReturnCode_1.ErrorStatus.INVALID_ADDRESS : err.statusCode; const { errorName, errorMessage } = (0, hw_app_exchange_1.getExchangeErrorMessage)(errorCode, step); return new CompleteExchangeError(step, errorName, errorMessage); } return err; } function getErrorDetails(error) { if (error == null) return { message: "Unknown error" }; if (typeof error === "string") return { message: error || "Unknown error" }; const name = (0, get_1.default)(error, "name"); const message = (0, get_1.default)(error, "message"); const causeName = (0, get_1.default)(error, "cause.name"); const causeMessage = (0, get_1.default)(error, "cause.message"); const causeSwapCode = (0, get_1.default)(error, "cause.swapCode"); const cause = causeName || causeMessage || causeSwapCode ? { name: causeName, message: causeMessage, swapCode: causeSwapCode } : undefined; // Prefer a specific name; fall back to cause.name when top-level is generic "Error" const effectiveName = name && name !== "Error" ? name : causeName ?? name; return { ...(effectiveName ? { name: effectiveName } : {}), message: message || causeMessage || effectiveName || "Unknown error", ...(cause ? { cause } : {}), }; } function getErrorName(error) { return getErrorDetails(error).name; } function getErrorMessage(error) { return getErrorDetails(error).message; } function getSwapStepFromError(error) { const step = (0, get_1.default)(error, "step"); if (typeof step === "string") { return step; } else if (error.name === "DisabledTransactionBroadcastError") { return "SIGN_COIN_TRANSACTION"; } return "UNKNOWN_STEP"; } //# sourceMappingURL=error.js.map