@onekeyfe/hd-shared 1.1.4-alpha.0 → 1.1.4-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -55,7 +55,7 @@ export declare const HardwareErrorCode: {
55
55
  readonly NewFirmwareForceUpdate: 414;
56
56
  readonly DeviceNotSupportMethod: 415;
57
57
  readonly ForbiddenKeyPath: 416;
58
- readonly RepeatUnlocking: 417;
58
+ readonly DefectiveFirmware: 417;
59
59
  readonly NetworkError: 500;
60
60
  readonly TransportNotConfigured: 600;
61
61
  readonly TransportCallInProgress: 601;
@@ -112,9 +112,13 @@ export declare const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping;
112
112
  export declare const TypedError: (hardwareError: ErrorCodeUnion | string, message?: string, params?: any) => HardwareError;
113
113
  export declare const serializeError: (payload: any) => any;
114
114
  export declare const CreateErrorByMessage: (message: string) => HardwareError;
115
- declare const createNewFirmwareUnReleaseHardwareError: (currentVersion: string, requireVersion: string) => HardwareError;
116
- declare const createNeedUpgradeFirmwareHardwareError: (currentVersion: string, requireVersion: string) => HardwareError;
117
- declare const createNewFirmwareForceUpdateHardwareError: (connectId: string | undefined, deviceId: string | undefined) => HardwareError;
118
- declare const createDeprecatedHardwareError: (currentVersion: string, deprecatedVersion: string) => HardwareError;
119
- export { createNewFirmwareUnReleaseHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createDeprecatedHardwareError, };
115
+ declare const createNewFirmwareUnReleaseHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
116
+ declare const createNeedUpgradeFirmwareHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
117
+ declare const createNewFirmwareForceUpdateHardwareError: (connectId: string | undefined, deviceId: string | undefined, versionType?: 'firmware' | 'ble' | 'both', currentVersions?: {
118
+ firmware?: string;
119
+ ble?: string;
120
+ }) => HardwareError;
121
+ declare const createDeprecatedHardwareError: (currentVersion: string, deprecatedVersion: string, methodName?: string) => HardwareError;
122
+ declare const createDefectiveFirmwareError: (serialNo: string, seVersion: string, deviceType: string, connectId?: string, deviceId?: string) => HardwareError;
123
+ export { createNewFirmwareUnReleaseHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createDeprecatedHardwareError, createDefectiveFirmwareError, };
120
124
  //# sourceMappingURL=HardwareError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HardwareError.d.ts","sourceRoot":"","sources":["../src/HardwareError.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5C,KAAK,+BAA+B,GAAG;KAAG,CAAC,IAAI,OAAO,CAAC,OAAO,iBAAiB,CAAC,GAAG,MAAM;CAAE,CAAC;AAE5F,KAAK,cAAc,GAAG,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAOxD,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAS,EAAE,cAAc,CAAkC;IAE3D,OAAO,SAAM;IAEb,MAAM,EAAE,GAAG,CAAM;gBAEL,aAAa,EAAE,cAAc,GAAG,MAAM;CAmBnD;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyXpB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,+BAqI7B,CAAC;AAEX,eAAO,MAAM,UAAU,kBACN,cAAc,GAAG,MAAM,YAC5B,MAAM,WACP,GAAG,kBAMb,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,GAAG,QAe1C,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,MAAM,KAAG,aAOtD,CAAC;AAEF,QAAA,MAAM,uCAAuC,mBAAoB,MAAM,kBAAkB,MAAM,kBAK5F,CAAC;AAEJ,QAAA,MAAM,sCAAsC,mBAAoB,MAAM,kBAAkB,MAAM,kBAK3F,CAAC;AAEJ,QAAA,MAAM,yCAAyC,cAClC,MAAM,GAAG,SAAS,YACnB,MAAM,GAAG,SAAS,kBAM3B,CAAC;AAEJ,QAAA,MAAM,6BAA6B,mBAAoB,MAAM,qBAAqB,MAAM,kBAKrF,CAAC;AAEJ,OAAO,EACL,uCAAuC,EACvC,sCAAsC,EACtC,yCAAyC,EACzC,6BAA6B,GAC9B,CAAC"}
1
+ {"version":3,"file":"HardwareError.d.ts","sourceRoot":"","sources":["../src/HardwareError.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5C,KAAK,+BAA+B,GAAG;KAAG,CAAC,IAAI,OAAO,CAAC,OAAO,iBAAiB,CAAC,GAAG,MAAM;CAAE,CAAC;AAE5F,KAAK,cAAc,GAAG,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAOxD,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAS,EAAE,cAAc,CAAkC;IAE3D,OAAO,SAAM;IAEb,MAAM,EAAE,GAAG,CAAM;gBAEL,aAAa,EAAE,cAAc,GAAG,MAAM;CAmBnD;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyXpB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,+BAqI7B,CAAC;AAEX,eAAO,MAAM,UAAU,kBACN,cAAc,GAAG,MAAM,YAC5B,MAAM,WACP,GAAG,kBAMb,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,GAAG,QAe1C,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,MAAM,KAAG,aAOtD,CAAC;AAEF,QAAA,MAAM,uCAAuC,mBAC3B,MAAM,kBACN,MAAM,eACT,MAAM,kBAQpB,CAAC;AAEF,QAAA,MAAM,sCAAsC,mBAC1B,MAAM,kBACN,MAAM,eACT,MAAM,kBAQpB,CAAC;AAEF,QAAA,MAAM,yCAAyC,cAClC,MAAM,GAAG,SAAS,YACnB,MAAM,GAAG,SAAS,gBACd,UAAU,GAAG,KAAK,GAAG,MAAM,oBACvB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,kBAwCF,CAAC;AAEF,QAAA,MAAM,6BAA6B,mBACjB,MAAM,qBACH,MAAM,eACZ,MAAM,kBAQpB,CAAC;AAEF,QAAA,MAAM,4BAA4B,aACtB,MAAM,aACL,MAAM,cACL,MAAM,cACN,MAAM,aACP,MAAM,kBAWlB,CAAC;AAEF,OAAO,EACL,uCAAuC,EACvC,sCAAsC,EACtC,yCAAyC,EACzC,6BAA6B,EAC7B,4BAA4B,GAC7B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -97,7 +97,7 @@ declare const HardwareErrorCode: {
97
97
  readonly NewFirmwareForceUpdate: 414;
98
98
  readonly DeviceNotSupportMethod: 415;
99
99
  readonly ForbiddenKeyPath: 416;
100
- readonly RepeatUnlocking: 417;
100
+ readonly DefectiveFirmware: 417;
101
101
  readonly NetworkError: 500;
102
102
  readonly TransportNotConfigured: 600;
103
103
  readonly TransportCallInProgress: 601;
@@ -154,15 +154,20 @@ declare const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping;
154
154
  declare const TypedError: (hardwareError: ErrorCodeUnion | string, message?: string, params?: any) => HardwareError;
155
155
  declare const serializeError: (payload: any) => any;
156
156
  declare const CreateErrorByMessage: (message: string) => HardwareError;
157
- declare const createNewFirmwareUnReleaseHardwareError: (currentVersion: string, requireVersion: string) => HardwareError;
158
- declare const createNeedUpgradeFirmwareHardwareError: (currentVersion: string, requireVersion: string) => HardwareError;
159
- declare const createNewFirmwareForceUpdateHardwareError: (connectId: string | undefined, deviceId: string | undefined) => HardwareError;
160
- declare const createDeprecatedHardwareError: (currentVersion: string, deprecatedVersion: string) => HardwareError;
157
+ declare const createNewFirmwareUnReleaseHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
158
+ declare const createNeedUpgradeFirmwareHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
159
+ declare const createNewFirmwareForceUpdateHardwareError: (connectId: string | undefined, deviceId: string | undefined, versionType?: 'firmware' | 'ble' | 'both', currentVersions?: {
160
+ firmware?: string;
161
+ ble?: string;
162
+ }) => HardwareError;
163
+ declare const createDeprecatedHardwareError: (currentVersion: string, deprecatedVersion: string, methodName?: string) => HardwareError;
164
+ declare const createDefectiveFirmwareError: (serialNo: string, seVersion: string, deviceType: string, connectId?: string, deviceId?: string) => HardwareError;
161
165
 
162
166
  declare const HardwareError$1_createNewFirmwareUnReleaseHardwareError: typeof createNewFirmwareUnReleaseHardwareError;
163
167
  declare const HardwareError$1_createNeedUpgradeFirmwareHardwareError: typeof createNeedUpgradeFirmwareHardwareError;
164
168
  declare const HardwareError$1_createNewFirmwareForceUpdateHardwareError: typeof createNewFirmwareForceUpdateHardwareError;
165
169
  declare const HardwareError$1_createDeprecatedHardwareError: typeof createDeprecatedHardwareError;
170
+ declare const HardwareError$1_createDefectiveFirmwareError: typeof createDefectiveFirmwareError;
166
171
  type HardwareError$1_IHardwareError = IHardwareError;
167
172
  type HardwareError$1_HardwareError = HardwareError;
168
173
  declare const HardwareError$1_HardwareError: typeof HardwareError;
@@ -177,6 +182,7 @@ declare namespace HardwareError$1 {
177
182
  HardwareError$1_createNeedUpgradeFirmwareHardwareError as createNeedUpgradeFirmwareHardwareError,
178
183
  HardwareError$1_createNewFirmwareForceUpdateHardwareError as createNewFirmwareForceUpdateHardwareError,
179
184
  HardwareError$1_createDeprecatedHardwareError as createDeprecatedHardwareError,
185
+ HardwareError$1_createDefectiveFirmwareError as createDefectiveFirmwareError,
180
186
  HardwareError$1_IHardwareError as IHardwareError,
181
187
  HardwareError$1_HardwareError as HardwareError,
182
188
  HardwareError$1_HardwareErrorCode as HardwareErrorCode,
@@ -204,4 +210,4 @@ declare enum EFirmwareType {
204
210
  BitcoinOnly = "bitcoinonly"
205
211
  }
206
212
 
207
- export { CreateErrorByMessage, Deferred, EDeviceType, EFirmwareType, EOneKeyBleMessageKeys, HardwareError$1 as ERRORS, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, ONEKEY_NOTIFY_CHARACTERISTIC_UUID, ONEKEY_SERVICE_UUID, ONEKEY_WEBUSB_FILTER, ONEKEY_WRITE_CHARACTERISTIC_UUID, TypedError, createDeferred, createDeprecatedHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, isHeaderChunk, isOnekeyDevice, serializeError, wait };
213
+ export { CreateErrorByMessage, Deferred, EDeviceType, EFirmwareType, EOneKeyBleMessageKeys, HardwareError$1 as ERRORS, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, ONEKEY_NOTIFY_CHARACTERISTIC_UUID, ONEKEY_SERVICE_UUID, ONEKEY_WEBUSB_FILTER, ONEKEY_WRITE_CHARACTERISTIC_UUID, TypedError, createDefectiveFirmwareError, createDeferred, createDeprecatedHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, isHeaderChunk, isOnekeyDevice, serializeError, wait };
package/dist/index.js CHANGED
@@ -187,7 +187,7 @@ const HardwareErrorCode = {
187
187
  NewFirmwareForceUpdate: 414,
188
188
  DeviceNotSupportMethod: 415,
189
189
  ForbiddenKeyPath: 416,
190
- RepeatUnlocking: 417,
190
+ DefectiveFirmware: 417,
191
191
  NetworkError: 500,
192
192
  TransportNotConfigured: 600,
193
193
  TransportCallInProgress: 601,
@@ -281,7 +281,7 @@ const HardwareErrorCodeMessage = {
281
281
  [HardwareErrorCode.UseDesktopToUpdateFirmware]: 'Please use OneKey desktop client to update the firmware',
282
282
  [HardwareErrorCode.DeviceNotSupportMethod]: 'Device not support this method',
283
283
  [HardwareErrorCode.ForbiddenKeyPath]: 'Forbidden key path',
284
- [HardwareErrorCode.RepeatUnlocking]: 'Repeat unlocking',
284
+ [HardwareErrorCode.DefectiveFirmware]: 'Device firmware is defective, please update immediately',
285
285
  [HardwareErrorCode.NetworkError]: 'Network request error',
286
286
  [HardwareErrorCode.TransportNotConfigured]: 'Transport not configured',
287
287
  [HardwareErrorCode.TransportCallInProgress]: 'Transport call in progress',
@@ -364,10 +364,67 @@ const CreateErrorByMessage = (message) => {
364
364
  }
365
365
  return new HardwareError(message);
366
366
  };
367
- const createNewFirmwareUnReleaseHardwareError = (currentVersion, requireVersion) => TypedError(HardwareErrorCode.NewFirmwareUnRelease, 'Device firmware version is too low, please update to the latest version', { current: currentVersion, require: requireVersion });
368
- const createNeedUpgradeFirmwareHardwareError = (currentVersion, requireVersion) => TypedError(HardwareErrorCode.CallMethodNeedUpgradeFirmware, `Device firmware version is too low, please update to ${requireVersion}`, { current: currentVersion, require: requireVersion });
369
- const createNewFirmwareForceUpdateHardwareError = (connectId, deviceId) => TypedError(HardwareErrorCode.NewFirmwareForceUpdate, 'Device firmware version is too low, please update to the latest version', { connectId, deviceId });
370
- const createDeprecatedHardwareError = (currentVersion, deprecatedVersion) => TypedError(HardwareErrorCode.CallMethodDeprecated, `Device firmware version is too high, this method has been deprecated in ${deprecatedVersion}`, { current: currentVersion, deprecated: deprecatedVersion });
367
+ const createNewFirmwareUnReleaseHardwareError = (currentVersion, requireVersion, methodName) => {
368
+ const methodInfo = methodName ? ` for method '${methodName}'` : '';
369
+ return TypedError(HardwareErrorCode.NewFirmwareUnRelease, `Device firmware version is too low${methodInfo}, please update to the latest version`, { current: currentVersion, require: requireVersion, method: methodName });
370
+ };
371
+ const createNeedUpgradeFirmwareHardwareError = (currentVersion, requireVersion, methodName) => {
372
+ const methodInfo = methodName ? ` for method '${methodName}'` : '';
373
+ return TypedError(HardwareErrorCode.CallMethodNeedUpgradeFirmware, `Device firmware version is too low${methodInfo}, please update to ${requireVersion}`, { current: currentVersion, require: requireVersion, method: methodName });
374
+ };
375
+ const createNewFirmwareForceUpdateHardwareError = (connectId, deviceId, versionType, currentVersions) => {
376
+ let message = 'Device firmware version is too low, please update to the latest version';
377
+ if (versionType === 'firmware') {
378
+ const currentFirmware = (currentVersions === null || currentVersions === void 0 ? void 0 : currentVersions.firmware)
379
+ ? ` (current: ${currentVersions.firmware})`
380
+ : '';
381
+ message = `Device firmware version is too low${currentFirmware}, please update the firmware to the latest version`;
382
+ }
383
+ else if (versionType === 'ble') {
384
+ const currentBle = (currentVersions === null || currentVersions === void 0 ? void 0 : currentVersions.ble) ? ` (current: ${currentVersions.ble})` : '';
385
+ message = `Device BLE firmware version is too low${currentBle}, please update the BLE firmware to the latest version`;
386
+ }
387
+ else if (versionType === 'both') {
388
+ const currentFirmware = (currentVersions === null || currentVersions === void 0 ? void 0 : currentVersions.firmware)
389
+ ? ` firmware: ${currentVersions.firmware}`
390
+ : '';
391
+ const currentBle = (currentVersions === null || currentVersions === void 0 ? void 0 : currentVersions.ble) ? ` BLE: ${currentVersions.ble}` : '';
392
+ const currentInfo = currentFirmware || currentBle
393
+ ? ` (current -${currentFirmware}${currentFirmware && currentBle ? ',' : ''}${currentBle})`
394
+ : '';
395
+ message = `Device firmware and BLE firmware versions are too low${currentInfo}, please update both to the latest versions`;
396
+ }
397
+ else if ((currentVersions === null || currentVersions === void 0 ? void 0 : currentVersions.firmware) || (currentVersions === null || currentVersions === void 0 ? void 0 : currentVersions.ble)) {
398
+ const currentFirmware = (currentVersions === null || currentVersions === void 0 ? void 0 : currentVersions.firmware)
399
+ ? ` firmware: ${currentVersions.firmware}`
400
+ : '';
401
+ const currentBle = (currentVersions === null || currentVersions === void 0 ? void 0 : currentVersions.ble) ? ` BLE: ${currentVersions.ble}` : '';
402
+ const currentInfo = currentFirmware || currentBle
403
+ ? ` (current -${currentFirmware}${currentFirmware && currentBle ? ',' : ''}${currentBle})`
404
+ : '';
405
+ message = `Device firmware version is too low${currentInfo}, please update to the latest version`;
406
+ }
407
+ return TypedError(HardwareErrorCode.NewFirmwareForceUpdate, message, {
408
+ connectId,
409
+ deviceId,
410
+ versionType,
411
+ currentVersions,
412
+ });
413
+ };
414
+ const createDeprecatedHardwareError = (currentVersion, deprecatedVersion, methodName) => {
415
+ const methodInfo = methodName ? ` Method '${methodName}'` : 'This method';
416
+ return TypedError(HardwareErrorCode.CallMethodDeprecated, `Device firmware version is too high. ${methodInfo} has been deprecated in ${deprecatedVersion}`, { current: currentVersion, deprecated: deprecatedVersion, method: methodName });
417
+ };
418
+ const createDefectiveFirmwareError = (serialNo, seVersion, deviceType, connectId, deviceId) => {
419
+ const message = `Defective firmware detected (Serial: ${serialNo}, SE: ${seVersion}). Please update immediately.`;
420
+ return TypedError(HardwareErrorCode.DefectiveFirmware, message, {
421
+ serialNo,
422
+ seVersion,
423
+ deviceType,
424
+ connectId,
425
+ deviceId,
426
+ });
427
+ };
371
428
 
372
429
  var HardwareError$1 = /*#__PURE__*/Object.freeze({
373
430
  __proto__: null,
@@ -380,7 +437,8 @@ var HardwareError$1 = /*#__PURE__*/Object.freeze({
380
437
  createNewFirmwareUnReleaseHardwareError: createNewFirmwareUnReleaseHardwareError,
381
438
  createNeedUpgradeFirmwareHardwareError: createNeedUpgradeFirmwareHardwareError,
382
439
  createNewFirmwareForceUpdateHardwareError: createNewFirmwareForceUpdateHardwareError,
383
- createDeprecatedHardwareError: createDeprecatedHardwareError
440
+ createDeprecatedHardwareError: createDeprecatedHardwareError,
441
+ createDefectiveFirmwareError: createDefectiveFirmwareError
384
442
  });
385
443
 
386
444
  const wait = (ms) => new Promise(resolve => {
@@ -414,6 +472,7 @@ exports.ONEKEY_SERVICE_UUID = ONEKEY_SERVICE_UUID;
414
472
  exports.ONEKEY_WEBUSB_FILTER = ONEKEY_WEBUSB_FILTER;
415
473
  exports.ONEKEY_WRITE_CHARACTERISTIC_UUID = ONEKEY_WRITE_CHARACTERISTIC_UUID;
416
474
  exports.TypedError = TypedError;
475
+ exports.createDefectiveFirmwareError = createDefectiveFirmwareError;
417
476
  exports.createDeferred = createDeferred;
418
477
  exports.createDeprecatedHardwareError = createDeprecatedHardwareError;
419
478
  exports.createNeedUpgradeFirmwareHardwareError = createNeedUpgradeFirmwareHardwareError;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-shared",
3
- "version": "1.1.4-alpha.0",
3
+ "version": "1.1.4-alpha.2",
4
4
  "description": "Hardware SDK's shared tool library",
5
5
  "keywords": [
6
6
  "Hardware-SDK",
@@ -25,5 +25,5 @@
25
25
  "lint": "eslint .",
26
26
  "lint:fix": "eslint . --fix"
27
27
  },
28
- "gitHead": "a122cdecf0d46b3adda9a71743f34c7743d42727"
28
+ "gitHead": "90589e2c51eb9bd54651d77da60695f4e5a2aa50"
29
29
  }
@@ -251,10 +251,10 @@ export const HardwareErrorCode = {
251
251
  ForbiddenKeyPath: 416,
252
252
 
253
253
  /**
254
- * Repeat unlocking
255
- * all network get address by loop need repeat unlocking
254
+ * Defective firmware detected
255
+ * @params:{ serialNo: string?, seVersion: string?, deviceType: string? }
256
256
  */
257
- RepeatUnlocking: 417,
257
+ DefectiveFirmware: 417,
258
258
 
259
259
  /**
260
260
  * Netword request error
@@ -480,7 +480,7 @@ export const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping = {
480
480
  'Please use OneKey desktop client to update the firmware',
481
481
  [HardwareErrorCode.DeviceNotSupportMethod]: 'Device not support this method',
482
482
  [HardwareErrorCode.ForbiddenKeyPath]: 'Forbidden key path',
483
- [HardwareErrorCode.RepeatUnlocking]: 'Repeat unlocking',
483
+ [HardwareErrorCode.DefectiveFirmware]: 'Device firmware is defective, please update immediately',
484
484
 
485
485
  /**
486
486
  * Network Errors
@@ -594,40 +594,116 @@ export const CreateErrorByMessage = (message: string): HardwareError => {
594
594
  return new HardwareError(message);
595
595
  };
596
596
 
597
- const createNewFirmwareUnReleaseHardwareError = (currentVersion: string, requireVersion: string) =>
598
- TypedError(
597
+ const createNewFirmwareUnReleaseHardwareError = (
598
+ currentVersion: string,
599
+ requireVersion: string,
600
+ methodName?: string
601
+ ) => {
602
+ const methodInfo = methodName ? ` for method '${methodName}'` : '';
603
+ return TypedError(
599
604
  HardwareErrorCode.NewFirmwareUnRelease,
600
- 'Device firmware version is too low, please update to the latest version',
601
- { current: currentVersion, require: requireVersion }
605
+ `Device firmware version is too low${methodInfo}, please update to the latest version`,
606
+ { current: currentVersion, require: requireVersion, method: methodName }
602
607
  );
608
+ };
603
609
 
604
- const createNeedUpgradeFirmwareHardwareError = (currentVersion: string, requireVersion: string) =>
605
- TypedError(
610
+ const createNeedUpgradeFirmwareHardwareError = (
611
+ currentVersion: string,
612
+ requireVersion: string,
613
+ methodName?: string
614
+ ) => {
615
+ const methodInfo = methodName ? ` for method '${methodName}'` : '';
616
+ return TypedError(
606
617
  HardwareErrorCode.CallMethodNeedUpgradeFirmware,
607
- `Device firmware version is too low, please update to ${requireVersion}`,
608
- { current: currentVersion, require: requireVersion }
618
+ `Device firmware version is too low${methodInfo}, please update to ${requireVersion}`,
619
+ { current: currentVersion, require: requireVersion, method: methodName }
609
620
  );
621
+ };
610
622
 
611
623
  const createNewFirmwareForceUpdateHardwareError = (
612
624
  connectId: string | undefined,
613
- deviceId: string | undefined
614
- ) =>
615
- TypedError(
616
- HardwareErrorCode.NewFirmwareForceUpdate,
617
- 'Device firmware version is too low, please update to the latest version',
618
- { connectId, deviceId }
619
- );
625
+ deviceId: string | undefined,
626
+ versionType?: 'firmware' | 'ble' | 'both',
627
+ currentVersions?: {
628
+ firmware?: string;
629
+ ble?: string;
630
+ }
631
+ ) => {
632
+ let message = 'Device firmware version is too low, please update to the latest version';
633
+
634
+ if (versionType === 'firmware') {
635
+ const currentFirmware = currentVersions?.firmware
636
+ ? ` (current: ${currentVersions.firmware})`
637
+ : '';
638
+ message = `Device firmware version is too low${currentFirmware}, please update the firmware to the latest version`;
639
+ } else if (versionType === 'ble') {
640
+ const currentBle = currentVersions?.ble ? ` (current: ${currentVersions.ble})` : '';
641
+ message = `Device BLE firmware version is too low${currentBle}, please update the BLE firmware to the latest version`;
642
+ } else if (versionType === 'both') {
643
+ const currentFirmware = currentVersions?.firmware
644
+ ? ` firmware: ${currentVersions.firmware}`
645
+ : '';
646
+ const currentBle = currentVersions?.ble ? ` BLE: ${currentVersions.ble}` : '';
647
+ const currentInfo =
648
+ currentFirmware || currentBle
649
+ ? ` (current -${currentFirmware}${currentFirmware && currentBle ? ',' : ''}${currentBle})`
650
+ : '';
651
+ message = `Device firmware and BLE firmware versions are too low${currentInfo}, please update both to the latest versions`;
652
+ } else if (currentVersions?.firmware || currentVersions?.ble) {
653
+ const currentFirmware = currentVersions?.firmware
654
+ ? ` firmware: ${currentVersions.firmware}`
655
+ : '';
656
+ const currentBle = currentVersions?.ble ? ` BLE: ${currentVersions.ble}` : '';
657
+ const currentInfo =
658
+ currentFirmware || currentBle
659
+ ? ` (current -${currentFirmware}${currentFirmware && currentBle ? ',' : ''}${currentBle})`
660
+ : '';
661
+ message = `Device firmware version is too low${currentInfo}, please update to the latest version`;
662
+ }
620
663
 
621
- const createDeprecatedHardwareError = (currentVersion: string, deprecatedVersion: string) =>
622
- TypedError(
664
+ return TypedError(HardwareErrorCode.NewFirmwareForceUpdate, message, {
665
+ connectId,
666
+ deviceId,
667
+ versionType,
668
+ currentVersions,
669
+ });
670
+ };
671
+
672
+ const createDeprecatedHardwareError = (
673
+ currentVersion: string,
674
+ deprecatedVersion: string,
675
+ methodName?: string
676
+ ) => {
677
+ const methodInfo = methodName ? ` Method '${methodName}'` : 'This method';
678
+ return TypedError(
623
679
  HardwareErrorCode.CallMethodDeprecated,
624
- `Device firmware version is too high, this method has been deprecated in ${deprecatedVersion}`,
625
- { current: currentVersion, deprecated: deprecatedVersion }
680
+ `Device firmware version is too high. ${methodInfo} has been deprecated in ${deprecatedVersion}`,
681
+ { current: currentVersion, deprecated: deprecatedVersion, method: methodName }
626
682
  );
683
+ };
684
+
685
+ const createDefectiveFirmwareError = (
686
+ serialNo: string,
687
+ seVersion: string,
688
+ deviceType: string,
689
+ connectId?: string,
690
+ deviceId?: string
691
+ ) => {
692
+ const message = `Defective firmware detected (Serial: ${serialNo}, SE: ${seVersion}). Please update immediately.`;
693
+
694
+ return TypedError(HardwareErrorCode.DefectiveFirmware, message, {
695
+ serialNo,
696
+ seVersion,
697
+ deviceType,
698
+ connectId,
699
+ deviceId,
700
+ });
701
+ };
627
702
 
628
703
  export {
629
704
  createNewFirmwareUnReleaseHardwareError,
630
705
  createNeedUpgradeFirmwareHardwareError,
631
706
  createNewFirmwareForceUpdateHardwareError,
632
707
  createDeprecatedHardwareError,
708
+ createDefectiveFirmwareError,
633
709
  };