@onekeyfe/hd-core 1.2.0-alpha.51 → 1.2.0-alpha.53

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 (247) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +78 -0
  2. package/__tests__/DeviceCommands.test.ts +45 -0
  3. package/__tests__/DeviceEventRegistration.test.ts +6 -0
  4. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +198 -3
  5. package/__tests__/connectSettings.test.ts +5 -47
  6. package/__tests__/device-lifecycle-events.test.ts +105 -3
  7. package/__tests__/deviceUploadNft.test.ts +293 -0
  8. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +31 -59
  9. package/__tests__/get-device-state.test.ts +132 -12
  10. package/__tests__/homescreen.test.ts +41 -1
  11. package/__tests__/logBlockEvent.test.ts +1 -1
  12. package/__tests__/method-protocol-support.test.ts +19 -0
  13. package/__tests__/open-wallet-session.test.ts +446 -33
  14. package/__tests__/pro2Nft.test.ts +108 -0
  15. package/__tests__/protocol-binding.test.ts +89 -0
  16. package/__tests__/protocol-v2-resources.test.ts +284 -0
  17. package/__tests__/protocol-v2-ui-lifecycle.test.ts +91 -0
  18. package/__tests__/protocol-v2-unlock-policy.test.ts +201 -35
  19. package/__tests__/protocol-v2.test.ts +1349 -1005
  20. package/__tests__/protocolV2UiInteraction.test.ts +63 -0
  21. package/__tests__/public-pro2-api-boundary.test.ts +1 -0
  22. package/__tests__/search-devices.test.ts +12 -3
  23. package/__tests__/uiProgressThrottle.test.ts +74 -0
  24. package/__tests__/uiPromiseRegistry.test.ts +86 -0
  25. package/dist/api/BaseMethod.d.ts +3 -1
  26. package/dist/api/BaseMethod.d.ts.map +1 -1
  27. package/dist/api/CheckAllFirmwareRelease.d.ts +2 -1
  28. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  29. package/dist/api/DetectDeviceConnectProtocol.d.ts +7 -0
  30. package/dist/api/DetectDeviceConnectProtocol.d.ts.map +1 -0
  31. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  32. package/dist/api/FirmwareUpdateV2.d.ts +0 -11
  33. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  34. package/dist/api/FirmwareUpdateV3.d.ts +3 -7
  35. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  36. package/dist/api/FirmwareUpdateV4.d.ts +11 -25
  37. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  38. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  39. package/dist/api/OpenWalletSession.d.ts.map +1 -1
  40. package/dist/api/SearchDevices.d.ts.map +1 -1
  41. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  42. package/dist/api/device/DeviceUnlock.d.ts +2 -2
  43. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  44. package/dist/api/device/DeviceUpdateBootloader.d.ts +1 -5
  45. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  46. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +0 -9
  47. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  48. package/dist/api/firmware/getBinary.d.ts +0 -7
  49. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  50. package/dist/api/firmware/updateBootloader.d.ts +0 -2
  51. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  52. package/dist/api/firmware/uploadFirmware.d.ts +1 -9
  53. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  54. package/dist/api/helpers/protocolV2FileWrite.d.ts +2 -0
  55. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -1
  56. package/dist/api/index.d.ts +2 -0
  57. package/dist/api/index.d.ts.map +1 -1
  58. package/dist/api/protocol-v2/DeviceUploadNft.d.ts +31 -0
  59. package/dist/api/protocol-v2/DeviceUploadNft.d.ts.map +1 -0
  60. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  61. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  62. package/dist/api/stellar/StellarSignTransaction.d.ts +1 -1
  63. package/dist/core/deviceEventRegistration.d.ts +2 -0
  64. package/dist/core/deviceEventRegistration.d.ts.map +1 -1
  65. package/dist/core/index.d.ts.map +1 -1
  66. package/dist/core/uiPromiseRegistry.d.ts +4 -0
  67. package/dist/core/uiPromiseRegistry.d.ts.map +1 -0
  68. package/dist/data-manager/DataManager.d.ts +4 -2
  69. package/dist/data-manager/DataManager.d.ts.map +1 -1
  70. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  71. package/dist/device/Device.d.ts +29 -6
  72. package/dist/device/Device.d.ts.map +1 -1
  73. package/dist/device/DeviceCommands.d.ts +4 -4
  74. package/dist/device/DeviceCommands.d.ts.map +1 -1
  75. package/dist/device/DevicePool.d.ts.map +1 -1
  76. package/dist/events/device.d.ts +4 -0
  77. package/dist/events/device.d.ts.map +1 -1
  78. package/dist/events/logBlockEvent.d.ts.map +1 -1
  79. package/dist/events/ui-promise.d.ts +4 -2
  80. package/dist/events/ui-promise.d.ts.map +1 -1
  81. package/dist/events/ui-request.d.ts +31 -2
  82. package/dist/events/ui-request.d.ts.map +1 -1
  83. package/dist/events/ui-response.d.ts +10 -2
  84. package/dist/events/ui-response.d.ts.map +1 -1
  85. package/dist/index.d.ts +214 -231
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +2559 -3473
  88. package/dist/inject.d.ts +6 -1
  89. package/dist/inject.d.ts.map +1 -1
  90. package/dist/lowLevelInject.d.ts.map +1 -1
  91. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  92. package/dist/protocols/protocol-v2/resources.d.ts +30 -0
  93. package/dist/protocols/protocol-v2/resources.d.ts.map +1 -0
  94. package/dist/protocols/protocol-v2/uiInteraction.d.ts +7 -4
  95. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -1
  96. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +1 -3
  97. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -1
  98. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts +22 -0
  99. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts.map +1 -0
  100. package/dist/protocols/protocol-v2/walletSession.d.ts +5 -1
  101. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -1
  102. package/dist/topLevelInject.d.ts.map +1 -1
  103. package/dist/types/api/checkAllFirmwareRelease.d.ts +2 -4
  104. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  105. package/dist/types/api/detectDeviceConnectProtocol.d.ts +4 -0
  106. package/dist/types/api/detectDeviceConnectProtocol.d.ts.map +1 -0
  107. package/dist/types/api/deviceUnlock.d.ts +5 -1
  108. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  109. package/dist/types/api/deviceUpdateBootloader.d.ts +0 -6
  110. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  111. package/dist/types/api/export.d.ts +2 -4
  112. package/dist/types/api/export.d.ts.map +1 -1
  113. package/dist/types/api/firmwareUpdate.d.ts +2 -70
  114. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  115. package/dist/types/api/index.d.ts +7 -10
  116. package/dist/types/api/index.d.ts.map +1 -1
  117. package/dist/types/api/protocolV2.d.ts +3 -0
  118. package/dist/types/api/protocolV2.d.ts.map +1 -1
  119. package/dist/types/device.d.ts.map +1 -1
  120. package/dist/types/params.d.ts +1 -0
  121. package/dist/types/params.d.ts.map +1 -1
  122. package/dist/types/settings.d.ts +22 -13
  123. package/dist/types/settings.d.ts.map +1 -1
  124. package/dist/utils/deviceFeaturesUtils.d.ts +4 -0
  125. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  126. package/dist/utils/homescreen.d.ts +4 -0
  127. package/dist/utils/homescreen.d.ts.map +1 -1
  128. package/dist/utils/index.d.ts +1 -1
  129. package/dist/utils/index.d.ts.map +1 -1
  130. package/dist/utils/patch.d.ts +1 -1
  131. package/dist/utils/patch.d.ts.map +1 -1
  132. package/dist/utils/pro2Nft.d.ts +31 -0
  133. package/dist/utils/pro2Nft.d.ts.map +1 -0
  134. package/dist/utils/pro2Wallpaper.d.ts +10 -0
  135. package/dist/utils/pro2Wallpaper.d.ts.map +1 -1
  136. package/dist/utils/uiProgressThrottle.d.ts +3 -0
  137. package/dist/utils/uiProgressThrottle.d.ts.map +1 -0
  138. package/package.json +4 -4
  139. package/src/api/BaseMethod.ts +8 -10
  140. package/src/api/CheckAllFirmwareRelease.ts +54 -57
  141. package/src/api/DetectDeviceConnectProtocol.ts +18 -0
  142. package/src/api/FirmwareUpdate.ts +7 -15
  143. package/src/api/FirmwareUpdateV2.ts +126 -313
  144. package/src/api/FirmwareUpdateV3.ts +63 -265
  145. package/src/api/FirmwareUpdateV4.ts +566 -965
  146. package/src/api/GetPassphraseState.ts +7 -1
  147. package/src/api/OpenWalletSession.ts +54 -17
  148. package/src/api/SearchDevices.ts +3 -1
  149. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +32 -11
  150. package/src/api/device/DeviceUnlock.ts +8 -3
  151. package/src/api/device/DeviceUpdateBootloader.ts +6 -122
  152. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +16 -83
  153. package/src/api/firmware/updateBootloader.ts +4 -19
  154. package/src/api/firmware/uploadFirmware.ts +39 -144
  155. package/src/api/helpers/protocolV2FileWrite.ts +11 -4
  156. package/src/api/index.ts +2 -0
  157. package/src/api/protocol-v2/DeviceUploadNft.ts +189 -0
  158. package/src/api/protocol-v2/ProtocolInfoRequest.ts +3 -1
  159. package/src/api/protocol-v2/helpers.ts +1 -0
  160. package/src/core/deviceEventRegistration.ts +4 -0
  161. package/src/core/index.ts +167 -83
  162. package/src/core/uiPromiseRegistry.ts +41 -0
  163. package/src/data/messages/messages-protocol-v2.json +25 -0
  164. package/src/data-manager/DataManager.ts +67 -38
  165. package/src/data-manager/connectSettings.ts +0 -11
  166. package/src/device/Device.ts +258 -42
  167. package/src/device/DeviceCommands.ts +7 -1
  168. package/src/device/DevicePool.ts +7 -2
  169. package/src/events/device.ts +4 -0
  170. package/src/events/logBlockEvent.ts +1 -0
  171. package/src/events/ui-promise.ts +4 -2
  172. package/src/events/ui-request.ts +36 -2
  173. package/src/events/ui-response.ts +12 -2
  174. package/src/index.ts +0 -5
  175. package/src/inject.ts +60 -24
  176. package/src/lowLevelInject.ts +7 -8
  177. package/src/protocols/protocol-v2/features.ts +10 -3
  178. package/src/protocols/protocol-v2/resources.ts +359 -0
  179. package/src/protocols/protocol-v2/uiInteraction.ts +46 -6
  180. package/src/protocols/protocol-v2/unlockPolicy.ts +1 -105
  181. package/src/protocols/protocol-v2/unlockPolicyRunner.ts +118 -0
  182. package/src/protocols/protocol-v2/walletSession.ts +180 -30
  183. package/src/topLevelInject.ts +7 -8
  184. package/src/types/api/checkAllFirmwareRelease.ts +2 -4
  185. package/src/types/api/detectDeviceConnectProtocol.ts +7 -0
  186. package/src/types/api/deviceUnlock.ts +12 -1
  187. package/src/types/api/deviceUpdateBootloader.ts +0 -6
  188. package/src/types/api/export.ts +1 -18
  189. package/src/types/api/firmwareUpdate.ts +3 -76
  190. package/src/types/api/index.ts +13 -14
  191. package/src/types/api/protocolV2.ts +13 -0
  192. package/src/types/device.ts +3 -0
  193. package/src/types/params.ts +7 -1
  194. package/src/types/settings.ts +42 -13
  195. package/src/utils/deviceFeaturesUtils.ts +8 -0
  196. package/src/utils/homescreen.ts +32 -6
  197. package/src/utils/index.ts +6 -1
  198. package/src/utils/pro2Nft.ts +142 -0
  199. package/src/utils/pro2Wallpaper.ts +35 -8
  200. package/src/utils/uiProgressThrottle.ts +63 -0
  201. package/__tests__/device-initialize-timeout.test.ts +0 -56
  202. package/__tests__/firmware-update/check-all-firmware-release.test.ts +0 -175
  203. package/__tests__/firmware-update/firmware-artifact-source.test.ts +0 -119
  204. package/__tests__/firmware-update/firmware-host-binding.test.ts +0 -70
  205. package/__tests__/firmware-update/firmware-preparation-error.test.ts +0 -27
  206. package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +0 -200
  207. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +0 -13
  208. package/__tests__/firmware-update/firmware-update-plan.test.ts +0 -593
  209. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +0 -213
  210. package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +0 -58
  211. package/__tests__/firmware-update/firmware-upload-source.test.ts +0 -70
  212. package/dist/api/firmware/FirmwareArtifactSource.d.ts +0 -25
  213. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +0 -1
  214. package/dist/api/firmware/FirmwareHostBinding.d.ts +0 -6
  215. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +0 -1
  216. package/dist/api/firmware/FirmwarePreparationError.d.ts +0 -3
  217. package/dist/api/firmware/FirmwarePreparationError.d.ts.map +0 -1
  218. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +0 -3
  219. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +0 -1
  220. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +0 -25
  221. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +0 -1
  222. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +0 -30
  223. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +0 -1
  224. package/dist/api/firmware/progressThrottle.d.ts +0 -3
  225. package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
  226. package/dist/protocols/protocol-v2/lockedError.d.ts +0 -2
  227. package/dist/protocols/protocol-v2/lockedError.d.ts.map +0 -1
  228. package/dist/protocols/protocol-v2/unlockRetry.d.ts +0 -10
  229. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +0 -1
  230. package/dist/types/api/firmwareUpdateCapabilities.d.ts +0 -9
  231. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +0 -1
  232. package/dist/types/api/firmwareUpdatePlan.d.ts +0 -28
  233. package/dist/types/api/firmwareUpdatePlan.d.ts.map +0 -1
  234. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +0 -42
  235. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +0 -1
  236. package/src/api/firmware/FirmwareArtifactSource.ts +0 -278
  237. package/src/api/firmware/FirmwareHostBinding.ts +0 -100
  238. package/src/api/firmware/FirmwarePreparationError.ts +0 -12
  239. package/src/api/firmware/FirmwareUpdateCapabilities.ts +0 -9
  240. package/src/api/firmware/FirmwareUpdatePlan.ts +0 -745
  241. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +0 -392
  242. package/src/api/firmware/progressThrottle.ts +0 -44
  243. package/src/protocols/protocol-v2/lockedError.ts +0 -10
  244. package/src/protocols/protocol-v2/unlockRetry.ts +0 -109
  245. package/src/types/api/firmwareUpdateCapabilities.ts +0 -9
  246. package/src/types/api/firmwareUpdatePlan.ts +0 -38
  247. package/src/types/api/firmwareUpdatePreparedPlan.ts +0 -53
