@onekeyfe/hd-core 0.0.3 → 0.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AASlC,OAAO,EACL,WAAW,EAWZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAE7D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAWxD,eAAO,MAAM,OAAO,YAAmB,WAAW,iBAgHjD,CAAC;AAmGF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IACtC,aAAa,CAAC,OAAO,EAAE,WAAW;IAqBxC,OAAO;CAGR;AAED,eAAO,MAAM,QAAQ,YAGpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAGzB,CAAC;AAMF,eAAO,MAAM,IAAI,aAAoB,eAAe,aAAa,GAAG,8BAgBnE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AASlC,OAAO,EACL,WAAW,EAYZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAE7D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAWxD,eAAO,MAAM,OAAO,YAAmB,WAAW,iBAuHjD,CAAC;AAoHF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IACtC,aAAa,CAAC,OAAO,EAAE,WAAW;IAqBxC,OAAO;CAGR;AAED,eAAO,MAAM,QAAQ,YAGpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAGzB,CAAC;AAMF,eAAO,MAAM,IAAI,aAAoB,eAAe,aAAa,GAAG,8BAgBnE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Unsuccessful } from '../types/params';
2
2
  import { IFrameCallMessage } from './call';
3
+ import { DeviceEventMessage } from './device';
3
4
  import { IFrameEventMessage } from './iframe';
4
5
  import { UiEventMessage } from './ui-request';
5
6
  import { UiResponseMessage } from './ui-response';
@@ -7,7 +8,7 @@ export declare const CORE_EVENT = "CORE_EVENT";
7
8
  export declare type CoreMessage = {
8
9
  id?: string;
9
10
  success?: true | false;
10
- } & (IFrameEventMessage | IFrameCallMessage | UiResponseMessage | UiEventMessage);
11
+ } & (IFrameEventMessage | IFrameCallMessage | UiResponseMessage | UiEventMessage | DeviceEventMessage);
11
12
  export declare type PostMessageEvent = MessageEvent<any>;
12
13
  export declare const parseMessage: (messageData: any) => CoreMessage;
