UNPKG

@metamask/eth-trezor-keyring

Version:

A MetaMask compatible keyring, for trezor hardware wallets

53 lines 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleTrezorTransportError = void 0; const hw_wallet_sdk_1 = require("@metamask/hw-wallet-sdk"); const trezor_errors_1 = require("./trezor-errors.cjs"); function getErrorDetails(error) { const details = { message: error.message, name: error.name, }; if ('code' in error) { const { code } = error; if (typeof code === 'string') { details.code = code; } } return details; } /** * Converts unknown Trezor errors into typed HardwareWalletError instances. * * @param error - Error thrown from Trezor bridge or keyring flow. * @param fallbackMessage - Default message for unknown non-Error inputs. * @throws HardwareWalletError Always throws typed errors. */ function handleTrezorTransportError(error, fallbackMessage) { var _a, _b; if (error instanceof hw_wallet_sdk_1.HardwareWalletError) { throw error; } if (error instanceof Error) { const details = getErrorDetails(error); const identifier = [details.code, details.name, details.message].find((value) => value !== undefined && (0, trezor_errors_1.isKnownTrezorError)(value)); if (identifier) { throw (0, trezor_errors_1.createTrezorError)(identifier, details.message); } throw new hw_wallet_sdk_1.HardwareWalletError((_a = details.message) !== null && _a !== void 0 ? _a : fallbackMessage, { code: hw_wallet_sdk_1.ErrorCode.Unknown, severity: hw_wallet_sdk_1.Severity.Err, category: hw_wallet_sdk_1.Category.Unknown, userMessage: (_b = details.message) !== null && _b !== void 0 ? _b : fallbackMessage, cause: error, }); } throw 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.handleTrezorTransportError = handleTrezorTransportError; //# sourceMappingURL=trezor-error-handler.cjs.map