@onekeyfe/hd-core 0.0.5 → 0.0.8
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/api/SearchDevices.d.ts +1 -1
- package/dist/api/SearchDevices.d.ts.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/events/ui-request.d.ts +4 -2
- package/dist/events/ui-request.d.ts.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.js +56 -7
- package/dist/utils/deviceFeaturesUtils.d.ts +2 -0
- package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/api/SearchDevices.ts +2 -2
- package/src/core/index.ts +28 -3
- package/src/events/ui-request.ts +8 -2
- package/src/utils/deviceFeaturesUtils.ts +18 -0
- package/src/utils/index.ts +7 -1
|
@@ -5,7 +5,7 @@ export default class SearchDevices extends BaseMethod {
|
|
|
5
5
|
init(): void;
|
|
6
6
|
run(): Promise<{
|
|
7
7
|
connectId: string;
|
|
8
|
-
deviceType:
|
|
8
|
+
deviceType: import("..").IDeviceType | null;
|
|
9
9
|
path: string;
|
|
10
10
|
session?: string | null | undefined;
|
|
11
11
|
debugSession?: string | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchDevices.d.ts","sourceRoot":"","sources":["../../src/api/SearchDevices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,eAAe,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchDevices.d.ts","sourceRoot":"","sources":["../../src/api/SearchDevices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAMxD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU;IACnD,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,IAAI;IAIE,GAAG;;;;;;;;;;CA8BV"}
|
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,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,
|
|
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,iBAgIjD,CAAC;AA8HF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IACtC,aAAa,CAAC,OAAO,EAAE,WAAW;IA2BxC,OAAO;CAGR;AAED,eAAO,MAAM,QAAQ,YAGpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAGzB,CAAC;AAMF,eAAO,MAAM,IAAI,aAAoB,eAAe,aAAa,GAAG,8BAgBnE,CAAC"}
|
|
@@ -8,16 +8,18 @@ export declare const UI_REQUEST: {
|
|
|
8
8
|
readonly INVALID_PIN: "ui-invalid_pin";
|
|
9
9
|
readonly REQUEST_BUTTON: "ui-button";
|
|
10
10
|
readonly CLOSE_UI_WINDOW: "ui-close_window";
|
|
11
|
+
readonly BLUETOOTH_PERMISSION: "ui-bluetooth_permission";
|
|
12
|
+
readonly LOCATION_PERMISSION: "ui-location_permission";
|
|
11
13
|
};
|
|
12
14
|
export interface UiRequestWithoutPayload {
|
|
13
|
-
type: typeof UI_REQUEST.CLOSE_UI_WINDOW;
|
|
15
|
+
type: typeof UI_REQUEST.CLOSE_UI_WINDOW | typeof UI_REQUEST.BLUETOOTH_PERMISSION | typeof UI_REQUEST.LOCATION_PERMISSION;
|
|
14
16
|
payload?: typeof undefined;
|
|
15
17
|
}
|
|
16
18
|
export declare type UiRequestDeviceAction = {
|
|
17
19
|
type: typeof UI_REQUEST.REQUEST_PIN;
|
|
18
20
|
payload: {
|
|
19
21
|
device: Device;
|
|
20
|
-
type?: PROTO.PinMatrixRequestType;
|
|
22
|
+
type?: PROTO.PinMatrixRequestType | 'ButtonRequest_PinEntry';
|
|
21
23
|
};
|
|
22
24
|
};
|
|
23
25
|
export interface UiRequestButton {
|
|
@@ -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
|
|
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;;;;;;;CASb,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,IAAI,EACA,OAAO,UAAU,CAAC,eAAe,GACjC,OAAO,UAAU,CAAC,oBAAoB,GACtC,OAAO,UAAU,CAAC,mBAAmB,CAAC;IAC1C,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,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
|
@@ -643,16 +643,18 @@ declare const UI_REQUEST: {
|
|
|
643
643
|
readonly INVALID_PIN: "ui-invalid_pin";
|
|
644
644
|
readonly REQUEST_BUTTON: "ui-button";
|
|
645
645
|
readonly CLOSE_UI_WINDOW: "ui-close_window";
|
|
646
|
+
readonly BLUETOOTH_PERMISSION: "ui-bluetooth_permission";
|
|
647
|
+
readonly LOCATION_PERMISSION: "ui-location_permission";
|
|
646
648
|
};
|
|
647
649
|
interface UiRequestWithoutPayload {
|
|
648
|
-
type: typeof UI_REQUEST.CLOSE_UI_WINDOW;
|
|
650
|
+
type: typeof UI_REQUEST.CLOSE_UI_WINDOW | typeof UI_REQUEST.BLUETOOTH_PERMISSION | typeof UI_REQUEST.LOCATION_PERMISSION;
|
|
649
651
|
payload?: typeof undefined;
|
|
650
652
|
}
|
|
651
653
|
declare type UiRequestDeviceAction = {
|
|
652
654
|
type: typeof UI_REQUEST.REQUEST_PIN;
|
|
653
655
|
payload: {
|
|
654
656
|
device: Device$1;
|
|
655
|
-
type?: Messages.PinMatrixRequestType;
|
|
657
|
+
type?: Messages.PinMatrixRequestType | 'ButtonRequest_PinEntry';
|
|
656
658
|
};
|
|
657
659
|
};
|
|
658
660
|
interface UiRequestButton {
|
|
@@ -888,6 +890,8 @@ declare const getDeviceType: (features?: {
|
|
|
888
890
|
display_rotation: number | null;
|
|
889
891
|
experimental_features: boolean | null;
|
|
890
892
|
} | undefined) => IDeviceType;
|
|
893
|
+
declare const getDeviceTypeByBleName: (name?: string | undefined) => IDeviceType | null;
|
|
894
|
+
declare const getDeviceTypeByDeviceId: (deviceId?: string | undefined) => IDeviceType;
|
|
891
895
|
declare const getDeviceUUID: (features: Features) => string;
|
|
892
896
|
declare const getDeviceLabel: (features: Features) => string;
|
|
893
897
|
|
|
@@ -997,4 +1001,4 @@ declare class DataManager {
|
|
|
997
1001
|
|
|
998
1002
|
declare const HardwareSdk: ({ init, call, dispose, eventEmitter, uiResponse, cancel, }: InjectApi) => CoreApi;
|
|
999
1003
|
|
|
1000
|
-
export { AccountAddress, AccountAddresses, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, 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, RefTransaction, ReleaseInfo, RemoteConfigResponse, Response, SearchDevice, SignedTransaction, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, Success, TransactionOptions, 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, getDeviceLabel, getDeviceType, getDeviceUUID, getEnv, getHDPath, getScriptType, getTimeStamp, httpRequest, init as initCore, initLog, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, versionCompare, versionSplit };
|
|
1004
|
+
export { AccountAddress, AccountAddresses, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, 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, RefTransaction, ReleaseInfo, RemoteConfigResponse, Response, SearchDevice, SignedTransaction, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, Success, TransactionOptions, 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, getDeviceLabel, getDeviceType, getDeviceTypeByBleName, getDeviceTypeByDeviceId, getDeviceUUID, getEnv, getHDPath, getScriptType, getTimeStamp, httpRequest, init as initCore, initLog, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, versionCompare, versionSplit };
|
package/dist/index.js
CHANGED
|
@@ -814,6 +814,26 @@ const getDeviceType = (features) => {
|
|
|
814
814
|
}
|
|
815
815
|
const serialNo = features.serial_no;
|
|
816
816
|
const miniFlag = serialNo.slice(0, 2);
|
|
817
|
+
if (miniFlag.toLowerCase() === 'mi')
|
|
818
|
+
return 'mini';
|
|
819
|
+
if (miniFlag.toLowerCase() === 'tc')
|
|
820
|
+
return 'touch';
|
|
821
|
+
return 'classic';
|
|
822
|
+
};
|
|
823
|
+
const getDeviceTypeByBleName = (name) => {
|
|
824
|
+
if (!name)
|
|
825
|
+
return 'classic';
|
|
826
|
+
if (name.startsWith('MI'))
|
|
827
|
+
return 'mini';
|
|
828
|
+
if (name.startsWith('T'))
|
|
829
|
+
return 'touch';
|
|
830
|
+
return 'classic';
|
|
831
|
+
};
|
|
832
|
+
const getDeviceTypeByDeviceId = (deviceId) => {
|
|
833
|
+
if (!deviceId) {
|
|
834
|
+
return 'classic';
|
|
835
|
+
}
|
|
836
|
+
const miniFlag = deviceId.slice(0, 2);
|
|
817
837
|
if (miniFlag.toLowerCase() === 'mi')
|
|
818
838
|
return 'mini';
|
|
819
839
|
return 'classic';
|
|
@@ -9911,6 +9931,8 @@ const UI_REQUEST$1 = {
|
|
|
9911
9931
|
INVALID_PIN: 'ui-invalid_pin',
|
|
9912
9932
|
REQUEST_BUTTON: 'ui-button',
|
|
9913
9933
|
CLOSE_UI_WINDOW: 'ui-close_window',
|
|
9934
|
+
BLUETOOTH_PERMISSION: 'ui-bluetooth_permission',
|
|
9935
|
+
LOCATION_PERMISSION: 'ui-location_permission',
|
|
9914
9936
|
};
|
|
9915
9937
|
const createUiMessage = (type, payload) => ({
|
|
9916
9938
|
event: UI_EVENT,
|
|
@@ -10560,7 +10582,10 @@ class SearchDevices extends BaseMethod {
|
|
|
10560
10582
|
const devicesDescriptor = (_c = deviceDiff === null || deviceDiff === void 0 ? void 0 : deviceDiff.descriptors) !== null && _c !== void 0 ? _c : [];
|
|
10561
10583
|
const env = DataManager.getSettings('env');
|
|
10562
10584
|
if (env === 'react-native') {
|
|
10563
|
-
return devicesDescriptor.map(device =>
|
|
10585
|
+
return devicesDescriptor.map(device => {
|
|
10586
|
+
var _a;
|
|
10587
|
+
return (Object.assign(Object.assign({}, device), { connectId: device.id, deviceType: getDeviceTypeByBleName((_a = device.name) !== null && _a !== void 0 ? _a : '') }));
|
|
10588
|
+
});
|
|
10564
10589
|
}
|
|
10565
10590
|
const devices = [];
|
|
10566
10591
|
try {
|
|
@@ -12325,7 +12350,7 @@ let _connector;
|
|
|
12325
12350
|
let _uiPromises = [];
|
|
12326
12351
|
let _callPromise;
|
|
12327
12352
|
const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
12328
|
-
var _a;
|
|
12353
|
+
var _a, _b;
|
|
12329
12354
|
if (!message.id || !message.payload || message.type !== IFRAME.CALL) {
|
|
12330
12355
|
return Promise.reject(TypedError('Method_InvalidParameter', 'onCall: message.id or message.payload is missing'));
|
|
12331
12356
|
}
|
|
@@ -12345,7 +12370,10 @@ const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
12345
12370
|
return createResponseMessage(method.responseID, true, response);
|
|
12346
12371
|
}
|
|
12347
12372
|
catch (error) {
|
|
12348
|
-
return createResponseMessage(method.responseID, false,
|
|
12373
|
+
return createResponseMessage(method.responseID, false, {
|
|
12374
|
+
code: error.code,
|
|
12375
|
+
error: (_a = error.message) !== null && _a !== void 0 ? _a : error,
|
|
12376
|
+
});
|
|
12349
12377
|
}
|
|
12350
12378
|
}
|
|
12351
12379
|
try {
|
|
@@ -12368,7 +12396,7 @@ const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
12368
12396
|
return Promise.reject(error);
|
|
12369
12397
|
}
|
|
12370
12398
|
Log.debug('Call API - setDevice: ', device);
|
|
12371
|
-
(
|
|
12399
|
+
(_b = method.setDevice) === null || _b === void 0 ? void 0 : _b.call(method, device);
|
|
12372
12400
|
device.on(DEVICE.PIN, onDevicePinHandler);
|
|
12373
12401
|
device.on(DEVICE.BUTTON, (d, code) => {
|
|
12374
12402
|
onDeviceButtonHandler(d, code);
|
|
@@ -12397,7 +12425,13 @@ const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
12397
12425
|
Log.debug('Call API - Device Run: ', device);
|
|
12398
12426
|
const deviceRun = () => device.run(inner);
|
|
12399
12427
|
_callPromise = create(deviceRun);
|
|
12400
|
-
|
|
12428
|
+
try {
|
|
12429
|
+
return yield _callPromise.promise;
|
|
12430
|
+
}
|
|
12431
|
+
catch (e) {
|
|
12432
|
+
console.log('Device Run Error: ', e);
|
|
12433
|
+
return createResponseMessage(method.responseID, false, e.message);
|
|
12434
|
+
}
|
|
12401
12435
|
}
|
|
12402
12436
|
catch (error) {
|
|
12403
12437
|
messageResponse = createResponseMessage(method.responseID, false, error);
|
|
@@ -12480,7 +12514,15 @@ const onDevicePinHandler = (...[device, type, callback]) => __awaiter(void 0, vo
|
|
|
12480
12514
|
});
|
|
12481
12515
|
const onDeviceButtonHandler = (...[device, request]) => {
|
|
12482
12516
|
postMessage(createDeviceMessage(DEVICE.BUTTON, Object.assign(Object.assign({}, request), { device: device.toMessageObject() })));
|
|
12483
|
-
|
|
12517
|
+
if (request.code === 'ButtonRequest_PinEntry') {
|
|
12518
|
+
postMessage(createUiMessage(UI_REQUEST$1.REQUEST_PIN, {
|
|
12519
|
+
device: device.toMessageObject(),
|
|
12520
|
+
type: 'ButtonRequest_PinEntry',
|
|
12521
|
+
}));
|
|
12522
|
+
}
|
|
12523
|
+
else {
|
|
12524
|
+
postMessage(createUiMessage(UI_REQUEST$1.REQUEST_BUTTON, { device: device.toMessageObject() }));
|
|
12525
|
+
}
|
|
12484
12526
|
};
|
|
12485
12527
|
const postMessage = (message) => {
|
|
12486
12528
|
_core.emit(CORE_EVENT, message);
|
|
@@ -12506,6 +12548,11 @@ class Core extends events.exports {
|
|
|
12506
12548
|
}
|
|
12507
12549
|
break;
|
|
12508
12550
|
}
|
|
12551
|
+
case UI_REQUEST$1.BLUETOOTH_PERMISSION:
|
|
12552
|
+
case UI_REQUEST$1.LOCATION_PERMISSION: {
|
|
12553
|
+
postMessage(message);
|
|
12554
|
+
break;
|
|
12555
|
+
}
|
|
12509
12556
|
case IFRAME.CALL: {
|
|
12510
12557
|
const response = yield callAPI(message);
|
|
12511
12558
|
return response;
|
|
@@ -12534,7 +12581,7 @@ const init = (settings, Transport) => __awaiter(void 0, void 0, void 0, function
|
|
|
12534
12581
|
yield DataManager.load(settings);
|
|
12535
12582
|
initTransport(Transport);
|
|
12536
12583
|
}
|
|
12537
|
-
catch (
|
|
12584
|
+
catch (_c) {
|
|
12538
12585
|
Log.error('DataManager.load error');
|
|
12539
12586
|
}
|
|
12540
12587
|
enableLog(DataManager.getSettings('debug'));
|
|
@@ -12584,6 +12631,8 @@ exports["default"] = HardwareSdk;
|
|
|
12584
12631
|
exports.enableLog = enableLog;
|
|
12585
12632
|
exports.getDeviceLabel = getDeviceLabel;
|
|
12586
12633
|
exports.getDeviceType = getDeviceType;
|
|
12634
|
+
exports.getDeviceTypeByBleName = getDeviceTypeByBleName;
|
|
12635
|
+
exports.getDeviceTypeByDeviceId = getDeviceTypeByDeviceId;
|
|
12587
12636
|
exports.getDeviceUUID = getDeviceUUID;
|
|
12588
12637
|
exports.getEnv = getEnv;
|
|
12589
12638
|
exports.getHDPath = getHDPath;
|
|
@@ -46,6 +46,8 @@ export declare const getDeviceType: (features?: {
|
|
|
46
46
|
display_rotation: number | null;
|
|
47
47
|
experimental_features: boolean | null;
|
|
48
48
|
} | undefined) => IDeviceType;
|
|
49
|
+
export declare const getDeviceTypeByBleName: (name?: string | undefined) => IDeviceType | null;
|
|
50
|
+
export declare const getDeviceTypeByDeviceId: (deviceId?: string | undefined) => IDeviceType;
|
|
49
51
|
export declare const getDeviceUUID: (features: Features) => string;
|
|
50
52
|
export declare const getDeviceLabel: (features: Features) => string;
|
|
51
53
|
export declare const getDeviceFirmwareVersion: (features: Features) => IVersionArray;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceFeaturesUtils.d.ts","sourceRoot":"","sources":["../../src/utils/deviceFeaturesUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAErE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA0B,
|
|
1
|
+
{"version":3,"file":"deviceFeaturesUtils.d.ts","sourceRoot":"","sources":["../../src/utils/deviceFeaturesUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAErE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA0B,WAUnD,CAAC;AAEF,eAAO,MAAM,sBAAsB,iCAAoB,WAAW,GAAG,IAKpE,CAAC;AAEF,eAAO,MAAM,uBAAuB,qCAAwB,WAQ3D,CAAC;AAEF,eAAO,MAAM,aAAa,aAAc,QAAQ,WAM/C,CAAC;AAEF,eAAO,MAAM,cAAc,aAAc,QAAQ,WAOhD,CAAC;AAKF,eAAO,MAAM,wBAAwB,aAAc,QAAQ,kBAK1D,CAAC;AAKF,eAAO,MAAM,2BAA2B,aAAc,QAAQ,KAAG,aAAa,GAAG,IAKhF,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { initLog, enableLog } from './logger';
|
|
|
2
2
|
export * from './assets';
|
|
3
3
|
export * from './versionUtils';
|
|
4
4
|
export * from './deferred';
|
|
5
|
-
export { getDeviceType, getDeviceUUID, getDeviceLabel } from './deviceFeaturesUtils';
|
|
5
|
+
export { getDeviceType, getDeviceTypeByBleName, getDeviceTypeByDeviceId, getDeviceUUID, getDeviceLabel, } from './deviceFeaturesUtils';
|
|
6
6
|
export { getHDPath, getScriptType } from '../api/helpers/pathUtils';
|
|
7
7
|
export { initLog, enableLog };
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE9C,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE9C,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
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.8",
|
|
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": "edfa30382fdf36182bc389c8ff1dd1a689096592"
|
|
39
39
|
}
|
package/src/api/SearchDevices.ts
CHANGED
|
@@ -3,6 +3,7 @@ import DeviceConnector from '../device/DeviceConnector';
|
|
|
3
3
|
import TransportManager from '../data-manager/TransportManager';
|
|
4
4
|
import { Device } from '../device/Device';
|
|
5
5
|
import { DataManager } from '../data-manager';
|
|
6
|
+
import { getDeviceTypeByBleName } from '../utils';
|
|
6
7
|
|
|
7
8
|
export default class SearchDevices extends BaseMethod {
|
|
8
9
|
connector?: DeviceConnector;
|
|
@@ -26,8 +27,7 @@ export default class SearchDevices extends BaseMethod {
|
|
|
26
27
|
return devicesDescriptor.map(device => ({
|
|
27
28
|
...device,
|
|
28
29
|
connectId: device.id,
|
|
29
|
-
|
|
30
|
-
deviceType: 'classic',
|
|
30
|
+
deviceType: getDeviceTypeByBleName(device.name ?? ''),
|
|
31
31
|
}));
|
|
32
32
|
}
|
|
33
33
|
|
package/src/core/index.ts
CHANGED
|
@@ -61,7 +61,10 @@ export const callAPI = async (message: CoreMessage) => {
|
|
|
61
61
|
const response = await method.run();
|
|
62
62
|
return createResponseMessage(method.responseID, true, response);
|
|
63
63
|
} catch (error) {
|
|
64
|
-
return createResponseMessage(method.responseID, false,
|
|
64
|
+
return createResponseMessage(method.responseID, false, {
|
|
65
|
+
code: error.code,
|
|
66
|
+
error: error.message ?? error,
|
|
67
|
+
});
|
|
65
68
|
}
|
|
66
69
|
}
|
|
67
70
|
|
|
@@ -136,7 +139,13 @@ export const callAPI = async (message: CoreMessage) => {
|
|
|
136
139
|
Log.debug('Call API - Device Run: ', device);
|
|
137
140
|
const deviceRun = () => device.run(inner);
|
|
138
141
|
_callPromise = createDeferred(deviceRun);
|
|
139
|
-
|
|
142
|
+
|
|
143
|
+
try {
|
|
144
|
+
return await _callPromise.promise;
|
|
145
|
+
} catch (e) {
|
|
146
|
+
console.log('Device Run Error: ', e);
|
|
147
|
+
return createResponseMessage(method.responseID, false, e.message);
|
|
148
|
+
}
|
|
140
149
|
} catch (error) {
|
|
141
150
|
messageResponse = createResponseMessage(method.responseID, false, error);
|
|
142
151
|
_callPromise?.reject(ERRORS.TypedError('Call_API', error));
|
|
@@ -242,7 +251,17 @@ const onDevicePinHandler = async (...[device, type, callback]: DeviceEvents['pin
|
|
|
242
251
|
|
|
243
252
|
const onDeviceButtonHandler = (...[device, request]: [...DeviceEvents['button']]) => {
|
|
244
253
|
postMessage(createDeviceMessage(DEVICE.BUTTON, { ...request, device: device.toMessageObject() }));
|
|
245
|
-
|
|
254
|
+
|
|
255
|
+
if (request.code === 'ButtonRequest_PinEntry') {
|
|
256
|
+
postMessage(
|
|
257
|
+
createUiMessage(UI_REQUEST.REQUEST_PIN, {
|
|
258
|
+
device: device.toMessageObject() as KnownDevice,
|
|
259
|
+
type: 'ButtonRequest_PinEntry',
|
|
260
|
+
})
|
|
261
|
+
);
|
|
262
|
+
} else {
|
|
263
|
+
postMessage(createUiMessage(UI_REQUEST.REQUEST_BUTTON, { device: device.toMessageObject() }));
|
|
264
|
+
}
|
|
246
265
|
};
|
|
247
266
|
|
|
248
267
|
/**
|
|
@@ -282,6 +301,12 @@ export default class Core extends EventEmitter {
|
|
|
282
301
|
break;
|
|
283
302
|
}
|
|
284
303
|
|
|
304
|
+
case UI_REQUEST.BLUETOOTH_PERMISSION:
|
|
305
|
+
case UI_REQUEST.LOCATION_PERMISSION: {
|
|
306
|
+
postMessage(message);
|
|
307
|
+
break;
|
|
308
|
+
}
|
|
309
|
+
|
|
285
310
|
case IFRAME.CALL: {
|
|
286
311
|
const response = await callAPI(message);
|
|
287
312
|
return response;
|
package/src/events/ui-request.ts
CHANGED
|
@@ -11,10 +11,16 @@ export const UI_REQUEST = {
|
|
|
11
11
|
REQUEST_BUTTON: 'ui-button',
|
|
12
12
|
|
|
13
13
|
CLOSE_UI_WINDOW: 'ui-close_window',
|
|
14
|
+
|
|
15
|
+
BLUETOOTH_PERMISSION: 'ui-bluetooth_permission',
|
|
16
|
+
LOCATION_PERMISSION: 'ui-location_permission',
|
|
14
17
|
} as const;
|
|
15
18
|
|
|
16
19
|
export interface UiRequestWithoutPayload {
|
|
17
|
-
type:
|
|
20
|
+
type:
|
|
21
|
+
| typeof UI_REQUEST.CLOSE_UI_WINDOW
|
|
22
|
+
| typeof UI_REQUEST.BLUETOOTH_PERMISSION
|
|
23
|
+
| typeof UI_REQUEST.LOCATION_PERMISSION;
|
|
18
24
|
payload?: typeof undefined;
|
|
19
25
|
}
|
|
20
26
|
|
|
@@ -22,7 +28,7 @@ export type UiRequestDeviceAction = {
|
|
|
22
28
|
type: typeof UI_REQUEST.REQUEST_PIN;
|
|
23
29
|
payload: {
|
|
24
30
|
device: Device;
|
|
25
|
-
type?: PROTO.PinMatrixRequestType;
|
|
31
|
+
type?: PROTO.PinMatrixRequestType | 'ButtonRequest_PinEntry';
|
|
26
32
|
};
|
|
27
33
|
};
|
|
28
34
|
|
|
@@ -8,6 +8,24 @@ export const getDeviceType = (features?: Features): IDeviceType => {
|
|
|
8
8
|
const serialNo = features.serial_no;
|
|
9
9
|
const miniFlag = serialNo.slice(0, 2);
|
|
10
10
|
if (miniFlag.toLowerCase() === 'mi') return 'mini';
|
|
11
|
+
if (miniFlag.toLowerCase() === 'tc') return 'touch';
|
|
12
|
+
return 'classic';
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const getDeviceTypeByBleName = (name?: string): IDeviceType | null => {
|
|
16
|
+
if (!name) return 'classic';
|
|
17
|
+
if (name.startsWith('MI')) return 'mini';
|
|
18
|
+
if (name.startsWith('T')) return 'touch';
|
|
19
|
+
return 'classic';
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const getDeviceTypeByDeviceId = (deviceId?: string): IDeviceType => {
|
|
23
|
+
if (!deviceId) {
|
|
24
|
+
return 'classic';
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const miniFlag = deviceId.slice(0, 2);
|
|
28
|
+
if (miniFlag.toLowerCase() === 'mi') return 'mini';
|
|
11
29
|
return 'classic';
|
|
12
30
|
};
|
|
13
31
|
|
package/src/utils/index.ts
CHANGED
|
@@ -3,7 +3,13 @@ import { initLog, enableLog } from './logger';
|
|
|
3
3
|
export * from './assets';
|
|
4
4
|
export * from './versionUtils';
|
|
5
5
|
export * from './deferred';
|
|
6
|
-
export {
|
|
6
|
+
export {
|
|
7
|
+
getDeviceType,
|
|
8
|
+
getDeviceTypeByBleName,
|
|
9
|
+
getDeviceTypeByDeviceId,
|
|
10
|
+
getDeviceUUID,
|
|
11
|
+
getDeviceLabel,
|
|
12
|
+
} from './deviceFeaturesUtils';
|
|
7
13
|
export { getHDPath, getScriptType } from '../api/helpers/pathUtils';
|
|
8
14
|
|
|
9
15
|
export { initLog, enableLog };
|