UNPKG

@metamask/eth-ledger-bridge-keyring

Version:
121 lines 5.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDmkError = exports.createKeyringStateError = exports.getLedgerErrorMapping = exports.isKnownLedgerError = exports.createLedgerError = void 0; const hw_wallet_sdk_1 = require("@metamask/hw-wallet-sdk"); /** * Factory function to create a HardwareWalletError from a Ledger error code. * * @param ledgerErrorCode - The Ledger error code (e.g., '0x6985', '0x5515') * @param context - Optional additional context to append to the error message * @returns A HardwareWalletError instance with mapped error details */ function createLedgerError(ledgerErrorCode, context) { const errorMapping = getLedgerErrorMapping(ledgerErrorCode); if (errorMapping) { const message = context ? `${errorMapping.message} (${context})` : errorMapping.message; return new hw_wallet_sdk_1.HardwareWalletError(message, { code: errorMapping.code, severity: errorMapping.severity, category: errorMapping.category, userMessage: errorMapping.userMessage ?? message, }); } // Fallback for unknown error codes const fallbackMessage = context ? `Unknown Ledger error: ${ledgerErrorCode} (${context})` : `Unknown Ledger error: ${ledgerErrorCode}`; return new hw_wallet_sdk_1.HardwareWalletError(fallbackMessage, { code: hw_wallet_sdk_1.ErrorCode.Unknown, severity: hw_wallet_sdk_1.Severity.Err, category: hw_wallet_sdk_1.Category.Unknown, userMessage: fallbackMessage, }); } exports.createLedgerError = createLedgerError; /** * Checks if a Ledger error code exists in the error mappings. * * @param ledgerErrorCode - The Ledger error code to check * @returns True if the error code is mapped, false otherwise */ function isKnownLedgerError(ledgerErrorCode) { return ledgerErrorCode in hw_wallet_sdk_1.LEDGER_ERROR_MAPPINGS; } exports.isKnownLedgerError = isKnownLedgerError; /** * Gets the error mapping details for a Ledger error code without creating an error instance. * * @param ledgerErrorCode - The Ledger error code to look up * @returns The error mapping details or undefined if not found */ function getLedgerErrorMapping(ledgerErrorCode) { return hw_wallet_sdk_1.LEDGER_ERROR_MAPPINGS[ledgerErrorCode]; } exports.getLedgerErrorMapping = getLedgerErrorMapping; /** * Factory function to create a HardwareWalletError from a keyring-level error code. * * @param code - The keyring error code (e.g., ErrorCode.DeviceStateOnlyV4Supported) * @returns A HardwareWalletError instance with mapped error details */ function createKeyringStateError(code) { const errorMapping = hw_wallet_sdk_1.KEYRING_ERROR_MAPPINGS[code]; if (errorMapping) { const message = `Ledger: ${errorMapping.message}`; return new hw_wallet_sdk_1.HardwareWalletError(message, { code: errorMapping.code, severity: errorMapping.severity, category: errorMapping.category, userMessage: errorMapping.userMessage ?? message, }); } const fallbackMessage = `Unknown Ledger keyring error: ${code}`; return new hw_wallet_sdk_1.HardwareWalletError(fallbackMessage, { code: hw_wallet_sdk_1.ErrorCode.Unknown, severity: hw_wallet_sdk_1.Severity.Err, category: hw_wallet_sdk_1.Category.Unknown, userMessage: fallbackMessage, }); } exports.createKeyringStateError = createKeyringStateError; /** * Factory function to create a HardwareWalletError from a DMK (Device * Management Kit) error `_tag`. * * Looks up the tag in {@link DMK_ERROR_MAPPINGS} to resolve the full error * details (code, message, severity, category, userMessage). * * @param tag - The DMK `_tag` string (e.g. `'DeviceSessionNotFound'`, * `'DeviceLockedError'`). * @param context - Optional additional context to append to the error message. * @returns A HardwareWalletError instance with mapped error details, or a * fallback error if the tag is not recognised. */ function createDmkError(tag, context) { const errorMapping = hw_wallet_sdk_1.DMK_ERROR_MAPPINGS[tag]; if (errorMapping) { const message = context ? `${errorMapping.message} (${context})` : errorMapping.message; return new hw_wallet_sdk_1.HardwareWalletError(message, { code: errorMapping.code, severity: errorMapping.severity, category: errorMapping.category, userMessage: errorMapping.userMessage ?? message, }); } // Fallback for unknown DMK tags const fallbackMessage = context ? `Unknown DMK error: ${tag} (${context})` : `Unknown DMK error: ${tag}`; return new hw_wallet_sdk_1.HardwareWalletError(fallbackMessage, { code: hw_wallet_sdk_1.ErrorCode.Unknown, severity: hw_wallet_sdk_1.Severity.Err, category: hw_wallet_sdk_1.Category.Unknown, userMessage: fallbackMessage, }); } exports.createDmkError = createDmkError; //# sourceMappingURL=errors.cjs.map