@onekeyfe/hd-shared 1.0.37 → 1.0.38-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.
- package/dist/HardwareError.d.ts +1 -0
- package/dist/HardwareError.d.ts.map +1 -1
- package/dist/constants.d.ts +28 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.d.ts +29 -1
- package/dist/index.js +57 -0
- package/package.json +2 -2
- package/src/HardwareError.ts +6 -0
- package/src/constants.ts +68 -0
package/dist/HardwareError.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export declare const HardwareErrorCode: {
|
|
|
33
33
|
readonly DeviceDetectInBootloaderMode: 115;
|
|
34
34
|
readonly NotAllowInBootloaderMode: 116;
|
|
35
35
|
readonly DeviceBusy: 117;
|
|
36
|
+
readonly DeviceCheckUnlockTypeError: 118;
|
|
36
37
|
readonly NotInitialized: 200;
|
|
37
38
|
readonly IFrameNotInitialized: 300;
|
|
38
39
|
readonly IFrameAleradyInitialized: 301;
|
|
@@ -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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiXpB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,+BAkI7B,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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
export declare const ONEKEY_WEBUSB_FILTER: {
|
|
2
3
|
vendorId: number;
|
|
3
4
|
productId: number;
|
|
4
5
|
}[];
|
|
6
|
+
export declare enum EOneKeyBleMessageKeys {
|
|
7
|
+
BLE_SELECT = "$onekey-ble-select",
|
|
8
|
+
BLE_SELECT_RESULT = "$onekey-ble-select-result",
|
|
9
|
+
BLE_STOP_SCAN = "$onekey-ble-stop-scan",
|
|
10
|
+
BLE_CANCEL_REQUEST = "$onekey-ble-cancel-request",
|
|
11
|
+
BLE_PRE_SELECT = "$onekey-ble-pre-select",
|
|
12
|
+
BLE_CLEAR_PRE_SELECT = "$onekey-ble-clear-pre-select",
|
|
13
|
+
BLE_PAIRING_REQUEST = "$onekey-ble-pairing-request",
|
|
14
|
+
BLE_PAIRING_RESPONSE = "$onekey-ble-pairing-response",
|
|
15
|
+
BLE_ENUMERATE = "$onekey-ble-enumerate",
|
|
16
|
+
BLE_ENUMERATE_RESULT = "$onekey-ble-enumerate-result",
|
|
17
|
+
BLE_DEVICE_DISCONNECTED = "$onekey-ble-device-disconnected",
|
|
18
|
+
NOBLE_BLE_ENUMERATE = "$onekey-noble-ble-enumerate",
|
|
19
|
+
NOBLE_BLE_STOP_SCAN = "$onekey-noble-ble-stop-scan",
|
|
20
|
+
NOBLE_BLE_GET_DEVICE = "$onekey-noble-ble-get-device",
|
|
21
|
+
NOBLE_BLE_CONNECT = "$onekey-noble-ble-connect",
|
|
22
|
+
NOBLE_BLE_DISCONNECT = "$onekey-noble-ble-disconnect",
|
|
23
|
+
NOBLE_BLE_WRITE = "$onekey-noble-ble-write",
|
|
24
|
+
NOBLE_BLE_SUBSCRIBE = "$onekey-noble-ble-subscribe",
|
|
25
|
+
NOBLE_BLE_UNSUBSCRIBE = "$onekey-noble-ble-unsubscribe",
|
|
26
|
+
NOBLE_BLE_NOTIFICATION = "$onekey-noble-ble-notification"
|
|
27
|
+
}
|
|
28
|
+
export declare const ONEKEY_SERVICE_UUID = "00000001-0000-1000-8000-00805f9b34fb";
|
|
29
|
+
export declare const ONEKEY_WRITE_CHARACTERISTIC_UUID = "00000002-0000-1000-8000-00805f9b34fb";
|
|
30
|
+
export declare const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = "00000003-0000-1000-8000-00805f9b34fb";
|
|
31
|
+
export declare const isHeaderChunk: (chunk: Buffer | Uint8Array) => boolean;
|
|
32
|
+
export declare const isOnekeyDevice: (name: string | null, id?: string) => boolean;
|
|
5
33
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB;;;GAOhC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA,eAAO,MAAM,oBAAoB;;;GAOhC,CAAC;AAGF,oBAAY,qBAAqB;IAE/B,UAAU,uBAAuB;IACjC,iBAAiB,8BAA8B;IAC/C,aAAa,0BAA0B;IACvC,kBAAkB,+BAA+B;IACjD,cAAc,2BAA2B;IACzC,oBAAoB,iCAAiC;IAGrD,mBAAmB,gCAAgC;IACnD,oBAAoB,iCAAiC;IAGrD,aAAa,0BAA0B;IACvC,oBAAoB,iCAAiC;IAGrD,uBAAuB,oCAAoC;IAG3D,mBAAmB,gCAAgC;IACnD,mBAAmB,gCAAgC;IACnD,oBAAoB,iCAAiC;IACrD,iBAAiB,8BAA8B;IAC/C,oBAAoB,iCAAiC;IACrD,eAAe,4BAA4B;IAC3C,mBAAmB,gCAAgC;IACnD,qBAAqB,kCAAkC;IACvD,sBAAsB,mCAAmC;CAC1D;AAED,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AAC1E,eAAO,MAAM,gCAAgC,yCAAyC,CAAC;AACvF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AAIxF,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,UAAU,KAAG,OAa1D,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,GAAG,IAAI,OAAO,MAAM,KAAG,OAYjE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,33 @@ declare const ONEKEY_WEBUSB_FILTER: {
|
|
|
2
2
|
vendorId: number;
|
|
3
3
|
productId: number;
|
|
4
4
|
}[];
|
|
5
|
+
declare enum EOneKeyBleMessageKeys {
|
|
6
|
+
BLE_SELECT = "$onekey-ble-select",
|
|
7
|
+
BLE_SELECT_RESULT = "$onekey-ble-select-result",
|
|
8
|
+
BLE_STOP_SCAN = "$onekey-ble-stop-scan",
|
|
9
|
+
BLE_CANCEL_REQUEST = "$onekey-ble-cancel-request",
|
|
10
|
+
BLE_PRE_SELECT = "$onekey-ble-pre-select",
|
|
11
|
+
BLE_CLEAR_PRE_SELECT = "$onekey-ble-clear-pre-select",
|
|
12
|
+
BLE_PAIRING_REQUEST = "$onekey-ble-pairing-request",
|
|
13
|
+
BLE_PAIRING_RESPONSE = "$onekey-ble-pairing-response",
|
|
14
|
+
BLE_ENUMERATE = "$onekey-ble-enumerate",
|
|
15
|
+
BLE_ENUMERATE_RESULT = "$onekey-ble-enumerate-result",
|
|
16
|
+
BLE_DEVICE_DISCONNECTED = "$onekey-ble-device-disconnected",
|
|
17
|
+
NOBLE_BLE_ENUMERATE = "$onekey-noble-ble-enumerate",
|
|
18
|
+
NOBLE_BLE_STOP_SCAN = "$onekey-noble-ble-stop-scan",
|
|
19
|
+
NOBLE_BLE_GET_DEVICE = "$onekey-noble-ble-get-device",
|
|
20
|
+
NOBLE_BLE_CONNECT = "$onekey-noble-ble-connect",
|
|
21
|
+
NOBLE_BLE_DISCONNECT = "$onekey-noble-ble-disconnect",
|
|
22
|
+
NOBLE_BLE_WRITE = "$onekey-noble-ble-write",
|
|
23
|
+
NOBLE_BLE_SUBSCRIBE = "$onekey-noble-ble-subscribe",
|
|
24
|
+
NOBLE_BLE_UNSUBSCRIBE = "$onekey-noble-ble-unsubscribe",
|
|
25
|
+
NOBLE_BLE_NOTIFICATION = "$onekey-noble-ble-notification"
|
|
26
|
+
}
|
|
27
|
+
declare const ONEKEY_SERVICE_UUID = "00000001-0000-1000-8000-00805f9b34fb";
|
|
28
|
+
declare const ONEKEY_WRITE_CHARACTERISTIC_UUID = "00000002-0000-1000-8000-00805f9b34fb";
|
|
29
|
+
declare const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = "00000003-0000-1000-8000-00805f9b34fb";
|
|
30
|
+
declare const isHeaderChunk: (chunk: Buffer | Uint8Array) => boolean;
|
|
31
|
+
declare const isOnekeyDevice: (name: string | null, id?: string) => boolean;
|
|
5
32
|
|
|
6
33
|
type Deferred<T, I = any, D = any> = {
|
|
7
34
|
id?: I;
|
|
@@ -47,6 +74,7 @@ declare const HardwareErrorCode: {
|
|
|
47
74
|
readonly DeviceDetectInBootloaderMode: 115;
|
|
48
75
|
readonly NotAllowInBootloaderMode: 116;
|
|
49
76
|
readonly DeviceBusy: 117;
|
|
77
|
+
readonly DeviceCheckUnlockTypeError: 118;
|
|
50
78
|
readonly NotInitialized: 200;
|
|
51
79
|
readonly IFrameNotInitialized: 300;
|
|
52
80
|
readonly IFrameAleradyInitialized: 301;
|
|
@@ -167,4 +195,4 @@ declare enum EDeviceType {
|
|
|
167
195
|
Pro = "pro"
|
|
168
196
|
}
|
|
169
197
|
|
|
170
|
-
export { CreateErrorByMessage, Deferred, EDeviceType, HardwareError$1 as ERRORS, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, ONEKEY_WEBUSB_FILTER, TypedError, createDeferred, createDeprecatedHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createNewFirmwareUnReleaseHardwareError, serializeError, wait };
|
|
198
|
+
export { CreateErrorByMessage, Deferred, EDeviceType, 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 };
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,56 @@ const ONEKEY_WEBUSB_FILTER = [
|
|
|
8
8
|
{ vendorId: 0x1209, productId: 0x4f4a },
|
|
9
9
|
{ vendorId: 0x1209, productId: 0x4f4b },
|
|
10
10
|
];
|
|
11
|
+
exports.EOneKeyBleMessageKeys = void 0;
|
|
12
|
+
(function (EOneKeyBleMessageKeys) {
|
|
13
|
+
EOneKeyBleMessageKeys["BLE_SELECT"] = "$onekey-ble-select";
|
|
14
|
+
EOneKeyBleMessageKeys["BLE_SELECT_RESULT"] = "$onekey-ble-select-result";
|
|
15
|
+
EOneKeyBleMessageKeys["BLE_STOP_SCAN"] = "$onekey-ble-stop-scan";
|
|
16
|
+
EOneKeyBleMessageKeys["BLE_CANCEL_REQUEST"] = "$onekey-ble-cancel-request";
|
|
17
|
+
EOneKeyBleMessageKeys["BLE_PRE_SELECT"] = "$onekey-ble-pre-select";
|
|
18
|
+
EOneKeyBleMessageKeys["BLE_CLEAR_PRE_SELECT"] = "$onekey-ble-clear-pre-select";
|
|
19
|
+
EOneKeyBleMessageKeys["BLE_PAIRING_REQUEST"] = "$onekey-ble-pairing-request";
|
|
20
|
+
EOneKeyBleMessageKeys["BLE_PAIRING_RESPONSE"] = "$onekey-ble-pairing-response";
|
|
21
|
+
EOneKeyBleMessageKeys["BLE_ENUMERATE"] = "$onekey-ble-enumerate";
|
|
22
|
+
EOneKeyBleMessageKeys["BLE_ENUMERATE_RESULT"] = "$onekey-ble-enumerate-result";
|
|
23
|
+
EOneKeyBleMessageKeys["BLE_DEVICE_DISCONNECTED"] = "$onekey-ble-device-disconnected";
|
|
24
|
+
EOneKeyBleMessageKeys["NOBLE_BLE_ENUMERATE"] = "$onekey-noble-ble-enumerate";
|
|
25
|
+
EOneKeyBleMessageKeys["NOBLE_BLE_STOP_SCAN"] = "$onekey-noble-ble-stop-scan";
|
|
26
|
+
EOneKeyBleMessageKeys["NOBLE_BLE_GET_DEVICE"] = "$onekey-noble-ble-get-device";
|
|
27
|
+
EOneKeyBleMessageKeys["NOBLE_BLE_CONNECT"] = "$onekey-noble-ble-connect";
|
|
28
|
+
EOneKeyBleMessageKeys["NOBLE_BLE_DISCONNECT"] = "$onekey-noble-ble-disconnect";
|
|
29
|
+
EOneKeyBleMessageKeys["NOBLE_BLE_WRITE"] = "$onekey-noble-ble-write";
|
|
30
|
+
EOneKeyBleMessageKeys["NOBLE_BLE_SUBSCRIBE"] = "$onekey-noble-ble-subscribe";
|
|
31
|
+
EOneKeyBleMessageKeys["NOBLE_BLE_UNSUBSCRIBE"] = "$onekey-noble-ble-unsubscribe";
|
|
32
|
+
EOneKeyBleMessageKeys["NOBLE_BLE_NOTIFICATION"] = "$onekey-noble-ble-notification";
|
|
33
|
+
})(exports.EOneKeyBleMessageKeys || (exports.EOneKeyBleMessageKeys = {}));
|
|
34
|
+
const ONEKEY_SERVICE_UUID = '00000001-0000-1000-8000-00805f9b34fb';
|
|
35
|
+
const ONEKEY_WRITE_CHARACTERISTIC_UUID = '00000002-0000-1000-8000-00805f9b34fb';
|
|
36
|
+
const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = '00000003-0000-1000-8000-00805f9b34fb';
|
|
37
|
+
const MESSAGE_TOP_CHAR = 63;
|
|
38
|
+
const MESSAGE_HEADER_BYTE = 35;
|
|
39
|
+
const isHeaderChunk = (chunk) => {
|
|
40
|
+
if (chunk.length < 9)
|
|
41
|
+
return false;
|
|
42
|
+
const [MagicQuestionMark, sharp1, sharp2] = chunk;
|
|
43
|
+
if (String.fromCharCode(MagicQuestionMark) === String.fromCharCode(MESSAGE_TOP_CHAR) &&
|
|
44
|
+
String.fromCharCode(sharp1) === String.fromCharCode(MESSAGE_HEADER_BYTE) &&
|
|
45
|
+
String.fromCharCode(sharp2) === String.fromCharCode(MESSAGE_HEADER_BYTE)) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
};
|
|
50
|
+
const isOnekeyDevice = (name, id) => {
|
|
51
|
+
var _a;
|
|
52
|
+
if ((_a = id === null || id === void 0 ? void 0 : id.startsWith) === null || _a === void 0 ? void 0 : _a.call(id, 'MI')) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
const re = /(BixinKey\d{10})|(K\d{4})|(T\d{4})|(Touch\s\w{4})|(Pro\s\w{4})/i;
|
|
56
|
+
if (name && re.exec(name)) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
};
|
|
11
61
|
|
|
12
62
|
/******************************************************************************
|
|
13
63
|
Copyright (c) Microsoft Corporation.
|
|
@@ -114,6 +164,7 @@ const HardwareErrorCode = {
|
|
|
114
164
|
DeviceDetectInBootloaderMode: 115,
|
|
115
165
|
NotAllowInBootloaderMode: 116,
|
|
116
166
|
DeviceBusy: 117,
|
|
167
|
+
DeviceCheckUnlockTypeError: 118,
|
|
117
168
|
NotInitialized: 200,
|
|
118
169
|
IFrameNotInitialized: 300,
|
|
119
170
|
IFrameAleradyInitialized: 301,
|
|
@@ -204,6 +255,7 @@ const HardwareErrorCodeMessage = {
|
|
|
204
255
|
[HardwareErrorCode.DeviceDetectInBootloaderMode]: 'Device in bootloader mode',
|
|
205
256
|
[HardwareErrorCode.NotAllowInBootloaderMode]: 'Device not allow in bootloader mode',
|
|
206
257
|
[HardwareErrorCode.DeviceBusy]: 'Device is busy',
|
|
258
|
+
[HardwareErrorCode.DeviceCheckUnlockTypeError]: 'Device check unlock type not match error',
|
|
207
259
|
[HardwareErrorCode.NotInitialized]: 'Not initialized',
|
|
208
260
|
[HardwareErrorCode.IFrameNotInitialized]: 'IFrame not initialized',
|
|
209
261
|
[HardwareErrorCode.IFrameAleradyInitialized]: 'IFrame alerady initialized',
|
|
@@ -344,12 +396,17 @@ exports.ERRORS = HardwareError$1;
|
|
|
344
396
|
exports.HardwareError = HardwareError;
|
|
345
397
|
exports.HardwareErrorCode = HardwareErrorCode;
|
|
346
398
|
exports.HardwareErrorCodeMessage = HardwareErrorCodeMessage;
|
|
399
|
+
exports.ONEKEY_NOTIFY_CHARACTERISTIC_UUID = ONEKEY_NOTIFY_CHARACTERISTIC_UUID;
|
|
400
|
+
exports.ONEKEY_SERVICE_UUID = ONEKEY_SERVICE_UUID;
|
|
347
401
|
exports.ONEKEY_WEBUSB_FILTER = ONEKEY_WEBUSB_FILTER;
|
|
402
|
+
exports.ONEKEY_WRITE_CHARACTERISTIC_UUID = ONEKEY_WRITE_CHARACTERISTIC_UUID;
|
|
348
403
|
exports.TypedError = TypedError;
|
|
349
404
|
exports.createDeferred = createDeferred;
|
|
350
405
|
exports.createDeprecatedHardwareError = createDeprecatedHardwareError;
|
|
351
406
|
exports.createNeedUpgradeFirmwareHardwareError = createNeedUpgradeFirmwareHardwareError;
|
|
352
407
|
exports.createNewFirmwareForceUpdateHardwareError = createNewFirmwareForceUpdateHardwareError;
|
|
353
408
|
exports.createNewFirmwareUnReleaseHardwareError = createNewFirmwareUnReleaseHardwareError;
|
|
409
|
+
exports.isHeaderChunk = isHeaderChunk;
|
|
410
|
+
exports.isOnekeyDevice = isOnekeyDevice;
|
|
354
411
|
exports.serializeError = serializeError;
|
|
355
412
|
exports.wait = wait;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-shared",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.38-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": "
|
|
28
|
+
"gitHead": "8abef3b449b357bd179ed0f9a60f763335a688cd"
|
|
29
29
|
}
|
package/src/HardwareError.ts
CHANGED
|
@@ -136,6 +136,11 @@ export const HardwareErrorCode = {
|
|
|
136
136
|
*/
|
|
137
137
|
DeviceBusy: 117,
|
|
138
138
|
|
|
139
|
+
/**
|
|
140
|
+
* Device check unlock type not match error
|
|
141
|
+
*/
|
|
142
|
+
DeviceCheckUnlockTypeError: 118,
|
|
143
|
+
|
|
139
144
|
/**
|
|
140
145
|
* Not initialized
|
|
141
146
|
*/
|
|
@@ -432,6 +437,7 @@ export const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping = {
|
|
|
432
437
|
[HardwareErrorCode.DeviceDetectInBootloaderMode]: 'Device in bootloader mode',
|
|
433
438
|
[HardwareErrorCode.NotAllowInBootloaderMode]: 'Device not allow in bootloader mode',
|
|
434
439
|
[HardwareErrorCode.DeviceBusy]: 'Device is busy',
|
|
440
|
+
[HardwareErrorCode.DeviceCheckUnlockTypeError]: 'Device check unlock type not match error',
|
|
435
441
|
/**
|
|
436
442
|
* Node Errors
|
|
437
443
|
*/
|
package/src/constants.ts
CHANGED
|
@@ -6,3 +6,71 @@ export const ONEKEY_WEBUSB_FILTER = [
|
|
|
6
6
|
// { vendorId: 0x1209, productId: 0x4f4c }, // Pro Board
|
|
7
7
|
// { vendorId: 0x1209, productId: 0x4f50 }, // Touch Board
|
|
8
8
|
];
|
|
9
|
+
|
|
10
|
+
// BLE IPC communication message types
|
|
11
|
+
export enum EOneKeyBleMessageKeys {
|
|
12
|
+
// BLE device selection related
|
|
13
|
+
BLE_SELECT = '$onekey-ble-select',
|
|
14
|
+
BLE_SELECT_RESULT = '$onekey-ble-select-result',
|
|
15
|
+
BLE_STOP_SCAN = '$onekey-ble-stop-scan',
|
|
16
|
+
BLE_CANCEL_REQUEST = '$onekey-ble-cancel-request',
|
|
17
|
+
BLE_PRE_SELECT = '$onekey-ble-pre-select',
|
|
18
|
+
BLE_CLEAR_PRE_SELECT = '$onekey-ble-clear-pre-select',
|
|
19
|
+
|
|
20
|
+
// BLE pairing related
|
|
21
|
+
BLE_PAIRING_REQUEST = '$onekey-ble-pairing-request',
|
|
22
|
+
BLE_PAIRING_RESPONSE = '$onekey-ble-pairing-response',
|
|
23
|
+
|
|
24
|
+
// BLE enumeration related
|
|
25
|
+
BLE_ENUMERATE = '$onekey-ble-enumerate',
|
|
26
|
+
BLE_ENUMERATE_RESULT = '$onekey-ble-enumerate-result',
|
|
27
|
+
|
|
28
|
+
// BLE connection status related
|
|
29
|
+
BLE_DEVICE_DISCONNECTED = '$onekey-ble-device-disconnected',
|
|
30
|
+
|
|
31
|
+
// Noble BLE related (for direct BLE communication)
|
|
32
|
+
NOBLE_BLE_ENUMERATE = '$onekey-noble-ble-enumerate',
|
|
33
|
+
NOBLE_BLE_STOP_SCAN = '$onekey-noble-ble-stop-scan',
|
|
34
|
+
NOBLE_BLE_GET_DEVICE = '$onekey-noble-ble-get-device',
|
|
35
|
+
NOBLE_BLE_CONNECT = '$onekey-noble-ble-connect',
|
|
36
|
+
NOBLE_BLE_DISCONNECT = '$onekey-noble-ble-disconnect',
|
|
37
|
+
NOBLE_BLE_WRITE = '$onekey-noble-ble-write',
|
|
38
|
+
NOBLE_BLE_SUBSCRIBE = '$onekey-noble-ble-subscribe',
|
|
39
|
+
NOBLE_BLE_UNSUBSCRIBE = '$onekey-noble-ble-unsubscribe',
|
|
40
|
+
NOBLE_BLE_NOTIFICATION = '$onekey-noble-ble-notification',
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const ONEKEY_SERVICE_UUID = '00000001-0000-1000-8000-00805f9b34fb';
|
|
44
|
+
export const ONEKEY_WRITE_CHARACTERISTIC_UUID = '00000002-0000-1000-8000-00805f9b34fb';
|
|
45
|
+
export const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = '00000003-0000-1000-8000-00805f9b34fb';
|
|
46
|
+
|
|
47
|
+
const MESSAGE_TOP_CHAR = 63;
|
|
48
|
+
const MESSAGE_HEADER_BYTE = 35;
|
|
49
|
+
export const isHeaderChunk = (chunk: Buffer | Uint8Array): boolean => {
|
|
50
|
+
if (chunk.length < 9) return false;
|
|
51
|
+
const [MagicQuestionMark, sharp1, sharp2] = chunk;
|
|
52
|
+
|
|
53
|
+
if (
|
|
54
|
+
String.fromCharCode(MagicQuestionMark) === String.fromCharCode(MESSAGE_TOP_CHAR) &&
|
|
55
|
+
String.fromCharCode(sharp1) === String.fromCharCode(MESSAGE_HEADER_BYTE) &&
|
|
56
|
+
String.fromCharCode(sharp2) === String.fromCharCode(MESSAGE_HEADER_BYTE)
|
|
57
|
+
) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return false;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export const isOnekeyDevice = (name: string | null, id?: string): boolean => {
|
|
65
|
+
if (id?.startsWith?.('MI')) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// 过滤 BixinKeyxxx 和 Kxxxx 和 Txxxx
|
|
70
|
+
// i 忽略大小写模式
|
|
71
|
+
const re = /(BixinKey\d{10})|(K\d{4})|(T\d{4})|(Touch\s\w{4})|(Pro\s\w{4})/i;
|
|
72
|
+
if (name && re.exec(name)) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
};
|