@@ -12,7 +12,7 @@ import { validateParams } from '../helpers/paramsValidator';
1212import { PROTO } from '../../constants' ;
1313import { findMethod } from '../utils' ;
1414import { DEVICE , IFRAME , createUiMessage } from '../../events' ;
15- import { getDeviceFirmwareVersion , getMethodVersionRange } from '../../utils' ;
15+ import { getDeviceFirmwareVersion , getFirmwareType , getMethodVersionRange } from '../../utils' ;
1616import { UI_REQUEST } from '../../constants/ui-request' ;
1717import { onDeviceButtonHandler } from '../../core' ;
1818import {
@@ -463,9 +463,14 @@ function preCheckDeviceSupport(device: Device, method: BaseMethod) {
463463 semver . valid ( versionRange . min ) &&
464464 semver . lt ( currentVersion , versionRange . min )
465465 ) {
466- throw ERRORS . createNeedUpgradeFirmwareHardwareError ( currentVersion , versionRange . min ) ;
466+ throw ERRORS . createNeedUpgradeFirmwareHardwareError ( {
467+ currentVersion,
468+ requireVersion : versionRange . min ,
469+ methodName : method . name ,
470+ firmwareType : getFirmwareType ( device . features ) ,
471+ } ) ;
467472 } else if ( method . strictCheckDeviceSupport && ! versionRange ) {
468- throw ERRORS . TypedError ( HardwareErrorCode . DeviceNotSupportMethod ) ;
473+ throw ERRORS . createDeviceNotSupportMethodError ( method . name , getFirmwareType ( device . features ) ) ;
469474 }
470475}
471476
@@ -483,7 +488,10 @@ function handleSkippableHardwareError(
483488 } else if ( errorCode === HardwareErrorCode . DeviceNotSupportMethod ) {
484489 error = e ;
485490 }
486- } else if ( e . message ?. includes ( 'Failure_UnexpectedMessage' ) ) {
491+ } else if (
492+ e . message ?. includes ( 'Failure_UnexpectedMessage' ) ||
493+ e . message ?. includes ( 'Failure_UnknownMessage' )
494+ ) {
487495 const versionRange = getMethodVersionRange (
488496 device . features ,
489497 type => method . getVersionRange ( ) [ type ]
@@ -495,9 +503,17 @@ function handleSkippableHardwareError(
495503 semver . valid ( versionRange . min ) &&
496504 semver . lt ( currentVersion , versionRange . min )
497505 ) {
498- error = ERRORS . createNeedUpgradeFirmwareHardwareError ( currentVersion , versionRange . min ) ;
506+ error = ERRORS . createNeedUpgradeFirmwareHardwareError ( {
507+ currentVersion,
508+ requireVersion : versionRange . min ,
509+ methodName : method . name ,
510+ firmwareType : getFirmwareType ( device . features ) ,
511+ } ) ;
499512 } else {
500- error = ERRORS . TypedError ( HardwareErrorCode . DeviceNotSupportMethod , e . message ) ;
513+ error = ERRORS . createDeviceNotSupportMethodError (
514+ method . name ,
515+ getFirmwareType ( device . features )
516+ ) ;
501517 }
502518 } else if (
503519 e . message ?. toLowerCase ( ) ?. includes ( 'forbidden key path' ) ||
0 commit comments