@onekeyfe/hd-core 0.1.50 → 0.1.51
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/README.md +31 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/device/Device.d.ts +2 -0
- package/dist/device/Device.d.ts.map +1 -1
- package/dist/device/DeviceCommands.d.ts +1 -1
- package/dist/device/DeviceCommands.d.ts.map +1 -1
- package/dist/events/ui-request.d.ts +1 -0
- package/dist/events/ui-request.d.ts.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +25 -10
- package/dist/types/params.d.ts +1 -0
- package/dist/types/params.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/core/index.ts +16 -9
- package/src/device/Device.ts +10 -2
- package/src/device/DeviceCommands.ts +9 -2
- package/src/events/ui-request.ts +1 -0
- package/src/types/params.ts +6 -0
package/README.md
CHANGED
|
@@ -1,3 +1,32 @@
|
|
|
1
|
-
#
|
|
1
|
+
# `@onekeyfe/hd-core`
|
|
2
2
|
|
|
3
|
-
OneKey
|
|
3
|
+
@onekeyfe/hd-core is a platform for easy integration of OneKey hardware into 3rd party services. This library provides the core processes and APIs for communicating with OneKey hardware.
|
|
4
|
+
|
|
5
|
+
This library is not environment specific, if you want to use a specific SDK, please refer to the SDK for each environment.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
Install library as npm module:
|
|
10
|
+
|
|
11
|
+
```javascript
|
|
12
|
+
npm install @onekeyfe/hd-core
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
or
|
|
16
|
+
|
|
17
|
+
```javascript
|
|
18
|
+
yarn add @onekeyfe/hd-core
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Initialization
|
|
22
|
+
|
|
23
|
+
```javascript
|
|
24
|
+
import Core from '@onekeyfe/hd-core';
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Docs
|
|
28
|
+
|
|
29
|
+
Documentation is available [hardware-js-sdk](https://developer.onekey.so/connect-to-hardware/hardware-sdk/start)
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
// TODO: add example url
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAqBlC,OAAO,EACL,WAAW,EAYZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAE7D,OAAO,eAAe,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAqBlC,OAAO,EACL,WAAW,EAYZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAE7D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AA4BxD,eAAO,MAAM,OAAO,YAAmB,WAAW,iBA4PjD,CAAC;AA2KF,eAAO,MAAM,MAAM,0CAkBlB,CAAC;AAiJF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IACtC,aAAa,CAAC,OAAO,EAAE,WAAW;IA8CxC,OAAO;CAGR;AAED,eAAO,MAAM,QAAQ,YAGpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAIzB,CAAC;AAMF,eAAO,MAAM,IAAI,aAAoB,eAAe,aAAa,GAAG,8BAmBnE,CAAC"}
|
package/dist/device/Device.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare type InitOptions = {
|
|
|
11
11
|
initSession?: boolean;
|
|
12
12
|
deviceId?: string;
|
|
13
13
|
passphraseState?: string;
|
|
14
|
+
skipPassphraseCheck?: boolean;
|
|
14
15
|
};
|
|
15
16
|
export declare type RunOptions = {
|
|
16
17
|
keepSession?: boolean;
|
|
@@ -42,6 +43,7 @@ export declare class Device extends EventEmitter {
|
|
|
42
43
|
needReloadDevice: boolean;
|
|
43
44
|
keepSession: boolean;
|
|
44
45
|
passphraseState: string | undefined;
|
|
46
|
+
skipPassphraseCheck: boolean | undefined;
|
|
45
47
|
constructor(descriptor: DeviceDescriptor);
|
|
46
48
|
static fromDescriptor(originalDescriptor: DeviceDescriptor): Device;
|
|
47
49
|
toMessageObject(): DeviceTyped | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../src/device/Device.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAEL,QAAQ,EAIT,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,WAAW,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEtF,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAIrC,oBAAY,WAAW,GAAG;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../src/device/Device.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ export declare class DeviceCommands {
|
|
|
28
28
|
typedCall<T extends MessageKey, R extends MessageKey[]>(type: T, resType: R, msg?: MessageType[T]): Promise<TypedCallResponseMap[R[number]]>;
|
|
29
29
|
typedCall<T extends MessageKey, R extends MessageKey>(type: T, resType: R, msg?: MessageType[T]): Promise<TypedResponseMessage<R>>;
|
|
30
30
|
_commonCall(type: MessageKey, msg?: DefaultMessageResponse['message']): Promise<DefaultMessageResponse>;
|
|
31
|
-
_filterCommonTypes(res: DefaultMessageResponse): Promise<DefaultMessageResponse>;
|
|
31
|
+
_filterCommonTypes(res: DefaultMessageResponse, callType: MessageKey): Promise<DefaultMessageResponse>;
|
|
32
32
|
_promptPin(type?: Messages.PinMatrixRequestType): Promise<string>;
|
|
33
33
|
_promptPassphrase(): Promise<PassphrasePromptResponse>;
|
|
34
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceCommands.d.ts","sourceRoot":"","sources":["../../src/device/DeviceCommands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,aAAK,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;AACxC,aAAK,UAAU,GAAG,MAAM,WAAW,CAAC;AACpC,oBAAY,oBAAoB,CAAC,CAAC,SAAS,UAAU,IAAI;IACvD,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CACzB,CAAC;AACF,aAAK,oBAAoB,GAAG;KACzB,CAAC,IAAI,MAAM,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC;CAClD,CAAC;AACF,oBAAY,sBAAsB,GAAG,oBAAoB,CAAC,MAAM,WAAW,CAAC,CAAC;AAE7E,oBAAY,wBAAwB,GAAG;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAcF,qBAAa,cAAc;IACzB,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,SAAS,CAAC;IAErB,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,EAAE,OAAO,CAAC;IAElB,WAAW,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAE9C,kBAAkB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;gBAE/B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOpC,OAAO,CAAC,aAAa,EAAE,OAAO;IAU9B,IAAI,CACR,IAAI,EAAE,UAAU,EAChB,GAAG,GAAE,sBAAsB,CAAC,SAAS,CAAM,GAC1C,OAAO,CAAC,sBAAsB,CAAC;IAkBlC,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,EAAE,EACpD,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,EACV,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,EAClD,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,EACV,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAuC7B,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC;IAK3E,kBAAkB,
|
|
1
|
+
{"version":3,"file":"DeviceCommands.d.ts","sourceRoot":"","sources":["../../src/device/DeviceCommands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAKlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,aAAK,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;AACxC,aAAK,UAAU,GAAG,MAAM,WAAW,CAAC;AACpC,oBAAY,oBAAoB,CAAC,CAAC,SAAS,UAAU,IAAI;IACvD,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CACzB,CAAC;AACF,aAAK,oBAAoB,GAAG;KACzB,CAAC,IAAI,MAAM,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC;CAClD,CAAC;AACF,oBAAY,sBAAsB,GAAG,oBAAoB,CAAC,MAAM,WAAW,CAAC,CAAC;AAE7E,oBAAY,wBAAwB,GAAG;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAcF,qBAAa,cAAc;IACzB,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,SAAS,CAAC;IAErB,MAAM,EAAE,MAAM,CAAC;IAEf,QAAQ,EAAE,OAAO,CAAC;IAElB,WAAW,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAE9C,kBAAkB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;gBAE/B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOpC,OAAO,CAAC,aAAa,EAAE,OAAO;IAU9B,IAAI,CACR,IAAI,EAAE,UAAU,EAChB,GAAG,GAAE,sBAAsB,CAAC,SAAS,CAAM,GAC1C,OAAO,CAAC,sBAAsB,CAAC;IAkBlC,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,EAAE,EACpD,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,EACV,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3C,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,EAClD,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,EACV,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAuC7B,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC;IAK3E,kBAAkB,CAChB,GAAG,EAAE,sBAAsB,EAC3B,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,sBAAsB,CAAC;IAoGlC,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,oBAAoB;IAwB/C,iBAAiB;CA2BlB;AAED,oBAAY,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/events/ui-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,UAAU;;;;;;;;;;;;CAgBb,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,IAAI,EACA,OAAO,UAAU,CAAC,eAAe,GACjC,OAAO,UAAU,CAAC,oBAAoB,GACtC,OAAO,UAAU,CAAC,mBAAmB,GACrC,OAAO,UAAU,CAAC,2BAA2B,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,SAAS,CAAC;CAC5B;AAED,oBAAY,qBAAqB,GAAG;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC,WAAW,CAAC;IACpC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,KAAK,CAAC,oBAAoB,GAAG,wBAAwB,CAAC;KAC9D,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,UAAU,CAAC,cAAc,CAAC;IACvC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC,kBAAkB,CAAC;IAC3C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/events/ui-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,UAAU;;;;;;;;;;;;CAgBb,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,IAAI,EACA,OAAO,UAAU,CAAC,eAAe,GACjC,OAAO,UAAU,CAAC,oBAAoB,GACtC,OAAO,UAAU,CAAC,mBAAmB,GACrC,OAAO,UAAU,CAAC,2BAA2B,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,SAAS,CAAC;CAC5B;AAED,oBAAY,qBAAqB,GAAG;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC,WAAW,CAAC;IACpC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,KAAK,CAAC,oBAAoB,GAAG,wBAAwB,CAAC;KAC9D,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,UAAU,CAAC,cAAc,CAAC;IACvC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC,kBAAkB,CAAC;IAC3C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,OAAO,UAAU,CAAC,4BAA4B,CAAC;IACrD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,UAAU,CAAC,iBAAiB,CAAC;IAC1C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,oBAAY,OAAO,GACf,uBAAuB,GACvB,qBAAqB,GACrB,eAAe,GACf,2BAA2B,GAC3B,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,oBAAY,cAAc,GAAG,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,QAAQ,CAAA;CAAE,CAAC;AAElE,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,OAAO,QAAQ,EAAE,OAAO,CAK5D,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ interface CommonParams {
|
|
|
11
11
|
timeout?: number;
|
|
12
12
|
passphraseState?: string;
|
|
13
13
|
initSession?: boolean;
|
|
14
|
+
skipPassphraseCheck?: boolean;
|
|
14
15
|
}
|
|
15
16
|
declare type Params<T> = CommonParams & T & {
|
|
16
17
|
bundle?: undefined;
|
|
@@ -1215,6 +1216,7 @@ interface UiRequestPassphrase {
|
|
|
1215
1216
|
type: typeof UI_REQUEST.REQUEST_PASSPHRASE;
|
|
1216
1217
|
payload: {
|
|
1217
1218
|
device: Device$1;
|
|
1219
|
+
passphraseState?: string;
|
|
1218
1220
|
};
|
|
1219
1221
|
}
|
|
1220
1222
|
interface UiRequestPassphraseOnDevice {
|
|
@@ -1449,7 +1451,7 @@ declare class DeviceCommands {
|
|
|
1449
1451
|
typedCall<T extends MessageKey, R extends MessageKey[]>(type: T, resType: R, msg?: MessageType[T]): Promise<TypedCallResponseMap[R[number]]>;
|
|
1450
1452
|
typedCall<T extends MessageKey, R extends MessageKey>(type: T, resType: R, msg?: MessageType[T]): Promise<TypedResponseMessage<R>>;
|
|
1451
1453
|
_commonCall(type: MessageKey, msg?: DefaultMessageResponse['message']): Promise<DefaultMessageResponse>;
|
|
1452
|
-
_filterCommonTypes(res: DefaultMessageResponse): Promise<DefaultMessageResponse>;
|
|
1454
|
+
_filterCommonTypes(res: DefaultMessageResponse, callType: MessageKey): Promise<DefaultMessageResponse>;
|
|
1453
1455
|
_promptPin(type?: Messages.PinMatrixRequestType): Promise<string>;
|
|
1454
1456
|
_promptPassphrase(): Promise<PassphrasePromptResponse>;
|
|
1455
1457
|
}
|
|
@@ -1458,6 +1460,7 @@ declare type InitOptions = {
|
|
|
1458
1460
|
initSession?: boolean;
|
|
1459
1461
|
deviceId?: string;
|
|
1460
1462
|
passphraseState?: string;
|
|
1463
|
+
skipPassphraseCheck?: boolean;
|
|
1461
1464
|
};
|
|
1462
1465
|
declare type RunOptions = {
|
|
1463
1466
|
keepSession?: boolean;
|
|
@@ -1489,6 +1492,7 @@ declare class Device extends EventEmitter {
|
|
|
1489
1492
|
needReloadDevice: boolean;
|
|
1490
1493
|
keepSession: boolean;
|
|
1491
1494
|
passphraseState: string | undefined;
|
|
1495
|
+
skipPassphraseCheck: boolean | undefined;
|
|
1492
1496
|
constructor(descriptor: OneKeyDeviceInfo);
|
|
1493
1497
|
static fromDescriptor(originalDescriptor: OneKeyDeviceInfo): Device;
|
|
1494
1498
|
toMessageObject(): Device$1 | null;
|
package/dist/index.js
CHANGED
|
@@ -10896,10 +10896,10 @@ class DeviceCommands {
|
|
|
10896
10896
|
_commonCall(type, msg) {
|
|
10897
10897
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10898
10898
|
const resp = yield this.call(type, msg);
|
|
10899
|
-
return this._filterCommonTypes(resp);
|
|
10899
|
+
return this._filterCommonTypes(resp, type);
|
|
10900
10900
|
});
|
|
10901
10901
|
}
|
|
10902
|
-
_filterCommonTypes(res) {
|
|
10902
|
+
_filterCommonTypes(res, callType) {
|
|
10903
10903
|
Log$5.debug('_filterCommonTypes: ', res);
|
|
10904
10904
|
if (res.type === 'Failure') {
|
|
10905
10905
|
const { code, message } = res.message;
|
|
@@ -10919,6 +10919,9 @@ class DeviceCommands {
|
|
|
10919
10919
|
if (code === 'Failure_DataError' && message === 'Please confirm the BlindSign enabled') {
|
|
10920
10920
|
error = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.BlindSignDisabled);
|
|
10921
10921
|
}
|
|
10922
|
+
if (code === 'Failure_UnexpectedMessage' && callType === 'PassphraseAck') {
|
|
10923
|
+
error = hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.UnexpectPassphrase);
|
|
10924
|
+
}
|
|
10922
10925
|
if (error) {
|
|
10923
10926
|
return Promise.reject(error);
|
|
10924
10927
|
}
|
|
@@ -11124,6 +11127,7 @@ class Device extends events.exports {
|
|
|
11124
11127
|
this.needReloadDevice = false;
|
|
11125
11128
|
this.keepSession = false;
|
|
11126
11129
|
this.passphraseState = undefined;
|
|
11130
|
+
this.skipPassphraseCheck = false;
|
|
11127
11131
|
this.originalDescriptor = descriptor;
|
|
11128
11132
|
}
|
|
11129
11133
|
static fromDescriptor(originalDescriptor) {
|
|
@@ -11250,11 +11254,13 @@ class Device extends events.exports {
|
|
|
11250
11254
|
}
|
|
11251
11255
|
getInternalState(_deviceId) {
|
|
11252
11256
|
var _a, _b;
|
|
11253
|
-
Log$4.debug('getInternalState session param: ', `device_id: ${_deviceId}`, `features.device_id: ${(_a = this.features) === null || _a === void 0 ? void 0 : _a.device_id}`, `passphraseState: ${this.passphraseState}`);
|
|
11257
|
+
Log$4.debug('getInternalState session param: ', `device_id: ${_deviceId}`, `features.device_id: ${(_a = this.features) === null || _a === void 0 ? void 0 : _a.device_id}`, `passphraseState: ${this.passphraseState}`, `skipPassphraseCheck: ${this.skipPassphraseCheck}`);
|
|
11254
11258
|
Log$4.debug('getInternalState session cache: ', deviceSessionCache);
|
|
11255
11259
|
const deviceId = _deviceId || ((_b = this.features) === null || _b === void 0 ? void 0 : _b.device_id);
|
|
11256
11260
|
if (!deviceId)
|
|
11257
11261
|
return undefined;
|
|
11262
|
+
if (this.skipPassphraseCheck)
|
|
11263
|
+
return deviceSessionCache[deviceId];
|
|
11258
11264
|
if (!this.passphraseState)
|
|
11259
11265
|
return undefined;
|
|
11260
11266
|
const usePassKey = `${deviceId}@${this.passphraseState}`;
|
|
@@ -11271,8 +11277,10 @@ class Device extends events.exports {
|
|
|
11271
11277
|
Log$4.debug('setInternalState session param: ', `state: ${state}`, `initSession: ${initSession}`, `device_id: ${(_a = this.features) === null || _a === void 0 ? void 0 : _a.device_id}`, `passphraseState: ${this.passphraseState}`);
|
|
11272
11278
|
if (!this.features)
|
|
11273
11279
|
return;
|
|
11274
|
-
if (!this.
|
|
11275
|
-
|
|
11280
|
+
if (!this.skipPassphraseCheck) {
|
|
11281
|
+
if (!this.passphraseState && !initSession)
|
|
11282
|
+
return;
|
|
11283
|
+
}
|
|
11276
11284
|
let key = `${this.features.device_id}`;
|
|
11277
11285
|
if (this.passphraseState) {
|
|
11278
11286
|
key += `@${this.passphraseState}`;
|
|
@@ -11299,6 +11307,7 @@ class Device extends events.exports {
|
|
|
11299
11307
|
return __awaiter(this, void 0, void 0, function* () {
|
|
11300
11308
|
Log$4.debug('initialize param:', options);
|
|
11301
11309
|
this.passphraseState = options === null || options === void 0 ? void 0 : options.passphraseState;
|
|
11310
|
+
this.skipPassphraseCheck = options === null || options === void 0 ? void 0 : options.skipPassphraseCheck;
|
|
11302
11311
|
if (options === null || options === void 0 ? void 0 : options.initSession) {
|
|
11303
11312
|
this.clearInternalState(options === null || options === void 0 ? void 0 : options.deviceId);
|
|
11304
11313
|
}
|
|
@@ -15049,6 +15058,7 @@ const Log = getLogger(exports.LoggerNames.Core);
|
|
|
15049
15058
|
const parseInitOptions = (method) => ({
|
|
15050
15059
|
initSession: method === null || method === void 0 ? void 0 : method.payload.initSession,
|
|
15051
15060
|
passphraseState: method === null || method === void 0 ? void 0 : method.payload.passphraseState,
|
|
15061
|
+
skipPassphraseCheck: method === null || method === void 0 ? void 0 : method.payload.skipPassphraseCheck,
|
|
15052
15062
|
deviceId: method === null || method === void 0 ? void 0 : method.payload.deviceId,
|
|
15053
15063
|
});
|
|
15054
15064
|
let _core;
|
|
@@ -15163,11 +15173,13 @@ const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
15163
15173
|
require: support.require,
|
|
15164
15174
|
}));
|
|
15165
15175
|
}
|
|
15166
|
-
|
|
15167
|
-
|
|
15168
|
-
|
|
15169
|
-
|
|
15170
|
-
|
|
15176
|
+
if (!method.payload.skipPassphraseCheck) {
|
|
15177
|
+
const passphraseState = yield device.checkPassphraseState();
|
|
15178
|
+
checkPassphraseSafety(method, device.features);
|
|
15179
|
+
if (passphraseState) {
|
|
15180
|
+
DevicePool.clearDeviceCache(method.payload.connectId);
|
|
15181
|
+
return Promise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceCheckPassphraseStateError));
|
|
15182
|
+
}
|
|
15171
15183
|
}
|
|
15172
15184
|
}
|
|
15173
15185
|
try {
|
|
@@ -15392,6 +15404,8 @@ const cancel = (connectId) => {
|
|
|
15392
15404
|
const checkPassphraseSafety = (method, features) => {
|
|
15393
15405
|
if (!method.useDevicePassphraseState)
|
|
15394
15406
|
return;
|
|
15407
|
+
if (method.payload.skipPassphraseCheck)
|
|
15408
|
+
return;
|
|
15395
15409
|
if ((features === null || features === void 0 ? void 0 : features.passphrase_protection) === true && !method.payload.passphraseState) {
|
|
15396
15410
|
DevicePool.clearDeviceCache(method.payload.connectId);
|
|
15397
15411
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceOpenedPassphrase);
|
|
@@ -15456,6 +15470,7 @@ const onDevicePassphraseHandler = (...[device, callback]) => __awaiter(void 0, v
|
|
|
15456
15470
|
const uiPromise = createUiPromise(UI_RESPONSE.RECEIVE_PASSPHRASE, device);
|
|
15457
15471
|
postMessage(createUiMessage(UI_REQUEST$1.REQUEST_PASSPHRASE, {
|
|
15458
15472
|
device: device.toMessageObject(),
|
|
15473
|
+
passphraseState: device.passphraseState,
|
|
15459
15474
|
}));
|
|
15460
15475
|
const uiResp = yield uiPromise.promise;
|
|
15461
15476
|
const { value, passphraseOnDevice, save } = uiResp.payload;
|
package/dist/types/params.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/types/params.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IAItB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAI1B,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,eAAe,CAAC,EAAE,MAAM,CAAC;IAIzB,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/types/params.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IAItB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAI1B,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,eAAe,CAAC,EAAE,MAAM,CAAC;IAIzB,WAAW,CAAC,EAAE,OAAO,CAAC;IAMtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,oBAAY,MAAM,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,CAAC,CAAC;CACZ;AAED,oBAAY,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.51",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@onekeyfe/hd-shared": "^0.1.
|
|
28
|
-
"@onekeyfe/hd-transport": "^0.1.
|
|
27
|
+
"@onekeyfe/hd-shared": "^0.1.51",
|
|
28
|
+
"@onekeyfe/hd-transport": "^0.1.51",
|
|
29
29
|
"axios": "^0.27.2",
|
|
30
30
|
"bignumber.js": "^9.0.2",
|
|
31
31
|
"js-sha256": "^0.9.0",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"@types/parse-uri": "^1.0.0",
|
|
37
37
|
"@types/semver": "^7.3.9"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "0bc84671cf1fabb0f50339407dd43ad82ff096b8"
|
|
40
40
|
}
|
package/src/core/index.ts
CHANGED
|
@@ -44,6 +44,7 @@ const Log = getLogger(LoggerNames.Core);
|
|
|
44
44
|
const parseInitOptions = (method?: BaseMethod): InitOptions => ({
|
|
45
45
|
initSession: method?.payload.initSession,
|
|
46
46
|
passphraseState: method?.payload.passphraseState,
|
|
47
|
+
skipPassphraseCheck: method?.payload.skipPassphraseCheck,
|
|
47
48
|
deviceId: method?.payload.deviceId,
|
|
48
49
|
});
|
|
49
50
|
|
|
@@ -229,17 +230,19 @@ export const callAPI = async (message: CoreMessage) => {
|
|
|
229
230
|
);
|
|
230
231
|
}
|
|
231
232
|
|
|
232
|
-
|
|
233
|
-
|
|
233
|
+
if (!method.payload.skipPassphraseCheck) {
|
|
234
|
+
// Check Device passphrase State
|
|
235
|
+
const passphraseState = await device.checkPassphraseState();
|
|
234
236
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
+
// Double check, handles the special case of Touch/Pro
|
|
238
|
+
checkPassphraseSafety(method, device.features);
|
|
237
239
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
240
|
+
if (passphraseState) {
|
|
241
|
+
DevicePool.clearDeviceCache(method.payload.connectId);
|
|
242
|
+
return Promise.reject(
|
|
243
|
+
ERRORS.TypedError(HardwareErrorCode.DeviceCheckPassphraseStateError)
|
|
244
|
+
);
|
|
245
|
+
}
|
|
243
246
|
}
|
|
244
247
|
}
|
|
245
248
|
|
|
@@ -508,6 +511,9 @@ export const cancel = (connectId?: string) => {
|
|
|
508
511
|
const checkPassphraseSafety = (method: BaseMethod, features?: Features) => {
|
|
509
512
|
if (!method.useDevicePassphraseState) return;
|
|
510
513
|
|
|
514
|
+
// skip check passphrase status
|
|
515
|
+
if (method.payload.skipPassphraseCheck) return;
|
|
516
|
+
|
|
511
517
|
if (features?.passphrase_protection === true && !method.payload.passphraseState) {
|
|
512
518
|
DevicePool.clearDeviceCache(method.payload.connectId);
|
|
513
519
|
throw ERRORS.TypedError(HardwareErrorCode.DeviceOpenedPassphrase);
|
|
@@ -595,6 +601,7 @@ const onDevicePassphraseHandler = async (...[device, callback]: DeviceEvents['pa
|
|
|
595
601
|
postMessage(
|
|
596
602
|
createUiMessage(UI_REQUEST.REQUEST_PASSPHRASE, {
|
|
597
603
|
device: device.toMessageObject() as KnownDevice,
|
|
604
|
+
passphraseState: device.passphraseState,
|
|
598
605
|
})
|
|
599
606
|
);
|
|
600
607
|
// wait for passphrase
|
package/src/device/Device.ts
CHANGED
|
@@ -32,6 +32,7 @@ export type InitOptions = {
|
|
|
32
32
|
initSession?: boolean;
|
|
33
33
|
deviceId?: string;
|
|
34
34
|
passphraseState?: string;
|
|
35
|
+
skipPassphraseCheck?: boolean;
|
|
35
36
|
};
|
|
36
37
|
|
|
37
38
|
export type RunOptions = {
|
|
@@ -114,6 +115,8 @@ export class Device extends EventEmitter {
|
|
|
114
115
|
|
|
115
116
|
passphraseState: string | undefined = undefined;
|
|
116
117
|
|
|
118
|
+
skipPassphraseCheck: boolean | undefined = false;
|
|
119
|
+
|
|
117
120
|
constructor(descriptor: DeviceDescriptor) {
|
|
118
121
|
super();
|
|
119
122
|
this.originalDescriptor = descriptor;
|
|
@@ -256,12 +259,14 @@ export class Device extends EventEmitter {
|
|
|
256
259
|
'getInternalState session param: ',
|
|
257
260
|
`device_id: ${_deviceId}`,
|
|
258
261
|
`features.device_id: ${this.features?.device_id}`,
|
|
259
|
-
`passphraseState: ${this.passphraseState}
|
|
262
|
+
`passphraseState: ${this.passphraseState}`,
|
|
263
|
+
`skipPassphraseCheck: ${this.skipPassphraseCheck}`
|
|
260
264
|
);
|
|
261
265
|
Log.debug('getInternalState session cache: ', deviceSessionCache);
|
|
262
266
|
|
|
263
267
|
const deviceId = _deviceId || this.features?.device_id;
|
|
264
268
|
if (!deviceId) return undefined;
|
|
269
|
+
if (this.skipPassphraseCheck) return deviceSessionCache[deviceId];
|
|
265
270
|
if (!this.passphraseState) return undefined;
|
|
266
271
|
|
|
267
272
|
const usePassKey = `${deviceId}@${this.passphraseState}`;
|
|
@@ -286,7 +291,9 @@ export class Device extends EventEmitter {
|
|
|
286
291
|
);
|
|
287
292
|
|
|
288
293
|
if (!this.features) return;
|
|
289
|
-
if (!this.
|
|
294
|
+
if (!this.skipPassphraseCheck) {
|
|
295
|
+
if (!this.passphraseState && !initSession) return;
|
|
296
|
+
}
|
|
290
297
|
|
|
291
298
|
let key = `${this.features.device_id}`;
|
|
292
299
|
if (this.passphraseState) {
|
|
@@ -316,6 +323,7 @@ export class Device extends EventEmitter {
|
|
|
316
323
|
Log.debug('initialize param:', options);
|
|
317
324
|
|
|
318
325
|
this.passphraseState = options?.passphraseState;
|
|
326
|
+
this.skipPassphraseCheck = options?.skipPassphraseCheck;
|
|
319
327
|
|
|
320
328
|
if (options?.initSession) {
|
|
321
329
|
this.clearInternalState(options?.deviceId);
|
|
@@ -137,10 +137,13 @@ export class DeviceCommands {
|
|
|
137
137
|
|
|
138
138
|
async _commonCall(type: MessageKey, msg?: DefaultMessageResponse['message']) {
|
|
139
139
|
const resp = await this.call(type, msg);
|
|
140
|
-
return this._filterCommonTypes(resp);
|
|
140
|
+
return this._filterCommonTypes(resp, type);
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
_filterCommonTypes(
|
|
143
|
+
_filterCommonTypes(
|
|
144
|
+
res: DefaultMessageResponse,
|
|
145
|
+
callType: MessageKey
|
|
146
|
+
): Promise<DefaultMessageResponse> {
|
|
144
147
|
Log.debug('_filterCommonTypes: ', res);
|
|
145
148
|
if (res.type === 'Failure') {
|
|
146
149
|
const { code, message } = res.message;
|
|
@@ -166,6 +169,10 @@ export class DeviceCommands {
|
|
|
166
169
|
error = ERRORS.TypedError(HardwareErrorCode.BlindSignDisabled);
|
|
167
170
|
}
|
|
168
171
|
|
|
172
|
+
if (code === 'Failure_UnexpectedMessage' && callType === 'PassphraseAck') {
|
|
173
|
+
error = ERRORS.TypedError(HardwareErrorCode.UnexpectPassphrase);
|
|
174
|
+
}
|
|
175
|
+
|
|
169
176
|
if (error) {
|
|
170
177
|
return Promise.reject(error);
|
|
171
178
|
}
|
package/src/events/ui-request.ts
CHANGED
package/src/types/params.ts
CHANGED
|
@@ -20,6 +20,12 @@ export interface CommonParams {
|
|
|
20
20
|
* Every init session
|
|
21
21
|
*/
|
|
22
22
|
initSession?: boolean;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* skip passhprase check
|
|
26
|
+
* !! Use with caution, there are safety risks !!
|
|
27
|
+
*/
|
|
28
|
+
skipPassphraseCheck?: boolean;
|
|
23
29
|
}
|
|
24
30
|
|
|
25
31
|
export type Params<T> = CommonParams & T & { bundle?: undefined };
|