@ukeyfe/hd-shared 1.1.14 → 1.1.17

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.
@@ -0,0 +1,128 @@
1
+ export interface IHardwareError {
2
+ errorCode: ValueOf<typeof HardwareErrorCode>;
3
+ message?: string;
4
+ params?: any;
5
+ }
6
+ type ValueOf<P extends object> = P[keyof P];
7
+ type HardwareErrorCodeMessageMapping = {
8
+ [P in ValueOf<typeof HardwareErrorCode>]: string;
9
+ };
10
+ type ErrorCodeUnion = ValueOf<typeof HardwareErrorCode>;
11
+ export declare class HardwareError extends Error {
12
+ errorCode: ErrorCodeUnion;
13
+ message: string;
14
+ params: any;
15
+ constructor(hardwareError: IHardwareError | string);
16
+ }
17
+ export declare const HardwareErrorCode: {
18
+ readonly UnknownError: 0;
19
+ readonly DeviceFwException: 101;
20
+ readonly DeviceUnexpectedMode: 102;
21
+ readonly DeviceListNotInitialized: 103;
22
+ readonly SelectDevice: 104;
23
+ readonly DeviceNotFound: 105;
24
+ readonly DeviceInitializeFailed: 106;
25
+ readonly DeviceInterruptedFromOutside: 107;
26
+ readonly RequiredButInBootloaderMode: 108;
27
+ readonly DeviceInterruptedFromUser: 109;
28
+ readonly DeviceCheckDeviceIdError: 110;
29
+ readonly DeviceNotSupportPassphrase: 111;
30
+ readonly DeviceCheckPassphraseStateError: 112;
31
+ readonly DeviceNotOpenedPassphrase: 113;
32
+ readonly DeviceOpenedPassphrase: 114;
33
+ readonly DeviceDetectInBootloaderMode: 115;
34
+ readonly NotAllowInBootloaderMode: 116;
35
+ readonly DeviceBusy: 117;
36
+ readonly DeviceCheckUnlockTypeError: 118;
37
+ readonly NotInitialized: 200;
38
+ readonly IFrameNotInitialized: 300;
39
+ readonly IFrameAleradyInitialized: 301;
40
+ readonly IFrameLoadFail: 302;
41
+ readonly IframeTimeout: 303;
42
+ readonly IframeBlocked: 304;
43
+ readonly IframeDistrust: 305;
44
+ readonly CallMethodError: 400;
45
+ readonly CallMethodNotResponse: 404;
46
+ readonly CallMethodInvalidParameter: 405;
47
+ readonly FirmwareUpdateDownloadFailed: 406;
48
+ readonly CallMethodNeedUpgradeFirmware: 407;
49
+ readonly CallMethodDeprecated: 408;
50
+ readonly FirmwareUpdateLimitOneDevice: 409;
51
+ readonly FirmwareUpdateManuallyEnterBoot: 410;
52
+ readonly FirmwareUpdateAutoEnterBootFailure: 411;
53
+ readonly NewFirmwareUnRelease: 412;
54
+ readonly UseDesktopToUpdateFirmware: 413;
55
+ readonly NewFirmwareForceUpdate: 414;
56
+ readonly DeviceNotSupportMethod: 415;
57
+ readonly ForbiddenKeyPath: 416;
58
+ readonly RepeatUnlocking: 417;
59
+ readonly DefectiveFirmware: 418;
60
+ readonly NetworkError: 500;
61
+ readonly TransportNotConfigured: 600;
62
+ readonly TransportCallInProgress: 601;
63
+ readonly TransportNotFound: 602;
64
+ readonly TransportInvalidProtobuf: 603;
65
+ readonly BleScanError: 700;
66
+ readonly BlePermissionError: 701;
67
+ readonly BleLocationError: 702;
68
+ readonly BleRequiredUUID: 703;
69
+ readonly BleConnectedError: 704;
70
+ readonly BleDeviceNotBonded: 705;
71
+ readonly BleServiceNotFound: 706;
72
+ readonly BleCharacteristicNotFound: 707;
73
+ readonly BleMonitorError: 708;
74
+ readonly BleCharacteristicNotifyError: 709;
75
+ readonly BleWriteCharacteristicError: 710;
76
+ readonly BleAlreadyConnected: 711;
77
+ readonly BleLocationServicesDisabled: 712;
78
+ readonly BleTimeoutError: 713;
79
+ readonly BleForceCleanRunPromise: 714;
80
+ readonly BleDeviceBondError: 715;
81
+ readonly BleCharacteristicNotifyChangeFailure: 716;
82
+ readonly BleTransportCallCanceled: 717;
83
+ readonly BleDeviceBondedCanceled: 718;
84
+ readonly BlePeerRemovedPairingInformation: 719;
85
+ readonly BleDeviceDisconnected: 720;
86
+ readonly BlePoweredOff: 721;
87
+ readonly BleUnsupported: 722;
88
+ readonly RuntimeError: 800;
89
+ readonly PinInvalid: 801;
90
+ readonly PinCancelled: 802;
91
+ readonly ActionCancelled: 803;
92
+ readonly FirmwareError: 804;
93
+ readonly ResponseUnexpectTypeError: 805;
94
+ readonly BridgeNetworkError: 806;
95
+ readonly BridgeTimeoutError: 807;
96
+ readonly BridgeNotInstalled: 808;
97
+ readonly PollingTimeout: 809;
98
+ readonly PollingStop: 810;
99
+ readonly BlindSignDisabled: 811;
100
+ readonly UnexpectPassphrase: 812;
101
+ readonly FileAlreadyExists: 813;
102
+ readonly CheckDownloadFileError: 814;
103
+ readonly NotInSigningMode: 815;
104
+ readonly DataOverload: 816;
105
+ readonly BridgeDeviceDisconnected: 817;
106
+ readonly BTCPsbtTooManyUtxos: 818;
107
+ readonly EmmcFileWriteFirmwareError: 819;
108
+ readonly FirmwareVerificationFailed: 820;
109
+ readonly BridgeNeedsPermission: 821;
110
+ readonly LowlevelTrasnportConnectError: 900;
111
+ readonly WebDeviceNotFoundOrNeedsPermission: 901;
112
+ readonly WebDevicePromptAccessError: 902;
113
+ };
114
+ export declare const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping;
115
+ export declare const TypedError: (hardwareError: ErrorCodeUnion | string, message?: string, params?: any) => HardwareError;
116
+ export declare const serializeError: (payload: any) => any;
117
+ export declare const CreateErrorByMessage: (message: string) => HardwareError;
118
+ export declare const CreateHardwareErrorByBridgeError: (raw: string) => HardwareError;
119
+ declare const createNewFirmwareUnReleaseHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
120
+ declare const createNeedUpgradeFirmwareHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
121
+ declare const createNewFirmwareForceUpdateHardwareError: (connectId: string | undefined, deviceId: string | undefined, versionTypes?: ('firmware' | 'ble')[], currentVersions?: {
122
+ firmware?: string;
123
+ ble?: string;
124
+ }) => HardwareError;
125
+ declare const createDeprecatedHardwareError: (currentVersion: string, deprecatedVersion: string, methodName?: string) => HardwareError;
126
+ declare const createDefectiveFirmwareError: (serialNo: string, seVersion: string, deviceType: string, connectId?: string, deviceId?: string) => HardwareError;
127
+ export { createNewFirmwareUnReleaseHardwareError, createNeedUpgradeFirmwareHardwareError, createNewFirmwareForceUpdateHardwareError, createDeprecatedHardwareError, createDefectiveFirmwareError, };
128
+ //# sourceMappingURL=HardwareError.d.ts.map
@@ -0,0 +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;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwYpB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,+BAwI7B,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,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,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,OAAO,EACL,uCAAuC,EACvC,sCAAsC,EACtC,yCAAyC,EACzC,6BAA6B,EAC7B,4BAA4B,GAC7B,CAAC"}
@@ -0,0 +1,35 @@
1
+ /// <reference types="node" />
2
+ export declare const ONEKEY_WEBUSB_FILTER: {
3
+ vendorId: number;
4
+ productId: number;
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
+ BLE_AVAILABILITY_CHECK = "$onekey-ble-availability-check",
19
+ NOBLE_BLE_ENUMERATE = "$onekey-noble-ble-enumerate",
20
+ NOBLE_BLE_STOP_SCAN = "$onekey-noble-ble-stop-scan",
21
+ NOBLE_BLE_GET_DEVICE = "$onekey-noble-ble-get-device",
22
+ NOBLE_BLE_CONNECT = "$onekey-noble-ble-connect",
23
+ NOBLE_BLE_DISCONNECT = "$onekey-noble-ble-disconnect",
24
+ NOBLE_BLE_WRITE = "$onekey-noble-ble-write",
25
+ NOBLE_BLE_SUBSCRIBE = "$onekey-noble-ble-subscribe",
26
+ NOBLE_BLE_UNSUBSCRIBE = "$onekey-noble-ble-unsubscribe",
27
+ NOBLE_BLE_NOTIFICATION = "$onekey-noble-ble-notification",
28
+ NOBLE_BLE_CANCEL_PAIRING = "$onekey-noble-ble-cancel-pairing"
29
+ }
30
+ export declare const ONEKEY_SERVICE_UUID = "00000001-0000-1000-8000-00805f9b34fb";
31
+ export declare const ONEKEY_WRITE_CHARACTERISTIC_UUID = "00000002-0000-1000-8000-00805f9b34fb";
32
+ export declare const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = "00000003-0000-1000-8000-00805f9b34fb";
33
+ export declare const isHeaderChunk: (chunk: Buffer | Uint8Array) => boolean;
34
+ export declare const isOnekeyDevice: (name: string | null, id?: string) => boolean;
35
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
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;IAC3D,sBAAsB,mCAAmC;IAGzD,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;IACzD,wBAAwB,qCAAqC;CAC9D;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"}
@@ -0,0 +1,9 @@
1
+ export type Deferred<T, I = any, D = any> = {
2
+ id?: I;
3
+ data?: D;
4
+ promise: Promise<T>;
5
+ resolve: (t: T) => void;
6
+ reject: (e: Error) => void;
7
+ };
8
+ export declare function createDeferred<T, I = any, D = any>(arg?: I, data?: D): Deferred<T, I, D>;
9
+ //# sourceMappingURL=deferred.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferred.d.ts","sourceRoot":"","sources":["../src/deferred.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI;IAC1C,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAC5B,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CA0BxF"}
@@ -0,0 +1,10 @@
1
+ export declare enum EDeviceType {
2
+ Unknown = "unknown",
3
+ Classic = "classic",
4
+ Classic1s = "classic1s",
5
+ ClassicPure = "classicpure",
6
+ Mini = "mini",
7
+ Touch = "touch",
8
+ Pro = "pro"
9
+ }
10
+ //# sourceMappingURL=deviceType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceType.d.ts","sourceRoot":"","sources":["../src/deviceType.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ"}
@@ -0,0 +1,5 @@
1
+ export declare enum EFirmwareType {
2
+ Universal = "universal",
3
+ BitcoinOnly = "bitcoinonly"
4
+ }
5
+ //# sourceMappingURL=firmwareType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firmwareType.d.ts","sourceRoot":"","sources":["../src/firmwareType.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,SAAS,cAAc;IACvB,WAAW,gBAAgB;CAC5B"}
@@ -0,0 +1,220 @@
1
+ declare const ONEKEY_WEBUSB_FILTER: {
2
+ vendorId: number;
3
+ productId: number;
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
+ BLE_AVAILABILITY_CHECK = "$onekey-ble-availability-check",
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
+ NOBLE_BLE_CANCEL_PAIRING = "$onekey-noble-ble-cancel-pairing"
28
+ }
29
+ declare const ONEKEY_SERVICE_UUID = "00000001-0000-1000-8000-00805f9b34fb";
30
+ declare const ONEKEY_WRITE_CHARACTERISTIC_UUID = "00000002-0000-1000-8000-00805f9b34fb";
31
+ declare const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = "00000003-0000-1000-8000-00805f9b34fb";
32
+ declare const isHeaderChunk: (chunk: Buffer | Uint8Array) => boolean;
33
+ declare const isOnekeyDevice: (name: string | null, id?: string) => boolean;
34
+
35
+ type Deferred<T, I = any, D = any> = {
36
+ id?: I;
37
+ data?: D;
38
+ promise: Promise<T>;
39
+ resolve: (t: T) => void;
40
+ reject: (e: Error) => void;
41
+ };
42
+ declare function createDeferred<T, I = any, D = any>(arg?: I, data?: D): Deferred<T, I, D>;
43
+
44
+ interface IHardwareError {
45
+ errorCode: ValueOf<typeof HardwareErrorCode>;
46
+ message?: string;
47
+ params?: any;
48
+ }
49
+ type ValueOf<P extends object> = P[keyof P];
50
+ type HardwareErrorCodeMessageMapping = {
51
+ [P in ValueOf<typeof HardwareErrorCode>]: string;
52
+ };
53
+ type ErrorCodeUnion = ValueOf<typeof HardwareErrorCode>;
54
+ declare class HardwareError extends Error {
55
+ errorCode: ErrorCodeUnion;
56
+ message: string;
57
+ params: any;
58
+ constructor(hardwareError: IHardwareError | string);
59
+ }
60
+ declare const HardwareErrorCode: {
61
+ readonly UnknownError: 0;
62
+ readonly DeviceFwException: 101;
63
+ readonly DeviceUnexpectedMode: 102;
64
+ readonly DeviceListNotInitialized: 103;
65
+ readonly SelectDevice: 104;
66
+ readonly DeviceNotFound: 105;
67
+ readonly DeviceInitializeFailed: 106;
68
+ readonly DeviceInterruptedFromOutside: 107;
69
+ readonly RequiredButInBootloaderMode: 108;
70
+ readonly DeviceInterruptedFromUser: 109;
71
+ readonly DeviceCheckDeviceIdError: 110;
72
+ readonly DeviceNotSupportPassphrase: 111;
73
+ readonly DeviceCheckPassphraseStateError: 112;
74
+ readonly DeviceNotOpenedPassphrase: 113;
75
+ readonly DeviceOpenedPassphrase: 114;
76
+ readonly DeviceDetectInBootloaderMode: 115;
77
+ readonly NotAllowInBootloaderMode: 116;
78
+ readonly DeviceBusy: 117;
79
+ readonly DeviceCheckUnlockTypeError: 118;
80
+ readonly NotInitialized: 200;
81
+ readonly IFrameNotInitialized: 300;
82
+ readonly IFrameAleradyInitialized: 301;
83
+ readonly IFrameLoadFail: 302;
84
+ readonly IframeTimeout: 303;
85
+ readonly IframeBlocked: 304;
86
+ readonly IframeDistrust: 305;
87
+ readonly CallMethodError: 400;
88
+ readonly CallMethodNotResponse: 404;
89
+ readonly CallMethodInvalidParameter: 405;
90
+ readonly FirmwareUpdateDownloadFailed: 406;
91
+ readonly CallMethodNeedUpgradeFirmware: 407;
92
+ readonly CallMethodDeprecated: 408;
93
+ readonly FirmwareUpdateLimitOneDevice: 409;
94
+ readonly FirmwareUpdateManuallyEnterBoot: 410;
95
+ readonly FirmwareUpdateAutoEnterBootFailure: 411;
96
+ readonly NewFirmwareUnRelease: 412;
97
+ readonly UseDesktopToUpdateFirmware: 413;
98
+ readonly NewFirmwareForceUpdate: 414;
99
+ readonly DeviceNotSupportMethod: 415;
100
+ readonly ForbiddenKeyPath: 416;
101
+ readonly RepeatUnlocking: 417;
102
+ readonly DefectiveFirmware: 418;
103
+ readonly NetworkError: 500;
104
+ readonly TransportNotConfigured: 600;
105
+ readonly TransportCallInProgress: 601;
106
+ readonly TransportNotFound: 602;
107
+ readonly TransportInvalidProtobuf: 603;
108
+ readonly BleScanError: 700;
109
+ readonly BlePermissionError: 701;
110
+ readonly BleLocationError: 702;
111
+ readonly BleRequiredUUID: 703;
112
+ readonly BleConnectedError: 704;
113
+ readonly BleDeviceNotBonded: 705;
114
+ readonly BleServiceNotFound: 706;
115
+ readonly BleCharacteristicNotFound: 707;
116
+ readonly BleMonitorError: 708;
117
+ readonly BleCharacteristicNotifyError: 709;
118
+ readonly BleWriteCharacteristicError: 710;
119
+ readonly BleAlreadyConnected: 711;
120
+ readonly BleLocationServicesDisabled: 712;
121
+ readonly BleTimeoutError: 713;
122
+ readonly BleForceCleanRunPromise: 714;
123
+ readonly BleDeviceBondError: 715;
124
+ readonly BleCharacteristicNotifyChangeFailure: 716;
125
+ readonly BleTransportCallCanceled: 717;
126
+ readonly BleDeviceBondedCanceled: 718;
127
+ readonly BlePeerRemovedPairingInformation: 719;
128
+ readonly BleDeviceDisconnected: 720;
129
+ readonly BlePoweredOff: 721;
130
+ readonly BleUnsupported: 722;
131
+ readonly RuntimeError: 800;
132
+ readonly PinInvalid: 801;
133
+ readonly PinCancelled: 802;
134
+ readonly ActionCancelled: 803;
135
+ readonly FirmwareError: 804;
136
+ readonly ResponseUnexpectTypeError: 805;
137
+ readonly BridgeNetworkError: 806;
138
+ readonly BridgeTimeoutError: 807;
139
+ readonly BridgeNotInstalled: 808;
140
+ readonly PollingTimeout: 809;
141
+ readonly PollingStop: 810;
142
+ readonly BlindSignDisabled: 811;
143
+ readonly UnexpectPassphrase: 812;
144
+ readonly FileAlreadyExists: 813;
145
+ readonly CheckDownloadFileError: 814;
146
+ readonly NotInSigningMode: 815;
147
+ readonly DataOverload: 816;
148
+ readonly BridgeDeviceDisconnected: 817;
149
+ readonly BTCPsbtTooManyUtxos: 818;
150
+ readonly EmmcFileWriteFirmwareError: 819;
151
+ readonly FirmwareVerificationFailed: 820;
152
+ readonly BridgeNeedsPermission: 821;
153
+ readonly LowlevelTrasnportConnectError: 900;
154
+ readonly WebDeviceNotFoundOrNeedsPermission: 901;
155
+ readonly WebDevicePromptAccessError: 902;
156
+ };
157
+ declare const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping;
158
+ declare const TypedError: (hardwareError: ErrorCodeUnion | string, message?: string, params?: any) => HardwareError;
159
+ declare const serializeError: (payload: any) => any;
160
+ declare const CreateErrorByMessage: (message: string) => HardwareError;
161
+ declare const CreateHardwareErrorByBridgeError: (raw: string) => HardwareError;
162
+ declare const createNewFirmwareUnReleaseHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
163
+ declare const createNeedUpgradeFirmwareHardwareError: (currentVersion: string, requireVersion: string, methodName?: string) => HardwareError;
164
+ declare const createNewFirmwareForceUpdateHardwareError: (connectId: string | undefined, deviceId: string | undefined, versionTypes?: ('firmware' | 'ble')[], currentVersions?: {
165
+ firmware?: string;
166
+ ble?: string;
167
+ }) => HardwareError;
168
+ declare const createDeprecatedHardwareError: (currentVersion: string, deprecatedVersion: string, methodName?: string) => HardwareError;
169
+ declare const createDefectiveFirmwareError: (serialNo: string, seVersion: string, deviceType: string, connectId?: string, deviceId?: string) => HardwareError;
170
+
171
+ declare const HardwareError$1_createNewFirmwareUnReleaseHardwareError: typeof createNewFirmwareUnReleaseHardwareError;
172
+ declare const HardwareError$1_createNeedUpgradeFirmwareHardwareError: typeof createNeedUpgradeFirmwareHardwareError;
173
+ declare const HardwareError$1_createNewFirmwareForceUpdateHardwareError: typeof createNewFirmwareForceUpdateHardwareError;
174
+ declare const HardwareError$1_createDeprecatedHardwareError: typeof createDeprecatedHardwareError;
175
+ declare const HardwareError$1_createDefectiveFirmwareError: typeof createDefectiveFirmwareError;
176
+ type HardwareError$1_IHardwareError = IHardwareError;
177
+ type HardwareError$1_HardwareError = HardwareError;
178
+ declare const HardwareError$1_HardwareError: typeof HardwareError;
179
+ declare const HardwareError$1_HardwareErrorCode: typeof HardwareErrorCode;
180
+ declare const HardwareError$1_HardwareErrorCodeMessage: typeof HardwareErrorCodeMessage;
181
+ declare const HardwareError$1_TypedError: typeof TypedError;
182
+ declare const HardwareError$1_serializeError: typeof serializeError;
183
+ declare const HardwareError$1_CreateErrorByMessage: typeof CreateErrorByMessage;
184
+ declare const HardwareError$1_CreateHardwareErrorByBridgeError: typeof CreateHardwareErrorByBridgeError;
185
+ declare namespace HardwareError$1 {
186
+ export {
187
+ HardwareError$1_createNewFirmwareUnReleaseHardwareError as createNewFirmwareUnReleaseHardwareError,
188
+ HardwareError$1_createNeedUpgradeFirmwareHardwareError as createNeedUpgradeFirmwareHardwareError,
189
+ HardwareError$1_createNewFirmwareForceUpdateHardwareError as createNewFirmwareForceUpdateHardwareError,
190
+ HardwareError$1_createDeprecatedHardwareError as createDeprecatedHardwareError,
191
+ HardwareError$1_createDefectiveFirmwareError as createDefectiveFirmwareError,
192
+ HardwareError$1_IHardwareError as IHardwareError,
193
+ HardwareError$1_HardwareError as HardwareError,
194
+ HardwareError$1_HardwareErrorCode as HardwareErrorCode,
195
+ HardwareError$1_HardwareErrorCodeMessage as HardwareErrorCodeMessage,
196
+ HardwareError$1_TypedError as TypedError,
197
+ HardwareError$1_serializeError as serializeError,
198
+ HardwareError$1_CreateErrorByMessage as CreateErrorByMessage,
199
+ HardwareError$1_CreateHardwareErrorByBridgeError as CreateHardwareErrorByBridgeError,
200
+ };
201
+ }
202
+
203
+ declare const wait: (ms: number) => Promise<unknown>;
204
+
205
+ declare enum EDeviceType {
206
+ Unknown = "unknown",
207
+ Classic = "classic",
208
+ Classic1s = "classic1s",
209
+ ClassicPure = "classicpure",
210
+ Mini = "mini",
211
+ Touch = "touch",
212
+ Pro = "pro"
213
+ }
214
+
215
+ declare enum EFirmwareType {
216
+ Universal = "universal",
217
+ BitcoinOnly = "bitcoinonly"
218
+ }
219
+
220
+ export { CreateErrorByMessage, CreateHardwareErrorByBridgeError, 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 };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,509 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const ONEKEY_WEBUSB_FILTER = [
6
+ { vendorId: 0x1209, productId: 0x53c0 },
7
+ { vendorId: 0x1209, productId: 0x53c1 },
8
+ { vendorId: 0x1209, productId: 0x4f4a },
9
+ { vendorId: 0x1209, productId: 0x4f4b },
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["BLE_AVAILABILITY_CHECK"] = "$onekey-ble-availability-check";
25
+ EOneKeyBleMessageKeys["NOBLE_BLE_ENUMERATE"] = "$onekey-noble-ble-enumerate";
26
+ EOneKeyBleMessageKeys["NOBLE_BLE_STOP_SCAN"] = "$onekey-noble-ble-stop-scan";
27
+ EOneKeyBleMessageKeys["NOBLE_BLE_GET_DEVICE"] = "$onekey-noble-ble-get-device";
28
+ EOneKeyBleMessageKeys["NOBLE_BLE_CONNECT"] = "$onekey-noble-ble-connect";
29
+ EOneKeyBleMessageKeys["NOBLE_BLE_DISCONNECT"] = "$onekey-noble-ble-disconnect";
30
+ EOneKeyBleMessageKeys["NOBLE_BLE_WRITE"] = "$onekey-noble-ble-write";
31
+ EOneKeyBleMessageKeys["NOBLE_BLE_SUBSCRIBE"] = "$onekey-noble-ble-subscribe";
32
+ EOneKeyBleMessageKeys["NOBLE_BLE_UNSUBSCRIBE"] = "$onekey-noble-ble-unsubscribe";
33
+ EOneKeyBleMessageKeys["NOBLE_BLE_NOTIFICATION"] = "$onekey-noble-ble-notification";
34
+ EOneKeyBleMessageKeys["NOBLE_BLE_CANCEL_PAIRING"] = "$onekey-noble-ble-cancel-pairing";
35
+ })(exports.EOneKeyBleMessageKeys || (exports.EOneKeyBleMessageKeys = {}));
36
+ const ONEKEY_SERVICE_UUID = '00000001-0000-1000-8000-00805f9b34fb';
37
+ const ONEKEY_WRITE_CHARACTERISTIC_UUID = '00000002-0000-1000-8000-00805f9b34fb';
38
+ const ONEKEY_NOTIFY_CHARACTERISTIC_UUID = '00000003-0000-1000-8000-00805f9b34fb';
39
+ const MESSAGE_TOP_CHAR = 63;
40
+ const MESSAGE_HEADER_BYTE = 35;
41
+ const isHeaderChunk = (chunk) => {
42
+ if (chunk.length < 9)
43
+ return false;
44
+ const [MagicQuestionMark, sharp1, sharp2] = chunk;
45
+ if (String.fromCharCode(MagicQuestionMark) === String.fromCharCode(MESSAGE_TOP_CHAR) &&
46
+ String.fromCharCode(sharp1) === String.fromCharCode(MESSAGE_HEADER_BYTE) &&
47
+ String.fromCharCode(sharp2) === String.fromCharCode(MESSAGE_HEADER_BYTE)) {
48
+ return true;
49
+ }
50
+ return false;
51
+ };
52
+ const isOnekeyDevice = (name, id) => {
53
+ var _a;
54
+ if ((_a = id === null || id === void 0 ? void 0 : id.startsWith) === null || _a === void 0 ? void 0 : _a.call(id, 'MI')) {
55
+ return true;
56
+ }
57
+ const re = /(BixinKey\d{10})|(K\d{4})|(T\d{4})|(Touch\s\w{4})|(Pro\s\w{4})/i;
58
+ if (name && re.exec(name)) {
59
+ return true;
60
+ }
61
+ return false;
62
+ };
63
+
64
+ /******************************************************************************
65
+ Copyright (c) Microsoft Corporation.
66
+
67
+ Permission to use, copy, modify, and/or distribute this software for any
68
+ purpose with or without fee is hereby granted.
69
+
70
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
71
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
72
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
73
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
74
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
75
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
76
+ PERFORMANCE OF THIS SOFTWARE.
77
+ ***************************************************************************** */
78
+
79
+ function __awaiter(thisArg, _arguments, P, generator) {
80
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
81
+ return new (P || (P = Promise))(function (resolve, reject) {
82
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
83
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
84
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
85
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
86
+ });
87
+ }
88
+
89
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
90
+ var e = new Error(message);
91
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
92
+ };
93
+
94
+ function createDeferred(arg, data) {
95
+ let localResolve = (_t) => { };
96
+ let localReject = (_e) => { };
97
+ let id;
98
+ const promise = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
99
+ localResolve = resolve;
100
+ localReject = reject;
101
+ if (typeof arg === 'function') {
102
+ try {
103
+ yield arg();
104
+ }
105
+ catch (error) {
106
+ reject(error);
107
+ }
108
+ }
109
+ if (typeof arg === 'string')
110
+ id = arg;
111
+ }));
112
+ return {
113
+ id,
114
+ data,
115
+ resolve: localResolve,
116
+ reject: localReject,
117
+ promise,
118
+ };
119
+ }
120
+
121
+ function fillStringWithArguments(value, object) {
122
+ if (typeof value !== 'string')
123
+ return value;
124
+ if (value.indexOf('{') === -1)
125
+ return value;
126
+ let result = '';
127
+ let i = 0;
128
+ const dict = object;
129
+ while (i < value.length) {
130
+ const open = value.indexOf('{', i);
131
+ if (open === -1) {
132
+ result += value.slice(i);
133
+ break;
134
+ }
135
+ const close = value.indexOf('}', open + 1);
136
+ if (close === -1) {
137
+ result += value.slice(i);
138
+ break;
139
+ }
140
+ result += value.slice(i, open);
141
+ const key = value.slice(open + 1, close);
142
+ if (key.length === 0) {
143
+ result += '{}';
144
+ }
145
+ else {
146
+ const replacement = dict[key];
147
+ result += replacement ? String(replacement) : '?';
148
+ }
149
+ i = close + 1;
150
+ }
151
+ return result;
152
+ }
153
+ class HardwareError extends Error {
154
+ constructor(hardwareError) {
155
+ var _a;
156
+ super();
157
+ this.errorCode = HardwareErrorCode.UnknownError;
158
+ this.message = '';
159
+ this.params = {};
160
+ const errorMessageMapping = HardwareErrorCodeMessage;
161
+ this.message = errorMessageMapping[HardwareErrorCode.UnknownError];
162
+ if (typeof hardwareError === 'string') {
163
+ this.errorCode = HardwareErrorCode.UnknownError;
164
+ this.message = hardwareError;
165
+ }
166
+ else {
167
+ const message = (_a = (hardwareError.message || errorMessageMapping[hardwareError.errorCode])) !== null && _a !== void 0 ? _a : '';
168
+ if (message) {
169
+ this.message = fillStringWithArguments(message, hardwareError);
170
+ }
171
+ this.params = hardwareError.params;
172
+ this.errorCode = hardwareError.errorCode;
173
+ }
174
+ this.name = 'HardwareError';
175
+ }
176
+ }
177
+ const HardwareErrorCode = {
178
+ UnknownError: 0,
179
+ DeviceFwException: 101,
180
+ DeviceUnexpectedMode: 102,
181
+ DeviceListNotInitialized: 103,
182
+ SelectDevice: 104,
183
+ DeviceNotFound: 105,
184
+ DeviceInitializeFailed: 106,
185
+ DeviceInterruptedFromOutside: 107,
186
+ RequiredButInBootloaderMode: 108,
187
+ DeviceInterruptedFromUser: 109,
188
+ DeviceCheckDeviceIdError: 110,
189
+ DeviceNotSupportPassphrase: 111,
190
+ DeviceCheckPassphraseStateError: 112,
191
+ DeviceNotOpenedPassphrase: 113,
192
+ DeviceOpenedPassphrase: 114,
193
+ DeviceDetectInBootloaderMode: 115,
194
+ NotAllowInBootloaderMode: 116,
195
+ DeviceBusy: 117,
196
+ DeviceCheckUnlockTypeError: 118,
197
+ NotInitialized: 200,
198
+ IFrameNotInitialized: 300,
199
+ IFrameAleradyInitialized: 301,
200
+ IFrameLoadFail: 302,
201
+ IframeTimeout: 303,
202
+ IframeBlocked: 304,
203
+ IframeDistrust: 305,
204
+ CallMethodError: 400,
205
+ CallMethodNotResponse: 404,
206
+ CallMethodInvalidParameter: 405,
207
+ FirmwareUpdateDownloadFailed: 406,
208
+ CallMethodNeedUpgradeFirmware: 407,
209
+ CallMethodDeprecated: 408,
210
+ FirmwareUpdateLimitOneDevice: 409,
211
+ FirmwareUpdateManuallyEnterBoot: 410,
212
+ FirmwareUpdateAutoEnterBootFailure: 411,
213
+ NewFirmwareUnRelease: 412,
214
+ UseDesktopToUpdateFirmware: 413,
215
+ NewFirmwareForceUpdate: 414,
216
+ DeviceNotSupportMethod: 415,
217
+ ForbiddenKeyPath: 416,
218
+ RepeatUnlocking: 417,
219
+ DefectiveFirmware: 418,
220
+ NetworkError: 500,
221
+ TransportNotConfigured: 600,
222
+ TransportCallInProgress: 601,
223
+ TransportNotFound: 602,
224
+ TransportInvalidProtobuf: 603,
225
+ BleScanError: 700,
226
+ BlePermissionError: 701,
227
+ BleLocationError: 702,
228
+ BleRequiredUUID: 703,
229
+ BleConnectedError: 704,
230
+ BleDeviceNotBonded: 705,
231
+ BleServiceNotFound: 706,
232
+ BleCharacteristicNotFound: 707,
233
+ BleMonitorError: 708,
234
+ BleCharacteristicNotifyError: 709,
235
+ BleWriteCharacteristicError: 710,
236
+ BleAlreadyConnected: 711,
237
+ BleLocationServicesDisabled: 712,
238
+ BleTimeoutError: 713,
239
+ BleForceCleanRunPromise: 714,
240
+ BleDeviceBondError: 715,
241
+ BleCharacteristicNotifyChangeFailure: 716,
242
+ BleTransportCallCanceled: 717,
243
+ BleDeviceBondedCanceled: 718,
244
+ BlePeerRemovedPairingInformation: 719,
245
+ BleDeviceDisconnected: 720,
246
+ BlePoweredOff: 721,
247
+ BleUnsupported: 722,
248
+ RuntimeError: 800,
249
+ PinInvalid: 801,
250
+ PinCancelled: 802,
251
+ ActionCancelled: 803,
252
+ FirmwareError: 804,
253
+ ResponseUnexpectTypeError: 805,
254
+ BridgeNetworkError: 806,
255
+ BridgeTimeoutError: 807,
256
+ BridgeNotInstalled: 808,
257
+ PollingTimeout: 809,
258
+ PollingStop: 810,
259
+ BlindSignDisabled: 811,
260
+ UnexpectPassphrase: 812,
261
+ FileAlreadyExists: 813,
262
+ CheckDownloadFileError: 814,
263
+ NotInSigningMode: 815,
264
+ DataOverload: 816,
265
+ BridgeDeviceDisconnected: 817,
266
+ BTCPsbtTooManyUtxos: 818,
267
+ EmmcFileWriteFirmwareError: 819,
268
+ FirmwareVerificationFailed: 820,
269
+ BridgeNeedsPermission: 821,
270
+ LowlevelTrasnportConnectError: 900,
271
+ WebDeviceNotFoundOrNeedsPermission: 901,
272
+ WebDevicePromptAccessError: 902,
273
+ };
274
+ const HardwareErrorCodeMessage = {
275
+ [HardwareErrorCode.UnknownError]: 'Unknown error occurred. Check message property.',
276
+ [HardwareErrorCode.DeviceFwException]: 'Firmware version mismatch',
277
+ [HardwareErrorCode.DeviceUnexpectedMode]: 'Device unexpected mode',
278
+ [HardwareErrorCode.DeviceListNotInitialized]: 'Device list is not initialized',
279
+ [HardwareErrorCode.SelectDevice]: 'Please select the connected device',
280
+ [HardwareErrorCode.DeviceNotFound]: 'Device not found',
281
+ [HardwareErrorCode.DeviceInitializeFailed]: 'Device initialization failed',
282
+ [HardwareErrorCode.DeviceInterruptedFromOutside]: 'Device interrupted',
283
+ [HardwareErrorCode.DeviceInterruptedFromUser]: 'Device interrupted',
284
+ [HardwareErrorCode.RequiredButInBootloaderMode]: 'Device should be in bootloader mode',
285
+ [HardwareErrorCode.DeviceCheckDeviceIdError]: 'Device Id in the features is not same.',
286
+ [HardwareErrorCode.DeviceNotSupportPassphrase]: 'Device not support passphrase',
287
+ [HardwareErrorCode.DeviceCheckPassphraseStateError]: 'Device passphrase state error',
288
+ [HardwareErrorCode.DeviceNotOpenedPassphrase]: 'Device not opened passphrase',
289
+ [HardwareErrorCode.DeviceOpenedPassphrase]: 'Device opened passphrase',
290
+ [HardwareErrorCode.DeviceDetectInBootloaderMode]: 'Device in bootloader mode',
291
+ [HardwareErrorCode.NotAllowInBootloaderMode]: 'Device not allow in bootloader mode',
292
+ [HardwareErrorCode.DeviceBusy]: 'Device is busy',
293
+ [HardwareErrorCode.DeviceCheckUnlockTypeError]: 'Device check unlock type not match error',
294
+ [HardwareErrorCode.NotInitialized]: 'Not initialized',
295
+ [HardwareErrorCode.IFrameNotInitialized]: 'IFrame not initialized',
296
+ [HardwareErrorCode.IFrameAleradyInitialized]: 'IFrame alerady initialized',
297
+ [HardwareErrorCode.IFrameLoadFail]: 'IFrame load fail',
298
+ [HardwareErrorCode.IframeTimeout]: 'init iframe time out',
299
+ [HardwareErrorCode.IframeBlocked]: 'IFrame blocked',
300
+ [HardwareErrorCode.IframeDistrust]: 'IFrame host not trust',
301
+ [HardwareErrorCode.CallMethodError]: 'Runtime errors during method execution',
302
+ [HardwareErrorCode.CallMethodNotResponse]: 'Method does not responding',
303
+ [HardwareErrorCode.CallMethodInvalidParameter]: 'Call method invalid parameter',
304
+ [HardwareErrorCode.FirmwareUpdateDownloadFailed]: 'Firmware update download failed',
305
+ [HardwareErrorCode.CallMethodNeedUpgradeFirmware]: 'Call method need upgrade firmware',
306
+ [HardwareErrorCode.CallMethodDeprecated]: 'Call method is deprecated',
307
+ [HardwareErrorCode.FirmwareUpdateLimitOneDevice]: 'Only one device can be connected during firmware upgrade',
308
+ [HardwareErrorCode.FirmwareUpdateManuallyEnterBoot]: 'You need to manually enter boot',
309
+ [HardwareErrorCode.FirmwareUpdateAutoEnterBootFailure]: 'Description Failed to automatically enter boot',
310
+ [HardwareErrorCode.NewFirmwareUnRelease]: 'new firmware has not been released yet',
311
+ [HardwareErrorCode.NewFirmwareForceUpdate]: 'new firmware has been released, please update',
312
+ [HardwareErrorCode.UseDesktopToUpdateFirmware]: 'Please use OneKey desktop client to update the firmware',
313
+ [HardwareErrorCode.DeviceNotSupportMethod]: 'Device not support this method',
314
+ [HardwareErrorCode.ForbiddenKeyPath]: 'Forbidden key path',
315
+ [HardwareErrorCode.RepeatUnlocking]: 'Repeat unlocking',
316
+ [HardwareErrorCode.DefectiveFirmware]: 'Device firmware is defective, please update immediately',
317
+ [HardwareErrorCode.NetworkError]: 'Network request error',
318
+ [HardwareErrorCode.TransportNotConfigured]: 'Transport not configured',
319
+ [HardwareErrorCode.TransportCallInProgress]: 'Transport call in progress',
320
+ [HardwareErrorCode.TransportNotFound]: 'Transport not found',
321
+ [HardwareErrorCode.TransportInvalidProtobuf]: 'Transport invalid protobuf',
322
+ [HardwareErrorCode.BleScanError]: 'BLE scan error',
323
+ [HardwareErrorCode.BlePermissionError]: 'Bluetooth required to be turned on',
324
+ [HardwareErrorCode.BleLocationError]: 'Location permissions for the application are not available',
325
+ [HardwareErrorCode.BleRequiredUUID]: 'uuid is required',
326
+ [HardwareErrorCode.BleConnectedError]: 'connected error is always runtime error',
327
+ [HardwareErrorCode.BleDeviceNotBonded]: 'device is not bonded',
328
+ [HardwareErrorCode.BleDeviceBondedCanceled]: 'device is canceled bonding',
329
+ [HardwareErrorCode.BlePeerRemovedPairingInformation]: 'need to delete pairing information',
330
+ [HardwareErrorCode.BleServiceNotFound]: 'BLEServiceNotFound: service not found',
331
+ [HardwareErrorCode.BleCharacteristicNotFound]: 'BLEServiceNotFound: service not found',
332
+ [HardwareErrorCode.BleMonitorError]: 'Monitor Error: characteristic not found',
333
+ [HardwareErrorCode.BleCharacteristicNotifyError]: 'Characteristic Notify Error',
334
+ [HardwareErrorCode.BleWriteCharacteristicError]: 'Write Characteristic Error',
335
+ [HardwareErrorCode.BleAlreadyConnected]: 'Already connected to device',
336
+ [HardwareErrorCode.BleLocationServicesDisabled]: 'Location Services disabled',
337
+ [HardwareErrorCode.BleTimeoutError]: 'The connection has timed out unexpectedly.',
338
+ [HardwareErrorCode.BleForceCleanRunPromise]: 'Force clean Bluetooth run promise',
339
+ [HardwareErrorCode.BleDeviceBondError]: 'Bluetooth pairing failed',
340
+ [HardwareErrorCode.BleCharacteristicNotifyChangeFailure]: 'Characteristic Notify Change Failure',
341
+ [HardwareErrorCode.BleTransportCallCanceled]: 'Ble Transport call canceled',
342
+ [HardwareErrorCode.BleDeviceDisconnected]: 'Device disconnected',
343
+ [HardwareErrorCode.BlePoweredOff]: 'Bluetooth is turned off',
344
+ [HardwareErrorCode.BleUnsupported]: 'Bluetooth is not supported on this device',
345
+ [HardwareErrorCode.RuntimeError]: 'Runtime error',
346
+ [HardwareErrorCode.PinInvalid]: 'Pin invalid',
347
+ [HardwareErrorCode.PinCancelled]: 'Pin cancelled',
348
+ [HardwareErrorCode.ActionCancelled]: 'Action cancelled by user',
349
+ [HardwareErrorCode.FirmwareError]: 'Firmware installation failed',
350
+ [HardwareErrorCode.ResponseUnexpectTypeError]: 'Response type is not expected',
351
+ [HardwareErrorCode.BridgeNetworkError]: 'Bridge network error',
352
+ [HardwareErrorCode.BridgeTimeoutError]: 'Bridge network timeout',
353
+ [HardwareErrorCode.BridgeNotInstalled]: 'Bridge not installed',
354
+ [HardwareErrorCode.BridgeDeviceDisconnected]: 'Bridge device disconnected during action',
355
+ [HardwareErrorCode.PollingTimeout]: 'Polling timeout',
356
+ [HardwareErrorCode.PollingStop]: 'Polling stop',
357
+ [HardwareErrorCode.BlindSignDisabled]: 'Please confirm the BlindSign enabled',
358
+ [HardwareErrorCode.UnexpectPassphrase]: 'Unexpect passphrase',
359
+ [HardwareErrorCode.FileAlreadyExists]: 'File already exists',
360
+ [HardwareErrorCode.CheckDownloadFileError]: 'Check download file error',
361
+ [HardwareErrorCode.NotInSigningMode]: 'not in signing mode',
362
+ [HardwareErrorCode.DataOverload]: 'Params data overload',
363
+ [HardwareErrorCode.BTCPsbtTooManyUtxos]: 'PSBT too many utxos',
364
+ [HardwareErrorCode.EmmcFileWriteFirmwareError]: 'EMMC file write firmware error',
365
+ [HardwareErrorCode.FirmwareVerificationFailed]: 'Firmware verification failed',
366
+ [HardwareErrorCode.BridgeNeedsPermission]: 'Bridge needs permission',
367
+ [HardwareErrorCode.LowlevelTrasnportConnectError]: 'Lowlevel transport connect error',
368
+ [HardwareErrorCode.WebDeviceNotFoundOrNeedsPermission]: 'Web-USB or Web-Bluetooth device not found or needs permission',
369
+ [HardwareErrorCode.WebDevicePromptAccessError]: 'Web-USB or Web-Bluetooth device prompt access error',
370
+ };
371
+ const TypedError = (hardwareError, message, params) => {
372
+ if (typeof hardwareError === 'string') {
373
+ return new HardwareError(hardwareError);
374
+ }
375
+ return new HardwareError({ errorCode: hardwareError, message: message !== null && message !== void 0 ? message : '', params });
376
+ };
377
+ const serializeError = (payload) => {
378
+ if (payload && payload.error instanceof HardwareError) {
379
+ return {
380
+ error: payload.error.message,
381
+ code: payload.error.errorCode,
382
+ params: payload.error.params,
383
+ };
384
+ }
385
+ if (payload && payload.error && payload.error.name === 'AxiosError') {
386
+ return { error: payload.error.message, code: HardwareErrorCode.BridgeNetworkError };
387
+ }
388
+ if (payload && payload.error instanceof Error) {
389
+ return { error: payload.error.message, code: payload.error.code };
390
+ }
391
+ return payload;
392
+ };
393
+ const CreateErrorByMessage = (message) => {
394
+ for (const code of Object.values(HardwareErrorCode)) {
395
+ if (HardwareErrorCodeMessage[code] === message) {
396
+ return TypedError(code);
397
+ }
398
+ }
399
+ return new HardwareError(message);
400
+ };
401
+ const CreateHardwareErrorByBridgeError = (raw) => {
402
+ const msg = String(raw || '');
403
+ if (msg.includes('LIBUSB_ERROR_ACCESS')) {
404
+ return TypedError(HardwareErrorCode.BridgeNeedsPermission, 'LIBUSB_ERROR_ACCESS');
405
+ }
406
+ return TypedError(HardwareErrorCode.BridgeNetworkError, msg);
407
+ };
408
+ const createNewFirmwareUnReleaseHardwareError = (currentVersion, requireVersion, methodName) => {
409
+ const methodInfo = methodName ? ` for method '${methodName}'` : '';
410
+ return TypedError(HardwareErrorCode.NewFirmwareUnRelease, `Device firmware version is too low${methodInfo}, please update to the latest version`, { current: currentVersion, require: requireVersion, method: methodName });
411
+ };
412
+ const createNeedUpgradeFirmwareHardwareError = (currentVersion, requireVersion, methodName) => {
413
+ const methodInfo = methodName ? ` for method '${methodName}'` : '';
414
+ return TypedError(HardwareErrorCode.CallMethodNeedUpgradeFirmware, `Device firmware version is too low${methodInfo}, please update to ${requireVersion}`, { current: currentVersion, require: requireVersion, method: methodName });
415
+ };
416
+ const createNewFirmwareForceUpdateHardwareError = (connectId, deviceId, versionTypes, currentVersions) => {
417
+ const types = versionTypes || [];
418
+ const typeMap = { firmware: 'firmware', ble: 'BLE firmware' };
419
+ const requiredTypes = types.filter(type => type in typeMap);
420
+ const getVersionInfo = () => {
421
+ const versions = [];
422
+ if (currentVersions === null || currentVersions === void 0 ? void 0 : currentVersions.firmware)
423
+ versions.push(`firmware version: ${currentVersions.firmware}`);
424
+ if (currentVersions === null || currentVersions === void 0 ? void 0 : currentVersions.ble)
425
+ versions.push(`BLE version: ${currentVersions.ble}`);
426
+ return versions.length > 0 ? ` (${versions.join(', ')})` : '';
427
+ };
428
+ const getTypeDescription = () => requiredTypes.map(type => typeMap[type]).join(' and ');
429
+ const message = `Device ${getTypeDescription()} version is too low. ${getVersionInfo()}`;
430
+ return TypedError(HardwareErrorCode.NewFirmwareForceUpdate, message, {
431
+ connectId,
432
+ deviceId,
433
+ versionTypes,
434
+ currentVersions,
435
+ });
436
+ };
437
+ const createDeprecatedHardwareError = (currentVersion, deprecatedVersion, methodName) => {
438
+ const methodInfo = methodName ? ` Method '${methodName}'` : 'This method';
439
+ return TypedError(HardwareErrorCode.CallMethodDeprecated, `Device firmware version is too high. ${methodInfo} has been deprecated in ${deprecatedVersion}`, { current: currentVersion, deprecated: deprecatedVersion, method: methodName });
440
+ };
441
+ const createDefectiveFirmwareError = (serialNo, seVersion, deviceType, connectId, deviceId) => {
442
+ const message = `Defective firmware detected (Serial: ${serialNo}, SE: ${seVersion}). Please update immediately.`;
443
+ return TypedError(HardwareErrorCode.DefectiveFirmware, message, {
444
+ serialNo,
445
+ seVersion,
446
+ deviceType,
447
+ connectId,
448
+ deviceId,
449
+ });
450
+ };
451
+
452
+ var HardwareError$1 = /*#__PURE__*/Object.freeze({
453
+ __proto__: null,
454
+ HardwareError: HardwareError,
455
+ HardwareErrorCode: HardwareErrorCode,
456
+ HardwareErrorCodeMessage: HardwareErrorCodeMessage,
457
+ TypedError: TypedError,
458
+ serializeError: serializeError,
459
+ CreateErrorByMessage: CreateErrorByMessage,
460
+ CreateHardwareErrorByBridgeError: CreateHardwareErrorByBridgeError,
461
+ createNewFirmwareUnReleaseHardwareError: createNewFirmwareUnReleaseHardwareError,
462
+ createNeedUpgradeFirmwareHardwareError: createNeedUpgradeFirmwareHardwareError,
463
+ createNewFirmwareForceUpdateHardwareError: createNewFirmwareForceUpdateHardwareError,
464
+ createDeprecatedHardwareError: createDeprecatedHardwareError,
465
+ createDefectiveFirmwareError: createDefectiveFirmwareError
466
+ });
467
+
468
+ const wait = (ms) => new Promise(resolve => {
469
+ setTimeout(resolve, ms);
470
+ });
471
+
472
+ exports.EDeviceType = void 0;
473
+ (function (EDeviceType) {
474
+ EDeviceType["Unknown"] = "unknown";
475
+ EDeviceType["Classic"] = "classic";
476
+ EDeviceType["Classic1s"] = "classic1s";
477
+ EDeviceType["ClassicPure"] = "classicpure";
478
+ EDeviceType["Mini"] = "mini";
479
+ EDeviceType["Touch"] = "touch";
480
+ EDeviceType["Pro"] = "pro";
481
+ })(exports.EDeviceType || (exports.EDeviceType = {}));
482
+
483
+ exports.EFirmwareType = void 0;
484
+ (function (EFirmwareType) {
485
+ EFirmwareType["Universal"] = "universal";
486
+ EFirmwareType["BitcoinOnly"] = "bitcoinonly";
487
+ })(exports.EFirmwareType || (exports.EFirmwareType = {}));
488
+
489
+ exports.CreateErrorByMessage = CreateErrorByMessage;
490
+ exports.CreateHardwareErrorByBridgeError = CreateHardwareErrorByBridgeError;
491
+ exports.ERRORS = HardwareError$1;
492
+ exports.HardwareError = HardwareError;
493
+ exports.HardwareErrorCode = HardwareErrorCode;
494
+ exports.HardwareErrorCodeMessage = HardwareErrorCodeMessage;
495
+ exports.ONEKEY_NOTIFY_CHARACTERISTIC_UUID = ONEKEY_NOTIFY_CHARACTERISTIC_UUID;
496
+ exports.ONEKEY_SERVICE_UUID = ONEKEY_SERVICE_UUID;
497
+ exports.ONEKEY_WEBUSB_FILTER = ONEKEY_WEBUSB_FILTER;
498
+ exports.ONEKEY_WRITE_CHARACTERISTIC_UUID = ONEKEY_WRITE_CHARACTERISTIC_UUID;
499
+ exports.TypedError = TypedError;
500
+ exports.createDefectiveFirmwareError = createDefectiveFirmwareError;
501
+ exports.createDeferred = createDeferred;
502
+ exports.createDeprecatedHardwareError = createDeprecatedHardwareError;
503
+ exports.createNeedUpgradeFirmwareHardwareError = createNeedUpgradeFirmwareHardwareError;
504
+ exports.createNewFirmwareForceUpdateHardwareError = createNewFirmwareForceUpdateHardwareError;
505
+ exports.createNewFirmwareUnReleaseHardwareError = createNewFirmwareUnReleaseHardwareError;
506
+ exports.isHeaderChunk = isHeaderChunk;
507
+ exports.isOnekeyDevice = isOnekeyDevice;
508
+ exports.serializeError = serializeError;
509
+ exports.wait = wait;
@@ -0,0 +1,2 @@
1
+ export declare const wait: (ms: number) => Promise<unknown>;
2
+ //# sourceMappingURL=timerUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timerUtils.d.ts","sourceRoot":"","sources":["../src/timerUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,OAAQ,MAAM,qBAG3B,CAAC"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@ukeyfe/hd-shared",
3
- "version": "1.1.14",
3
+ "version": "1.1.17",
4
4
  "description": "Hardware SDK's shared tool library",
