@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 CHANGED
@@ -1,3 +1,32 @@
1
- # `core`
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
@@ -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;AA2BxD,eAAO,MAAM,OAAO,YAAmB,WAAW,iBA0PjD,CAAC;AA2KF,eAAO,MAAM,MAAM,0CAkBlB,CAAC;AA6IF,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"}
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"}
@@ -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":"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"}
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,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgGhF,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,oBAAoB;IAwB/C,iBAAiB;CA2BlB;AAED,oBAAY,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC"}
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"}
@@ -35,6 +35,7 @@ export interface UiRequestPassphrase {
35
35
  type: typeof UI_REQUEST.REQUEST_PASSPHRASE;
36
36
  payload: {
37
37
  device: Device;
38
+ passphraseState?: string;
38
39
  };
39
40
  }
40
41
  export interface UiRequestPassphraseOnDevice {
@@ -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;KAChB,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"}
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.passphraseState && !initSession)
11275
- return;
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
- const passphraseState = yield device.checkPassphraseState();
15167
- checkPassphraseSafety(method, device.features);
15168
- if (passphraseState) {
15169
- DevicePool.clearDeviceCache(method.payload.connectId);
15170
- return Promise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceCheckPassphraseStateError));
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;
@@ -5,6 +5,7 @@ export interface CommonParams {
5
5
  timeout?: number;
6
6
  passphraseState?: string;
7
7
  initSession?: boolean;
8
+ skipPassphraseCheck?: boolean;
8
9
  }
9
10
  export declare type Params<T> = CommonParams & T & {
10
11
  bundle?: undefined;
@@ -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;CACvB;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"}
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.50",
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.50",
28
- "@onekeyfe/hd-transport": "^0.1.50",
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": "e3e2a8aa77a1bf72d1b26dc9841463a660a2f902"
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
- // Check Device passphrase State
233
- const passphraseState = await device.checkPassphraseState();
233
+ if (!method.payload.skipPassphraseCheck) {
234
+ // Check Device passphrase State
235
+ const passphraseState = await device.checkPassphraseState();
234
236
 
235
- // Double check, handles the special case of Touch/Pro
236
- checkPassphraseSafety(method, device.features);
237
+ // Double check, handles the special case of Touch/Pro
238
+ checkPassphraseSafety(method, device.features);
237
239
 
238
- if (passphraseState) {
239
- DevicePool.clearDeviceCache(method.payload.connectId);
240
- return Promise.reject(
241
- ERRORS.TypedError(HardwareErrorCode.DeviceCheckPassphraseStateError)
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
@@ -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.passphraseState && !initSession) return;
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(res: DefaultMessageResponse): Promise<DefaultMessageResponse> {
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
  }
@@ -49,6 +49,7 @@ export interface UiRequestPassphrase {
49
49
  type: typeof UI_REQUEST.REQUEST_PASSPHRASE;
50
50
  payload: {
51
51
  device: Device;
52
+ passphraseState?: string;
52
53
  };
53
54
  }
54
55
 
@@ -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 };