13
14
  export declare const createErrorMessage: (error: Error & {
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/events/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,UAAU,eAAe,CAAC;AAEvC,oBAAY,WAAW,GAAG;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;CACxB,GAAG,CAAC,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,cAAc,CAAC,CAAC;AAElF,oBAAY,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEjD,eAAO,MAAM,YAAY,gBAAiB,GAAG,KAAG,WAiB/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,KAAK,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,YAMpE,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/events/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,UAAU,eAAe,CAAC;AAEvC,oBAAY,WAAW,GAAG;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;CACxB,GAAG,CACA,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,cAAc,GACd,kBAAkB,CACrB,CAAC;AAEF,oBAAY,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEjD,eAAO,MAAM,YAAY,gBAAiB,GAAG,KAAG,WAiB/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,KAAK,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,YAMpE,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import type { PROTO } from '../constants';
2
+ import type { KnownDevice as Device } from '../types/device';
3
+ import { MessageFactoryFn } from './utils';
4
+ export declare const DEVICE_EVENT = "DEVICE_EVENT";
2
5
  export declare const DEVICE: {
3
6
  readonly CONNECT: "device-connect";
4
7
  readonly CONNECT_UNACQUIRED: "device-connect_unacquired";
@@ -20,4 +23,16 @@ export declare const DEVICE: {
20
23
  export interface DeviceButtonRequestPayload extends Omit<PROTO.ButtonRequest, 'code'> {
21
24
  code?: PROTO.ButtonRequest['code'] | 'ButtonRequest_FirmwareUpdate';
22
25
  }
26
+ export interface DeviceButtonRequest {
27
+ type: typeof DEVICE.BUTTON;
28
+ payload: DeviceButtonRequestPayload & {
29
+ device: Device | null;
30
+ };
31
+ }
32
+ export declare type DeviceEvent = DeviceButtonRequest;
33
+ export declare type DeviceEventMessage = DeviceEvent & {
34
+ event: typeof DEVICE_EVENT;
35
+ };
36
+ export declare type DeviceEventListenerFn = (type: typeof DEVICE_EVENT, cb: (event: DeviceEventMessage) => void) => void;
37
+ export declare const createDeviceMessage: MessageFactoryFn<typeof DEVICE_EVENT, DeviceEvent>;
23
38
  //# sourceMappingURL=device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/events/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;CAqBT,CAAC;AAEX,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC;IACnF,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,8BAA8B,CAAC;CACrE"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/events/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;CAqBT,CAAC;AAEX,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC;IACnF,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,8BAA8B,CAAC;CACrE;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,0BAA0B,GAAG;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACjE;AAED,oBAAY,WAAW,GAAG,mBAAmB,CAAC;AAE9C,oBAAY,kBAAkB,GAAG,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,YAAY,CAAA;CAAE,CAAC;AAE9E,oBAAY,qBAAqB,GAAG,CAClC,IAAI,EAAE,OAAO,YAAY,EACzB,EAAE,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,KACpC,IAAI,CAAC;AAEV,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,CAAC,OAAO,YAAY,EAAE,WAAW,CAQxE,CAAC"}
@@ -1,10 +1,18 @@
1
1
  import type { PROTO } from '../constants';
2
2
  import type { Device } from '../types';
3
+ import type { DeviceButtonRequest } from './device';
3
4
  import type { MessageFactoryFn } from './utils';
4
5
  export declare const UI_EVENT = "UI_EVENT";
5
6
  export declare const UI_REQUEST: {
6
7
  readonly REQUEST_PIN: "ui-request_pin";
8
+ readonly INVALID_PIN: "ui-invalid_pin";
9
+ readonly REQUEST_BUTTON: "ui-button";
10
+ readonly CLOSE_UI_WINDOW: "ui-close_window";
7
11
  };
12
+ export interface UiRequestWithoutPayload {
13
+ type: typeof UI_REQUEST.CLOSE_UI_WINDOW;
14
+ payload?: typeof undefined;
15
+ }
8
16
  export declare type UiRequestDeviceAction = {
9
17
  type: typeof UI_REQUEST.REQUEST_PIN;
10
18
  payload: {
@@ -12,7 +20,11 @@ export declare type UiRequestDeviceAction = {
12
20
  type?: PROTO.PinMatrixRequestType;
13
21
  };
14
22
  };
15
- export declare type UiEvent = UiRequestDeviceAction;
23
+ export interface UiRequestButton {
24
+ type: typeof UI_REQUEST.REQUEST_BUTTON;
25
+ payload: DeviceButtonRequest['payload'];
26
+ }
27
+ export declare type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton;
16
28
  export declare type UiEventMessage = UiEvent & {
17
29
  event: typeof UI_EVENT;
18
30
  };
@@ -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,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,UAAU;;CAEb,CAAC;AAEX,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,CAAC;KACnC,CAAC;CACH,CAAC;AAEF,oBAAY,OAAO,GAAG,qBAAqB,CAAC;AAE5C,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;;;;;CAMb,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,UAAU,CAAC,eAAe,CAAC;IACxC,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,CAAC;KACnC,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,oBAAY,OAAO,GAAG,uBAAuB,GAAG,qBAAqB,GAAG,eAAe,CAAC;AAExF,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
@@ -588,10 +588,52 @@ declare type MessageFactoryFn<Group, Event> = UnionToIntersection<Event extends
588
588
  payload: undefined;
589
589
  } : never>;
590
590
 
591
+ declare const DEVICE_EVENT = "DEVICE_EVENT";
592
+ declare const DEVICE: {
593
+ readonly CONNECT: "device-connect";
594
+ readonly CONNECT_UNACQUIRED: "device-connect_unacquired";
595
+ readonly DISCONNECT: "device-disconnect";
596
+ readonly CHANGED: "device-changed";
597
+ readonly ACQUIRE: "device-acquire";
598
+ readonly RELEASE: "device-release";
599
+ readonly ACQUIRED: "device-acquired";
600
+ readonly RELEASED: "device-released";
601
+ readonly USED_ELSEWHERE: "device-used_elsewhere";
602
+ readonly UNREADABLE: "unreadable-device";
603
+ readonly LOADING: "device-loading";
604
+ readonly BUTTON: "button";
605
+ readonly PIN: "pin";
606
+ readonly PASSPHRASE: "passphrase";
607
+ readonly PASSPHRASE_ON_DEVICE: "passphrase_on_device";
608
+ readonly WORD: "word";
609
+ };
610
+ interface DeviceButtonRequestPayload extends Omit<Messages.ButtonRequest, 'code'> {
611
+ code?: Messages.ButtonRequest['code'] | 'ButtonRequest_FirmwareUpdate';
612
+ }
613
+ interface DeviceButtonRequest {
614
+ type: typeof DEVICE.BUTTON;
615
+ payload: DeviceButtonRequestPayload & {
616
+ device: KnownDevice | null;
617
+ };
618
+ }
619
+ declare type DeviceEvent = DeviceButtonRequest;
620
+ declare type DeviceEventMessage = DeviceEvent & {
621
+ event: typeof DEVICE_EVENT;
622
+ };
623
+ declare type DeviceEventListenerFn = (type: typeof DEVICE_EVENT, cb: (event: DeviceEventMessage) => void) => void;
624
+ declare const createDeviceMessage: MessageFactoryFn<typeof DEVICE_EVENT, DeviceEvent>;
625
+
591
626
  declare const UI_EVENT = "UI_EVENT";
592
627
  declare const UI_REQUEST: {
593
628
  readonly REQUEST_PIN: "ui-request_pin";
629
+ readonly INVALID_PIN: "ui-invalid_pin";
630
+ readonly REQUEST_BUTTON: "ui-button";
631
+ readonly CLOSE_UI_WINDOW: "ui-close_window";
594
632
  };
633
+ interface UiRequestWithoutPayload {
634
+ type: typeof UI_REQUEST.CLOSE_UI_WINDOW;
635
+ payload?: typeof undefined;
636
+ }
595
637
  declare type UiRequestDeviceAction = {
596
638
  type: typeof UI_REQUEST.REQUEST_PIN;
597
639
  payload: {
@@ -599,7 +641,11 @@ declare type UiRequestDeviceAction = {
599
641
  type?: Messages.PinMatrixRequestType;
600
642
  };
601
643
  };
602
- declare type UiEvent = UiRequestDeviceAction;
644
+ interface UiRequestButton {
645
+ type: typeof UI_REQUEST.REQUEST_BUTTON;
646
+ payload: DeviceButtonRequest['payload'];
647
+ }
648
+ declare type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton;
603
649
  declare type UiEventMessage = UiEvent & {
604
650
  event: typeof UI_EVENT;
605
651
  };
@@ -681,35 +727,13 @@ declare const CORE_EVENT = "CORE_EVENT";
681
727
  declare type CoreMessage = {
682
728
  id?: string;
683
729
  success?: true | false;
684
- } & (IFrameEventMessage | IFrameCallMessage | UiResponseMessage | UiEventMessage);
730
+ } & (IFrameEventMessage | IFrameCallMessage | UiResponseMessage | UiEventMessage | DeviceEventMessage);
685
731
  declare type PostMessageEvent = MessageEvent<any>;
686
732
  declare const parseMessage: (messageData: any) => CoreMessage;
687
733
  declare const createErrorMessage: (error: Error & {
688
734
  code?: string;
689
735
  }) => Unsuccessful;
690
736
 
691
- declare const DEVICE: {
692
- readonly CONNECT: "device-connect";
693
- readonly CONNECT_UNACQUIRED: "device-connect_unacquired";
694
- readonly DISCONNECT: "device-disconnect";
695
- readonly CHANGED: "device-changed";
696
- readonly ACQUIRE: "device-acquire";
697
- readonly RELEASE: "device-release";
698
- readonly ACQUIRED: "device-acquired";
699
- readonly RELEASED: "device-released";
700
- readonly USED_ELSEWHERE: "device-used_elsewhere";
701
- readonly UNREADABLE: "unreadable-device";
702
- readonly LOADING: "device-loading";
703
- readonly BUTTON: "button";
704
- readonly PIN: "pin";
705
- readonly PASSPHRASE: "passphrase";
706
- readonly PASSPHRASE_ON_DEVICE: "passphrase_on_device";
707
- readonly WORD: "word";
708
- };
709
- interface DeviceButtonRequestPayload extends Omit<Messages.ButtonRequest, 'code'> {
710
- code?: Messages.ButtonRequest['code'] | 'ButtonRequest_FirmwareUpdate';
711
- }
712
-
713
737
  declare type DeviceDescriptorDiff = {
714
738
  didUpdate: boolean;
715
739
  connected: OneKeyDeviceInfo[];
@@ -958,4 +982,4 @@ declare class DataManager {
958
982
 
959
983
  declare const HardwareSdk: ({ init, call, dispose, eventEmitter, uiResponse, cancel, }: InjectApi) => CoreApi;
960
984
 
961
- export { AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCVerifyMessageParams, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CommonParams, ConnectSettings, Core, CoreApi, CoreMessage, DEFAULT_PRIORITY, DEVICE, DataManager, Deferred, Device$1 as Device, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceFlagsParams, DeviceMode, DeviceRecoveryParams, DeviceResetParams, DeviceSettingsParams, DeviceStatus, DeviceTypeMap, errors as ERRORS, EVMAccessList, EVMAddress, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, Features, FirmwareRange, FirmwareRelease, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceType, IFRAME, IFirmwareReleaseInfo, IFrameBridge, IFrameCallMessage, IFrameEvent, IFrameEventMessage, IFrameInit, ILocale, ITransportStatus, IVersionArray, KnownDevice, MethodResponseMessage, PostMessageEvent, RESPONSE_EVENT, ReleaseInfo, RemoteConfigResponse, Response, SearchDevice, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, Success, TransportReleaseStatus, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestDeviceAction, UiResponseEvent, UiResponseMessage, UiResponsePin, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, corsValidator, create, createErrorMessage, createIFrameMessage, createResponseMessage, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, getDeviceBLEFirmwareVersion, getDeviceFirmwareVersion, getDeviceLabel, getDeviceType, getDeviceUUID, getEnv, getTimeStamp, httpRequest, init as initCore, initLog, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, versionCompare, versionSplit };
985
+ export { AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCVerifyMessageParams, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CommonParams, ConnectSettings, Core, CoreApi, CoreMessage, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Deferred, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFlagsParams, DeviceMode, DeviceRecoveryParams, DeviceResetParams, DeviceSettingsParams, DeviceStatus, DeviceTypeMap, errors as ERRORS, EVMAccessList, EVMAddress, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, Features, FirmwareRange, FirmwareRelease, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceType, IFRAME, IFirmwareReleaseInfo, IFrameBridge, IFrameCallMessage, IFrameEvent, IFrameEventMessage, IFrameInit, ILocale, ITransportStatus, IVersionArray, KnownDevice, MethodResponseMessage, PostMessageEvent, RESPONSE_EVENT, ReleaseInfo, RemoteConfigResponse, Response, SearchDevice, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, Success, TransportReleaseStatus, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestWithoutPayload, UiResponseEvent, UiResponseMessage, UiResponsePin, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, corsValidator, create, createDeviceMessage, createErrorMessage, createIFrameMessage, createResponseMessage, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, getDeviceBLEFirmwareVersion, getDeviceFirmwareVersion, getDeviceLabel, getDeviceType, getDeviceUUID, getEnv, getTimeStamp, httpRequest, init as initCore, initLog, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, versionCompare, versionSplit };
package/dist/index.js CHANGED
@@ -9805,6 +9805,9 @@ const createErrorMessage = (error) => ({
9805
9805
  const UI_EVENT = 'UI_EVENT';
9806
9806
  const UI_REQUEST$1 = {
9807
9807
  REQUEST_PIN: 'ui-request_pin',
9808
+ INVALID_PIN: 'ui-invalid_pin',
9809
+ REQUEST_BUTTON: 'ui-button',
9810
+ CLOSE_UI_WINDOW: 'ui-close_window',
9808
9811
  };
9809
9812
  const createUiMessage = (type, payload) => ({
9810
9813
  event: UI_EVENT,
@@ -9841,6 +9844,7 @@ const createUiResponse = (type, payload) => ({
9841
9844
  payload,
9842
9845
  });
9843
9846
 
9847
+ const DEVICE_EVENT = 'DEVICE_EVENT';
9844
9848
  const DEVICE = {
9845
9849
  CONNECT: 'device-connect',
9846
9850
  CONNECT_UNACQUIRED: 'device-connect_unacquired',
@@ -9859,6 +9863,11 @@ const DEVICE = {
9859
9863
  PASSPHRASE_ON_DEVICE: 'passphrase_on_device',
9860
9864
  WORD: 'word',
9861
9865
  };
9866
+ const createDeviceMessage = (type, payload) => ({
9867
+ event: DEVICE_EVENT,
9868
+ type,
9869
+ payload,
9870
+ });
9862
9871
 
9863
9872
  const assertType = (res, resType) => {
9864
9873
  const splitResTypes = Array.isArray(resType) ? resType : resType.split('|');
@@ -12361,6 +12370,9 @@ const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
12361
12370
  Log.debug('Call API - setDevice: ', device);
12362
12371
  (_a = method.setDevice) === null || _a === void 0 ? void 0 : _a.call(method, device);
12363
12372
  device.on(DEVICE.PIN, onDevicePinHandler);
12373
+ device.on(DEVICE.BUTTON, (d, code) => {
12374
+ onDeviceButtonHandler(d, code);
12375
+ });
12364
12376
  try {
12365
12377
  const inner = () => __awaiter(void 0, void 0, void 0, function* () {
12366
12378
  const unexpectedMode = device.hasUnexpectedMode(method.allowDeviceMode, method.requireDeviceMode);
@@ -12398,6 +12410,8 @@ const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
12398
12410
  method.dispose();
12399
12411
  }
12400
12412
  }
12413
+ closePopup();
12414
+ cleanup();
12401
12415
  }
12402
12416
  });
12403
12417
  function initDeviceList(method) {
@@ -12447,6 +12461,13 @@ function initDeviceForBle(method) {
12447
12461
  device.deviceConnector = _connector;
12448
12462
  return device;
12449
12463
  }
12464
+ const cleanup = () => {
12465
+ _uiPromises = [];
12466
+ Log.debug('Cleanup...');
12467
+ };
12468
+ const closePopup = () => {
12469
+ postMessage(createUiMessage(UI_REQUEST$1.CLOSE_UI_WINDOW));
12470
+ };
12450
12471
  const onDevicePinHandler = (...[device, type, callback]) => __awaiter(void 0, void 0, void 0, function* () {
12451
12472
  console.log('onDevicePinHandler');
12452
12473
  const uiPromise = createUiPromise(UI_RESPONSE.RECEIVE_PIN, device);
@@ -12457,6 +12478,10 @@ const onDevicePinHandler = (...[device, type, callback]) => __awaiter(void 0, vo
12457
12478
  const uiResp = yield uiPromise.promise;
12458
12479
  callback(null, uiResp.payload);
12459
12480
  });
12481
+ const onDeviceButtonHandler = (...[device, request]) => {
12482
+ postMessage(createDeviceMessage(DEVICE.BUTTON, Object.assign(Object.assign({}, request), { device: device.toMessageObject() })));
12483
+ postMessage(createUiMessage(UI_REQUEST$1.REQUEST_BUTTON, { device: device.toMessageObject() }));
12484
+ };
12460
12485
  const postMessage = (message) => {
12461
12486
  _core.emit(CORE_EVENT, message);
12462
12487
  };
@@ -12539,6 +12564,7 @@ exports.CORE_EVENT = CORE_EVENT;
12539
12564
  exports.Core = Core;
12540
12565
  exports.DEFAULT_PRIORITY = DEFAULT_PRIORITY;
12541
12566
  exports.DEVICE = DEVICE;
12567
+ exports.DEVICE_EVENT = DEVICE_EVENT;
12542
12568
  exports.DataManager = DataManager;
12543
12569
  exports.ERRORS = errors;
12544
12570
  exports.IFRAME = IFRAME;
@@ -12548,6 +12574,7 @@ exports.UI_REQUEST = UI_REQUEST$1;
12548
12574
  exports.UI_RESPONSE = UI_RESPONSE;
12549
12575
  exports.corsValidator = corsValidator;
12550
12576
  exports.create = create;
12577
+ exports.createDeviceMessage = createDeviceMessage;
12551
12578
  exports.createErrorMessage = createErrorMessage;
12552
12579
  exports.createIFrameMessage = createIFrameMessage;
12553
12580
  exports.createResponseMessage = createResponseMessage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-core",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "> TODO: description",
5
5
  "author": "OneKey",
6
6
  "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
@@ -25,7 +25,7 @@
25
25
  "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
26
26
  },
27
27
  "dependencies": {
28
- "@onekeyfe/hd-transport": "^0.0.3",
28
+ "@onekeyfe/hd-transport": "^0.0.4",
29
29
  "axios": "^0.27.2",
30
30
  "bignumber.js": "^9.0.2",
31
31
  "parse-uri": "^1.0.7",
@@ -35,5 +35,5 @@
35
35
  "@types/parse-uri": "^1.0.0",
36
36
  "@types/semver": "^7.3.9"
37
37
  },
38
- "gitHead": "179c9f232b1cc52aa60af42f6daec76564f20e50"
38
+ "gitHead": "cabba10f92c55ebbe16c54a329c892d03a0c05fb"
39
39
  }
package/src/core/index.ts CHANGED
@@ -19,6 +19,7 @@ import {
19
19
  UiPromise,
20
20
  UiPromiseResponse,
21
21
  createUiMessage,
22
+ createDeviceMessage,
22
23
  } from '../events';
23
24
  import type { BaseMethod } from '../api/BaseMethod';
24
25
  import type { ConnectSettings, KnownDevice } from '../types';
@@ -90,6 +91,9 @@ export const callAPI = async (message: CoreMessage) => {
90
91
  method.setDevice?.(device);
91
92
 
92
93
  device.on(DEVICE.PIN, onDevicePinHandler);
94
+ device.on(DEVICE.BUTTON, (d, code) => {
95
+ onDeviceButtonHandler(d, code);
96
+ });
93
97
 
94
98
  try {
95
99
  const inner = async (): Promise<void> => {
@@ -144,6 +148,10 @@ export const callAPI = async (message: CoreMessage) => {
144
148
  method.dispose();
145
149
  }
146
150
  }
151
+
152
+ closePopup();
153
+
154
+ cleanup();
147
155
  // TODO: 方法执行后,检查队列内是否有等待调用的 API,依次调用
148
156
  }
149
157
  };
@@ -203,6 +211,18 @@ function initDeviceForBle(method: BaseMethod) {
203
211
  return device;
204
212
  }
205
213
 
214
+ const cleanup = () => {
215
+ _uiPromises = [];
216
+ Log.debug('Cleanup...');
217
+ };
218
+
219
+ /**
220
+ * Force close popup
221
+ */
222
+ const closePopup = () => {
223
+ postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_WINDOW));
224
+ };
225
+
206
226
  const onDevicePinHandler = async (...[device, type, callback]: DeviceEvents['pin']) => {
207
227
  console.log('onDevicePinHandler');
208
228
  // create ui promise
@@ -220,6 +240,11 @@ const onDevicePinHandler = async (...[device, type, callback]: DeviceEvents['pin
220
240
  callback(null, uiResp.payload);
221
241
  };
222
242
 
243
+ const onDeviceButtonHandler = (...[device, request]: [...DeviceEvents['button']]) => {
244
+ postMessage(createDeviceMessage(DEVICE.BUTTON, { ...request, device: device.toMessageObject() }));
245
+ postMessage(createUiMessage(UI_REQUEST.REQUEST_BUTTON, { device: device.toMessageObject() }));
246
+ };
247
+
223
248
  /**
224
249
  * Emit message to listener (parent).
225
250
  * Clear method reference from _callMethods
@@ -1,5 +1,6 @@
1
1
  import { Unsuccessful } from '../types/params';
2
2
  import { IFrameCallMessage } from './call';
3
+ import { DeviceEventMessage } from './device';
3
4
  import { IFrameEventMessage } from './iframe';
4
5
  import { UiEventMessage } from './ui-request';
5
6
  import { UiResponseMessage } from './ui-response';
@@ -9,7 +10,13 @@ export const CORE_EVENT = 'CORE_EVENT';
9
10
  export type CoreMessage = {
10
11
  id?: string;
11
12
  success?: true | false;
12
- } & (IFrameEventMessage | IFrameCallMessage | UiResponseMessage | UiEventMessage);
13
+ } & (
14
+ | IFrameEventMessage
15
+ | IFrameCallMessage
16
+ | UiResponseMessage
17
+ | UiEventMessage
18
+ | DeviceEventMessage
19
+ );
13
20
 
14
21
  export type PostMessageEvent = MessageEvent<any>;
15
22
 
@@ -1,5 +1,8 @@
1
1
  import type { PROTO } from '../constants';
2
+ import type { KnownDevice as Device } from '../types/device';
3
+ import { MessageFactoryFn } from './utils';
2
4
 
5
+ export const DEVICE_EVENT = 'DEVICE_EVENT';
3
6
  export const DEVICE = {
4
7
  // device list events
5
8
  CONNECT: 'device-connect',
@@ -26,3 +29,27 @@ export const DEVICE = {
26
29
  export interface DeviceButtonRequestPayload extends Omit<PROTO.ButtonRequest, 'code'> {
27
30
  code?: PROTO.ButtonRequest['code'] | 'ButtonRequest_FirmwareUpdate';
28
31
  }
32
+
33
+ export interface DeviceButtonRequest {
34
+ type: typeof DEVICE.BUTTON;
35
+ payload: DeviceButtonRequestPayload & { device: Device | null };
36
+ }
37
+
38
+ export type DeviceEvent = DeviceButtonRequest;
39
+
40
+ export type DeviceEventMessage = DeviceEvent & { event: typeof DEVICE_EVENT };
41
+
42
+ export type DeviceEventListenerFn = (
43
+ type: typeof DEVICE_EVENT,
44
+ cb: (event: DeviceEventMessage) => void
45
+ ) => void;
46
+
47
+ export const createDeviceMessage: MessageFactoryFn<typeof DEVICE_EVENT, DeviceEvent> = (
48
+ type,
49
+ payload
50
+ ) =>
51
+ ({
52
+ event: DEVICE_EVENT,
53
+ type,
54
+ payload,
55
+ } as any);
@@ -1,13 +1,23 @@
1
1
  import type { PROTO } from '../constants';
2
2
  import type { Device } from '../types';
3
+ import type { DeviceButtonRequest } from './device';
3
4
  import type { MessageFactoryFn } from './utils';
4
5
 
5
6
  export const UI_EVENT = 'UI_EVENT';
6
7
 
7
8
  export const UI_REQUEST = {
8
9
  REQUEST_PIN: 'ui-request_pin',
10
+ INVALID_PIN: 'ui-invalid_pin',
11
+ REQUEST_BUTTON: 'ui-button',
12
+
13
+ CLOSE_UI_WINDOW: 'ui-close_window',
9
14
  } as const;
10
15
 
16
+ export interface UiRequestWithoutPayload {
17
+ type: typeof UI_REQUEST.CLOSE_UI_WINDOW;
18
+ payload?: typeof undefined;
19
+ }
20
+
11
21
  export type UiRequestDeviceAction = {
12
22
  type: typeof UI_REQUEST.REQUEST_PIN;
13
23
  payload: {
@@ -16,7 +26,12 @@ export type UiRequestDeviceAction = {
16
26
  };
17
27
  };
18
28
 
19
- export type UiEvent = UiRequestDeviceAction;
29
+ export interface UiRequestButton {
30
+ type: typeof UI_REQUEST.REQUEST_BUTTON;
31
+ payload: DeviceButtonRequest['payload'];
32
+ }
33
+
34
+ export type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton;
20
35
 
21
36
  export type UiEventMessage = UiEvent & { event: typeof UI_EVENT };
22
37