5
5
  "keywords": [
6
6
  "Hardware-SDK",
7
7
  "shared",
8
8
  "utils"
9
9
  ],
10
- "author": "Ukey Wallet",
11
- "homepage": "https://github.com/bestyourwallet/hardware-js-sdk#readme",
10
+ "author": "Ukey",
11
+ "homepage": "https://github.com/UKeyHQ/hardware-js-sdk#readme",
12
12
  "license": "ISC",
13
13
  "main": "dist/index.js",
14
14
  "types": "dist/index.d.ts",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "git+https://github.com/bestyourwallet/hardware-js-sdk.git"
20
+ "url": "git+https://github.com/bestyourwallet/hardware-js-sdk"
21
21
  },
22
22
  "scripts": {
23
23
  "dev": "rimraf dist && rollup -c ../../build/rollup.config.js -w",
@@ -260,7 +260,7 @@ export const HardwareErrorCode = {
260
260
  NewFirmwareUnRelease: 412,
261
261
 
262
262
  /**
263
- * use ukey desktop client to update the firmware
263
+ * use OneKey desktop client to update the firmware
264
264
  * because need copy resource file to Touch
265
265
  */
266
266
  UseDesktopToUpdateFirmware: 413,
@@ -523,7 +523,7 @@ export const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping = {
523
523
  [HardwareErrorCode.NewFirmwareUnRelease]: 'new firmware has not been released yet',
524
524
  [HardwareErrorCode.NewFirmwareForceUpdate]: 'new firmware has been released, please update',
525
525
  [HardwareErrorCode.UseDesktopToUpdateFirmware]:
526
- 'Please use ukey desktop client to update the firmware',
526
+ 'Please use OneKey desktop client to update the firmware',
527
527
  [HardwareErrorCode.DeviceNotSupportMethod]: 'Device not support this method',
528
528
  [HardwareErrorCode.ForbiddenKeyPath]: 'Forbidden key path',
529
529
  [HardwareErrorCode.RepeatUnlocking]: 'Repeat unlocking',