UNPKG

@metamask/eth-ledger-bridge-keyring

Version:
83 lines 3.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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; //# sourceMappingURL=errors.cjs.map