@onekeyfe/hd-core 0.0.1
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/.eslintrc +6 -0
- package/README.md +3 -0
- package/dist/api/BTCGetAddress.d.ts +8 -0
- package/dist/api/BTCGetAddress.d.ts.map +1 -0
- package/dist/api/BTCGetPublicKey.d.ts +8 -0
- package/dist/api/BTCGetPublicKey.d.ts.map +1 -0
- package/dist/api/BTCSignMessage.d.ts +10 -0
- package/dist/api/BTCSignMessage.d.ts.map +1 -0
- package/dist/api/BTCSignTransaction.d.ts +17 -0
- package/dist/api/BTCSignTransaction.d.ts.map +1 -0
- package/dist/api/BTCVerifyMessage.d.ts +9 -0
- package/dist/api/BTCVerifyMessage.d.ts.map +1 -0
- package/dist/api/BaseMethod.d.ts +24 -0
- package/dist/api/BaseMethod.d.ts.map +1 -0
- package/dist/api/CheckBLEFirmwareRelease.d.ts +6 -0
- package/dist/api/CheckBLEFirmwareRelease.d.ts.map +1 -0
- package/dist/api/CheckFirmwareRelease.d.ts +6 -0
- package/dist/api/CheckFirmwareRelease.d.ts.map +1 -0
- package/dist/api/CheckTransportRelease.d.ts +6 -0
- package/dist/api/CheckTransportRelease.d.ts.map +1 -0
- package/dist/api/DeviceBackup.d.ts +9 -0
- package/dist/api/DeviceBackup.d.ts.map +1 -0
- package/dist/api/DeviceChangePin.d.ts +9 -0
- package/dist/api/DeviceChangePin.d.ts.map +1 -0
- package/dist/api/DeviceFlags.d.ts +9 -0
- package/dist/api/DeviceFlags.d.ts.map +1 -0
- package/dist/api/DeviceRebootToBootloader.d.ts +9 -0
- package/dist/api/DeviceRebootToBootloader.d.ts.map +1 -0
- package/dist/api/DeviceRecovery.d.ts +9 -0
- package/dist/api/DeviceRecovery.d.ts.map +1 -0
- package/dist/api/DeviceReset.d.ts +9 -0
- package/dist/api/DeviceReset.d.ts.map +1 -0
- package/dist/api/DeviceSettings.d.ts +9 -0
- package/dist/api/DeviceSettings.d.ts.map +1 -0
- package/dist/api/DeviceUpdateReboot.d.ts +9 -0
- package/dist/api/DeviceUpdateReboot.d.ts.map +1 -0
- package/dist/api/DeviceWipe.d.ts +9 -0
- package/dist/api/DeviceWipe.d.ts.map +1 -0
- package/dist/api/EVMGetAddress.d.ts +8 -0
- package/dist/api/EVMGetAddress.d.ts.map +1 -0
- package/dist/api/EVMGetPublicKey.d.ts +8 -0
- package/dist/api/EVMGetPublicKey.d.ts.map +1 -0
- package/dist/api/EVMSignMessage.d.ts +10 -0
- package/dist/api/EVMSignMessage.d.ts.map +1 -0
- package/dist/api/EVMSignMessageEIP712.d.ts +10 -0
- package/dist/api/EVMSignMessageEIP712.d.ts.map +1 -0
- package/dist/api/EVMSignTransaction.d.ts +20 -0
- package/dist/api/EVMSignTransaction.d.ts.map +1 -0
- package/dist/api/EVMSignTypedData.d.ts +18 -0
- package/dist/api/EVMSignTypedData.d.ts.map +1 -0
- package/dist/api/EVMVerifyMessage.d.ts +9 -0
- package/dist/api/EVMVerifyMessage.d.ts.map +1 -0
- package/dist/api/GetFeatures.d.ts +51 -0
- package/dist/api/GetFeatures.d.ts.map +1 -0
- package/dist/api/SearchDevices.d.ts +16 -0
- package/dist/api/SearchDevices.d.ts.map +1 -0
- package/dist/api/helpers/bigNumberUtils.d.ts +4 -0
- package/dist/api/helpers/bigNumberUtils.d.ts.map +1 -0
- package/dist/api/helpers/btc/signtx.d.ts +5 -0
- package/dist/api/helpers/btc/signtx.d.ts.map +1 -0
- package/dist/api/helpers/btc/signtxLegacy.d.ts +5 -0
- package/dist/api/helpers/btc/signtxLegacy.d.ts.map +1 -0
- package/dist/api/helpers/btcParamsUtils.d.ts +11 -0
- package/dist/api/helpers/btcParamsUtils.d.ts.map +1 -0
- package/dist/api/helpers/hexUtils.d.ts +7 -0
- package/dist/api/helpers/hexUtils.d.ts.map +1 -0
- package/dist/api/helpers/paramsValidator.d.ts +8 -0
- package/dist/api/helpers/paramsValidator.d.ts.map +1 -0
- package/dist/api/helpers/pathUtils.d.ts +12 -0
- package/dist/api/helpers/pathUtils.d.ts.map +1 -0
- package/dist/api/helpers/stringUtils.d.ts +2 -0
- package/dist/api/helpers/stringUtils.d.ts.map +1 -0
- package/dist/api/helpers/typeNameUtils.d.ts +9 -0
- package/dist/api/helpers/typeNameUtils.d.ts.map +1 -0
- package/dist/api/index.d.ts +27 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/utils.d.ts +5 -0
- package/dist/api/utils.d.ts.map +1 -0
- package/dist/constants/errors.d.ts +25 -0
- package/dist/constants/errors.d.ts.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/ui-request.d.ts +13 -0
- package/dist/constants/ui-request.d.ts.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/data/version.d.ts +3 -0
- package/dist/data/version.d.ts.map +1 -0
- package/dist/data-manager/CoinManager.d.ts +13 -0
- package/dist/data-manager/CoinManager.d.ts.map +1 -0
- package/dist/data-manager/DataManager.d.ts +17 -0
- package/dist/data-manager/DataManager.d.ts.map +1 -0
- package/dist/data-manager/TransportManager.d.ts +15 -0
- package/dist/data-manager/TransportManager.d.ts.map +1 -0
- package/dist/data-manager/connectSettings.d.ts +9 -0
- package/dist/data-manager/connectSettings.d.ts.map +1 -0
- package/dist/data-manager/index.d.ts +3 -0
- package/dist/data-manager/index.d.ts.map +1 -0
- package/dist/device/Device.d.ts +64 -0
- package/dist/device/Device.d.ts.map +1 -0
- package/dist/device/DeviceCommands.d.ts +35 -0
- package/dist/device/DeviceCommands.d.ts.map +1 -0
- package/dist/device/DeviceConnector.d.ts +28 -0
- package/dist/device/DeviceConnector.d.ts.map +1 -0
- package/dist/device/DeviceList.d.ts +12 -0
- package/dist/device/DeviceList.d.ts.map +1 -0
- package/dist/events/call.d.ts +41 -0
- package/dist/events/call.d.ts.map +1 -0
- package/dist/events/core.d.ts +16 -0
- package/dist/events/core.d.ts.map +1 -0
- package/dist/events/device.d.ts +23 -0
- package/dist/events/device.d.ts.map +1 -0
- package/dist/events/iframe.d.ts +24 -0
- package/dist/events/iframe.d.ts.map +1 -0
- package/dist/events/index.d.ts +8 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/ui-promise.d.ts +12 -0
- package/dist/events/ui-promise.d.ts.map +1 -0
- package/dist/events/ui-request.d.ts +20 -0
- package/dist/events/ui-request.d.ts.map +1 -0
- package/dist/events/ui-response.d.ts +15 -0
- package/dist/events/ui-response.d.ts.map +1 -0
- package/dist/events/utils.d.ts +15 -0
- package/dist/events/utils.d.ts.map +1 -0
- package/dist/index.d.ts +823 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12396 -0
- package/dist/inject.d.ts +14 -0
- package/dist/inject.d.ts.map +1 -0
- package/dist/types/api/btcGetAddress.d.ts +14 -0
- package/dist/types/api/btcGetAddress.d.ts.map +1 -0
- package/dist/types/api/btcGetPublicKey.d.ts +13 -0
- package/dist/types/api/btcGetPublicKey.d.ts.map +1 -0
- package/dist/types/api/btcSignMessage.d.ts +9 -0
- package/dist/types/api/btcSignMessage.d.ts.map +1 -0
- package/dist/types/api/btcSignTransaction.d.ts +74 -0
- package/dist/types/api/btcSignTransaction.d.ts.map +1 -0
- package/dist/types/api/btcVerifyMessage.d.ts +10 -0
- package/dist/types/api/btcVerifyMessage.d.ts.map +1 -0
- package/dist/types/api/checkBLEFirmwareRelease.d.ts +4 -0
- package/dist/types/api/checkBLEFirmwareRelease.d.ts.map +1 -0
- package/dist/types/api/checkFirmwareRelease.d.ts +4 -0
- package/dist/types/api/checkFirmwareRelease.d.ts.map +1 -0
- package/dist/types/api/checkTransportRelease.d.ts +4 -0
- package/dist/types/api/checkTransportRelease.d.ts.map +1 -0
- package/dist/types/api/deviceBackup.d.ts +4 -0
- package/dist/types/api/deviceBackup.d.ts.map +1 -0
- package/dist/types/api/deviceChangePin.d.ts +7 -0
- package/dist/types/api/deviceChangePin.d.ts.map +1 -0
- package/dist/types/api/deviceFlags.d.ts +7 -0
- package/dist/types/api/deviceFlags.d.ts.map +1 -0
- package/dist/types/api/deviceRebootToBootloader.d.ts +4 -0
- package/dist/types/api/deviceRebootToBootloader.d.ts.map +1 -0
- package/dist/types/api/deviceRecovery.d.ts +15 -0
- package/dist/types/api/deviceRecovery.d.ts.map +1 -0
- package/dist/types/api/deviceReset.d.ts +16 -0
- package/dist/types/api/deviceReset.d.ts.map +1 -0
- package/dist/types/api/deviceSettings.d.ts +16 -0
- package/dist/types/api/deviceSettings.d.ts.map +1 -0
- package/dist/types/api/deviceUpdateReboot.d.ts +4 -0
- package/dist/types/api/deviceUpdateReboot.d.ts.map +1 -0
- package/dist/types/api/deviceWipe.d.ts +4 -0
- package/dist/types/api/deviceWipe.d.ts.map +1 -0
- package/dist/types/api/event.d.ts +4 -0
- package/dist/types/api/event.d.ts.map +1 -0
- package/dist/types/api/evmGetAddress.d.ts +11 -0
- package/dist/types/api/evmGetAddress.d.ts.map +1 -0
- package/dist/types/api/evmGetPublicKey.d.ts +11 -0
- package/dist/types/api/evmGetPublicKey.d.ts.map +1 -0
- package/dist/types/api/evmSignMessage.d.ts +8 -0
- package/dist/types/api/evmSignMessage.d.ts.map +1 -0
- package/dist/types/api/evmSignMessageEIP712.d.ts +9 -0
- package/dist/types/api/evmSignMessageEIP712.d.ts.map +1 -0
- package/dist/types/api/evmSignTransaction.d.ts +36 -0
- package/dist/types/api/evmSignTransaction.d.ts.map +1 -0
- package/dist/types/api/evmSignTypedData.d.ts +33 -0
- package/dist/types/api/evmSignTypedData.d.ts.map +1 -0
- package/dist/types/api/evmVerifyMessage.d.ts +9 -0
- package/dist/types/api/evmVerifyMessage.d.ts.map +1 -0
- package/dist/types/api/getFeatures.d.ts +4 -0
- package/dist/types/api/getFeatures.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +66 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/init.d.ts +3 -0
- package/dist/types/api/init.d.ts.map +1 -0
- package/dist/types/api/searchDevices.d.ts +4 -0
- package/dist/types/api/searchDevices.d.ts.map +1 -0
- package/dist/types/api/uiResponse.d.ts +3 -0
- package/dist/types/api/uiResponse.d.ts.map +1 -0
- package/dist/types/device.d.ts +29 -0
- package/dist/types/device.d.ts.map +1 -0
- package/dist/types/firmware.d.ts +37 -0
- package/dist/types/firmware.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/params.d.ts +16 -0
- package/dist/types/params.d.ts.map +1 -0
- package/dist/types/settings.d.ts +65 -0
- package/dist/types/settings.d.ts.map +1 -0
- package/dist/utils/assets.d.ts +3 -0
- package/dist/utils/assets.d.ts.map +1 -0
- package/dist/utils/deferred.d.ts +9 -0
- package/dist/utils/deferred.d.ts.map +1 -0
- package/dist/utils/deviceFeaturesUtils.d.ts +52 -0
- package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -0
- package/dist/utils/findDefectiveBatchDevice.d.ts +3 -0
- package/dist/utils/findDefectiveBatchDevice.d.ts.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +24 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/networkUtils.d.ts +2 -0
- package/dist/utils/networkUtils.d.ts.map +1 -0
- package/dist/utils/promiseUtils.d.ts +2 -0
- package/dist/utils/promiseUtils.d.ts.map +1 -0
- package/dist/utils/versionUtils.d.ts +6 -0
- package/dist/utils/versionUtils.d.ts.map +1 -0
- package/package.json +39 -0
- package/src/api/BTCGetAddress.ts +71 -0
- package/src/api/BTCGetPublicKey.ts +70 -0
- package/src/api/BTCSignMessage.ts +40 -0
- package/src/api/BTCSignTransaction.ts +141 -0
- package/src/api/BTCVerifyMessage.ts +40 -0
- package/src/api/BaseMethod.ts +71 -0
- package/src/api/CheckBLEFirmwareRelease.ts +18 -0
- package/src/api/CheckFirmwareRelease.ts +15 -0
- package/src/api/CheckTransportRelease.ts +19 -0
- package/src/api/DeviceBackup.ts +12 -0
- package/src/api/DeviceChangePin.ts +22 -0
- package/src/api/DeviceFlags.ts +23 -0
- package/src/api/DeviceRebootToBootloader.ts +13 -0
- package/src/api/DeviceRecovery.ts +41 -0
- package/src/api/DeviceReset.ts +43 -0
- package/src/api/DeviceSettings.ts +45 -0
- package/src/api/DeviceUpdateReboot.ts +13 -0
- package/src/api/DeviceWipe.ts +12 -0
- package/src/api/EVMGetAddress.ts +54 -0
- package/src/api/EVMGetPublicKey.ts +58 -0
- package/src/api/EVMSignMessage.ts +40 -0
- package/src/api/EVMSignMessageEIP712.ts +40 -0
- package/src/api/EVMSignTransaction.ts +195 -0
- package/src/api/EVMSignTypedData.ts +212 -0
- package/src/api/EVMVerifyMessage.ts +33 -0
- package/src/api/GetFeatures.ts +12 -0
- package/src/api/SearchDevices.ts +40 -0
- package/src/api/helpers/bigNumberUtils.ts +58 -0
- package/src/api/helpers/btc/signtx.ts +232 -0
- package/src/api/helpers/btc/signtxLegacy.ts +205 -0
- package/src/api/helpers/btcParamsUtils.ts +57 -0
- package/src/api/helpers/hexUtils.ts +50 -0
- package/src/api/helpers/paramsValidator.ts +95 -0
- package/src/api/helpers/pathUtils.ts +111 -0
- package/src/api/helpers/stringUtils.ts +8 -0
- package/src/api/helpers/typeNameUtils.ts +132 -0
- package/src/api/index.ts +26 -0
- package/src/api/utils.ts +18 -0
- package/src/constants/errors.ts +47 -0
- package/src/constants/index.ts +2 -0
- package/src/constants/ui-request.ts +12 -0
- package/src/core/index.ts +305 -0
- package/src/data/coins/bitcoin.json +42 -0
- package/src/data/messages/messages.json +8658 -0
- package/src/data/version.ts +3 -0
- package/src/data-manager/CoinManager.ts +31 -0
- package/src/data-manager/DataManager.ts +148 -0
- package/src/data-manager/TransportManager.ts +87 -0
- package/src/data-manager/connectSettings.ts +109 -0
- package/src/data-manager/index.ts +2 -0
- package/src/device/Device.ts +411 -0
- package/src/device/DeviceCommands.ts +207 -0
- package/src/device/DeviceConnector.ts +173 -0
- package/src/device/DeviceList.ts +47 -0
- package/src/events/call.ts +72 -0
- package/src/events/core.ts +41 -0
- package/src/events/device.ts +28 -0
- package/src/events/iframe.ts +34 -0
- package/src/events/index.ts +7 -0
- package/src/events/ui-promise.ts +14 -0
- package/src/events/ui-request.ts +28 -0
- package/src/events/ui-response.ts +25 -0
- package/src/events/utils.ts +19 -0
- package/src/index.ts +29 -0
- package/src/inject.ts +103 -0
- package/src/types/api/btcGetAddress.ts +24 -0
- package/src/types/api/btcGetPublicKey.ts +19 -0
- package/src/types/api/btcSignMessage.ts +13 -0
- package/src/types/api/btcSignTransaction.ts +98 -0
- package/src/types/api/btcVerifyMessage.ts +14 -0
- package/src/types/api/checkBLEFirmwareRelease.ts +6 -0
- package/src/types/api/checkFirmwareRelease.ts +4 -0
- package/src/types/api/checkTransportRelease.ts +4 -0
- package/src/types/api/deviceBackup.ts +4 -0
- package/src/types/api/deviceChangePin.ts +11 -0
- package/src/types/api/deviceFlags.ts +11 -0
- package/src/types/api/deviceRebootToBootloader.ts +4 -0
- package/src/types/api/deviceRecovery.ts +19 -0
- package/src/types/api/deviceReset.ts +20 -0
- package/src/types/api/deviceSettings.ts +17 -0
- package/src/types/api/deviceUpdateReboot.ts +4 -0
- package/src/types/api/deviceWipe.ts +4 -0
- package/src/types/api/event.ts +8 -0
- package/src/types/api/evmGetAddress.ts +17 -0
- package/src/types/api/evmGetPublicKey.ts +17 -0
- package/src/types/api/evmSignMessage.ts +12 -0
- package/src/types/api/evmSignMessageEIP712.ts +13 -0
- package/src/types/api/evmSignTransaction.ts +43 -0
- package/src/types/api/evmSignTypedData.ts +40 -0
- package/src/types/api/evmVerifyMessage.ts +13 -0
- package/src/types/api/getFeatures.ts +4 -0
- package/src/types/api/index.ts +80 -0
- package/src/types/api/init.ts +3 -0
- package/src/types/api/searchDevices.ts +4 -0
- package/src/types/api/uiResponse.ts +3 -0
- package/src/types/device.ts +71 -0
- package/src/types/firmware.ts +40 -0
- package/src/types/global.d.ts +3 -0
- package/src/types/index.ts +5 -0
- package/src/types/params.ts +15 -0
- package/src/types/settings.ts +77 -0
- package/src/utils/assets.ts +5 -0
- package/src/utils/deferred.ts +35 -0
- package/src/utils/deviceFeaturesUtils.ts +49 -0
- package/src/utils/findDefectiveBatchDevice.ts +10 -0
- package/src/utils/index.ts +7 -0
- package/src/utils/logger.ts +113 -0
- package/src/utils/networkUtils.ts +18 -0
- package/src/utils/promiseUtils.ts +4 -0
- package/src/utils/versionUtils.ts +120 -0
- package/tsconfig.json +7 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { IDeviceType } from './device';
|
|
2
|
+
|
|
3
|
+
export type ConnectSettings = {
|
|
4
|
+
connectSrc?: string;
|
|
5
|
+
debug?: boolean;
|
|
6
|
+
transportReconnect?: boolean;
|
|
7
|
+
lazyLoad?: boolean;
|
|
8
|
+
// internal part, not to be accepted from .init()
|
|
9
|
+
origin?: string;
|
|
10
|
+
parentOrigin?: string; // parent window origin
|
|
11
|
+
configSrc: string;
|
|
12
|
+
iframeSrc: string;
|
|
13
|
+
version: string;
|
|
14
|
+
priority: number;
|
|
15
|
+
trustedHost: boolean;
|
|
16
|
+
supportedBrowser?: boolean;
|
|
17
|
+
env: 'node' | 'web' | 'webextension' | 'electron' | 'react-native';
|
|
18
|
+
timestamp: number;
|
|
19
|
+
isFrame?: boolean;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export type IVersionArray = [number, number, number];
|
|
23
|
+
|
|
24
|
+
export type ILocale = 'zh-CN' | 'en-US';
|
|
25
|
+
|
|
26
|
+
/** STM32 firmware config */
|
|
27
|
+
export type IFirmwareReleaseInfo = {
|
|
28
|
+
required: boolean;
|
|
29
|
+
url: string;
|
|
30
|
+
fingerprint: string;
|
|
31
|
+
version: IVersionArray;
|
|
32
|
+
changelog: {
|
|
33
|
+
[k in ILocale]: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/** BLE firmware config */
|
|
38
|
+
export type IBLEFirmwareReleaseInfo = {
|
|
39
|
+
required: boolean;
|
|
40
|
+
/** bluetooth dfu version */
|
|
41
|
+
url: string;
|
|
42
|
+
/** stm bluetooth update version */
|
|
43
|
+
webUpdate: string;
|
|
44
|
+
fingerprint: string;
|
|
45
|
+
fingerprintWeb: string;
|
|
46
|
+
version: IVersionArray;
|
|
47
|
+
changelog: {
|
|
48
|
+
[k in ILocale]: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export type DeviceTypeMap = {
|
|
53
|
+
[k in IDeviceType]: {
|
|
54
|
+
firmware: IFirmwareReleaseInfo[];
|
|
55
|
+
ble: IBLEFirmwareReleaseInfo[];
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export type AssetsMap = {
|
|
60
|
+
bridge: {
|
|
61
|
+
version: IVersionArray;
|
|
62
|
+
linux32Rpm: string;
|
|
63
|
+
linux64Rpm: string;
|
|
64
|
+
linux32Deb: string;
|
|
65
|
+
linux64Deb: string;
|
|
66
|
+
win: string;
|
|
67
|
+
mac: string;
|
|
68
|
+
sha256sumAsc: string;
|
|
69
|
+
changelog: {
|
|
70
|
+
[k in ILocale]: string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export type RemoteConfigResponse = {
|
|
76
|
+
bridge: AssetsMap['bridge'];
|
|
77
|
+
} & DeviceTypeMap;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type Deferred<T, I = any, D = any> = {
|
|
2
|
+
id?: I;
|
|
3
|
+
data?: D;
|
|
4
|
+
promise: Promise<T>;
|
|
5
|
+
resolve: (t: T) => void;
|
|
6
|
+
reject: (e: Error) => void;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export function create<T, I = any, D = any>(arg?: I, data?: D): Deferred<T, I, D> {
|
|
10
|
+
let localResolve: (t: T) => void = (_t: T) => {};
|
|
11
|
+
let localReject: (e?: Error) => void = (_e?: Error) => {};
|
|
12
|
+
let id: I | undefined;
|
|
13
|
+
|
|
14
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
15
|
+
const promise: Promise<T> = new Promise(async (resolve, reject) => {
|
|
16
|
+
localResolve = resolve;
|
|
17
|
+
localReject = reject;
|
|
18
|
+
if (typeof arg === 'function') {
|
|
19
|
+
try {
|
|
20
|
+
await arg();
|
|
21
|
+
} catch (error) {
|
|
22
|
+
reject(error);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (typeof arg === 'string') id = arg;
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
return {
|
|
29
|
+
id,
|
|
30
|
+
data,
|
|
31
|
+
resolve: localResolve,
|
|
32
|
+
reject: localReject,
|
|
33
|
+
promise,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Features, IVersionArray, IDeviceType } from '../types';
|
|
2
|
+
|
|
3
|
+
export const getDeviceType = (features?: Features): IDeviceType => {
|
|
4
|
+
if (!features || typeof features !== 'object' || !features.serial_no) {
|
|
5
|
+
return 'classic';
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const serialNo = features.serial_no;
|
|
9
|
+
const miniFlag = serialNo.slice(0, 2);
|
|
10
|
+
if (miniFlag.toLowerCase() === 'mi') return 'mini';
|
|
11
|
+
return 'classic';
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const getDeviceUUID = (features: Features) => {
|
|
15
|
+
const deviceType = getDeviceType(features);
|
|
16
|
+
if (deviceType === 'classic') {
|
|
17
|
+
return features.onekey_serial;
|
|
18
|
+
}
|
|
19
|
+
return features.serial_no;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const getDeviceLabel = (features: Features) => {
|
|
23
|
+
const deviceType = getDeviceType(features);
|
|
24
|
+
// '' empty string or string
|
|
25
|
+
if (typeof features.label === 'string') {
|
|
26
|
+
return features.label;
|
|
27
|
+
}
|
|
28
|
+
return `My OneKey ${deviceType.charAt(0).toUpperCase() + deviceType.slice(1)}`;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Get Connected Device version by features
|
|
33
|
+
*/
|
|
34
|
+
export const getDeviceFirmwareVersion = (features: Features): IVersionArray => {
|
|
35
|
+
if (features.onekey_version) {
|
|
36
|
+
return features.onekey_version.split('.') as unknown as IVersionArray;
|
|
37
|
+
}
|
|
38
|
+
return [features.major_version, features.minor_version, features.patch_version];
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Get Connected Device bluetooth firmware version by features
|
|
43
|
+
*/
|
|
44
|
+
export const getDeviceBLEFirmwareVersion = (features: Features): IVersionArray | null => {
|
|
45
|
+
if (!features.ble_ver) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
return features.ble_ver.split('.') as unknown as IVersionArray;
|
|
49
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Features } from '../types';
|
|
2
|
+
|
|
3
|
+
export const findDefectiveBatchDevice = (features: Features) => {
|
|
4
|
+
if (!features) return;
|
|
5
|
+
const { onekey_serial: onekeySerial, se_ver: seVer } = features;
|
|
6
|
+
if (!onekeySerial) return;
|
|
7
|
+
const versionNum = +onekeySerial.slice(5);
|
|
8
|
+
if (Number.isNaN(versionNum)) return;
|
|
9
|
+
return versionNum >= 21032200001 && versionNum <= 21032201500 && seVer === '1.1.0.2';
|
|
10
|
+
};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
const colors: Record<string, string> = {
|
|
2
|
+
// orange, api related
|
|
3
|
+
'@onekey/connect': 'color: #f4a742; background: #000;',
|
|
4
|
+
IFrame: 'color: #f4a742; background: #000;',
|
|
5
|
+
Core: 'color: #f4a742; background: #000;',
|
|
6
|
+
// green, device related
|
|
7
|
+
DescriptorStream: 'color: #77ab59; background: #000;',
|
|
8
|
+
DeviceList: 'color: #77ab59; background: #000;',
|
|
9
|
+
Device: 'color: #bada55; background: #000;',
|
|
10
|
+
DeviceCommands: 'color: #bada55; background: #000;',
|
|
11
|
+
DeviceConnector: 'color: #bada55; background: #000;',
|
|
12
|
+
// red, data-manager related
|
|
13
|
+
Transport: 'color: #ffb6c1; background: #000;',
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
type LogMessage = {
|
|
17
|
+
level: string;
|
|
18
|
+
prefix: string;
|
|
19
|
+
message: any[];
|
|
20
|
+
timestamp: number;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const MAX_ENTRIES = 100;
|
|
24
|
+
|
|
25
|
+
class Log {
|
|
26
|
+
prefix: string;
|
|
27
|
+
|
|
28
|
+
enabled: boolean;
|
|
29
|
+
|
|
30
|
+
css: string;
|
|
31
|
+
|
|
32
|
+
messages: LogMessage[];
|
|
33
|
+
|
|
34
|
+
constructor(prefix: string, enabled: boolean) {
|
|
35
|
+
this.prefix = prefix;
|
|
36
|
+
this.enabled = enabled;
|
|
37
|
+
this.messages = [];
|
|
38
|
+
this.css = typeof window !== 'undefined' && colors[prefix] ? colors[prefix] : '';
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
addMessage(level: string, prefix: string, ...args: any[]) {
|
|
42
|
+
this.messages.push({
|
|
43
|
+
level,
|
|
44
|
+
prefix,
|
|
45
|
+
message: args,
|
|
46
|
+
timestamp: new Date().getTime(),
|
|
47
|
+
});
|
|
48
|
+
if (this.messages.length > MAX_ENTRIES) {
|
|
49
|
+
this.messages.shift();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
log(...args: any[]) {
|
|
54
|
+
this.addMessage('log', this.prefix, ...args);
|
|
55
|
+
if (this.enabled) {
|
|
56
|
+
console.log(this.prefix, ...args);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
error(...args: any[]) {
|
|
61
|
+
this.addMessage('error', this.prefix, ...args);
|
|
62
|
+
if (this.enabled) {
|
|
63
|
+
console.error(this.prefix, ...args);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
warn(...args: any[]) {
|
|
68
|
+
this.addMessage('warn', this.prefix, ...args);
|
|
69
|
+
if (this.enabled) {
|
|
70
|
+
console.warn(this.prefix, ...args);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
debug(...args: any[]) {
|
|
75
|
+
this.addMessage('debug', this.prefix, ...args);
|
|
76
|
+
if (this.enabled) {
|
|
77
|
+
if (this.css) {
|
|
78
|
+
console.log(`%c${this.prefix}`, this.css, ...args);
|
|
79
|
+
} else {
|
|
80
|
+
console.log(this.prefix, ...args);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const _logs: { [k: string]: Log } = {};
|
|
87
|
+
|
|
88
|
+
export const initLog = (prefix: string, enabled?: boolean) => {
|
|
89
|
+
const instance = new Log(prefix, !!enabled);
|
|
90
|
+
_logs[prefix] = instance;
|
|
91
|
+
return instance;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const enableLog = (enabled?: boolean) => {
|
|
95
|
+
Object.keys(_logs).forEach(key => {
|
|
96
|
+
_logs[key].enabled = !!enabled;
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export const enableLogByPrefix = (prefix: string, enabled: boolean) => {
|
|
101
|
+
if (_logs[prefix]) {
|
|
102
|
+
_logs[prefix].enabled = enabled;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export const getLog = () => {
|
|
107
|
+
let logs: LogMessage[] = [];
|
|
108
|
+
Object.keys(_logs).forEach(key => {
|
|
109
|
+
logs = logs.concat(_logs[key].messages);
|
|
110
|
+
});
|
|
111
|
+
logs.sort((a, b) => a.timestamp - b.timestamp);
|
|
112
|
+
return logs;
|
|
113
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
|
|
3
|
+
export const httpRequest = async (url: string, type = 'text') => {
|
|
4
|
+
const response = await axios.request({
|
|
5
|
+
url,
|
|
6
|
+
withCredentials: false,
|
|
7
|
+
});
|
|
8
|
+
if (+response.status === 200) {
|
|
9
|
+
if (type === 'json') {
|
|
10
|
+
return response.data;
|
|
11
|
+
}
|
|
12
|
+
if (type === 'binary') {
|
|
13
|
+
return response.data.arrayBuffer();
|
|
14
|
+
}
|
|
15
|
+
return response.data;
|
|
16
|
+
}
|
|
17
|
+
throw new Error(`httpRequest error: ${url} ${response.statusText}`);
|
|
18
|
+
};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
const VER_NUMS = 3;
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line prefer-regex-literals
|
|
4
|
+
const versionRegex = new RegExp(/^[0-9]{1,3}(\.[0-9]{1,3}){0,2}$/);
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Validates version string
|
|
8
|
+
* @param {string} version Version string
|
|
9
|
+
* @returns {boolean} True if version string is valid, false if not
|
|
10
|
+
*/
|
|
11
|
+
export const isValidVersionString = (version: string) => versionRegex.test(version);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Validates a version array
|
|
15
|
+
* @param {number[]} version Version array
|
|
16
|
+
* @returns {boolean} True if version array is valid, false if not
|
|
17
|
+
*/
|
|
18
|
+
export const isValidVersionArray = (version: number[]) => {
|
|
19
|
+
// Check if we're getting an actual array
|
|
20
|
+
if (!Array.isArray(version)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Array has to have something in it and be no longer than the VER_NUMS const
|
|
25
|
+
if (version.length === 0 || version.length > VER_NUMS) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// There's no major version 0 (invalid number)
|
|
30
|
+
if (version[0] === 0) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Check for invalid numbers in the array
|
|
35
|
+
for (let i = 0; i < version.length; i++) {
|
|
36
|
+
if (typeof version[i] !== 'number' || version[i] < 0) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return true;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Fills the missing version numbers with zeros (ie: [1, 2] will become [1, 2, 0])
|
|
46
|
+
* @param {number[]} version Version array
|
|
47
|
+
* @returns {number[]} Version array with all positions filled
|
|
48
|
+
*/
|
|
49
|
+
export const normalizeVersionArray = (version: number[]) => {
|
|
50
|
+
if (version.length === VER_NUMS) {
|
|
51
|
+
return version;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Filling zero's for partial versions
|
|
55
|
+
const partialVersion = [...version];
|
|
56
|
+
for (let i = version.length; i < VER_NUMS; i++) {
|
|
57
|
+
partialVersion.push(0);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return partialVersion;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Returns a valid version array from a version string
|
|
65
|
+
* @param {string} version Version string
|
|
66
|
+
* @returns {number[]} Version array
|
|
67
|
+
*/
|
|
68
|
+
export const versionSplit = (version: string): number[] => {
|
|
69
|
+
if (!isValidVersionString(version)) {
|
|
70
|
+
return [0, 0, 0];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return version.split('.').map(v => Number(v));
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Compares two versions and returns if the version is newer (1), older (-1) or equal (0).
|
|
78
|
+
* @param {string | number[]} a Version to compare from
|
|
79
|
+
* @param {string | number[]} b Version to compare with
|
|
80
|
+
* @returns {number} Returns 1 if newer, -1 if older and 0 if equal
|
|
81
|
+
*/
|
|
82
|
+
export const versionCompare = (a: string | number[], b: string | number[]) => {
|
|
83
|
+
// Quick compare for same version
|
|
84
|
+
if (typeof a === 'string' && typeof b === 'string' && a === b) {
|
|
85
|
+
return 0;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Convert string to version arrays
|
|
89
|
+
const pa = typeof a === 'string' ? versionSplit(a) : a;
|
|
90
|
+
const pb = typeof b === 'string' ? versionSplit(b) : b;
|
|
91
|
+
|
|
92
|
+
// Check version validity
|
|
93
|
+
const vpa = isValidVersionArray(pa);
|
|
94
|
+
const vpb = isValidVersionArray(pb);
|
|
95
|
+
|
|
96
|
+
if (!vpa && !vpb) {
|
|
97
|
+
// Both arrays are invalid
|
|
98
|
+
return 0;
|
|
99
|
+
}
|
|
100
|
+
if (!vpa && vpb) {
|
|
101
|
+
// First array is Invalid
|
|
102
|
+
return -1;
|
|
103
|
+
}
|
|
104
|
+
if (vpa && !vpb) {
|
|
105
|
+
// Second array is invalid
|
|
106
|
+
return 1;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Normalize arrays (to contain the right version array length)
|
|
110
|
+
const npa = normalizeVersionArray(pa);
|
|
111
|
+
const npb = normalizeVersionArray(pb);
|
|
112
|
+
|
|
113
|
+
// Compare versions numbers
|
|
114
|
+
for (let i = 0; i < VER_NUMS; i++) {
|
|
115
|
+
if (npa[i] > npb[i]) return 1;
|
|
116
|
+
if (npb[i] > npa[i]) return -1;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return 0;
|
|
120
|
+
};
|