@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.
Files changed (329) hide show
  1. package/.eslintrc +6 -0
  2. package/README.md +3 -0
  3. package/dist/api/BTCGetAddress.d.ts +8 -0
  4. package/dist/api/BTCGetAddress.d.ts.map +1 -0
  5. package/dist/api/BTCGetPublicKey.d.ts +8 -0
  6. package/dist/api/BTCGetPublicKey.d.ts.map +1 -0
  7. package/dist/api/BTCSignMessage.d.ts +10 -0
  8. package/dist/api/BTCSignMessage.d.ts.map +1 -0
  9. package/dist/api/BTCSignTransaction.d.ts +17 -0
  10. package/dist/api/BTCSignTransaction.d.ts.map +1 -0
  11. package/dist/api/BTCVerifyMessage.d.ts +9 -0
  12. package/dist/api/BTCVerifyMessage.d.ts.map +1 -0
  13. package/dist/api/BaseMethod.d.ts +24 -0
  14. package/dist/api/BaseMethod.d.ts.map +1 -0
  15. package/dist/api/CheckBLEFirmwareRelease.d.ts +6 -0
  16. package/dist/api/CheckBLEFirmwareRelease.d.ts.map +1 -0
  17. package/dist/api/CheckFirmwareRelease.d.ts +6 -0
  18. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -0
  19. package/dist/api/CheckTransportRelease.d.ts +6 -0
  20. package/dist/api/CheckTransportRelease.d.ts.map +1 -0
  21. package/dist/api/DeviceBackup.d.ts +9 -0
  22. package/dist/api/DeviceBackup.d.ts.map +1 -0
  23. package/dist/api/DeviceChangePin.d.ts +9 -0
  24. package/dist/api/DeviceChangePin.d.ts.map +1 -0
  25. package/dist/api/DeviceFlags.d.ts +9 -0
  26. package/dist/api/DeviceFlags.d.ts.map +1 -0
  27. package/dist/api/DeviceRebootToBootloader.d.ts +9 -0
  28. package/dist/api/DeviceRebootToBootloader.d.ts.map +1 -0
  29. package/dist/api/DeviceRecovery.d.ts +9 -0
  30. package/dist/api/DeviceRecovery.d.ts.map +1 -0
  31. package/dist/api/DeviceReset.d.ts +9 -0
  32. package/dist/api/DeviceReset.d.ts.map +1 -0
  33. package/dist/api/DeviceSettings.d.ts +9 -0
  34. package/dist/api/DeviceSettings.d.ts.map +1 -0
  35. package/dist/api/DeviceUpdateReboot.d.ts +9 -0
  36. package/dist/api/DeviceUpdateReboot.d.ts.map +1 -0
  37. package/dist/api/DeviceWipe.d.ts +9 -0
  38. package/dist/api/DeviceWipe.d.ts.map +1 -0
  39. package/dist/api/EVMGetAddress.d.ts +8 -0
  40. package/dist/api/EVMGetAddress.d.ts.map +1 -0
  41. package/dist/api/EVMGetPublicKey.d.ts +8 -0
  42. package/dist/api/EVMGetPublicKey.d.ts.map +1 -0
  43. package/dist/api/EVMSignMessage.d.ts +10 -0
  44. package/dist/api/EVMSignMessage.d.ts.map +1 -0
  45. package/dist/api/EVMSignMessageEIP712.d.ts +10 -0
  46. package/dist/api/EVMSignMessageEIP712.d.ts.map +1 -0
  47. package/dist/api/EVMSignTransaction.d.ts +20 -0
  48. package/dist/api/EVMSignTransaction.d.ts.map +1 -0
  49. package/dist/api/EVMSignTypedData.d.ts +18 -0
  50. package/dist/api/EVMSignTypedData.d.ts.map +1 -0
  51. package/dist/api/EVMVerifyMessage.d.ts +9 -0
  52. package/dist/api/EVMVerifyMessage.d.ts.map +1 -0
  53. package/dist/api/GetFeatures.d.ts +51 -0
  54. package/dist/api/GetFeatures.d.ts.map +1 -0
  55. package/dist/api/SearchDevices.d.ts +16 -0
  56. package/dist/api/SearchDevices.d.ts.map +1 -0
  57. package/dist/api/helpers/bigNumberUtils.d.ts +4 -0
  58. package/dist/api/helpers/bigNumberUtils.d.ts.map +1 -0
  59. package/dist/api/helpers/btc/signtx.d.ts +5 -0
  60. package/dist/api/helpers/btc/signtx.d.ts.map +1 -0
  61. package/dist/api/helpers/btc/signtxLegacy.d.ts +5 -0
  62. package/dist/api/helpers/btc/signtxLegacy.d.ts.map +1 -0
  63. package/dist/api/helpers/btcParamsUtils.d.ts +11 -0
  64. package/dist/api/helpers/btcParamsUtils.d.ts.map +1 -0
  65. package/dist/api/helpers/hexUtils.d.ts +7 -0
  66. package/dist/api/helpers/hexUtils.d.ts.map +1 -0
  67. package/dist/api/helpers/paramsValidator.d.ts +8 -0
  68. package/dist/api/helpers/paramsValidator.d.ts.map +1 -0
  69. package/dist/api/helpers/pathUtils.d.ts +12 -0
  70. package/dist/api/helpers/pathUtils.d.ts.map +1 -0
  71. package/dist/api/helpers/stringUtils.d.ts +2 -0
  72. package/dist/api/helpers/stringUtils.d.ts.map +1 -0
  73. package/dist/api/helpers/typeNameUtils.d.ts +9 -0
  74. package/dist/api/helpers/typeNameUtils.d.ts.map +1 -0
  75. package/dist/api/index.d.ts +27 -0
  76. package/dist/api/index.d.ts.map +1 -0
  77. package/dist/api/utils.d.ts +5 -0
  78. package/dist/api/utils.d.ts.map +1 -0
  79. package/dist/constants/errors.d.ts +25 -0
  80. package/dist/constants/errors.d.ts.map +1 -0
  81. package/dist/constants/index.d.ts +3 -0
  82. package/dist/constants/index.d.ts.map +1 -0
  83. package/dist/constants/ui-request.d.ts +13 -0
  84. package/dist/constants/ui-request.d.ts.map +1 -0
  85. package/dist/core/index.d.ts +14 -0
  86. package/dist/core/index.d.ts.map +1 -0
  87. package/dist/data/version.d.ts +3 -0
  88. package/dist/data/version.d.ts.map +1 -0
  89. package/dist/data-manager/CoinManager.d.ts +13 -0
  90. package/dist/data-manager/CoinManager.d.ts.map +1 -0
  91. package/dist/data-manager/DataManager.d.ts +17 -0
  92. package/dist/data-manager/DataManager.d.ts.map +1 -0
  93. package/dist/data-manager/TransportManager.d.ts +15 -0
  94. package/dist/data-manager/TransportManager.d.ts.map +1 -0
  95. package/dist/data-manager/connectSettings.d.ts +9 -0
  96. package/dist/data-manager/connectSettings.d.ts.map +1 -0
  97. package/dist/data-manager/index.d.ts +3 -0
  98. package/dist/data-manager/index.d.ts.map +1 -0
  99. package/dist/device/Device.d.ts +64 -0
  100. package/dist/device/Device.d.ts.map +1 -0
  101. package/dist/device/DeviceCommands.d.ts +35 -0
  102. package/dist/device/DeviceCommands.d.ts.map +1 -0
  103. package/dist/device/DeviceConnector.d.ts +28 -0
  104. package/dist/device/DeviceConnector.d.ts.map +1 -0
  105. package/dist/device/DeviceList.d.ts +12 -0
  106. package/dist/device/DeviceList.d.ts.map +1 -0
  107. package/dist/events/call.d.ts +41 -0
  108. package/dist/events/call.d.ts.map +1 -0
  109. package/dist/events/core.d.ts +16 -0
  110. package/dist/events/core.d.ts.map +1 -0
  111. package/dist/events/device.d.ts +23 -0
  112. package/dist/events/device.d.ts.map +1 -0
  113. package/dist/events/iframe.d.ts +24 -0
  114. package/dist/events/iframe.d.ts.map +1 -0
  115. package/dist/events/index.d.ts +8 -0
  116. package/dist/events/index.d.ts.map +1 -0
  117. package/dist/events/ui-promise.d.ts +12 -0
  118. package/dist/events/ui-promise.d.ts.map +1 -0
  119. package/dist/events/ui-request.d.ts +20 -0
  120. package/dist/events/ui-request.d.ts.map +1 -0
  121. package/dist/events/ui-response.d.ts +15 -0
  122. package/dist/events/ui-response.d.ts.map +1 -0
  123. package/dist/events/utils.d.ts +15 -0
  124. package/dist/events/utils.d.ts.map +1 -0
  125. package/dist/index.d.ts +823 -0
  126. package/dist/index.d.ts.map +1 -0
  127. package/dist/index.js +12396 -0
  128. package/dist/inject.d.ts +14 -0
  129. package/dist/inject.d.ts.map +1 -0
  130. package/dist/types/api/btcGetAddress.d.ts +14 -0
  131. package/dist/types/api/btcGetAddress.d.ts.map +1 -0
  132. package/dist/types/api/btcGetPublicKey.d.ts +13 -0
  133. package/dist/types/api/btcGetPublicKey.d.ts.map +1 -0
  134. package/dist/types/api/btcSignMessage.d.ts +9 -0
  135. package/dist/types/api/btcSignMessage.d.ts.map +1 -0
  136. package/dist/types/api/btcSignTransaction.d.ts +74 -0
  137. package/dist/types/api/btcSignTransaction.d.ts.map +1 -0
  138. package/dist/types/api/btcVerifyMessage.d.ts +10 -0
  139. package/dist/types/api/btcVerifyMessage.d.ts.map +1 -0
  140. package/dist/types/api/checkBLEFirmwareRelease.d.ts +4 -0
  141. package/dist/types/api/checkBLEFirmwareRelease.d.ts.map +1 -0
  142. package/dist/types/api/checkFirmwareRelease.d.ts +4 -0
  143. package/dist/types/api/checkFirmwareRelease.d.ts.map +1 -0
  144. package/dist/types/api/checkTransportRelease.d.ts +4 -0
  145. package/dist/types/api/checkTransportRelease.d.ts.map +1 -0
  146. package/dist/types/api/deviceBackup.d.ts +4 -0
  147. package/dist/types/api/deviceBackup.d.ts.map +1 -0
  148. package/dist/types/api/deviceChangePin.d.ts +7 -0
  149. package/dist/types/api/deviceChangePin.d.ts.map +1 -0
  150. package/dist/types/api/deviceFlags.d.ts +7 -0
  151. package/dist/types/api/deviceFlags.d.ts.map +1 -0
  152. package/dist/types/api/deviceRebootToBootloader.d.ts +4 -0
  153. package/dist/types/api/deviceRebootToBootloader.d.ts.map +1 -0
  154. package/dist/types/api/deviceRecovery.d.ts +15 -0
  155. package/dist/types/api/deviceRecovery.d.ts.map +1 -0
  156. package/dist/types/api/deviceReset.d.ts +16 -0
  157. package/dist/types/api/deviceReset.d.ts.map +1 -0
  158. package/dist/types/api/deviceSettings.d.ts +16 -0
  159. package/dist/types/api/deviceSettings.d.ts.map +1 -0
  160. package/dist/types/api/deviceUpdateReboot.d.ts +4 -0
  161. package/dist/types/api/deviceUpdateReboot.d.ts.map +1 -0
  162. package/dist/types/api/deviceWipe.d.ts +4 -0
  163. package/dist/types/api/deviceWipe.d.ts.map +1 -0
  164. package/dist/types/api/event.d.ts +4 -0
  165. package/dist/types/api/event.d.ts.map +1 -0
  166. package/dist/types/api/evmGetAddress.d.ts +11 -0
  167. package/dist/types/api/evmGetAddress.d.ts.map +1 -0
  168. package/dist/types/api/evmGetPublicKey.d.ts +11 -0
  169. package/dist/types/api/evmGetPublicKey.d.ts.map +1 -0
  170. package/dist/types/api/evmSignMessage.d.ts +8 -0
  171. package/dist/types/api/evmSignMessage.d.ts.map +1 -0
  172. package/dist/types/api/evmSignMessageEIP712.d.ts +9 -0
  173. package/dist/types/api/evmSignMessageEIP712.d.ts.map +1 -0
  174. package/dist/types/api/evmSignTransaction.d.ts +36 -0
  175. package/dist/types/api/evmSignTransaction.d.ts.map +1 -0
  176. package/dist/types/api/evmSignTypedData.d.ts +33 -0
  177. package/dist/types/api/evmSignTypedData.d.ts.map +1 -0
  178. package/dist/types/api/evmVerifyMessage.d.ts +9 -0
  179. package/dist/types/api/evmVerifyMessage.d.ts.map +1 -0
  180. package/dist/types/api/getFeatures.d.ts +4 -0
  181. package/dist/types/api/getFeatures.d.ts.map +1 -0
  182. package/dist/types/api/index.d.ts +66 -0
  183. package/dist/types/api/index.d.ts.map +1 -0
  184. package/dist/types/api/init.d.ts +3 -0
  185. package/dist/types/api/init.d.ts.map +1 -0
  186. package/dist/types/api/searchDevices.d.ts +4 -0
  187. package/dist/types/api/searchDevices.d.ts.map +1 -0
  188. package/dist/types/api/uiResponse.d.ts +3 -0
  189. package/dist/types/api/uiResponse.d.ts.map +1 -0
  190. package/dist/types/device.d.ts +29 -0
  191. package/dist/types/device.d.ts.map +1 -0
  192. package/dist/types/firmware.d.ts +37 -0
  193. package/dist/types/firmware.d.ts.map +1 -0
  194. package/dist/types/index.d.ts +6 -0
  195. package/dist/types/index.d.ts.map +1 -0
  196. package/dist/types/params.d.ts +16 -0
  197. package/dist/types/params.d.ts.map +1 -0
  198. package/dist/types/settings.d.ts +65 -0
  199. package/dist/types/settings.d.ts.map +1 -0
  200. package/dist/utils/assets.d.ts +3 -0
  201. package/dist/utils/assets.d.ts.map +1 -0
  202. package/dist/utils/deferred.d.ts +9 -0
  203. package/dist/utils/deferred.d.ts.map +1 -0
  204. package/dist/utils/deviceFeaturesUtils.d.ts +52 -0
  205. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -0
  206. package/dist/utils/findDefectiveBatchDevice.d.ts +3 -0
  207. package/dist/utils/findDefectiveBatchDevice.d.ts.map +1 -0
  208. package/dist/utils/index.d.ts +6 -0
  209. package/dist/utils/index.d.ts.map +1 -0
  210. package/dist/utils/logger.d.ts +24 -0
  211. package/dist/utils/logger.d.ts.map +1 -0
  212. package/dist/utils/networkUtils.d.ts +2 -0
  213. package/dist/utils/networkUtils.d.ts.map +1 -0
  214. package/dist/utils/promiseUtils.d.ts +2 -0
  215. package/dist/utils/promiseUtils.d.ts.map +1 -0
  216. package/dist/utils/versionUtils.d.ts +6 -0
  217. package/dist/utils/versionUtils.d.ts.map +1 -0
  218. package/package.json +39 -0
  219. package/src/api/BTCGetAddress.ts +71 -0
  220. package/src/api/BTCGetPublicKey.ts +70 -0
  221. package/src/api/BTCSignMessage.ts +40 -0
  222. package/src/api/BTCSignTransaction.ts +141 -0
  223. package/src/api/BTCVerifyMessage.ts +40 -0
  224. package/src/api/BaseMethod.ts +71 -0
  225. package/src/api/CheckBLEFirmwareRelease.ts +18 -0
  226. package/src/api/CheckFirmwareRelease.ts +15 -0
  227. package/src/api/CheckTransportRelease.ts +19 -0
  228. package/src/api/DeviceBackup.ts +12 -0
  229. package/src/api/DeviceChangePin.ts +22 -0
  230. package/src/api/DeviceFlags.ts +23 -0
  231. package/src/api/DeviceRebootToBootloader.ts +13 -0
  232. package/src/api/DeviceRecovery.ts +41 -0
  233. package/src/api/DeviceReset.ts +43 -0
  234. package/src/api/DeviceSettings.ts +45 -0
  235. package/src/api/DeviceUpdateReboot.ts +13 -0
  236. package/src/api/DeviceWipe.ts +12 -0
  237. package/src/api/EVMGetAddress.ts +54 -0
  238. package/src/api/EVMGetPublicKey.ts +58 -0
  239. package/src/api/EVMSignMessage.ts +40 -0
  240. package/src/api/EVMSignMessageEIP712.ts +40 -0
  241. package/src/api/EVMSignTransaction.ts +195 -0
  242. package/src/api/EVMSignTypedData.ts +212 -0
  243. package/src/api/EVMVerifyMessage.ts +33 -0
  244. package/src/api/GetFeatures.ts +12 -0
  245. package/src/api/SearchDevices.ts +40 -0
  246. package/src/api/helpers/bigNumberUtils.ts +58 -0
  247. package/src/api/helpers/btc/signtx.ts +232 -0
  248. package/src/api/helpers/btc/signtxLegacy.ts +205 -0
  249. package/src/api/helpers/btcParamsUtils.ts +57 -0
  250. package/src/api/helpers/hexUtils.ts +50 -0
  251. package/src/api/helpers/paramsValidator.ts +95 -0
  252. package/src/api/helpers/pathUtils.ts +111 -0
  253. package/src/api/helpers/stringUtils.ts +8 -0
  254. package/src/api/helpers/typeNameUtils.ts +132 -0
  255. package/src/api/index.ts +26 -0
  256. package/src/api/utils.ts +18 -0
  257. package/src/constants/errors.ts +47 -0
  258. package/src/constants/index.ts +2 -0
  259. package/src/constants/ui-request.ts +12 -0
  260. package/src/core/index.ts +305 -0
  261. package/src/data/coins/bitcoin.json +42 -0
  262. package/src/data/messages/messages.json +8658 -0
  263. package/src/data/version.ts +3 -0
  264. package/src/data-manager/CoinManager.ts +31 -0
  265. package/src/data-manager/DataManager.ts +148 -0
  266. package/src/data-manager/TransportManager.ts +87 -0
  267. package/src/data-manager/connectSettings.ts +109 -0
  268. package/src/data-manager/index.ts +2 -0
  269. package/src/device/Device.ts +411 -0
  270. package/src/device/DeviceCommands.ts +207 -0
  271. package/src/device/DeviceConnector.ts +173 -0
  272. package/src/device/DeviceList.ts +47 -0
  273. package/src/events/call.ts +72 -0
  274. package/src/events/core.ts +41 -0
  275. package/src/events/device.ts +28 -0
  276. package/src/events/iframe.ts +34 -0
  277. package/src/events/index.ts +7 -0
  278. package/src/events/ui-promise.ts +14 -0
  279. package/src/events/ui-request.ts +28 -0
  280. package/src/events/ui-response.ts +25 -0
  281. package/src/events/utils.ts +19 -0
  282. package/src/index.ts +29 -0
  283. package/src/inject.ts +103 -0
  284. package/src/types/api/btcGetAddress.ts +24 -0
  285. package/src/types/api/btcGetPublicKey.ts +19 -0
  286. package/src/types/api/btcSignMessage.ts +13 -0
  287. package/src/types/api/btcSignTransaction.ts +98 -0
  288. package/src/types/api/btcVerifyMessage.ts +14 -0
  289. package/src/types/api/checkBLEFirmwareRelease.ts +6 -0
  290. package/src/types/api/checkFirmwareRelease.ts +4 -0
  291. package/src/types/api/checkTransportRelease.ts +4 -0
  292. package/src/types/api/deviceBackup.ts +4 -0
  293. package/src/types/api/deviceChangePin.ts +11 -0
  294. package/src/types/api/deviceFlags.ts +11 -0
  295. package/src/types/api/deviceRebootToBootloader.ts +4 -0
  296. package/src/types/api/deviceRecovery.ts +19 -0
  297. package/src/types/api/deviceReset.ts +20 -0
  298. package/src/types/api/deviceSettings.ts +17 -0
  299. package/src/types/api/deviceUpdateReboot.ts +4 -0
  300. package/src/types/api/deviceWipe.ts +4 -0
  301. package/src/types/api/event.ts +8 -0
  302. package/src/types/api/evmGetAddress.ts +17 -0
  303. package/src/types/api/evmGetPublicKey.ts +17 -0
  304. package/src/types/api/evmSignMessage.ts +12 -0
  305. package/src/types/api/evmSignMessageEIP712.ts +13 -0
  306. package/src/types/api/evmSignTransaction.ts +43 -0
  307. package/src/types/api/evmSignTypedData.ts +40 -0
  308. package/src/types/api/evmVerifyMessage.ts +13 -0
  309. package/src/types/api/getFeatures.ts +4 -0
  310. package/src/types/api/index.ts +80 -0
  311. package/src/types/api/init.ts +3 -0
  312. package/src/types/api/searchDevices.ts +4 -0
  313. package/src/types/api/uiResponse.ts +3 -0
  314. package/src/types/device.ts +71 -0
  315. package/src/types/firmware.ts +40 -0
  316. package/src/types/global.d.ts +3 -0
  317. package/src/types/index.ts +5 -0
  318. package/src/types/params.ts +15 -0
  319. package/src/types/settings.ts +77 -0
  320. package/src/utils/assets.ts +5 -0
  321. package/src/utils/deferred.ts +35 -0
  322. package/src/utils/deviceFeaturesUtils.ts +49 -0
  323. package/src/utils/findDefectiveBatchDevice.ts +10 -0
  324. package/src/utils/index.ts +7 -0
  325. package/src/utils/logger.ts +113 -0
  326. package/src/utils/networkUtils.ts +18 -0
  327. package/src/utils/promiseUtils.ts +4 -0
  328. package/src/utils/versionUtils.ts +120 -0
  329. 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,5 @@
1
+ import { httpRequest as browserHttpRequest } from './networkUtils';
2
+
3
+ export const httpRequest = (url: string, _type: string): any => browserHttpRequest(url);
4
+
5
+ export const getTimeStamp = () => new Date().getTime();
@@ -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,7 @@
1
+ import { initLog, enableLog } from './logger';
2
+
3
+ export * from './assets';
4
+ export * from './versionUtils';
5
+ export * from './deferred';
6
+
7
+ export { initLog, enableLog };
@@ -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,4 @@
1
+ export const resolveAfter = (msec: number, value?: any) =>
2
+ new Promise<any>(resolve => {
3
+ setTimeout(resolve, msec, value);
4
+ });
@@ -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
+ };
package/tsconfig.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "../../tsconfig.lib.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ },
6
+ "include": ["./src"]
7
+ }