@onekeyfe/hd-core 1.2.0-alpha.4 → 1.2.0-alpha.41

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 (742) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +77 -0
  2. package/__tests__/DeviceCommands.test.ts +517 -0
  3. package/__tests__/DeviceEventRegistration.test.ts +43 -0
  4. package/__tests__/chain-params-onekey-compatibility.test.ts +229 -0
  5. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +282 -0
  6. package/__tests__/connectSettings.test.ts +61 -0
  7. package/__tests__/core-dispose.test.ts +34 -0
  8. package/__tests__/core-error-output.test.ts +39 -0
  9. package/__tests__/device-features-state.test.ts +78 -0
  10. package/__tests__/device-identity.test.ts +52 -0
  11. package/__tests__/device-lifecycle-events.test.ts +249 -0
  12. package/__tests__/device-pool-state.test.ts +144 -0
  13. package/__tests__/device-settings.test.ts +416 -0
  14. package/__tests__/device-state-contract.test.ts +27 -0
  15. package/__tests__/device-state-events.test.ts +286 -0
  16. package/__tests__/device-state-mapper.test.ts +261 -0
  17. package/__tests__/device-state-projector.test.ts +94 -0
  18. package/__tests__/device-state-store.test.ts +82 -0
  19. package/__tests__/device-utils.test.ts +107 -0
  20. package/__tests__/device-wallet-session-store.test.ts +478 -0
  21. package/__tests__/deviceFeaturesUtils.test.ts +39 -0
  22. package/__tests__/deviceSettings.test.ts +103 -0
  23. package/__tests__/evmLedgerLegacySafety.test.ts +12 -6
  24. package/__tests__/evmSignTransaction.test.ts +69 -0
  25. package/__tests__/evmSignTypedData.test.ts +80 -0
  26. package/__tests__/filesystemValidation.test.ts +53 -0
  27. package/__tests__/firmware-update/check-all-firmware-release.test.ts +175 -0
  28. package/__tests__/firmware-update/firmware-artifact-source.test.ts +119 -0
  29. package/__tests__/firmware-update/firmware-host-binding.test.ts +70 -0
  30. package/__tests__/firmware-update/firmware-preparation-error.test.ts +27 -0
  31. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +13 -0
  32. package/__tests__/firmware-update/firmware-update-plan.test.ts +593 -0
  33. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +213 -0
  34. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +430 -0
  35. package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +58 -0
  36. package/__tests__/firmware-update/firmware-upload-source.test.ts +70 -0
  37. package/__tests__/get-device-state.test.ts +458 -0
  38. package/__tests__/homescreen.test.ts +24 -0
  39. package/__tests__/kaspa-public-types.type-test.ts +16 -0
  40. package/__tests__/kaspa-use-tweak-pro2.test.ts +20 -0
  41. package/__tests__/kaspaSignTransaction.test.ts +601 -0
  42. package/__tests__/known-device-public-types.type-test.ts +3 -0
  43. package/__tests__/logBlockEvent.test.ts +128 -1
  44. package/__tests__/method-protocol-support.test.ts +113 -0
  45. package/__tests__/networkUtils.test.ts +406 -0
  46. package/__tests__/open-wallet-session-error-response.test.ts +43 -0
  47. package/__tests__/open-wallet-session.test.ts +1368 -0
  48. package/__tests__/pro2Wallpaper.test.ts +39 -0
  49. package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
  50. package/__tests__/protocol-v2-firmware-targets.test.ts +37 -0
  51. package/__tests__/protocol-v2-ping.test.ts +28 -0
  52. package/__tests__/protocol-v2-unlock-policy.test.ts +45 -0
  53. package/__tests__/protocol-v2.test.ts +6082 -2422
  54. package/__tests__/protocolV2FileWrite.test.ts +92 -0
  55. package/__tests__/protocolV2UiInteraction.test.ts +266 -0
  56. package/__tests__/public-device-state-api.test.ts +275 -0
  57. package/__tests__/public-pro2-api-boundary.test.ts +106 -0
  58. package/__tests__/refresh-device-state.test.ts +101 -0
  59. package/__tests__/request-context-logging.test.ts +16 -0
  60. package/__tests__/search-devices.test.ts +136 -0
  61. package/__tests__/tron-sign-message-init.test.ts +74 -0
  62. package/dist/api/BaseMethod.d.ts +14 -1
  63. package/dist/api/BaseMethod.d.ts.map +1 -1
  64. package/dist/api/CheckAllFirmwareRelease.d.ts +24 -1
  65. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  66. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  67. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  68. package/dist/api/CipherKeyValue.d.ts +1 -0
  69. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  70. package/dist/api/ClearSessionCache.d.ts +9 -0
  71. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  72. package/dist/api/DirList.d.ts +1 -0
  73. package/dist/api/DirList.d.ts.map +1 -1
  74. package/dist/api/DirMake.d.ts +1 -0
  75. package/dist/api/DirMake.d.ts.map +1 -1
  76. package/dist/api/DirRemove.d.ts +1 -0
  77. package/dist/api/DirRemove.d.ts.map +1 -1
  78. package/dist/api/FileDelete.d.ts +1 -0
  79. package/dist/api/FileDelete.d.ts.map +1 -1
  80. package/dist/api/FileRead.d.ts +1 -0
  81. package/dist/api/FileRead.d.ts.map +1 -1
  82. package/dist/api/FileWrite.d.ts +2 -0
  83. package/dist/api/FileWrite.d.ts.map +1 -1
  84. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  85. package/dist/api/FirmwareUpdateV2.d.ts +13 -2
  86. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  87. package/dist/api/FirmwareUpdateV3.d.ts +7 -3
  88. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  89. package/dist/api/FirmwareUpdateV4.d.ts +42 -16
  90. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  91. package/dist/api/GetDeviceState.d.ts +8 -0
  92. package/dist/api/GetDeviceState.d.ts.map +1 -0
  93. package/dist/api/GetFeatures.d.ts +1 -1
  94. package/dist/api/GetFeatures.d.ts.map +1 -1
  95. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  96. package/dist/api/GetPassphraseState.d.ts +2 -6
  97. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  98. package/dist/api/OpenWalletSession.d.ts +8 -0
  99. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  100. package/dist/api/PathInfo.d.ts +1 -0
  101. package/dist/api/PathInfo.d.ts.map +1 -1
  102. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  103. package/dist/api/SearchDevices.d.ts +3 -0
  104. package/dist/api/SearchDevices.d.ts.map +1 -1
  105. package/dist/api/UploadPortfolio.d.ts +17 -0
  106. package/dist/api/UploadPortfolio.d.ts.map +1 -0
  107. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  108. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  109. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  110. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  111. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  112. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  113. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  114. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  115. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  116. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  117. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  118. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  119. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  120. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  121. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  122. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  123. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  124. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  125. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  126. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  127. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  128. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  129. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  130. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  131. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  132. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  133. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  134. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  135. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  136. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  137. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  138. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  139. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  140. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  141. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  142. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  143. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  144. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  145. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  146. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  147. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  148. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  149. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  150. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  151. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  152. package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
  153. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  154. package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
  155. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  156. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
  157. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  158. package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
  159. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  160. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  161. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  162. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  163. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  164. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  165. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  166. package/dist/api/device/DeviceCancel.d.ts +1 -0
  167. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  168. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  169. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  170. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  171. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  172. package/dist/api/device/DeviceLock.d.ts +1 -0
  173. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  174. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  175. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  176. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  177. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  178. package/dist/api/device/DeviceSettings.d.ts +1 -0
  179. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  180. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  181. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  182. package/dist/api/device/DeviceUnlock.d.ts +1 -0
  183. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  184. package/dist/api/device/DeviceUpdateBootloader.d.ts +5 -1
  185. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  186. package/dist/api/device/DeviceWipe.d.ts +1 -0
  187. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  188. package/dist/api/device/PreInitialize.d.ts +1 -0
  189. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  190. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  191. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  192. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  193. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  194. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  195. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  196. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  197. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  198. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  199. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  200. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  201. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  202. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  203. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  204. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  205. package/dist/api/evm/protocol.d.ts +3 -0
  206. package/dist/api/evm/protocol.d.ts.map +1 -0
  207. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  208. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  209. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  210. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  211. package/dist/api/firmware/FirmwareArtifactSource.d.ts +25 -0
  212. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +1 -0
  213. package/dist/api/firmware/FirmwareHostBinding.d.ts +6 -0
  214. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -0
  215. package/dist/api/firmware/FirmwarePreparationError.d.ts +3 -0
  216. package/dist/api/firmware/FirmwarePreparationError.d.ts.map +1 -0
  217. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +8 -0
  218. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  219. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +3 -0
  220. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +1 -0
  221. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +25 -0
  222. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -0
  223. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +30 -0
  224. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -0
  225. package/dist/api/firmware/getBinary.d.ts +15 -4
  226. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  227. package/dist/api/firmware/progressThrottle.d.ts +3 -0
  228. package/dist/api/firmware/progressThrottle.d.ts.map +1 -0
  229. package/dist/api/firmware/updateBootloader.d.ts +2 -0
  230. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  231. package/dist/api/firmware/uploadFirmware.d.ts +9 -1
  232. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  233. package/dist/api/helpers/filesystemValidation.d.ts +3 -0
  234. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
  235. package/dist/api/helpers/paramsValidator.d.ts +1 -0
  236. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  237. package/dist/api/helpers/protocolV2FileWrite.d.ts +33 -0
  238. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
  239. package/dist/api/index.d.ts +7 -25
  240. package/dist/api/index.d.ts.map +1 -1
  241. package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
  242. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  243. package/dist/api/kaspa/KaspaSignTransaction.d.ts +9 -1
  244. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  245. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  246. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  247. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  248. package/dist/api/near/NearGetAddress.d.ts +1 -0
  249. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  250. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  251. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  252. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  253. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  254. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  255. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  256. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  257. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  258. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  259. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  260. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  261. package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
  262. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  263. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  264. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  265. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  266. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  267. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  268. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  269. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  270. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  271. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  272. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  273. package/dist/api/polkadot/PolkadotGetAddress.d.ts +1 -0
  274. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  275. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  276. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  277. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  278. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  279. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  280. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  281. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -0
  282. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  283. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +4 -2
  284. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  285. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +7 -0
  286. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
  287. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +1 -1
  288. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  289. package/dist/api/protocol-v2/DeviceReboot.d.ts +1 -0
  290. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  291. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +7 -0
  292. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  293. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +27 -0
  294. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
  295. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  296. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  297. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  298. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  299. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  300. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  301. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  302. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  303. package/dist/api/protocol-v2/helpers.d.ts +4 -1
  304. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  305. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  306. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  307. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  308. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  309. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  310. package/dist/api/solana/SolSignMessage.d.ts +1 -0
  311. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  312. package/dist/api/solana/SolSignOffchainMessage.d.ts +1 -0
  313. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  314. package/dist/api/solana/SolSignTransaction.d.ts +1 -0
  315. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  316. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  317. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  318. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  319. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  320. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  321. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  322. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  323. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  324. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  325. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  326. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  327. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  328. package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
  329. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  330. package/dist/api/sui/SuiGetAddress.d.ts +1 -0
  331. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  332. package/dist/api/sui/SuiGetPublicKey.d.ts +1 -0
  333. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  334. package/dist/api/sui/SuiSignMessage.d.ts +1 -0
  335. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  336. package/dist/api/sui/SuiSignTransaction.d.ts +1 -0
  337. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  338. package/dist/api/ton/TonGetAddress.d.ts +1 -0
  339. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  340. package/dist/api/ton/TonSignData.d.ts +1 -0
  341. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  342. package/dist/api/ton/TonSignMessage.d.ts +1 -0
  343. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  344. package/dist/api/ton/TonSignProof.d.ts +1 -0
  345. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  346. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  347. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  348. package/dist/api/tron/TronSignMessage.d.ts +5 -0
  349. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  350. package/dist/api/tron/TronSignTransaction.d.ts +1 -0
  351. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  352. package/dist/api/utils.d.ts +2 -1
  353. package/dist/api/utils.d.ts.map +1 -1
  354. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  355. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  356. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  357. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  358. package/dist/constants/index.d.ts +1 -1
  359. package/dist/constants/index.d.ts.map +1 -1
  360. package/dist/core/RequestQueue.d.ts.map +1 -1
  361. package/dist/core/deviceEventRegistration.d.ts +11 -0
  362. package/dist/core/deviceEventRegistration.d.ts.map +1 -0
  363. package/dist/core/index.d.ts +3 -1
  364. package/dist/core/index.d.ts.map +1 -1
  365. package/dist/data-manager/DataManager.d.ts +1 -0
  366. package/dist/data-manager/DataManager.d.ts.map +1 -1
  367. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  368. package/dist/device/Device.d.ts +44 -14
  369. package/dist/device/Device.d.ts.map +1 -1
  370. package/dist/device/DeviceCommands.d.ts +8 -6
  371. package/dist/device/DeviceCommands.d.ts.map +1 -1
  372. package/dist/device/DeviceConnector.d.ts +1 -1
  373. package/dist/device/DeviceConnector.d.ts.map +1 -1
  374. package/dist/device/DeviceFeaturesState.d.ts +3 -0
  375. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  376. package/dist/device/DevicePool.d.ts +5 -2
  377. package/dist/device/DevicePool.d.ts.map +1 -1
  378. package/dist/device/DeviceStateMapper.d.ts +13 -0
  379. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  380. package/dist/device/DeviceStateProjector.d.ts +7 -0
  381. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  382. package/dist/device/DeviceStateStore.d.ts +21 -0
  383. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  384. package/dist/device/DeviceWalletSessionStore.d.ts +27 -0
  385. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  386. package/dist/device/cloneDeviceState.d.ts +2 -0
  387. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  388. package/dist/device/deviceIdentity.d.ts +5 -0
  389. package/dist/device/deviceIdentity.d.ts.map +1 -0
  390. package/dist/deviceProfile/buildDeviceFeatures.d.ts +9 -3
  391. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  392. package/dist/deviceProfile/index.d.ts +0 -1
  393. package/dist/deviceProfile/index.d.ts.map +1 -1
  394. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
  395. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
  396. package/dist/events/device.d.ts +12 -2
  397. package/dist/events/device.d.ts.map +1 -1
  398. package/dist/events/logBlockEvent.d.ts +2 -0
  399. package/dist/events/logBlockEvent.d.ts.map +1 -1
  400. package/dist/events/ui-request.d.ts +19 -2
  401. package/dist/events/ui-request.d.ts.map +1 -1
  402. package/dist/index.d.ts +1559 -736
  403. package/dist/index.d.ts.map +1 -1
  404. package/dist/index.js +9238 -3898
  405. package/dist/inject.d.ts.map +1 -1
  406. package/dist/lowLevelInject.d.ts.map +1 -1
  407. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  408. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  409. package/dist/protocols/protocol-v2/features.d.ts +25 -17
  410. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  411. package/dist/protocols/protocol-v2/firmware.d.ts +1 -0
  412. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
  413. package/dist/protocols/protocol-v2/index.d.ts +3 -2
  414. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  415. package/dist/protocols/protocol-v2/lockedError.d.ts +2 -0
  416. package/dist/protocols/protocol-v2/lockedError.d.ts.map +1 -0
  417. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
  418. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  419. package/dist/protocols/protocol-v2/uiInteraction.d.ts +39 -0
  420. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
  421. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +4 -0
  422. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
  423. package/dist/protocols/protocol-v2/unlockRetry.d.ts +10 -0
  424. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +1 -0
  425. package/dist/protocols/protocol-v2/walletSession.d.ts +22 -0
  426. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  427. package/dist/topLevelInject.d.ts.map +1 -1
  428. package/dist/types/api/checkAllFirmwareRelease.d.ts +29 -4
  429. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  430. package/dist/types/api/deviceSettings.d.ts +11 -2
  431. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  432. package/dist/types/api/deviceUnlock.d.ts +1 -1
  433. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  434. package/dist/types/api/deviceUpdateBootloader.d.ts +6 -0
  435. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  436. package/dist/types/api/export.d.ts +6 -2
  437. package/dist/types/api/export.d.ts.map +1 -1
  438. package/dist/types/api/firmwareUpdate.d.ts +75 -1
  439. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  440. package/dist/types/api/firmwareUpdateCapabilities.d.ts +9 -0
  441. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +1 -0
  442. package/dist/types/api/firmwareUpdatePlan.d.ts +28 -0
  443. package/dist/types/api/firmwareUpdatePlan.d.ts.map +1 -0
  444. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +42 -0
  445. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +1 -0
  446. package/dist/types/api/getDeviceState.d.ts +12 -0
  447. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  448. package/dist/types/api/getFeatures.d.ts.map +1 -1
  449. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  450. package/dist/types/api/getPassphraseState.d.ts +2 -10
  451. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  452. package/dist/types/api/index.d.ts +27 -31
  453. package/dist/types/api/index.d.ts.map +1 -1
  454. package/dist/types/api/kaspaSignTransaction.d.ts +42 -4
  455. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  456. package/dist/types/api/openWalletSession.d.ts +35 -0
  457. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  458. package/dist/types/api/protocolV2.d.ts +15 -84
  459. package/dist/types/api/protocolV2.d.ts.map +1 -1
  460. package/dist/types/api/sessionCache.d.ts +13 -0
  461. package/dist/types/api/sessionCache.d.ts.map +1 -0
  462. package/dist/types/device.d.ts +132 -8
  463. package/dist/types/device.d.ts.map +1 -1
  464. package/dist/types/params.d.ts.map +1 -1
  465. package/dist/types/settings.d.ts +20 -14
  466. package/dist/types/settings.d.ts.map +1 -1
  467. package/dist/utils/assets.d.ts +2 -1
  468. package/dist/utils/assets.d.ts.map +1 -1
  469. package/dist/utils/deviceFeaturesCompat.d.ts +13 -0
  470. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  471. package/dist/utils/deviceFeaturesUtils.d.ts +6 -3
  472. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  473. package/dist/utils/deviceInfoUtils.d.ts +9 -9
  474. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  475. package/dist/utils/deviceSettings.d.ts +38 -7
  476. package/dist/utils/deviceSettings.d.ts.map +1 -1
  477. package/dist/utils/deviceVersionUtils.d.ts +7 -5
  478. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  479. package/dist/utils/homescreen.d.ts.map +1 -1
  480. package/dist/utils/index.d.ts +5 -2
  481. package/dist/utils/index.d.ts.map +1 -1
  482. package/dist/utils/networkUtils.d.ts +10 -1
  483. package/dist/utils/networkUtils.d.ts.map +1 -1
  484. package/dist/utils/patch.d.ts +1 -1
  485. package/dist/utils/patch.d.ts.map +1 -1
  486. package/dist/utils/pro2Wallpaper.d.ts +12 -0
  487. package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
  488. package/dist/utils/tracing.d.ts.map +1 -1
  489. package/package.json +4 -4
  490. package/src/api/BaseMethod.ts +52 -17
  491. package/src/api/CheckAllFirmwareRelease.ts +344 -4
  492. package/src/api/CheckBootloaderRelease.ts +1 -2
  493. package/src/api/CheckFirmwareRelease.ts +1 -2
  494. package/src/api/CipherKeyValue.ts +4 -0
  495. package/src/api/ClearSessionCache.ts +32 -0
  496. package/src/api/DirList.ts +9 -4
  497. package/src/api/DirMake.ts +7 -4
  498. package/src/api/DirRemove.ts +7 -4
  499. package/src/api/FileDelete.ts +7 -4
  500. package/src/api/FileRead.ts +15 -9
  501. package/src/api/FileWrite.ts +26 -181
  502. package/src/api/FirmwareUpdate.ts +11 -12
  503. package/src/api/FirmwareUpdateV2.ts +370 -112
  504. package/src/api/FirmwareUpdateV3.ts +266 -68
  505. package/src/api/FirmwareUpdateV4.ts +1276 -651
  506. package/src/api/GetDeviceState.ts +59 -0
  507. package/src/api/GetFeatures.ts +6 -4
  508. package/src/api/GetOnekeyFeatures.ts +1 -75
  509. package/src/api/GetPassphraseState.ts +30 -21
  510. package/src/api/OpenWalletSession.ts +214 -0
  511. package/src/api/PathInfo.ts +9 -4
  512. package/src/api/PromptWebDeviceAccess.ts +2 -7
  513. package/src/api/SearchDevices.ts +29 -4
  514. package/src/api/UploadPortfolio.ts +40 -0
  515. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  516. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  517. package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
  518. package/src/api/algo/AlgoGetAddress.ts +4 -0
  519. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  520. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +9 -21
  521. package/src/api/aptos/AptosGetAddress.ts +4 -0
  522. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  523. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  524. package/src/api/aptos/AptosSignMessage.ts +4 -0
  525. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  526. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  527. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  528. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  529. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  530. package/src/api/btc/BTCGetAddress.ts +8 -1
  531. package/src/api/btc/BTCGetPublicKey.ts +9 -2
  532. package/src/api/btc/BTCSignMessage.ts +8 -1
  533. package/src/api/btc/BTCSignPsbt.ts +4 -0
  534. package/src/api/btc/BTCSignTransaction.ts +8 -1
  535. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  536. package/src/api/btc/helpers/versionLimit.ts +7 -4
  537. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  538. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  539. package/src/api/cardano/CardanoSignMessage.ts +5 -1
  540. package/src/api/cardano/CardanoSignTransaction.ts +5 -1
  541. package/src/api/conflux/ConfluxGetAddress.ts +6 -0
  542. package/src/api/conflux/ConfluxSignMessage.ts +6 -0
  543. package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
  544. package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
  545. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  546. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  547. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  548. package/src/api/device/DeviceCancel.ts +5 -0
  549. package/src/api/device/DeviceChangePin.ts +28 -0
  550. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  551. package/src/api/device/DeviceLock.ts +5 -0
  552. package/src/api/device/DeviceRebootToBoardloader.ts +5 -0
  553. package/src/api/device/DeviceRebootToBootloader.ts +5 -0
  554. package/src/api/device/DeviceSettings.ts +194 -1
  555. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  556. package/src/api/device/DeviceUnlock.ts +13 -0
  557. package/src/api/device/DeviceUpdateBootloader.ts +123 -8
  558. package/src/api/device/DeviceWipe.ts +25 -0
  559. package/src/api/device/PreInitialize.ts +4 -0
  560. package/src/api/dynex/DnxGetAddress.ts +0 -6
  561. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  562. package/src/api/evm/EVMGetAddress.ts +6 -2
  563. package/src/api/evm/EVMGetPublicKey.ts +6 -2
  564. package/src/api/evm/EVMSignMessage.ts +6 -2
  565. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  566. package/src/api/evm/EVMSignTransaction.ts +6 -2
  567. package/src/api/evm/EVMSignTypedData.ts +42 -50
  568. package/src/api/evm/EVMVerifyMessage.ts +6 -2
  569. package/src/api/evm/legacyV1/getAddress.ts +2 -2
  570. package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
  571. package/src/api/evm/legacyV1/signMessage.ts +2 -2
  572. package/src/api/evm/legacyV1/signTypedData.ts +2 -2
  573. package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
  574. package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
  575. package/src/api/evm/protocol.ts +6 -0
  576. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  577. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  578. package/src/api/firmware/FirmwareArtifactSource.ts +278 -0
  579. package/src/api/firmware/FirmwareHostBinding.ts +100 -0
  580. package/src/api/firmware/FirmwarePreparationError.ts +12 -0
  581. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +60 -3
  582. package/src/api/firmware/FirmwareUpdateCapabilities.ts +9 -0
  583. package/src/api/firmware/FirmwareUpdatePlan.ts +745 -0
  584. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +392 -0
  585. package/src/api/firmware/getBinary.ts +8 -3
  586. package/src/api/firmware/progressThrottle.ts +44 -0
  587. package/src/api/firmware/updateBootloader.ts +19 -4
  588. package/src/api/firmware/uploadFirmware.ts +140 -22
  589. package/src/api/helpers/batchGetPublickeys.ts +2 -2
  590. package/src/api/helpers/filesystemValidation.ts +61 -0
  591. package/src/api/helpers/paramsValidator.ts +1 -1
  592. package/src/api/helpers/protocolV2FileWrite.ts +199 -0
  593. package/src/api/index.ts +8 -26
  594. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  595. package/src/api/kaspa/KaspaSignTransaction.ts +380 -29
  596. package/src/api/kaspa/helpers/TransferSerialize.ts +17 -7
  597. package/src/api/lightning/LnurlAuth.ts +0 -4
  598. package/src/api/near/NearGetAddress.ts +4 -0
  599. package/src/api/near/NearSignTransaction.ts +4 -0
  600. package/src/api/nem/NEMGetAddress.ts +4 -0
  601. package/src/api/nem/NEMSignTransaction.ts +4 -0
  602. package/src/api/neo/NeoGetAddress.ts +0 -4
  603. package/src/api/neo/NeoSignTransaction.ts +0 -4
  604. package/src/api/nervos/NervosGetAddress.ts +0 -4
  605. package/src/api/nervos/NervosSignTransaction.ts +2 -6
  606. package/src/api/nexa/NexaGetAddress.ts +0 -4
  607. package/src/api/nexa/NexaSignTransaction.ts +3 -5
  608. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  609. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  610. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  611. package/src/api/nostr/NostrSignEvent.ts +4 -0
  612. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  613. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  614. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  615. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
  616. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +5 -2
  617. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +8 -5
  618. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +43 -5
  619. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +21 -0
  620. package/src/api/protocol-v2/DeviceInfoGet.ts +8 -15
  621. package/src/api/protocol-v2/DeviceReboot.ts +7 -3
  622. package/src/api/protocol-v2/DeviceStatusGet.ts +19 -0
  623. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +134 -0
  624. package/src/api/protocol-v2/FilesystemFormat.ts +9 -3
  625. package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
  626. package/src/api/protocol-v2/Ping.ts +37 -3
  627. package/src/api/protocol-v2/ProtocolInfoRequest.ts +5 -2
  628. package/src/api/protocol-v2/helpers.ts +21 -16
  629. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  630. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  631. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  632. package/src/api/solana/SolGetAddress.ts +4 -0
  633. package/src/api/solana/SolSignMessage.ts +4 -0
  634. package/src/api/solana/SolSignOffchainMessage.ts +4 -0
  635. package/src/api/solana/SolSignTransaction.ts +4 -0
  636. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  637. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  638. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  639. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  640. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  641. package/src/api/stellar/StellarGetAddress.ts +1 -10
  642. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  643. package/src/api/sui/SuiGetAddress.ts +4 -0
  644. package/src/api/sui/SuiGetPublicKey.ts +4 -0
  645. package/src/api/sui/SuiSignMessage.ts +4 -0
  646. package/src/api/sui/SuiSignTransaction.ts +4 -0
  647. package/src/api/ton/TonGetAddress.ts +4 -0
  648. package/src/api/ton/TonSignData.ts +5 -1
  649. package/src/api/ton/TonSignMessage.ts +4 -0
  650. package/src/api/ton/TonSignProof.ts +4 -0
  651. package/src/api/tron/TronGetAddress.ts +4 -0
  652. package/src/api/tron/TronSignMessage.ts +18 -7
  653. package/src/api/tron/TronSignTransaction.ts +4 -0
  654. package/src/api/utils.ts +7 -3
  655. package/src/api/xrp/XrpGetAddress.ts +4 -0
  656. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  657. package/src/constants/index.ts +1 -4
  658. package/src/core/RequestQueue.ts +1 -0
  659. package/src/core/deviceEventRegistration.ts +23 -0
  660. package/src/core/index.ts +164 -53
  661. package/src/data/messages/messages-protocol-v2.json +1155 -481
  662. package/src/data/messages/messages.json +286 -1
  663. package/src/data-manager/DataManager.ts +39 -39
  664. package/src/data-manager/TransportManager.ts +1 -1
  665. package/src/data-manager/connectSettings.ts +15 -0
  666. package/src/device/Device.ts +647 -281
  667. package/src/device/DeviceCommands.ts +166 -158
  668. package/src/device/DeviceConnector.ts +10 -7
  669. package/src/device/DeviceFeaturesState.ts +25 -0
  670. package/src/device/DevicePool.ts +66 -16
  671. package/src/device/DeviceStateMapper.ts +374 -0
  672. package/src/device/DeviceStateProjector.ts +94 -0
  673. package/src/device/DeviceStateStore.ts +201 -0
  674. package/src/device/DeviceWalletSessionStore.ts +144 -0
  675. package/src/device/cloneDeviceState.ts +39 -0
  676. package/src/device/deviceIdentity.ts +18 -0
  677. package/src/deviceProfile/buildDeviceFeatures.ts +224 -190
  678. package/src/deviceProfile/index.ts +0 -1
  679. package/src/deviceProfile/protocolV2DeviceIdentity.ts +32 -0
  680. package/src/events/device.ts +18 -1
  681. package/src/events/logBlockEvent.ts +79 -2
  682. package/src/events/ui-request.ts +25 -2
  683. package/src/index.ts +5 -0
  684. package/src/inject.ts +37 -43
  685. package/src/lowLevelInject.ts +5 -1
  686. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  687. package/src/protocols/protocol-v2/features.ts +96 -32
  688. package/src/protocols/protocol-v2/firmware.ts +2 -1
  689. package/src/protocols/protocol-v2/index.ts +8 -1
  690. package/src/protocols/protocol-v2/lockedError.ts +10 -0
  691. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  692. package/src/protocols/protocol-v2/uiInteraction.ts +210 -0
  693. package/src/protocols/protocol-v2/unlockPolicy.ts +105 -0
  694. package/src/protocols/protocol-v2/unlockRetry.ts +109 -0
  695. package/src/protocols/protocol-v2/walletSession.ts +285 -0
  696. package/src/topLevelInject.ts +5 -1
  697. package/src/types/api/checkAllFirmwareRelease.ts +50 -4
  698. package/src/types/api/deviceSettings.ts +26 -2
  699. package/src/types/api/deviceUnlock.ts +1 -1
  700. package/src/types/api/deviceUpdateBootloader.ts +6 -0
  701. package/src/types/api/export.ts +26 -0
  702. package/src/types/api/firmwareUpdate.ts +99 -5
  703. package/src/types/api/firmwareUpdateCapabilities.ts +9 -0
  704. package/src/types/api/firmwareUpdatePlan.ts +38 -0
  705. package/src/types/api/firmwareUpdatePreparedPlan.ts +53 -0
  706. package/src/types/api/getDeviceState.ts +19 -0
  707. package/src/types/api/getFeatures.ts +3 -0
  708. package/src/types/api/getOnekeyFeatures.ts +3 -0
  709. package/src/types/api/getPassphraseState.ts +9 -11
  710. package/src/types/api/index.ts +39 -64
  711. package/src/types/api/kaspaSignTransaction.ts +60 -4
  712. package/src/types/api/openWalletSession.ts +54 -0
  713. package/src/types/api/protocolV2.ts +24 -143
  714. package/src/types/api/sessionCache.ts +19 -0
  715. package/src/types/device.ts +185 -7
  716. package/src/types/params.ts +3 -2
  717. package/src/types/settings.ts +30 -16
  718. package/src/utils/assets.ts +4 -1
  719. package/src/utils/deviceFeaturesCompat.ts +180 -0
  720. package/src/utils/deviceFeaturesUtils.ts +52 -45
  721. package/src/utils/deviceInfoUtils.ts +27 -69
  722. package/src/utils/deviceSettings.ts +171 -39
  723. package/src/utils/deviceVersionUtils.ts +25 -44
  724. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  725. package/src/utils/homescreen.ts +10 -0
  726. package/src/utils/index.ts +21 -2
  727. package/src/utils/networkUtils.ts +274 -16
  728. package/src/utils/pro2Wallpaper.ts +103 -0
  729. package/src/utils/tracing.ts +3 -1
  730. package/tsconfig.type-tests.json +12 -0
  731. package/dist/api/GetDeviceInfo.d.ts +0 -9
  732. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  733. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +0 -13
  734. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +0 -1
  735. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
  736. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  737. package/dist/types/api/getDeviceInfo.d.ts +0 -87
  738. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  739. package/src/api/GetDeviceInfo.ts +0 -145
  740. package/src/api/protocol-v2/FilesystemDiskControl.ts +0 -50
  741. package/src/deviceProfile/buildDeviceProfile.ts +0 -352
  742. package/src/types/api/getDeviceInfo.ts +0 -101