@@ -1,6 +1,6 @@
1
1
  import { EDeviceType } from '@onekeyfe/hd-shared';
2
2
 
3
- import { getHomeScreenSize } from '../src/utils/homescreen';
3
+ import { getHomeScreenSize, getNftSize } from '../src/utils/homescreen';
4
4
 
5
5
  describe('getHomeScreenSize', () => {
6
6
  it('returns the Pro 2 wallpaper dimensions', () => {
@@ -21,4 +21,44 @@ describe('getHomeScreenSize', () => {
21
21
  })
22
22
  ).toBeUndefined();
23
23
  });
24
+
25
+ it('does not reuse the wallpaper homeScreenType for Pro 2 NFT dimensions', () => {
26
+ expect(
27
+ getHomeScreenSize({
28
+ deviceType: EDeviceType.Pro2,
29
+ homeScreenType: 'Nft',
30
+ thumbnail: false,
31
+ })
32
+ ).toEqual({ width: 604, height: 1024 });
33
+ expect(
34
+ getHomeScreenSize({
35
+ deviceType: EDeviceType.Pro2,
36
+ homeScreenType: 'Nft',
37
+ thumbnail: true,
38
+ })
39
+ ).toBeUndefined();
40
+ });
41
+ });
42
+
43
+ describe('getNftSize', () => {
44
+ it('returns the Pro 2 NFT image and thumbnail dimensions independently', () => {
45
+ expect(getNftSize({ deviceType: EDeviceType.Pro2 })).toEqual({ width: 540, height: 540 });
46
+ expect(getNftSize({ deviceType: EDeviceType.Pro2, thumbnail: true })).toEqual({
47
+ width: 263,
48
+ height: 263,
49
+ });
50
+ });
51
+
52
+ it('preserves the legacy NFT dimensions', () => {
53
+ expect(getNftSize({ deviceType: EDeviceType.Touch })).toEqual({ width: 480, height: 800 });
54
+ expect(getNftSize({ deviceType: EDeviceType.Touch, thumbnail: true })).toEqual({
55
+ width: 238,
56
+ height: 238,
57
+ });
58
+ expect(getNftSize({ deviceType: EDeviceType.Pro, thumbnail: true })).toEqual({
59
+ width: 226,
60
+ height: 226,
61
+ radius: 40,
62
+ });
63
+ });
24
64
  });
