@onekeyfe/hd-shared 1.2.0-alpha.19 → 1.2.0-alpha.20

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.
@@ -117,6 +117,7 @@ export declare const HardwareErrorCode: {
117
117
  readonly PinMismatch: 828;
118
118
  readonly DeviceLocked: 829;
119
119
  readonly KaspaPrevTxIdMismatch: 830;
120
+ readonly WalletSessionInvalid: 831;
120
121
  readonly LowlevelTrasnportConnectError: 900;
121
122
  readonly WebDeviceNotFoundOrNeedsPermission: 901;
122
123
  readonly WebDevicePromptAccessError: 902;
@@ -1 +1 @@
1
- {"version":3,"file":"HardwareError.d.ts","sourceRoot":"","sources":["../src/HardwareError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,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;AAsCxD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAibpB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,+BAkJ7B,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;AAGF,eAAO,MAAM,gCAAgC,QAAS,MAAM,KAAG,aAQ9D,CAAC;AAEF,QAAA,MAAM,uCAAuC;oBAM3B,MAAM;oBACN,MAAM;;;mBAcvB,CAAC;AAEF,QAAA,MAAM,sCAAsC;oBAM1B,MAAM;oBACN,MAAM;;;mBAcvB,CAAC;AAEF,QAAA,MAAM,yCAAyC,cAClC,MAAM,GAAG,SAAS,YACnB,MAAM,GAAG,SAAS,iBACb,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,oBACnB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,kBAsBF,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,QAAA,MAAM,iCAAiC,eAAgB,MAAM,gBAAgB,aAAa,kBAItF,CAAC;AAEL,OAAO,EACL,uCAAuC,EACvC,sCAAsC,EACtC,yCAAyC,EACzC,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,GAClC,CAAC"}
1
+ {"version":3,"file":"HardwareError.d.ts","sourceRoot":"","sources":["../src/HardwareError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,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;AAsCxD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAubpB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,+BAmJ7B,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;AAGF,eAAO,MAAM,gCAAgC,QAAS,MAAM,KAAG,aAQ9D,CAAC;AAEF,QAAA,MAAM,uCAAuC;oBAM3B,MAAM;oBACN,MAAM;;;mBAcvB,CAAC;AAEF,QAAA,MAAM,sCAAsC;oBAM1B,MAAM;oBACN,MAAM;;;mBAcvB,CAAC;AAEF,QAAA,MAAM,yCAAyC,cAClC,MAAM,GAAG,SAAS,YACnB,MAAM,GAAG,SAAS,iBACb,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,oBACnB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,kBAsBF,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,QAAA,MAAM,iCAAiC,eAAgB,MAAM,gBAAgB,aAAa,kBAItF,CAAC;AAEL,OAAO,EACL,uCAAuC,EACvC,sCAAsC,EACtC,yCAAyC,EACzC,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,GAClC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -13,7 +13,15 @@ type WebUsbIdentityDescriptor = {
13
13
  manufacturerName?: string | null;
14
14
  };
15
15
  declare const isKnownTrezorWebUsbDevice: (descriptor: WebUsbIdentityDescriptor) => boolean;
16
+ /**
17
+ * Error codes that require device release after occurrence
18
+ * These errors indicate the device is in an invalid state and needs to be released
19
+ */
16
20
  declare const ERROR_CODES_REQUIRE_RELEASE: readonly [106, 107, 109, 112, 805, 801, 802, 812];
21
+ /**
22
+ * Error codes that require device disconnect before release
23
+ * These errors indicate a communication failure that requires full reconnection
24
+ */
17
25
  declare const ERROR_CODES_REQUIRE_DISCONNECT: readonly [106, 805];
18
26
  declare enum EOneKeyBleMessageKeys {
19
27
  BLE_SELECT = "$onekey-ble-select",
@@ -76,53 +84,201 @@ declare class HardwareError extends Error {
76
84
  constructor(hardwareError: IHardwareError | string);
77
85
  }
78
86
  declare const HardwareErrorCode: {
87
+ /**
88
+ * This error can be thrown when unexpected error occurred and in most cases it is related to implementation bug.
89
+ * Original message is available in message property.
90
+ */
79
91
  readonly UnknownError: 0;
92
+ /**
93
+ * Firmware version mismatch
94
+ */
80
95
  readonly DeviceFwException: 101;
96
+ /**
97
+ * Device unexpected mode
98
+ */
81
99
  readonly DeviceUnexpectedMode: 102;
100
+ /**
101
+ * Device list is not initialized
102
+ */
82
103
  readonly DeviceListNotInitialized: 103;
104
+ /**
105
+ * Please select the connected device
106
+ */
83
107
  readonly SelectDevice: 104;
108
+ /**
109
+ * Device not found
110
+ */
84
111
  readonly DeviceNotFound: 105;
112
+ /**
113
+ * Device is not initialized
114
+ */
85
115
  readonly DeviceInitializeFailed: 106;
116
+ /**
117
+ * Device interrupted from another operation
118
+ */
86
119
  readonly DeviceInterruptedFromOutside: 107;
120
+ /**
121
+ * Device should be in bootloader mode
122
+ */
87
123
  readonly RequiredButInBootloaderMode: 108;
124
+ /**
125
+ * Device interrupted from user
126
+ */
88
127
  readonly DeviceInterruptedFromUser: 109;
128
+ /**
129
+ * Check device id is same
130
+ */
89
131
  readonly DeviceCheckDeviceIdError: 110;
132
+ /**
133
+ * Do not support passphrase
134
+ * @params: { require: string }
135
+ */
90
136
  readonly DeviceNotSupportPassphrase: 111;
91
137
  readonly DeviceCheckPassphraseStateError: 112;
138
+ /**
139
+ * use passphrase, but passphrase is not opened
140
+ */
92
141
  readonly DeviceNotOpenedPassphrase: 113;
142
+ /**
143
+ * not use passphrase, but passphrase is opened
144
+ */
93
145
  readonly DeviceOpenedPassphrase: 114;
146
+ /**
147
+ * Detect hardware that is in bootloader mode and return an error.
148
+ */
94
149
  readonly DeviceDetectInBootloaderMode: 115;
150
+ /**
151
+ * Device not allow in bootloader mode
152
+ */
95
153
  readonly NotAllowInBootloaderMode: 116;
154
+ /**
155
+ * Device is busy
156
+ */
96
157
  readonly DeviceBusy: 117;
158
+ /**
159
+ * Device check unlock type not match error
160
+ */
97
161
  readonly DeviceCheckUnlockTypeError: 118;
162
+ /**
163
+ * Not initialized
164
+ */
98
165
  readonly NotInitialized: 200;
166
+ /**
167
+ * Iframe not initialized
168
+ */
99
169
  readonly IFrameNotInitialized: 300;
170
+ /**
171
+ * iframe repeat initialization
172
+ */
100
173
  readonly IFrameAleradyInitialized: 301;
174
+ /**
175
+ * iframe load failure
176
+ */
101
177
  readonly IFrameLoadFail: 302;
178
+ /**
179
+ * init iframe time out
180
+ */
102
181
  readonly IframeTimeout: 303;
182
+ /**
183
+ * iframe blocked
184
+ */
103
185
  readonly IframeBlocked: 304;
186
+ /**
187
+ * iframe host not trust
188
+ */
104
189
  readonly IframeDistrust: 305;
190
+ /**
191
+ * Runtime errors during method execution
192
+ */
105
193
  readonly CallMethodError: 400;
194
+ /**
195
+ * Method does not responding
196
+ */
106
197
  readonly CallMethodNotResponse: 404;
198
+ /**
199
+ * Call method invalid parameter
200
+ */
107
201
  readonly CallMethodInvalidParameter: 405;
202
+ /**
203
+ * firmware update download failed
204
+ */
108
205
  readonly FirmwareUpdateDownloadFailed: 406;
206
+ /**
207
+ * Call method not supported, need update firmware
208
+ * @params: { current: string, require: string }
209
+ */
109
210
  readonly CallMethodNeedUpgradeFirmware: 407;
211
+ /**
212
+ * Call method not supported, is deprecated
213
+ * @params: { current: string, deprecated: string }
214
+ */
110
215
  readonly CallMethodDeprecated: 408;
216
+ /**
217
+ * Only one device can be connected during firmware upgrade
218
+ */
111
219
  readonly FirmwareUpdateLimitOneDevice: 409;
220
+ /**
221
+ * You need to manually enter boot
222
+ */
112
223
  readonly FirmwareUpdateManuallyEnterBoot: 410;
224
+ /**
225
+ * Manual entry fails. You must manually enter the boot
226
+ */
113
227
  readonly FirmwareUpdateAutoEnterBootFailure: 411;
228
+ /**
229
+ * The new firmware has not been released yet
230
+ */
114
231
  readonly NewFirmwareUnRelease: 412;
232
+ /**
233
+ * use OneKey desktop client to update the firmware
234
+ * because need copy resource file to Touch
235
+ */
115
236
  readonly UseDesktopToUpdateFirmware: 413;
237
+ /**
238
+ * Mandatory firmware update
239
+ * @params:{ connectId: string? , deviceId: string? }
240
+ */
116
241
  readonly NewFirmwareForceUpdate: 414;
242
+ /**
243
+ * Device not support this method
244
+ */
117
245
  readonly DeviceNotSupportMethod: 415;
246
+ /**
247
+ * Forbidden key path
248
+ */
118
249
  readonly ForbiddenKeyPath: 416;
250
+ /**
251
+ * Repeat unlocking
252
+ * all network get address by loop need repeat unlocking
253
+ */
119
254
  readonly RepeatUnlocking: 417;
255
+ /**
256
+ * Defective firmware detected
257
+ */
120
258
  readonly DefectiveFirmware: 418;
259
+ /**
260
+ * Netword request error
261
+ */
121
262
  readonly NetworkError: 500;
263
+ /**
264
+ * Transport not configured
265
+ */
122
266
  readonly TransportNotConfigured: 600;
267
+ /**
268
+ * Transport call in progress
269
+ */
123
270
  readonly TransportCallInProgress: 601;
271
+ /**
272
+ * Transport not found
273
+ */
124
274
  readonly TransportNotFound: 602;
275
+ /**
276
+ * Transport invalid protobuf
277
+ */
125
278
  readonly TransportInvalidProtobuf: 603;
279
+ /**
280
+ * Bluetooth error code
281
+ */
126
282
  readonly BleScanError: 700;
127
283
  readonly BlePermissionError: 701;
128
284
  readonly BleLocationError: 702;
@@ -146,39 +302,143 @@ declare const HardwareErrorCode: {
146
302
  readonly BleDeviceDisconnected: 720;
147
303
  readonly BlePoweredOff: 721;
148
304
  readonly BleUnsupported: 722;
305
+ /**
306
+ * Hardware runtiome errors
307
+ */
149
308
  readonly RuntimeError: 800;
309
+ /**
310
+ * invalid pin
311
+ */
150
312
  readonly PinInvalid: 801;
313
+ /**
314
+ * pin cancelled by user
315
+ */
151
316
  readonly PinCancelled: 802;
317
+ /**
318
+ * Action cancelled by user
319
+ */
152
320
  readonly ActionCancelled: 803;
321
+ /**
322
+ * Firmware installation failed
323
+ */
153
324
  readonly FirmwareError: 804;
325
+ /**
326
+ * transport response unexpect error
327
+ */
154
328
  readonly ResponseUnexpectTypeError: 805;
329
+ /**
330
+ * bridge network error
331
+ */
155
332
  readonly BridgeNetworkError: 806;
333
+ /**
334
+ * Bridge network timeout
335
+ */
156
336
  readonly BridgeTimeoutError: 807;
337
+ /**
338
+ * Bridge not installed
339
+ */
157
340
  readonly BridgeNotInstalled: 808;
341
+ /**
342
+ * ensure connect timeout
343
+ */
158
344
  readonly PollingTimeout: 809;
345
+ /**
346
+ * ensure connect stop polling
347
+ */
159
348
  readonly PollingStop: 810;
349
+ /**
350
+ * Device does not open blid sign
351
+ */
160
352
  readonly BlindSignDisabled: 811;
161
353
  readonly UnexpectPassphrase: 812;
354
+ /**
355
+ * NFT file already exists
356
+ */
162
357
  readonly FileAlreadyExists: 813;
358
+ /**
359
+ * check file length error
360
+ */
163
361
  readonly CheckDownloadFileError: 814;
362
+ /**
363
+ * not in signing mode
364
+ */
164
365
  readonly NotInSigningMode: 815;
366
+ /**
367
+ * not in signing mode
368
+ */
165
369
  readonly DataOverload: 816;
370
+ /**
371
+ * device disconnected during action
372
+ */
166
373
  readonly BridgeDeviceDisconnected: 817;
374
+ /**
375
+ * BTC PSBT too many utxos
376
+ * @params:{ count: number }
377
+ */
167
378
  readonly BTCPsbtTooManyUtxos: 818;
379
+ /**
380
+ * EMMC file write firmware error
381
+ */
168
382
  readonly EmmcFileWriteFirmwareError: 819;
383
+ /**
384
+ * Firmware verification failed (e.g., bootloader file verify failed)
385
+ */
169
386
  readonly FirmwareVerificationFailed: 820;
387
+ /**
388
+ * Web bridge coonect needs permission
389
+ */
170
390
  readonly BridgeNeedsPermission: 821;
171
391
  readonly CallQueueActionCancelled: 822;
392
+ /**
393
+ * Firmware downgrade not allowed
394
+ */
172
395
  readonly FirmwareDowngradeNotAllowed: 823;
396
+ /**
397
+ * Cosmos invalid JSON message, Only support Amino msgs.
398
+ */
173
399
  readonly CosmosInvalidJsonMessage: 824;
400
+ /**
401
+ * No setting provided
402
+ */
174
403
  readonly DeviceSettingsNotProvided: 825;
404
+ /**
405
+ * Language not supported
406
+ */
175
407
  readonly DeviceSettingsLanguageNotSupport: 826;
408
+ /**
409
+ * Too many inputs
410
+ * @params: { count?: string }
411
+ */
176
412
  readonly TooManyInputs: 827;
413
+ /**
414
+ * The two PIN entries did not match while setting/changing PIN on device
415
+ */
177
416
  readonly PinMismatch: 828;
417
+ /**
418
+ * Protocol V2 device must be unlocked before the requested operation.
419
+ * @params: { failureCode?: string; subcode?: number; firmwareMessage?: string }
420
+ */
178
421
  readonly DeviceLocked: 829;
422
+ /**
423
+ * Device refused to sign: refTxs don't match the spent input's outpoint
424
+ */
179
425
  readonly KaspaPrevTxIdMismatch: 830;
426
+ /**
427
+ * The cached wallet session is invalid or has expired.
428
+ * @params: { failureCode?: string; subcode?: number; firmwareMessage?: string }
429
+ */
430
+ readonly WalletSessionInvalid: 831;
431
+ /**
432
+ * Lowlevel transport connect error
433
+ */
180
434
  readonly LowlevelTrasnportConnectError: 900;
435
+ /**
436
+ * Web USB or Web Bluetooth device not found or needs permission
437
+ */
181
438
  readonly WebDeviceNotFoundOrNeedsPermission: 901;
439
+ /**
440
+ * Web USB or Web Bluetooth device prompt access error
441
+ */
182
442
  readonly WebDevicePromptAccessError: 902;
183
443
  };
184
444
  declare const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping;
package/dist/index.js CHANGED
@@ -166,6 +166,7 @@ const HardwareErrorCode = {
166
166
  PinMismatch: 828,
167
167
  DeviceLocked: 829,
168
168
  KaspaPrevTxIdMismatch: 830,
169
+ WalletSessionInvalid: 831,
169
170
  LowlevelTrasnportConnectError: 900,
170
171
  WebDeviceNotFoundOrNeedsPermission: 901,
171
172
  WebDevicePromptAccessError: 902,
@@ -272,6 +273,7 @@ const HardwareErrorCodeMessage = {
272
273
  [HardwareErrorCode.PinMismatch]: 'PIN mismatch',
273
274
  [HardwareErrorCode.DeviceLocked]: 'Device locked',
274
275
  [HardwareErrorCode.KaspaPrevTxIdMismatch]: 'Kaspa previous transaction id mismatch',
276
+ [HardwareErrorCode.WalletSessionInvalid]: 'Wallet session is invalid or expired',
275
277
  [HardwareErrorCode.LowlevelTrasnportConnectError]: 'Lowlevel transport connect error',
276
278
  [HardwareErrorCode.WebDeviceNotFoundOrNeedsPermission]: 'Web-USB or Web-Bluetooth device not found or needs permission',
277
279
  [HardwareErrorCode.WebDevicePromptAccessError]: 'Web-USB or Web-Bluetooth device prompt access error',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-shared",
3
- "version": "1.2.0-alpha.19",
3
+ "version": "1.2.0-alpha.20",
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": "4e79f6a400463f342285b9a761b6b84523f1d6b9"
28
+ "gitHead": "5fbc1ada90fd3cfda7e5ef08be368cb452018733"
29
29
  }
@@ -495,6 +495,12 @@ export const HardwareErrorCode = {
495
495
  */
496
496
  KaspaPrevTxIdMismatch: 830,
497
497
 
498
+ /**
499
+ * The cached wallet session is invalid or has expired.
500
+ * @params: { failureCode?: string; subcode?: number; firmwareMessage?: string }
501
+ */
502
+ WalletSessionInvalid: 831,
503
+
498
504
  /**
499
505
  * Lowlevel transport connect error
500
506
  */
@@ -648,6 +654,7 @@ export const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping = {
648
654
  [HardwareErrorCode.PinMismatch]: 'PIN mismatch',
649
655
  [HardwareErrorCode.DeviceLocked]: 'Device locked',
650
656
  [HardwareErrorCode.KaspaPrevTxIdMismatch]: 'Kaspa previous transaction id mismatch',
657
+ [HardwareErrorCode.WalletSessionInvalid]: 'Wallet session is invalid or expired',
651
658
 
652
659
  /**
653
660
  * Lowlevel transport
package/src/constants.ts CHANGED
@@ -10,10 +10,10 @@ export type HardwareConnectProtocol =
10
10
 
11
11
  export const ONEKEY_WEBUSB_FILTER = [
12
12
  { vendorId: 0x1209, productId: 0x53c0 }, // Classic Boot、Classic1s Boot、Mini Boot
13
- { vendorId: 0x1209, productId: 0x53c1 }, // Classic Firmware、Classic1s Firmware、Mini Firmware、Pro Firmware、Touch Firmware、Pro2(旧固件,勿删:存量设备仍以此 PID 枚举)
14
- { vendorId: 0x1209, productId: 0x4f4a }, // Pro Boot、Touch Boot、Pro2
15
- { vendorId: 0x1209, productId: 0x4f4b }, // Pro Firmware、Touch Firmware(Not implemented Trezor)、Pro2
16
- { vendorId: 0x1209, productId: 0x4f4c }, // Pro Board、Pro2(新固件 PID
13
+ { vendorId: 0x1209, productId: 0x53c1 }, // Classic/Classic1s/Mini/Pro/Touch firmware and legacy Pro2; keep for existing devices
14
+ { vendorId: 0x1209, productId: 0x4f4a }, // Pro bootloader, Touch bootloader, Pro2
15
+ { vendorId: 0x1209, productId: 0x4f4b }, // Pro/Touch firmware (Trezor not implemented), Pro2
16
+ { vendorId: 0x1209, productId: 0x4f4c }, // Pro board and Pro2 with the new firmware PID
17
17
  // { vendorId: 0x1209, productId: 0x4f50 }, // Touch Board
18
18
  ];
19
19