@@ -1,8 +1,14 @@
1
- import { EDeviceType, type EFirmwareType } from '@onekeyfe/hd-shared';
1
+ import { EDeviceType, type EFirmwareType, type HardwareConnectProtocol } from '@onekeyfe/hd-shared';
2
2
 
3
3
  import type { IVersionArray } from './settings';
4
4
  import type { PROTO } from '../constants';
5
- import type { OneKeyDeviceCommType, ProtocolV2DeviceInfo } from '@onekeyfe/hd-transport';
5
+ import type {
6
+ Enum_SafetyCheckLevel,
7
+ OneKeyDeviceCommType,
8
+ ProtocolV2DeviceInfo,
9
+ DeviceStatus as ProtocolV2DeviceStatus,
10
+ ProtocolInfo as ProtocolV2ProtocolInfo,
11
+ } from '@onekeyfe/hd-transport';
6
12
 
7
13
  export type DeviceStatus = 'available' | 'occupied' | 'used';
8
14
 
@@ -23,6 +29,14 @@ export type UnavailableCapabilities = { [key: string]: UnavailableCapability };
23
29
 
24
30
  export type KnownDevice = {
25
31
  connectId: string | null;
32
+ /** Protocol family confirmed by the transport's active probe. */
33
+ connectProtocol?: HardwareConnectProtocol;
34
+ /**
35
+ * Stable physical-device identity. Current SDK responses always include this
36
+ * value; it remains optional in the type during the uuid compatibility window.
37
+ */
38
+ serialNo?: string;
39
+ /** @deprecated Use serialNo instead. */
26
40
  uuid: string;
27
41
  deviceId: string | null;
28
42
  deviceType: IDeviceType | null;
@@ -32,9 +46,12 @@ export type KnownDevice = {
32
46
  bleName: string | null;
33
47
  name: string;
34
48
  error?: typeof undefined;
49
+ /** Current SDK/transport usage state for connection indicators. */
50
+ status?: DeviceStatus;
35
51
  mode: EOneKeyDeviceMode;
36
- features?: Features;
37
- sessionId?: string | null;
52
+ features: Features;
53
+ /** Unified SDK device-state snapshot; features remains a legacy projection. */
54
+ state?: DeviceState;
38
55
  unavailableCapabilities: UnavailableCapabilities;
39
56
  bleFirmwareVersion: IVersionArray | null;
40
57
  firmwareVersion: IVersionArray | null;
@@ -47,6 +64,19 @@ export type KnownDevice = {
47
64
 
48
65
  export type SearchDevice = {
49
66
  connectId: string | null;
67
+ /** Protocol family confirmed by the transport's active probe. */
68
+ connectProtocol?: HardwareConnectProtocol;
69
+ /**
70
+ * Available after device initialization. BLE discovery does not connect to the
71
+ * device, so it returns null until a later initialized device response. Current
72
+ * SDK responses always include the field; it remains optional in the type during
73
+ * the uuid compatibility window.
74
+ */
75
+ serialNo?: string | null;
76
+ /**
77
+ * @deprecated Ambiguous legacy identifier. Use serialNo for hardware identity
78
+ * and connectId for transport routing.
79
+ */
50
80
  uuid: string;
51
81
  deviceId: string | null;
52
82
  deviceType: IDeviceType;
@@ -91,6 +121,7 @@ export type DeviceFeaturesProtocol = 'V1' | 'V2' | 'unknown';
91
121
  export type DeviceFeaturesMode =
92
122
  | 'normal'
93
123
  | 'bootloader'
124
+ | 'romloader'
94
125
  | 'notInitialized'
95
126
  | 'backupMode'
96
127
  | 'unknown';
@@ -98,6 +129,10 @@ export type DeviceFeaturesMode =
98
129
  export type DeviceFeaturesVerify = {
99
130
  firmwareBuildId?: string;
100
131
  firmwareHash?: string;
132
+ applicationP1BuildId?: string;
133
+ applicationP1Hash?: string;
134
+ applicationP2BuildId?: string;
135
+ applicationP2Hash?: string;
101
136
  bootloaderBuildId?: string;
102
137
  bootloaderHash?: string;
103
138
  boardBuildId?: string;
@@ -125,10 +160,139 @@ export type DeviceFeaturesVerify = {
125
160
  export type DeviceFeaturesRaw = {
126
161
  protocolV1Features?: PROTO.Features;
127
162
  protocolV1OneKeyFeatures?: OnekeyFeatures;
163
+ protocolV2ProtocolInfo?: ProtocolV2ProtocolInfo;
128
164
  protocolV2DeviceInfo?: ProtocolV2DeviceInfo;
165
+ protocolV2DeviceStatus?: ProtocolV2DeviceStatus;
129
166
  };
130
167
 
131
- export type Features = {
168
+ export type DeviceFeaturesRawPatch = {
169
+ [Key in keyof DeviceFeaturesRaw]?: DeviceFeaturesRaw[Key] | null;
170
+ };
171
+
172
+ export type DeviceStateProtocol = DeviceFeaturesProtocol;
173
+ export type DeviceStateMode = DeviceFeaturesMode;
174
+ export type DeviceStateSection = 'identity' | 'status' | 'settings' | 'versions' | 'verification';
175
+
176
+ export type DeviceStateUpdateSource =
177
+ | 'initialize'
178
+ | 'device-info'
179
+ | 'device-status'
180
+ | 'settings-read'
181
+ | 'settings-write'
182
+ | 'change-pin'
183
+ | 'lock'
184
+ | 'unlock'
185
+ | 'passphrase'
186
+ | 'session-clear'
187
+ | 'firmware-update'
188
+ | 'transport-reconnect'
189
+ | 'compatibility';
190
+
191
+ export type DeviceStateIdentity = {
192
+ deviceType: IDeviceType;
193
+ firmwareType: EFirmwareType;
194
+ model: string | null;
195
+ vendor: string | null;
196
+ deviceId: string | null;
197
+ serialNo: string;
198
+ label: string | null;
199
+ bleName: string | null;
200
+ };
201
+
202
+ export type DeviceStateStatus = {
203
+ mode: DeviceStateMode;
204
+ initialized: boolean | null;
205
+ unlocked: boolean | null;
206
+ firmwarePresent: boolean | null;
207
+ backupRequired: boolean | null;
208
+ noBackup: boolean | null;
209
+ unfinishedBackup: boolean | null;
210
+ recoveryMode: boolean | null;
211
+ passphraseProtection: boolean | null;
212
+ pinProtection: boolean | null;
213
+ attachToPinEnabled: boolean | null;
214
+ unlockedAttachPin: boolean | null;
215
+ };
216
+
217
+ export type DeviceStateSettings = {
218
+ language: string | null;
219
+ bleEnabled: boolean | null;
220
+ sdCardPresent: boolean | null;
221
+ sdProtection: boolean | null;
222
+ wipeCodeProtection: boolean | null;
223
+ passphraseAlwaysOnDevice: boolean | null;
224
+ safetyChecks: Enum_SafetyCheckLevel | null;
225
+ autoLockDelayMs: number | null;
226
+ autoShutdownDelayMs: number | null;
227
+ displayRotation: number | null;
228
+ experimentalFeatures: boolean | null;
229
+ wallpaperPath: string | null;
230
+ brightness: number | null;
231
+ animationEnabled: boolean | null;
232
+ tapToWake: boolean | null;
233
+ hapticFeedback: boolean | null;
234
+ deviceNameDisplayEnabled: boolean | null;
235
+ airgapMode: boolean | null;
236
+ fidoEnabled: boolean | null;
237
+ usbLockEnabled: boolean | null;
238
+ randomKeypad: boolean | null;
239
+ };
240
+
241
+ export type DeviceStateVersions = {
242
+ firmware: string | null;
243
+ applicationP1?: string | null;
244
+ applicationP2?: string | null;
245
+ bootloader: string | null;
246
+ board: string | null;
247
+ ble: string | null;
248
+ /** @deprecated Kept for legacy consumers; new code should read se01. */
249
+ se?: string | null;
250
+ se01?: string | null;
251
+ se02?: string | null;
252
+ se03?: string | null;
253
+ se04?: string | null;
254
+ se01Boot?: string | null;
255
+ se02Boot?: string | null;
256
+ se03Boot?: string | null;
257
+ se04Boot?: string | null;
258
+ };
259
+
260
+ export type DeviceState = {
261
+ schemaVersion: 1;
262
+ revision: number;
263
+ updatedAt: number;
264
+ protocol: DeviceStateProtocol;
265
+ /** Device-message protocol version, independent of the SDK V1/V2 protocol family. */
266
+ protocolVersion: number | null;
267
+ identity: DeviceStateIdentity;
268
+ status: DeviceStateStatus;
269
+ settings: DeviceStateSettings;
270
+ versions: DeviceStateVersions;
271
+ capabilities: Array<number | string>;
272
+ verification?: Partial<DeviceFeaturesVerify>;
273
+ };
274
+
275
+ export type DeviceStatePatch = {
276
+ protocol?: DeviceStateProtocol;
277
+ protocolVersion?: number | null;
278
+ identity?: Partial<DeviceStateIdentity>;
279
+ status?: Partial<DeviceStateStatus>;
280
+ settings?: Partial<DeviceStateSettings>;
281
+ versions?: Partial<DeviceStateVersions>;
282
+ capabilities?: Array<number | string>;
283
+ verification?: DeviceFeaturesVerify;
284
+ raw?: DeviceFeaturesRawPatch;
285
+ };
286
+
287
+ export type DeviceStateEvent = {
288
+ connectId: string | null;
289
+ state: DeviceState;
290
+ revision: number;
291
+ source: DeviceStateUpdateSource;
292
+ changedKeys: string[];
293
+ };
294
+
295
+ export type NormalizedFeatures = {
132
296
  protocol: DeviceFeaturesProtocol;
133
297
  protocolVersion?: number | null;
134
298
  deviceType: IDeviceType;
@@ -158,10 +322,21 @@ export type Features = {
158
322
  wipeCodeProtection: boolean | null;
159
323
  passphraseAlwaysOnDevice: boolean | null;
160
324
  attachToPinEnabled?: boolean | null;
161
- safetyChecks: string | null;
325
+ safetyChecks: Enum_SafetyCheckLevel | null;
162
326
  autoLockDelayMs: number | null;
327
+ autoShutdownDelayMs: number | null;
163
328
  displayRotation: number | null;
164
329
  experimentalFeatures: boolean | null;
330
+ wallpaperPath: string | null;
331
+ brightness: number | null;
332
+ animationEnabled: boolean | null;
333
+ tapToWake: boolean | null;
334
+ hapticFeedback: boolean | null;
335
+ deviceNameDisplayEnabled: boolean | null;
336
+ airgapMode: boolean | null;
337
+ fidoEnabled: boolean | null;
338
+ usbLockEnabled: boolean | null;
339
+ randomKeypad: boolean | null;
165
340
  firmwareVersion: string | null;
166
341
  bootloaderVersion: string | null;
167
342
  boardVersion: string | null;
@@ -182,6 +357,10 @@ export type Features = {
182
357
  raw?: DeviceFeaturesRaw;
183
358
  };
184
359
 
360
+ export type Features = NormalizedFeatures &
361
+ Partial<Omit<PROTO.Features, keyof NormalizedFeatures>> &
362
+ Partial<Omit<PROTO.OnekeyFeatures, keyof NormalizedFeatures | keyof PROTO.Features>>;
363
+
185
364
  export type OnekeyFeatures = PROTO.OnekeyFeatures;
186
365
 
187
366
  export type IDeviceType =
@@ -233,7 +412,6 @@ export type ITransportStatus = 'valid' | 'outdated';
233
412
  export type IVersionRange = {
234
413
  min: string;
235
414
  max?: string;
236
- unsupported?: boolean;
237
415
  };
238
416
 
239
417
  export type DeviceFirmwareRange = {
@@ -15,7 +15,7 @@ export interface CommonParams {
15
15
  */
16
16
  timeout?: number;
17
17
  /**
18
- * Protocol V2 初始化阶段 DeviceInfoGet 超时时间
18
+ * DeviceInfoGet timeout during Protocol V2 initialization.
19
19
  */
20
20
  protocolV2DeviceInfoTimeoutMs?: number;
21
21
  /**
@@ -60,7 +60,8 @@ export interface CommonParams {
60
60
  usePreInitialize?: boolean;
61
61
 
62
62
  /**
63
- * Expected transport protocol. If omitted, SDK probes Protocol V1 then Protocol V2.
63
+ * Strictly expected transport protocol. The SDK actively verifies this value and
64
+ * rejects a mismatch. If omitted, a cached protocol only influences probe order.
64
65
  */
65
66
  connectProtocol?: HardwareConnectProtocol;
66
67
  }
@@ -31,6 +31,8 @@ export type ConnectSettings = {
31
31
  timestamp: number;
32
32
  isFrame?: boolean;
33
33
  preRelease?: boolean;
34
+ firmwareManifestMode?: 'sdk-managed' | 'external-only';
35
+ preloadedConfig?: RemoteConfigResponse;
34
36
  fetchConfig?: boolean;
35
37
  extension?: string;
36
38
  configFetcher?: (url: string) => Promise<RemoteConfigResponse | null>;
@@ -49,34 +51,37 @@ export type IProtocolV2FirmwareComponentTarget =
49
51
  | 'SE01'
50
52
  | 'SE02'
51
53
  | 'SE03'
52
- | 'SE04'
53
- | 'CRATE';
54
+ | 'SE04';
54
55
 
55
56
  export type IProtocolV2FirmwareComponent = {
56
57
  target: IProtocolV2FirmwareComponentTarget;
57
58
  url: string;
59
+ /** SHA-256 of the complete okpkg, used after downloading the package. */
58
60
  fingerprint?: string;
61
+ /** OKPP payload hash, used to detect same-version package changes. */
62
+ payloadHash?: string;
63
+ expectedSize?: number;
59
64
  version?: IVersionArray;
60
- resourceManifest?: IProtocolV2ResourceManifest;
61
65
  };
62
66
 
63
- export type IProtocolV2ResourceManifestPackage = {
64
- name?: string;
65
- path: string;
66
- type?: string;
67
+ /** Pro2 RESC bundle okpkg descriptor for incremental FileWrite synchronization. */
68
+ export type IProtocolV2ResourceBundle = {
69
+ /** Bundle name, such as images, animation, translations, or fonts_roobert. */
70
+ name: string;
71
+ /** Download URL. */
72
+ url: string;
73
+ fingerprint?: string;
74
+ expectedSize?: number;
75
+ /** Device target path, such as vol0:/bundles/images/images.okpkg. */
76
+ devicePath: string;
77
+ /** okpkg payload_version used to skip matching content after FileRead. */
67
78
  version?: IVersionArray;
68
- sha256?: string;
79
+ /** okpkg payload_hash used for SHA3-512 comparison after FileRead. */
69
80
  payloadHash?: string;
81
+ /** okpkg header_hash used for SHA3-512 comparison after FileRead. */
70
82
  headerHash?: string;
71
83
  };
72
84
 
73
- export type IProtocolV2ResourceManifest = {
74
- format?: 'okpkg-crate' | string;
75
- target?: 'CRATE' | string;
76
- version?: IVersionArray;
77
- packages: IProtocolV2ResourceManifestPackage[];
78
- };
79
-
80
85
  /** STM32 firmware config */
81
86
  export type IFirmwareReleaseInfo = {
82
87
  required: boolean;
@@ -88,21 +93,29 @@ export type IFirmwareReleaseInfo = {
88
93
  firmwareType?: EFirmwareType;
89
94
  /** Firmware UI resource */
90
95
  resource?: string;
96
+ resourceFingerprint?: string;
97
+ resourceExpectedSize?: number;
91
98
  /** Firmware full UI resource */
92
99
  fullResource?: string;
100
+ fullResourceFingerprint?: string;
101
+ fullResourceExpectedSize?: number;
93
102
  fullResourceRange?: string[];
94
103
  bootloaderResource?: string;
104
+ bootloaderFingerprint?: string;
105
+ bootloaderExpectedSize?: number;
95
106
  bootloaderVersion?: IVersionArray;
96
107
  displayBootloaderVersion?: IVersionArray;
97
108
  bootloaderRelatedFirmwareVersion?: IVersionArray;
98
109
  upgradeType?: 'payload-package-set' | string;
99
110
  components?: Record<string, IProtocolV2FirmwareComponent>;
100
111
  installOrder?: string[];
101
- resourceManifest?: IProtocolV2ResourceManifest;
112
+ /** Pro2 RESC bundles for incremental direct FileWrite synchronization. */
113
+ resourceBundles?: IProtocolV2ResourceBundle[];
102
114
  bootloaderChangelog?: {
103
115
  [k in ILocale]: string;
104
116
  };
105
117
  fingerprint: string;
118
+ expectedSize?: number;
106
119
  version: IVersionArray;
107
120
  changelog: {
108
121
  [k in ILocale]: string;
@@ -118,6 +131,7 @@ export type IBLEFirmwareReleaseInfo = {
118
131
  webUpdate: string;
119
132
  fingerprint: string;
120
133
  fingerprintWeb: string;
134
+ expectedSize?: number;
121
135
  version: IVersionArray;
122
136
  changelog: {
123
137
  [k in ILocale]: string;
@@ -1,5 +1,8 @@
1
1
  import { httpRequest as browserHttpRequest } from './networkUtils';
2
2
 
3
- export const httpRequest = (url: string, type: string): any => browserHttpRequest(url, type);
3
+ import type { HttpRequestOptions } from './networkUtils';
4
+
5
+ export const httpRequest = (url: string, type: string, options?: HttpRequestOptions): any =>
6
+ browserHttpRequest(url, type, options);
4
7
 
5
8
  export const getTimeStamp = () => new Date().getTime();
@@ -0,0 +1,180 @@
1
+ import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
2
+ import { Enum_Capability } from '@onekeyfe/hd-transport';
3
+
4
+ import type { PROTO } from '../constants';
5
+ import type { Features, IDeviceType } from '../types';
6
+
7
+ export type DeviceFeaturesInput = Features | PROTO.Features;
8
+
9
+ type CompatibleDeviceFeatures = Partial<Features> &
10
+ Partial<PROTO.Features> & {
11
+ onekey_serial?: string;
12
+ onekey_version?: string;
13
+ };
14
+
15
+ const asCompatibleFeatures = (features: DeviceFeaturesInput): CompatibleDeviceFeatures =>
16
+ features as CompatibleDeviceFeatures;
17
+
18
+ const firstNonEmptyString = (...values: Array<string | null | undefined>) =>
19
+ values.find(value => typeof value === 'string' && value.length > 0);
20
+
21
+ const firstMeaningfulVersion = (...versions: Array<string | null | undefined>) =>
22
+ versions.find(version => Boolean(version && version !== '0.0.0')) ?? null;
23
+
24
+ const versionFromParts = (major?: number | null, minor?: number | null, patch?: number | null) =>
25
+ [major, minor, patch].map(part => Number(part) || 0).join('.');
26
+
27
+ export const resolveDeviceSerialNo = (features?: DeviceFeaturesInput): string => {
28
+ if (!features) return '';
29
+ const compatible = asCompatibleFeatures(features);
30
+ return (
31
+ firstNonEmptyString(
32
+ compatible.serialNo,
33
+ compatible.onekey_serial_no,
34
+ compatible.onekey_serial,
35
+ compatible.serial_no
36
+ ) ?? ''
37
+ );
38
+ };
39
+
40
+ export const resolveDeviceType = (features?: DeviceFeaturesInput): IDeviceType => {
41
+ if (!features || typeof features !== 'object') {
42
+ return EDeviceType.Unknown;
43
+ }
44
+
45
+ const compatible = asCompatibleFeatures(features);
46
+ if (compatible.deviceType && compatible.deviceType !== EDeviceType.Unknown) {
47
+ return compatible.deviceType;
48
+ }
49
+
50
+ switch (compatible.onekey_device_type?.toString().toUpperCase()) {
51
+ case 'CLASSIC':
52
+ return EDeviceType.Classic;
53
+ case 'CLASSIC1S':
54
+ return EDeviceType.Classic1s;
55
+ case 'MINI':
56
+ return EDeviceType.Mini;
57
+ case 'TOUCH':
58
+ return EDeviceType.Touch;
59
+ case 'PRO':
60
+ return EDeviceType.Pro;
61
+ case 'PRO2':
62
+ return EDeviceType.Pro2;
63
+ case 'PURE':
64
+ return EDeviceType.ClassicPure;
65
+ default:
66
+ break;
67
+ }
68
+
69
+ if (compatible.model?.toString().toLowerCase() === EDeviceType.Pro2) {
70
+ return EDeviceType.Pro2;
71
+ }
72
+
73
+ const serialNo = resolveDeviceSerialNo(features);
74
+ const prefix = serialNo.slice(0, 2).toLowerCase();
75
+ if (prefix === 'bi' || prefix === 'cl') return EDeviceType.Classic;
76
+ if (prefix === 'cp') return EDeviceType.ClassicPure;
77
+ if (prefix === 'mi') return EDeviceType.Mini;
78
+ if (prefix === 'tc') return EDeviceType.Touch;
79
+ if (prefix === 'pr') return EDeviceType.Pro;
80
+ if (prefix === 'p2') return EDeviceType.Pro2;
81
+
82
+ const bootloaderMode = compatible.bootloaderMode ?? compatible.bootloader_mode;
83
+ if (!serialNo && bootloaderMode === true && compatible.model === '1') {
84
+ return EDeviceType.Classic;
85
+ }
86
+
87
+ return compatible.deviceType ?? EDeviceType.Unknown;
88
+ };
89
+
90
+ export const resolveDeviceFirmwareType = (features?: DeviceFeaturesInput): EFirmwareType => {
91
+ if (!features) {
92
+ return EFirmwareType.Universal;
93
+ }
94
+
95
+ const compatible = asCompatibleFeatures(features);
96
+ if (compatible.firmwareType) {
97
+ return compatible.firmwareType;
98
+ }
99
+ if (compatible.fw_vendor === 'OneKey Bitcoin-only') {
100
+ return EFirmwareType.BitcoinOnly;
101
+ }
102
+
103
+ const capabilities = compatible.capabilities as Array<number | string> | null | undefined;
104
+ const supportsBitcoinLike = capabilities?.some(
105
+ capability =>
106
+ capability === Enum_Capability.Capability_Bitcoin_like ||
107
+ capability === 'Capability_Bitcoin_like'
108
+ );
109
+ return capabilities?.length && !supportsBitcoinLike
110
+ ? EFirmwareType.BitcoinOnly
111
+ : EFirmwareType.Universal;
112
+ };
113
+
114
+ export const resolveDeviceBleName = (features?: DeviceFeaturesInput): string | null => {
115
+ if (!features) return null;
116
+ const compatible = asCompatibleFeatures(features);
117
+ return (
118
+ firstNonEmptyString(compatible.bleName, compatible.onekey_ble_name, compatible.ble_name) ?? null
119
+ );
120
+ };
121
+
122
+ export const resolveDeviceFirmwareVersion = (features?: DeviceFeaturesInput): string | null => {
123
+ if (!features) return null;
124
+ const compatible = asCompatibleFeatures(features);
125
+ const bootloaderMode = compatible.bootloaderMode ?? compatible.bootloader_mode;
126
+ return firstMeaningfulVersion(
127
+ compatible.firmwareVersion,
128
+ compatible.onekey_firmware_version,
129
+ compatible.onekey_version,
130
+ bootloaderMode
131
+ ? null
132
+ : versionFromParts(
133
+ compatible.major_version,
134
+ compatible.minor_version,
135
+ compatible.patch_version
136
+ )
137
+ );
138
+ };
139
+
140
+ export const resolveDeviceBootloaderVersion = (features?: DeviceFeaturesInput): string | null => {
141
+ if (!features) return null;
142
+ const compatible = asCompatibleFeatures(features);
143
+ const bootloaderMode = compatible.bootloaderMode ?? compatible.bootloader_mode;
144
+ return firstMeaningfulVersion(
145
+ compatible.bootloaderVersion,
146
+ compatible.onekey_boot_version,
147
+ compatible.bootloader_version,
148
+ compatible.onekey_bootloader_version,
149
+ bootloaderMode
150
+ ? versionFromParts(
151
+ compatible.major_version,
152
+ compatible.minor_version,
153
+ compatible.patch_version
154
+ )
155
+ : null
156
+ );
157
+ };
158
+
159
+ export const resolveDeviceBoardVersion = (features?: DeviceFeaturesInput): string | null => {
160
+ if (!features) return null;
161
+ const compatible = asCompatibleFeatures(features);
162
+ return firstMeaningfulVersion(
163
+ compatible.boardVersion,
164
+ compatible.onekey_board_version,
165
+ compatible.boardloader_version,
166
+ compatible.onekey_romloader_version,
167
+ compatible.romloader_version
168
+ );
169
+ };
170
+
171
+ export const resolveDeviceBleFirmwareVersion = (features?: DeviceFeaturesInput): string | null => {
172
+ if (!features) return null;
173
+ const compatible = asCompatibleFeatures(features);
174
+ return firstMeaningfulVersion(
175
+ compatible.bleVersion,
176
+ compatible.onekey_ble_version,
177
+ compatible.ble_ver,
178
+ compatible.onekey_coprocessor_version
179
+ );
180
+ };