UNPKG

@ledgerhq/errors

Version:
323 lines 25.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ManagerAppDepUninstallRequired = exports.ManagerAppDepInstallRequired = exports.ManagerAppRelyOnBTCError = exports.ManagerAppAlreadyInstalledError = exports.LedgerAPINotAvailable = exports.LedgerAPIErrorWithMessage = exports.LedgerAPIError = exports.UnknownMCU = exports.LatestFirmwareVersionRequired = exports.LatestMCUInstalledError = exports.InvalidAddressBecauseDestinationIsAlsoSource = exports.InvalidNonce = exports.InvalidAddress = exports.InvalidXRPTag = exports.HardResetFail = exports.FirmwareNotRecognized = exports.FeeEstimationFailed = exports.CeloAppPleaseEnableContractData = exports.EthAppPleaseEnableContractData = exports.EnpointConfigError = exports.DeviceOnboardingStatePollingError = exports.DeviceExtractOnboardingStateError = exports.DisconnectedDeviceDuringOperation = exports.DisconnectedDevice = exports.UnresponsiveDeviceError = exports.DeviceNeedsRestart = exports.DeviceSocketNoBulkStatus = exports.DeviceSocketFail = exports.DeviceNameInvalid = exports.DeviceHalted = exports.DeviceInOSUExpected = exports.DeviceOnDashboardUnexpected = exports.DeviceOnDashboardExpected = exports.DeviceNotGenuineError = exports.DeviceGenuineSocketEarlyClose = exports.DeviceAppVerifyNotSupported = exports.CurrencyNotSupported = exports.ClaimRewardsFeesWarning = exports.CashAddrNotSupported = exports.CantOpenDevice = exports.BtcUnmatchedApp = exports.BluetoothRequired = exports.AmountRequired = exports.AccountAwaitingSendPendingOperations = exports.AccountNotSupported = exports.AccountNameRequiredError = exports.addCustomErrorDeserializer = exports.createCustomErrorClass = exports.deserializeError = exports.serializeError = void 0; exports.PinNotSet = exports.UserRefusedOnDevice = exports.UserRefusedAllowManager = exports.UserRefusedFirmwareUpdate = exports.UserRefusedAddress = exports.UserRefusedDeviceNameChange = exports.UpdateYourApp = exports.UpdateIncorrectSig = exports.UpdateIncorrectHash = exports.UpdateFetchFileFail = exports.UnavailableTezosOriginatedAccountSend = exports.UnavailableTezosOriginatedAccountReceive = exports.RecipientRequired = exports.MCUNotGenuineToDashboard = exports.UnexpectedBootloader = exports.TimeoutTagged = exports.RecommendUndelegation = exports.RecommendSubAccountsToEmpty = exports.PasswordIncorrectError = exports.PasswordsDontMatchError = exports.MaxFeeTooLow = exports.PriorityFeeHigherThanMaxFee = exports.PriorityFeeTooHigh = exports.PriorityFeeTooLow = exports.GasLessThanEstimate = exports.NotSupportedLegacyAddress = exports.MaybeKeepTronAccountAlive = exports.TronEmptyAccount = exports.NotEnoughGasSwap = exports.NotEnoughGas = exports.NoAccessToCamera = exports.NotEnoughToStake = exports.NotEnoughBalanceBecauseDestinationNotCreated = exports.NotEnoughSpendableBalance = exports.NotEnoughBalanceInParentAccount = exports.NotEnoughToUnstake = exports.NotEnoughToRestake = exports.RestakeNotEnoughStakedBalanceLeft = exports.UnstakeNotEnoughStakedBalanceLeft = exports.NotEnoughBalanceToDelegate = exports.NotEnoughBalanceSwap = exports.NotEnoughBalanceFees = exports.NotEnoughBalance = exports.NoAddressesFound = exports.NetworkError = exports.NetworkDown = exports.ManagerUninstallBTCDep = exports.ManagerNotEnoughSpaceError = exports.ManagerFirmwareNotEnoughSpaceError = exports.ManagerDeviceLockedError = void 0; exports.DeviceMangementKitError = exports.LockedDeviceError = exports.TransportStatusError = exports.getAltStatusMessage = exports.StatusCodes = exports.TransportError = exports.HwTransportError = exports.HwTransportErrorType = exports.DisabledTransactionBroadcastError = exports.SequenceNumberError = exports.DBNotReset = exports.DBWrongPassword = exports.NoDBPathGiven = exports.LanguageNotFound = exports.DustLimit = exports.OpReturnDataSizeLimit = exports.ReplacementTransactionUnderpriced = exports.FirmwareOrAppUpdateRequired = exports.LedgerAPI5xx = exports.LedgerAPI4xx = exports.GenuineCheckFailed = exports.PeerRemovedPairing = exports.PairingFailed = exports.SyncError = exports.PendingOperation = exports.FeeTooHigh = exports.FeeRequired = exports.FeeNotLoadedSwap = exports.FeeNotLoaded = exports.CantScanQRCode = exports.ETHAddressNonEIP = exports.WrongAppForCurrency = exports.WrongDeviceForAccountRefund = exports.MissingSwapPayloadParamaters = exports.WrongDeviceForAccountPayout = exports.WrongDeviceForAccount = exports.WebsocketConnectionFailed = exports.WebsocketConnectionError = exports.DeviceShouldStayInApp = exports.TransportExchangeTimeoutError = exports.TransactionHasBeenValidatedError = exports.TransportWebUSBGestureRequired = exports.TransportRaceCondition = exports.TransportInterfaceNotAvailable = exports.TransportOpenUserCancelled = exports.ExpertModeRequired = void 0; const helpers_1 = require("./helpers"); Object.defineProperty(exports, "serializeError", { enumerable: true, get: function () { return helpers_1.serializeError; } }); Object.defineProperty(exports, "deserializeError", { enumerable: true, get: function () { return helpers_1.deserializeError; } }); Object.defineProperty(exports, "createCustomErrorClass", { enumerable: true, get: function () { return helpers_1.createCustomErrorClass; } }); Object.defineProperty(exports, "addCustomErrorDeserializer", { enumerable: true, get: function () { return helpers_1.addCustomErrorDeserializer; } }); exports.AccountNameRequiredError = (0, helpers_1.createCustomErrorClass)("AccountNameRequired"); exports.AccountNotSupported = (0, helpers_1.createCustomErrorClass)("AccountNotSupported"); exports.AccountAwaitingSendPendingOperations = (0, helpers_1.createCustomErrorClass)("AccountAwaitingSendPendingOperations"); exports.AmountRequired = (0, helpers_1.createCustomErrorClass)("AmountRequired"); exports.BluetoothRequired = (0, helpers_1.createCustomErrorClass)("BluetoothRequired"); exports.BtcUnmatchedApp = (0, helpers_1.createCustomErrorClass)("BtcUnmatchedApp"); exports.CantOpenDevice = (0, helpers_1.createCustomErrorClass)("CantOpenDevice"); exports.CashAddrNotSupported = (0, helpers_1.createCustomErrorClass)("CashAddrNotSupported"); exports.ClaimRewardsFeesWarning = (0, helpers_1.createCustomErrorClass)("ClaimRewardsFeesWarning"); exports.CurrencyNotSupported = (0, helpers_1.createCustomErrorClass)("CurrencyNotSupported"); exports.DeviceAppVerifyNotSupported = (0, helpers_1.createCustomErrorClass)("DeviceAppVerifyNotSupported"); exports.DeviceGenuineSocketEarlyClose = (0, helpers_1.createCustomErrorClass)("DeviceGenuineSocketEarlyClose"); exports.DeviceNotGenuineError = (0, helpers_1.createCustomErrorClass)("DeviceNotGenuine"); exports.DeviceOnDashboardExpected = (0, helpers_1.createCustomErrorClass)("DeviceOnDashboardExpected"); exports.DeviceOnDashboardUnexpected = (0, helpers_1.createCustomErrorClass)("DeviceOnDashboardUnexpected"); exports.DeviceInOSUExpected = (0, helpers_1.createCustomErrorClass)("DeviceInOSUExpected"); exports.DeviceHalted = (0, helpers_1.createCustomErrorClass)("DeviceHalted"); exports.DeviceNameInvalid = (0, helpers_1.createCustomErrorClass)("DeviceNameInvalid"); exports.DeviceSocketFail = (0, helpers_1.createCustomErrorClass)("DeviceSocketFail"); exports.DeviceSocketNoBulkStatus = (0, helpers_1.createCustomErrorClass)("DeviceSocketNoBulkStatus"); exports.DeviceNeedsRestart = (0, helpers_1.createCustomErrorClass)("DeviceSocketNoBulkStatus"); exports.UnresponsiveDeviceError = (0, helpers_1.createCustomErrorClass)("UnresponsiveDeviceError"); exports.DisconnectedDevice = (0, helpers_1.createCustomErrorClass)("DisconnectedDevice"); exports.DisconnectedDeviceDuringOperation = (0, helpers_1.createCustomErrorClass)("DisconnectedDeviceDuringOperation"); exports.DeviceExtractOnboardingStateError = (0, helpers_1.createCustomErrorClass)("DeviceExtractOnboardingStateError"); exports.DeviceOnboardingStatePollingError = (0, helpers_1.createCustomErrorClass)("DeviceOnboardingStatePollingError"); exports.EnpointConfigError = (0, helpers_1.createCustomErrorClass)("EnpointConfig"); exports.EthAppPleaseEnableContractData = (0, helpers_1.createCustomErrorClass)("EthAppPleaseEnableContractData"); exports.CeloAppPleaseEnableContractData = (0, helpers_1.createCustomErrorClass)("CeloAppPleaseEnableContractData"); exports.FeeEstimationFailed = (0, helpers_1.createCustomErrorClass)("FeeEstimationFailed"); exports.FirmwareNotRecognized = (0, helpers_1.createCustomErrorClass)("FirmwareNotRecognized"); exports.HardResetFail = (0, helpers_1.createCustomErrorClass)("HardResetFail"); exports.InvalidXRPTag = (0, helpers_1.createCustomErrorClass)("InvalidXRPTag"); exports.InvalidAddress = (0, helpers_1.createCustomErrorClass)("InvalidAddress"); exports.InvalidNonce = (0, helpers_1.createCustomErrorClass)("InvalidNonce"); exports.InvalidAddressBecauseDestinationIsAlsoSource = (0, helpers_1.createCustomErrorClass)("InvalidAddressBecauseDestinationIsAlsoSource"); exports.LatestMCUInstalledError = (0, helpers_1.createCustomErrorClass)("LatestMCUInstalledError"); exports.LatestFirmwareVersionRequired = (0, helpers_1.createCustomErrorClass)("LatestFirmwareVersionRequired"); exports.UnknownMCU = (0, helpers_1.createCustomErrorClass)("UnknownMCU"); exports.LedgerAPIError = (0, helpers_1.createCustomErrorClass)("LedgerAPIError"); exports.LedgerAPIErrorWithMessage = (0, helpers_1.createCustomErrorClass)("LedgerAPIErrorWithMessage"); exports.LedgerAPINotAvailable = (0, helpers_1.createCustomErrorClass)("LedgerAPINotAvailable"); exports.ManagerAppAlreadyInstalledError = (0, helpers_1.createCustomErrorClass)("ManagerAppAlreadyInstalled"); exports.ManagerAppRelyOnBTCError = (0, helpers_1.createCustomErrorClass)("ManagerAppRelyOnBTC"); exports.ManagerAppDepInstallRequired = (0, helpers_1.createCustomErrorClass)("ManagerAppDepInstallRequired"); exports.ManagerAppDepUninstallRequired = (0, helpers_1.createCustomErrorClass)("ManagerAppDepUninstallRequired"); exports.ManagerDeviceLockedError = (0, helpers_1.createCustomErrorClass)("ManagerDeviceLocked"); exports.ManagerFirmwareNotEnoughSpaceError = (0, helpers_1.createCustomErrorClass)("ManagerFirmwareNotEnoughSpace"); exports.ManagerNotEnoughSpaceError = (0, helpers_1.createCustomErrorClass)("ManagerNotEnoughSpace"); exports.ManagerUninstallBTCDep = (0, helpers_1.createCustomErrorClass)("ManagerUninstallBTCDep"); exports.NetworkDown = (0, helpers_1.createCustomErrorClass)("NetworkDown"); exports.NetworkError = (0, helpers_1.createCustomErrorClass)("NetworkError"); exports.NoAddressesFound = (0, helpers_1.createCustomErrorClass)("NoAddressesFound"); exports.NotEnoughBalance = (0, helpers_1.createCustomErrorClass)("NotEnoughBalance"); exports.NotEnoughBalanceFees = (0, helpers_1.createCustomErrorClass)("NotEnoughBalanceFees"); exports.NotEnoughBalanceSwap = (0, helpers_1.createCustomErrorClass)("NotEnoughBalanceSwap"); exports.NotEnoughBalanceToDelegate = (0, helpers_1.createCustomErrorClass)("NotEnoughBalanceToDelegate"); exports.UnstakeNotEnoughStakedBalanceLeft = (0, helpers_1.createCustomErrorClass)("UnstakeNotEnoughStakedBalanceLeft"); exports.RestakeNotEnoughStakedBalanceLeft = (0, helpers_1.createCustomErrorClass)("RestakeNotEnoughStakedBalanceLeft"); exports.NotEnoughToRestake = (0, helpers_1.createCustomErrorClass)("NotEnoughToRestake"); exports.NotEnoughToUnstake = (0, helpers_1.createCustomErrorClass)("NotEnoughToUnstake"); exports.NotEnoughBalanceInParentAccount = (0, helpers_1.createCustomErrorClass)("NotEnoughBalanceInParentAccount"); exports.NotEnoughSpendableBalance = (0, helpers_1.createCustomErrorClass)("NotEnoughSpendableBalance"); exports.NotEnoughBalanceBecauseDestinationNotCreated = (0, helpers_1.createCustomErrorClass)("NotEnoughBalanceBecauseDestinationNotCreated"); exports.NotEnoughToStake = (0, helpers_1.createCustomErrorClass)("NotEnoughToStake"); exports.NoAccessToCamera = (0, helpers_1.createCustomErrorClass)("NoAccessToCamera"); exports.NotEnoughGas = (0, helpers_1.createCustomErrorClass)("NotEnoughGas"); // Error message specifically for the PTX swap flow exports.NotEnoughGasSwap = (0, helpers_1.createCustomErrorClass)("NotEnoughGasSwap"); exports.TronEmptyAccount = (0, helpers_1.createCustomErrorClass)("TronEmptyAccount"); exports.MaybeKeepTronAccountAlive = (0, helpers_1.createCustomErrorClass)("MaybeKeepTronAccountAlive"); exports.NotSupportedLegacyAddress = (0, helpers_1.createCustomErrorClass)("NotSupportedLegacyAddress"); exports.GasLessThanEstimate = (0, helpers_1.createCustomErrorClass)("GasLessThanEstimate"); exports.PriorityFeeTooLow = (0, helpers_1.createCustomErrorClass)("PriorityFeeTooLow"); exports.PriorityFeeTooHigh = (0, helpers_1.createCustomErrorClass)("PriorityFeeTooHigh"); exports.PriorityFeeHigherThanMaxFee = (0, helpers_1.createCustomErrorClass)("PriorityFeeHigherThanMaxFee"); exports.MaxFeeTooLow = (0, helpers_1.createCustomErrorClass)("MaxFeeTooLow"); exports.PasswordsDontMatchError = (0, helpers_1.createCustomErrorClass)("PasswordsDontMatch"); exports.PasswordIncorrectError = (0, helpers_1.createCustomErrorClass)("PasswordIncorrect"); exports.RecommendSubAccountsToEmpty = (0, helpers_1.createCustomErrorClass)("RecommendSubAccountsToEmpty"); exports.RecommendUndelegation = (0, helpers_1.createCustomErrorClass)("RecommendUndelegation"); exports.TimeoutTagged = (0, helpers_1.createCustomErrorClass)("TimeoutTagged"); exports.UnexpectedBootloader = (0, helpers_1.createCustomErrorClass)("UnexpectedBootloader"); exports.MCUNotGenuineToDashboard = (0, helpers_1.createCustomErrorClass)("MCUNotGenuineToDashboard"); exports.RecipientRequired = (0, helpers_1.createCustomErrorClass)("RecipientRequired"); exports.UnavailableTezosOriginatedAccountReceive = (0, helpers_1.createCustomErrorClass)("UnavailableTezosOriginatedAccountReceive"); exports.UnavailableTezosOriginatedAccountSend = (0, helpers_1.createCustomErrorClass)("UnavailableTezosOriginatedAccountSend"); exports.UpdateFetchFileFail = (0, helpers_1.createCustomErrorClass)("UpdateFetchFileFail"); exports.UpdateIncorrectHash = (0, helpers_1.createCustomErrorClass)("UpdateIncorrectHash"); exports.UpdateIncorrectSig = (0, helpers_1.createCustomErrorClass)("UpdateIncorrectSig"); exports.UpdateYourApp = (0, helpers_1.createCustomErrorClass)("UpdateYourApp"); exports.UserRefusedDeviceNameChange = (0, helpers_1.createCustomErrorClass)("UserRefusedDeviceNameChange"); exports.UserRefusedAddress = (0, helpers_1.createCustomErrorClass)("UserRefusedAddress"); exports.UserRefusedFirmwareUpdate = (0, helpers_1.createCustomErrorClass)("UserRefusedFirmwareUpdate"); exports.UserRefusedAllowManager = (0, helpers_1.createCustomErrorClass)("UserRefusedAllowManager"); exports.UserRefusedOnDevice = (0, helpers_1.createCustomErrorClass)("UserRefusedOnDevice"); // TODO rename because it's just for transaction refusal exports.PinNotSet = (0, helpers_1.createCustomErrorClass)("PinNotSet"); exports.ExpertModeRequired = (0, helpers_1.createCustomErrorClass)("ExpertModeRequired"); exports.TransportOpenUserCancelled = (0, helpers_1.createCustomErrorClass)("TransportOpenUserCancelled"); exports.TransportInterfaceNotAvailable = (0, helpers_1.createCustomErrorClass)("TransportInterfaceNotAvailable"); exports.TransportRaceCondition = (0, helpers_1.createCustomErrorClass)("TransportRaceCondition"); exports.TransportWebUSBGestureRequired = (0, helpers_1.createCustomErrorClass)("TransportWebUSBGestureRequired"); exports.TransactionHasBeenValidatedError = (0, helpers_1.createCustomErrorClass)("TransactionHasBeenValidatedError"); exports.TransportExchangeTimeoutError = (0, helpers_1.createCustomErrorClass)("TransportExchangeTimeoutError"); exports.DeviceShouldStayInApp = (0, helpers_1.createCustomErrorClass)("DeviceShouldStayInApp"); exports.WebsocketConnectionError = (0, helpers_1.createCustomErrorClass)("WebsocketConnectionError"); exports.WebsocketConnectionFailed = (0, helpers_1.createCustomErrorClass)("WebsocketConnectionFailed"); exports.WrongDeviceForAccount = (0, helpers_1.createCustomErrorClass)("WrongDeviceForAccount"); exports.WrongDeviceForAccountPayout = (0, helpers_1.createCustomErrorClass)("WrongDeviceForAccountPayout"); exports.MissingSwapPayloadParamaters = (0, helpers_1.createCustomErrorClass)("MissingSwapPayloadParamaters"); exports.WrongDeviceForAccountRefund = (0, helpers_1.createCustomErrorClass)("WrongDeviceForAccountRefund"); exports.WrongAppForCurrency = (0, helpers_1.createCustomErrorClass)("WrongAppForCurrency"); exports.ETHAddressNonEIP = (0, helpers_1.createCustomErrorClass)("ETHAddressNonEIP"); exports.CantScanQRCode = (0, helpers_1.createCustomErrorClass)("CantScanQRCode"); exports.FeeNotLoaded = (0, helpers_1.createCustomErrorClass)("FeeNotLoaded"); exports.FeeNotLoadedSwap = (0, helpers_1.createCustomErrorClass)("FeeNotLoadedSwap"); exports.FeeRequired = (0, helpers_1.createCustomErrorClass)("FeeRequired"); exports.FeeTooHigh = (0, helpers_1.createCustomErrorClass)("FeeTooHigh"); exports.PendingOperation = (0, helpers_1.createCustomErrorClass)("PendingOperation"); exports.SyncError = (0, helpers_1.createCustomErrorClass)("SyncError"); exports.PairingFailed = (0, helpers_1.createCustomErrorClass)("PairingFailed"); exports.PeerRemovedPairing = (0, helpers_1.createCustomErrorClass)("PeerRemovedPairing"); exports.GenuineCheckFailed = (0, helpers_1.createCustomErrorClass)("GenuineCheckFailed"); exports.LedgerAPI4xx = (0, helpers_1.createCustomErrorClass)("LedgerAPI4xx"); exports.LedgerAPI5xx = (0, helpers_1.createCustomErrorClass)("LedgerAPI5xx"); exports.FirmwareOrAppUpdateRequired = (0, helpers_1.createCustomErrorClass)("FirmwareOrAppUpdateRequired"); // SpeedUp / Cancel EVM tx exports.ReplacementTransactionUnderpriced = (0, helpers_1.createCustomErrorClass)("ReplacementTransactionUnderpriced"); // Bitcoin family exports.OpReturnDataSizeLimit = (0, helpers_1.createCustomErrorClass)("OpReturnSizeLimit"); exports.DustLimit = (0, helpers_1.createCustomErrorClass)("DustLimit"); // Language exports.LanguageNotFound = (0, helpers_1.createCustomErrorClass)("LanguageNotFound"); // db stuff, no need to translate exports.NoDBPathGiven = (0, helpers_1.createCustomErrorClass)("NoDBPathGiven"); exports.DBWrongPassword = (0, helpers_1.createCustomErrorClass)("DBWrongPassword"); exports.DBNotReset = (0, helpers_1.createCustomErrorClass)("DBNotReset"); exports.SequenceNumberError = (0, helpers_1.createCustomErrorClass)("SequenceNumberError"); exports.DisabledTransactionBroadcastError = (0, helpers_1.createCustomErrorClass)("DisabledTransactionBroadcastError"); /** * Type of a Transport error used to represent all equivalent errors coming from all possible implementation of Transport */ var HwTransportErrorType; (function (HwTransportErrorType) { HwTransportErrorType["Unknown"] = "Unknown"; HwTransportErrorType["LocationServicesDisabled"] = "LocationServicesDisabled"; HwTransportErrorType["LocationServicesUnauthorized"] = "LocationServicesUnauthorized"; HwTransportErrorType["BluetoothScanStartFailed"] = "BluetoothScanStartFailed"; })(HwTransportErrorType || (exports.HwTransportErrorType = HwTransportErrorType = {})); /** * Represents an error coming from the usage of any Transport implementation. * * Needed to map a specific implementation error into an error that * can be managed by any code unaware of the specific Transport implementation * that was used. */ class HwTransportError extends Error { type; constructor(type, message) { super(message); this.name = "HwTransportError"; this.type = type; // Needed as long as we target < ES6 Object.setPrototypeOf(this, HwTransportError.prototype); } } exports.HwTransportError = HwTransportError; /** * TransportError is used for any generic transport errors. * e.g. Error thrown when data received by exchanges are incorrect or if exchanged failed to communicate with the device for various reason. */ class TransportError extends Error { id; constructor(message, id) { const name = "TransportError"; super(message || name); this.name = name; this.message = message; this.stack = new Error(message).stack; this.id = id; } } exports.TransportError = TransportError; (0, helpers_1.addCustomErrorDeserializer)("TransportError", e => new TransportError(e.message, e.id)); exports.StatusCodes = { ACCESS_CONDITION_NOT_FULFILLED: 0x9804, ALGORITHM_NOT_SUPPORTED: 0x9484, CLA_NOT_SUPPORTED: 0x6e00, CODE_BLOCKED: 0x9840, CODE_NOT_INITIALIZED: 0x9802, COMMAND_INCOMPATIBLE_FILE_STRUCTURE: 0x6981, CONDITIONS_OF_USE_NOT_SATISFIED: 0x6985, CONTRADICTION_INVALIDATION: 0x9810, CONTRADICTION_SECRET_CODE_STATUS: 0x9808, DEVICE_IN_RECOVERY_MODE: 0x662f, CUSTOM_IMAGE_EMPTY: 0x662e, FILE_ALREADY_EXISTS: 0x6a89, FILE_NOT_FOUND: 0x9404, GP_AUTH_FAILED: 0x6300, HALTED: 0x6faa, INCONSISTENT_FILE: 0x9408, INCORRECT_DATA: 0x6a80, INCORRECT_LENGTH: 0x6700, INCORRECT_P1_P2: 0x6b00, INS_NOT_SUPPORTED: 0x6d00, DEVICE_NOT_ONBOARDED: 0x6d07, DEVICE_NOT_ONBOARDED_2: 0x6611, INVALID_KCV: 0x9485, INVALID_OFFSET: 0x9402, LICENSING: 0x6f42, LOCKED_DEVICE: 0x5515, MAX_VALUE_REACHED: 0x9850, MEMORY_PROBLEM: 0x9240, MISSING_CRITICAL_PARAMETER: 0x6800, NO_EF_SELECTED: 0x9400, NOT_ENOUGH_MEMORY_SPACE: 0x6a84, OK: 0x9000, PIN_REMAINING_ATTEMPTS: 0x63c0, REFERENCED_DATA_NOT_FOUND: 0x6a88, SECURITY_STATUS_NOT_SATISFIED: 0x6982, TECHNICAL_PROBLEM: 0x6f00, UNKNOWN_APDU: 0x6d02, USER_REFUSED_ON_DEVICE: 0x5501, NOT_ENOUGH_SPACE: 0x5102, APP_NOT_FOUND_OR_INVALID_CONTEXT: 0x5123, INVALID_APP_NAME_LENGTH: 0x670a, GEN_AES_KEY_FAILED: 0x5419, INTERNAL_CRYPTO_OPERATION_FAILED: 0x541a, INTERNAL_COMPUTE_AES_CMAC_FAILED: 0x541b, ENCRYPT_APP_STORAGE_FAILED: 0x541c, INVALID_BACKUP_STATE: 0x6642, PIN_NOT_SET: 0x5502, INVALID_BACKUP_LENGTH: 0x6733, INVALID_RESTORE_STATE: 0x6643, INVALID_CHUNK_LENGTH: 0x6734, INVALID_BACKUP_HEADER: 0x684a, // Not documented: TRUSTCHAIN_WRONG_SEED: 0xb007, }; function getAltStatusMessage(code) { switch (code) { // improve text of most common errors case 0x6700: return "Incorrect length"; case 0x6800: return "Missing critical parameter"; case 0x6982: return "Security not satisfied (dongle locked or have invalid access rights)"; case 0x6985: return "Condition of use not satisfied (denied by the user?)"; case 0x6a80: return "Invalid data received"; case 0x6b00: return "Invalid parameter received"; case 0x5515: return "Locked device"; } if (0x6f00 <= code && code <= 0x6fff) { return "Internal error, please report"; } } exports.getAltStatusMessage = getAltStatusMessage; /** * Error thrown when a device returned a non success status. * the error.statusCode is one of the `StatusCodes` exported by this library. */ class TransportStatusError extends Error { statusCode; statusText; /** * @param statusCode The error status code coming from a Transport implementation * @param options containing: * - canBeMappedToChildError: enable the mapping of TransportStatusError to an error extending/inheriting from it * . Ex: LockedDeviceError. Default to true. */ constructor(statusCode, { canBeMappedToChildError = true } = {}) { const statusText = Object.keys(exports.StatusCodes).find(k => exports.StatusCodes[k] === statusCode) || "UNKNOWN_ERROR"; const smsg = getAltStatusMessage(statusCode) || statusText; const statusCodeStr = statusCode.toString(16); const message = `Ledger device: ${smsg} (0x${statusCodeStr})`; super(message); this.name = "TransportStatusError"; this.statusCode = statusCode; this.statusText = statusText; Object.setPrototypeOf(this, TransportStatusError.prototype); // Maps to a LockedDeviceError if (canBeMappedToChildError && statusCode === exports.StatusCodes.LOCKED_DEVICE) { return new LockedDeviceError(message); } } } exports.TransportStatusError = TransportStatusError; class LockedDeviceError extends TransportStatusError { constructor(message) { super(exports.StatusCodes.LOCKED_DEVICE, { canBeMappedToChildError: false }); if (message) { this.message = message; } this.name = "LockedDeviceError"; Object.setPrototypeOf(this, LockedDeviceError.prototype); } } exports.LockedDeviceError = LockedDeviceError; class DeviceMangementKitError extends Error { constructor(name, message) { super(message); this.name = name; Object.setPrototypeOf(this, DeviceMangementKitError.prototype); } } exports.DeviceMangementKitError = DeviceMangementKitError; (0, helpers_1.addCustomErrorDeserializer)("TransportStatusError", e => new TransportStatusError(e.statusCode)); //# sourceMappingURL=index.js.map