@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.
- package/dist/core/index.d.ts.map +1 -1
- package/dist/events/core.d.ts +2 -1
- package/dist/events/core.d.ts.map +1 -1
- package/dist/events/device.d.ts +15 -0
- package/dist/events/device.d.ts.map +1 -1
- package/dist/events/ui-request.d.ts +13 -1
- package/dist/events/ui-request.d.ts.map +1 -1
- package/dist/index.d.ts +49 -25
- package/dist/index.js +27 -0
- package/package.json +3 -3
- package/src/core/index.ts +25 -0
- package/src/events/core.ts +8 -1
- package/src/events/device.ts +27 -0
- package/src/events/ui-request.ts +16 -1
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":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AASlC,OAAO,EACL,WAAW,
|
|
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"}
|
package/dist/events/core.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/events/device.d.ts
CHANGED
|
@@ -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;
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
+
"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.
|
|
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": "
|
|
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
|
package/src/events/core.ts
CHANGED
|
@@ -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
|
-
} & (
|
|
13
|
+
} & (
|
|
14
|
+
| IFrameEventMessage
|
|
15
|
+
| IFrameCallMessage
|
|
16
|
+
| UiResponseMessage
|
|
17
|
+
| UiEventMessage
|
|
18
|
+
| DeviceEventMessage
|
|
19
|
+
);
|
|
13
20
|
|
|
14
21
|
export type PostMessageEvent = MessageEvent<any>;
|
|
15
22
|
|
package/src/events/device.ts
CHANGED
|
@@ -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);
|
package/src/events/ui-request.ts
CHANGED
|
@@ -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
|
|
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
|
|