{"version":3,"file":"hardware-error-mappings.cjs","sourceRoot":"","sources":["../src/hardware-error-mappings.ts"],"names":[],"mappings":"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","sourcesContent":["import { ErrorCode, Severity, Category } from './hardware-errors-enums';\n\nexport type ErrorMapping = {\n  code: ErrorCode;\n  message: string;\n  severity: Severity;\n  category: Category;\n  userMessage?: string;\n};\n\nexport const LEDGER_ERROR_MAPPINGS: Record<string, ErrorMapping> = {\n  '0x9000': {\n    code: ErrorCode.Success,\n    message: 'Operation successful',\n    severity: Severity.Info,\n    category: Category.Success,\n  },\n  '0x6300': {\n    code: ErrorCode.AuthenticationFailed,\n    message: 'Authentication failed',\n    severity: Severity.Err,\n    category: Category.Authentication,\n    userMessage: 'Authentication failed. Please verify your credentials.',\n  },\n  '0x63c0': {\n    code: ErrorCode.AuthenticationPinAttemptsRemaining,\n    message: 'PIN attempts remaining',\n    severity: Severity.Warning,\n    category: Category.Authentication,\n    userMessage: 'Incorrect PIN. Please try again.',\n  },\n  '0x6982': {\n    code: ErrorCode.AuthenticationSecurityCondition,\n    message: 'Security conditions not satisfied',\n    severity: Severity.Err,\n    category: Category.Authentication,\n\n    userMessage:\n      'Device is locked or access rights are insufficient. Please unlock your device.',\n  },\n  '0x6985': {\n    code: ErrorCode.UserRejected,\n    message: 'User rejected action on device',\n    severity: Severity.Warning,\n    category: Category.UserAction,\n\n    userMessage:\n      'Transaction was rejected. Please approve on your device to continue.',\n  },\n  '0x9804': {\n    code: ErrorCode.AuthenticationSecurityCondition,\n    message: 'App update required',\n    severity: Severity.Err,\n    category: Category.Authentication,\n\n    userMessage: 'Please update your Ledger app to continue.',\n  },\n  '0x9808': {\n    code: ErrorCode.AuthenticationFailed,\n    message: 'Contradiction in secret code status',\n    severity: Severity.Err,\n    category: Category.Authentication,\n  },\n  '0x9840': {\n    code: ErrorCode.AuthenticationDeviceBlocked,\n    message: 'Code blocked',\n    severity: Severity.Critical,\n    category: Category.Authentication,\n\n    userMessage:\n      'Your device is blocked due to too many failed attempts. Please follow device recovery procedures.',\n  },\n  '0x650f': {\n    code: ErrorCode.DeviceStateEthAppClosed,\n    message: 'Ethereum app closed',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage:\n      'Ethereum app is closed. Please open it on your Ledger device to continue.',\n  },\n  '0x5515': {\n    code: ErrorCode.AuthenticationDeviceLocked,\n    message: 'Device is locked',\n    severity: Severity.Err,\n    category: Category.Authentication,\n    userMessage: 'Please unlock your Ledger device to continue.',\n  },\n  '0x5501': {\n    code: ErrorCode.UserRejected,\n    message: 'User refused on device',\n    severity: Severity.Warning,\n    category: Category.UserAction,\n    userMessage:\n      'Operation was rejected. Please approve on your device to continue.',\n  },\n  '0x6a80': {\n    code: ErrorCode.DeviceStateBlindSignNotSupported,\n    message: 'Blind signing not supported',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage: 'Blind signing is not supported on this device.',\n  },\n  '0x6a83': {\n    code: ErrorCode.DeviceStateEthAppClosed,\n    message: 'Ethereum app closed',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage:\n      'Ethereum app is closed. Currently on solana. Please open it to continue.',\n  },\n  '0x6d00': {\n    code: ErrorCode.DeviceStateEthAppClosed,\n    message: 'Ethereum app closed',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage:\n      'Ethereum app is closed. Currently on bitcoin. Please open it to continue.',\n  },\n  '0x6e00': {\n    code: ErrorCode.DeviceStateEthAppClosed,\n    message: 'Ethereum app closed',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage: 'Ethereum app is closed. Please open it to continue.',\n  },\n  '0x6501': {\n    code: ErrorCode.DeviceStateEthAppOutOfDate,\n    message: 'Ethereum app out of date',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage: 'Ethereum app is out of date. Please update it to continue.',\n  },\n  '0x6f00': {\n    code: ErrorCode.DeviceUnresponsive,\n    message: 'Device unresponsive',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage:\n      'Your device is not responding. Please disconnect and reconnect your device.',\n  },\n  '0x6b0c': {\n    code: ErrorCode.AuthenticationDeviceLocked,\n    message: 'Device locked',\n    severity: Severity.Err,\n    category: Category.Authentication,\n    userMessage: 'Please unlock your Ledger device to continue.',\n  },\n  '0x6a15': {\n    code: ErrorCode.DeviceStateEthAppClosed,\n    message: 'Ethereum app closed',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage: 'Ethereum app is closed. Please open it to continue.',\n  },\n  '0x6511': {\n    code: ErrorCode.DeviceStateEthAppClosed,\n    message: 'Ethereum app closed',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage: 'Ethereum app is closed. Please open it to continue.',\n  },\n};\n\nexport const BLE_ERROR_MAPPINGS = {\n  BLUETOOTH_PERMISSION_DENIED: {\n    code: ErrorCode.PermissionBluetoothDenied,\n    message: 'Bluetooth permission denied',\n    severity: Severity.Err,\n    category: Category.Configuration,\n    userMessage:\n      'Bluetooth permission is required to connect to your hardware wallet. Please enable it in your device settings.',\n  },\n  LOCATION_PERMISSION_DENIED: {\n    code: ErrorCode.PermissionLocationDenied,\n    message: 'Location permission denied',\n    severity: Severity.Err,\n    category: Category.Configuration,\n    userMessage:\n      'Location permission is required for Bluetooth scanning on Android. Please enable it in your device settings.',\n  },\n  NEARBY_DEVICES_PERMISSION_DENIED: {\n    code: ErrorCode.PermissionNearbyDevicesDenied,\n    message: 'Nearby devices permission denied',\n    severity: Severity.Err,\n    category: Category.Configuration,\n    userMessage:\n      'Nearby devices permission is required to scan for your hardware wallet. Please enable it in your device settings.',\n  },\n  BLUETOOTH_DISABLED: {\n    code: ErrorCode.BluetoothDisabled,\n    message: 'Bluetooth is turned off',\n    severity: Severity.Warning,\n    category: Category.Connection,\n    userMessage:\n      'Bluetooth is turned off. Please enable Bluetooth to connect to your hardware wallet.',\n  },\n  BLUETOOTH_SCAN_FAILED: {\n    code: ErrorCode.BluetoothScanFailed,\n    message: 'Bluetooth scanning failed',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage: 'Unable to scan for Bluetooth devices. Please try again.',\n  },\n  BLUETOOTH_CONNECTION_FAILED: {\n    code: ErrorCode.BluetoothConnectionFailed,\n    message: 'Bluetooth connection failed',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage:\n      'Failed to connect via Bluetooth. Please make sure your device is nearby and try again.',\n  },\n};\n\nexport const MOBILE_ERROR_MAPPINGS = {\n  CAMERA_PERMISSION_DENIED: {\n    code: ErrorCode.PermissionCameraDenied,\n    message: 'Camera permission denied',\n    severity: Severity.Err,\n    category: Category.Configuration,\n    userMessage:\n      'Camera permission is required to scan QR codes. Please enable it in your device settings.',\n  },\n  NOT_SUPPORTED: {\n    code: ErrorCode.MobileNotSupported,\n    message: 'Operation not supported on mobile',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage: 'This operation is not supported on mobile devices.',\n  },\n};\n\n/**\n * QR error mappings - static error data for QR hardware wallets and their related flows.\n */\nexport const QR_WALLET_ERROR_MAPPINGS: Record<string, ErrorMapping> = {\n  CAMERA_PERMISSION_PROMPT_DISMISSED: {\n    code: ErrorCode.PermissionCameraPromptDismissed,\n    message: 'Camera permission prompt dismissed without granting access',\n    severity: Severity.Warning,\n    category: Category.Configuration,\n    userMessage:\n      'MetaMask needs camera access to scan the QR code on your device.',\n  },\n  CAMERA_PERMISSION_BLOCKED: {\n    code: ErrorCode.PermissionCameraDenied,\n    message: 'Camera permission blocked by the browser',\n    severity: Severity.Err,\n    category: Category.Configuration,\n    userMessage: 'To continue, allow camera access in your browser settings.',\n  },\n};\n\n/**\n * Trezor error mappings - static error data for Trezor hardware wallets.\n * These mappings provide consistent error classification across Trezor integrations.\n */\nexport const TREZOR_ERROR_MAPPINGS: Record<string, ErrorMapping> = {\n  Transport_Missing: {\n    code: ErrorCode.ConnectionTransportMissing,\n    message: 'Trezor transport is unavailable',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage:\n      'Unable to connect to your Trezor device. Please reconnect and try again.',\n  },\n  Device_Disconnected: {\n    code: ErrorCode.DeviceDisconnected,\n    message: 'Trezor device disconnected',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage:\n      'Your Trezor device was disconnected. Please reconnect and try again.',\n  },\n  Popup_ConnectionMissing: {\n    code: ErrorCode.ConnectionClosed,\n    message: 'Trezor popup connection unavailable',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage: 'Connection to your Trezor device popup failed. Please retry.',\n  },\n  Desktop_ConnectionMissing: {\n    code: ErrorCode.ConnectionClosed,\n    message: 'Trezor desktop connection unavailable',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage:\n      'Connection to Trezor Suite failed. Please retry with your device connected.',\n  },\n  Method_Interrupted: {\n    code: ErrorCode.ConnectionClosed,\n    message: 'Trezor action was interrupted',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage:\n      'Connection to your Trezor device was closed. Please reconnect and try again.',\n  },\n  Method_Cancel: {\n    code: ErrorCode.UserCancelled,\n    message: 'User cancelled action on Trezor device',\n    severity: Severity.Warning,\n    category: Category.UserAction,\n    userMessage: 'Action was cancelled on your Trezor device.',\n  },\n  Method_PermissionsNotGranted: {\n    code: ErrorCode.UserRejected,\n    message: 'Permission not granted on Trezor device',\n    severity: Severity.Warning,\n    category: Category.UserAction,\n    userMessage: 'Permission was rejected on your Trezor device.',\n  },\n  Failure_ActionCancelled: {\n    code: ErrorCode.UserCancelled,\n    message: 'User cancelled action on Trezor device',\n    severity: Severity.Warning,\n    category: Category.UserAction,\n    userMessage: 'Action was cancelled on your Trezor device.',\n  },\n  Device_InvalidState: {\n    code: ErrorCode.AuthenticationFailed,\n    message: 'Trezor device authentication failed',\n    severity: Severity.Err,\n    category: Category.Authentication,\n    userMessage:\n      'Authentication failed on your Trezor device. Check your passphrase and retry.',\n  },\n  Device_CallInProgress: {\n    code: ErrorCode.DeviceCallInProgress,\n    message: 'Trezor device call already in progress',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage:\n      'Your Trezor device is busy. Finish the current action and retry.',\n  },\n  Init_IframeTimeout: {\n    code: ErrorCode.ConnectionTimeout,\n    message: 'Trezor connection timed out',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage:\n      'Connection to your Trezor device timed out. Please try again.',\n  },\n  Init_IframeBlocked: {\n    code: ErrorCode.ConnectionBlocked,\n    message: 'Trezor iframe blocked',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage:\n      'Trezor connection popup was blocked. Please allow popups and try again.',\n  },\n  Init_ManifestMissing: {\n    code: ErrorCode.Unknown,\n    message: 'Trezor manifest is missing',\n    severity: Severity.Err,\n    category: Category.Configuration,\n    userMessage:\n      'Trezor integration is not configured correctly. Please retry later.',\n  },\n  Device_NotFound: {\n    code: ErrorCode.DeviceNotFound,\n    message: 'Trezor device not found',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage:\n      'No Trezor device found. Please connect your device and try again.',\n  },\n  Device_UsedElsewhere: {\n    code: ErrorCode.DeviceUsedElsewhere,\n    message: 'Trezor device is used elsewhere',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage:\n      'Your Trezor device is busy in another window. Close the other flow and try again.',\n  },\n  Device_MultipleNotSupported: {\n    code: ErrorCode.DeviceMultipleConnected,\n    message: 'Multiple Trezor devices are not supported',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage:\n      'Multiple Trezor devices are connected. Keep one connected and retry.',\n  },\n  Device_MissingCapability: {\n    code: ErrorCode.DeviceMissingCapability,\n    message: 'Trezor device is missing capability',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage:\n      'Your Trezor firmware does not support this action. Please update and retry.',\n  },\n  Device_MissingCapabilityBtcOnly: {\n    code: ErrorCode.DeviceBtcOnlyFirmware,\n    message: 'Trezor device firmware only supports BTC',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage:\n      'Your Trezor firmware currently supports BTC only. Update firmware and retry.',\n  },\n  Failure_PinCancelled: {\n    code: ErrorCode.AuthenticationPinCancelled,\n    message: 'Trezor PIN entry cancelled',\n    severity: Severity.Warning,\n    category: Category.Authentication,\n    userMessage: 'PIN entry was cancelled on your Trezor device.',\n  },\n  Failure_PinInvalid: {\n    code: ErrorCode.AuthenticationIncorrectPin,\n    message: 'Trezor PIN is invalid',\n    severity: Severity.Err,\n    category: Category.Authentication,\n    userMessage: 'The PIN is incorrect. Please try again.',\n  },\n  Failure_PinMismatch: {\n    code: ErrorCode.AuthenticationIncorrectPin,\n    message: 'Trezor PIN mismatch',\n    severity: Severity.Err,\n    category: Category.Authentication,\n    userMessage: 'The PIN does not match. Please try again.',\n  },\n  Failure_WipeCodeMismatch: {\n    code: ErrorCode.AuthenticationWipeCodeMismatch,\n    message: 'Trezor wipe code mismatch',\n    severity: Severity.Err,\n    category: Category.Authentication,\n    userMessage: 'The wipe code does not match. Please verify and try again.',\n  },\n  Device_ModeException: {\n    code: ErrorCode.DeviceIncompatibleMode,\n    message: 'Trezor device mode is incompatible',\n    severity: Severity.Err,\n    category: Category.DeviceState,\n    userMessage:\n      'Your Trezor is in an incompatible mode for this action. Check the device and retry.',\n  },\n  Device_ThpPairingTagInvalid: {\n    code: ErrorCode.AuthenticationSecurityCondition,\n    message: 'Trezor pairing security check failed',\n    severity: Severity.Err,\n    category: Category.Authentication,\n    userMessage:\n      'A security check failed on your Trezor device. Reconnect and try again.',\n  },\n  Backend_Disconnected: {\n    code: ErrorCode.ConnectionClosed,\n    message: 'Trezor backend disconnected',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage: 'Trezor backend disconnected. Please retry.',\n  },\n  Method_NoResponse: {\n    code: ErrorCode.ConnectionClosed,\n    message: 'Trezor call returned no response',\n    severity: Severity.Err,\n    category: Category.Connection,\n    userMessage:\n      'Trezor did not return a response. Reconnect your device and try again.',\n  },\n  Device_InitializeFailed: {\n    code: ErrorCode.AuthenticationDeviceLocked,\n    message: 'Trezor device initialization failed',\n    severity: Severity.Err,\n    category: Category.Authentication,\n    userMessage:\n      'Your Trezor device failed to initialize. Please unlock it and try again.',\n  },\n};\n\n/**\n * Keyring error mappings - static error data for keyring-level validation errors\n * that are not tied to a Ledger transport status code.\n *\n * TODO: Wire DeviceStateOnlyV4Supported into keyring-eth-trezor and keyring-eth-qr\n * so all hardware keyrings throw HardwareWalletError for unsupported typed data versions.\n */\nexport const KEYRING_ERROR_MAPPINGS: Partial<Record<ErrorCode, ErrorMapping>> =\n  {\n    [ErrorCode.DeviceStateOnlyV4Supported]: {\n      code: ErrorCode.DeviceStateOnlyV4Supported,\n      message: 'Only version 4 of typed data signing is supported',\n      severity: Severity.Err,\n      category: Category.DeviceState,\n      userMessage:\n        'This device can only sign version 4 (V4) typed data. This site requested an older signature type that is not supported.',\n    },\n  };\n"]}