@@ -104,7 +104,7 @@ describe('getLogBlockLabel', () => {
104
104
  });
105
105
  });
106
106
 
107
- it.each(['deviceUploadWallpaper', 'uploadPortfolio', 'fileWrite', 'fileRead'])(
107
+ it.each(['deviceUploadNft', 'deviceUploadWallpaper', 'uploadPortfolio', 'fileWrite', 'fileRead'])(
108
108
  'keeps metadata and replaces binary payloads with their size for %s',
109
109
  method => {
110
110
  const request = { method, path: 'resource.bin', data: new Uint8Array(1024) };
@@ -1,6 +1,7 @@
1
1
  import { EFirmwareType, HardwareErrorCode } from '@onekeyfe/hd-shared';
2
2
 
3
3
  import { BaseMethod } from '../src/api/BaseMethod';
4
+ import { findMethod } from '../src/api/utils';
4
5
  import BTCGetAddress from '../src/api/btc/BTCGetAddress';
5
6
  import DeviceReboot from '../src/api/protocol-v2/DeviceReboot';
6
7
  import SolGetAddress from '../src/api/solana/SolGetAddress';
@@ -20,6 +21,24 @@ class DefaultMethod extends BaseMethod {
20
21
  }
21
22
 
22
23
  describe('method protocol support', () => {
24
+ test('creates a protocol detection method that returns only the current protocol', async () => {
25
+ const method = findMethod({
26
+ id: 6,
27
+ payload: {
28
+ method: 'detectDeviceConnectProtocol',
29
+ connectId: 'ble-device',
30
+ },
31
+ } as never);
32
+
33
+ method.init();
34
+ (method as unknown as { device: unknown }).device = {
35
+ getProtocol: () => 'V2',
36
+ };
37
+
38
+ expect(method.getSupportedProtocols()).toEqual(['V1', 'V2']);
39
+ await expect(method.run()).resolves.toBe('V2');
40
+ });
41
+
23
42
  test('defaults existing methods to Protocol V1 only', () => {
24
43
  const method = new DefaultMethod({
25
44
  id: 1,