@onekeyfe/hd-core 1.2.0-alpha.8 → 1.2.0-alpha.80

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 (810) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +390 -0
  2. package/__tests__/DeviceCommands.test.ts +563 -0
  3. package/__tests__/DeviceEventRegistration.test.ts +49 -0
  4. package/__tests__/chain-params-onekey-compatibility.test.ts +229 -0
  5. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +492 -0
  6. package/__tests__/check-firmware-release-protocol-v2.test.ts +164 -0
  7. package/__tests__/connectSettings.test.ts +45 -5
  8. package/__tests__/core-dispose.test.ts +34 -0
  9. package/__tests__/core-error-output.test.ts +39 -0
  10. package/__tests__/core-initialization.test.ts +23 -0
  11. package/__tests__/device-connector-protocol.test.ts +81 -0
  12. package/__tests__/device-features-state.test.ts +78 -0
  13. package/__tests__/device-identity.test.ts +52 -0
  14. package/__tests__/device-initialize-timeout.test.ts +56 -0
  15. package/__tests__/device-lifecycle-events.test.ts +351 -0
  16. package/__tests__/device-pool-state.test.ts +166 -0
  17. package/__tests__/device-settings.test.ts +437 -0
  18. package/__tests__/device-state-contract.test.ts +28 -0
  19. package/__tests__/device-state-events.test.ts +286 -0
  20. package/__tests__/device-state-mapper.test.ts +288 -0
  21. package/__tests__/device-state-projector.test.ts +114 -0
  22. package/__tests__/device-state-store.test.ts +109 -0
  23. package/__tests__/device-utils.test.ts +154 -0
  24. package/__tests__/device-wallet-session-store.test.ts +478 -0
  25. package/__tests__/deviceFeaturesUtils.test.ts +39 -0
  26. package/__tests__/devicePoolBootloaderPath.test.ts +64 -0
  27. package/__tests__/deviceSettings.test.ts +113 -0
  28. package/__tests__/deviceUploadNft.test.ts +316 -0
  29. package/__tests__/evmLedgerLegacySafety.test.ts +12 -6
  30. package/__tests__/evmSignTransaction.test.ts +69 -0
  31. package/__tests__/evmSignTypedData.test.ts +80 -0
  32. package/__tests__/filesystemValidation.test.ts +53 -0
  33. package/__tests__/firmware-update/check-all-firmware-release.test.ts +175 -0
  34. package/__tests__/firmware-update/device-update-bootloader.test.ts +87 -0
  35. package/__tests__/firmware-update/firmware-artifact-source.test.ts +119 -0
  36. package/__tests__/firmware-update/firmware-host-binding.test.ts +70 -0
  37. package/__tests__/firmware-update/firmware-preparation-error.test.ts +27 -0
  38. package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +200 -0
  39. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +13 -0
  40. package/__tests__/firmware-update/firmware-update-plan-bootloader-identity.test.ts +394 -0
  41. package/__tests__/firmware-update/firmware-update-plan.test.ts +593 -0
  42. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +231 -0
  43. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +457 -0
  44. package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +121 -0
  45. package/__tests__/firmware-update/firmware-upload-source.test.ts +70 -0
  46. package/__tests__/get-device-state.test.ts +578 -0
  47. package/__tests__/homescreen.test.ts +81 -0
  48. package/__tests__/kaspa-public-types.type-test.ts +16 -0
  49. package/__tests__/kaspa-use-tweak-pro2.test.ts +20 -0
  50. package/__tests__/kaspaSignTransaction.test.ts +578 -0
  51. package/__tests__/known-device-public-types.type-test.ts +3 -0
  52. package/__tests__/logBlockEvent.test.ts +128 -1
  53. package/__tests__/method-protocol-support.test.ts +144 -0
  54. package/__tests__/networkUtils.test.ts +406 -0
  55. package/__tests__/open-wallet-session-error-response.test.ts +43 -0
  56. package/__tests__/open-wallet-session.test.ts +1899 -0
  57. package/__tests__/pro2Nft.test.ts +108 -0
  58. package/__tests__/pro2Wallpaper.test.ts +39 -0
  59. package/__tests__/protocol-binding.test.ts +89 -0
  60. package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
  61. package/__tests__/protocol-v2-firmware-targets.test.ts +85 -0
  62. package/__tests__/protocol-v2-ping.test.ts +28 -0
  63. package/__tests__/protocol-v2-resources.test.ts +250 -0
  64. package/__tests__/protocol-v2-ui-lifecycle.test.ts +91 -0
  65. package/__tests__/protocol-v2-unlock-policy.test.ts +308 -0
  66. package/__tests__/protocol-v2.test.ts +7034 -2497
  67. package/__tests__/protocolV2FileWrite.test.ts +285 -0
  68. package/__tests__/protocolV2UiInteraction.test.ts +329 -0
  69. package/__tests__/public-device-state-api.test.ts +275 -0
  70. package/__tests__/public-pro2-api-boundary.test.ts +107 -0
  71. package/__tests__/refresh-device-state.test.ts +101 -0
  72. package/__tests__/request-context-logging.test.ts +16 -0
  73. package/__tests__/search-devices.test.ts +145 -0
  74. package/__tests__/tron-sign-message-init.test.ts +74 -0
  75. package/__tests__/uiProgressThrottle.test.ts +74 -0
  76. package/__tests__/uiPromiseRegistry.test.ts +115 -0
  77. package/dist/api/BaseMethod.d.ts +16 -1
  78. package/dist/api/BaseMethod.d.ts.map +1 -1
  79. package/dist/api/CheckAllFirmwareRelease.d.ts +25 -1
  80. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  81. package/dist/api/CheckBLEFirmwareRelease.d.ts +2 -1
  82. package/dist/api/CheckBLEFirmwareRelease.d.ts.map +1 -1
  83. package/dist/api/CheckBootloaderRelease.d.ts +3 -2
  84. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  85. package/dist/api/CheckFirmwareRelease.d.ts +2 -1
  86. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  87. package/dist/api/CipherKeyValue.d.ts +1 -0
  88. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  89. package/dist/api/ClearSessionCache.d.ts +9 -0
  90. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  91. package/dist/api/DetectDeviceConnectProtocol.d.ts +7 -0
  92. package/dist/api/DetectDeviceConnectProtocol.d.ts.map +1 -0
  93. package/dist/api/DirList.d.ts +1 -0
  94. package/dist/api/DirList.d.ts.map +1 -1
  95. package/dist/api/DirMake.d.ts +1 -0
  96. package/dist/api/DirMake.d.ts.map +1 -1
  97. package/dist/api/DirRemove.d.ts +1 -0
  98. package/dist/api/DirRemove.d.ts.map +1 -1
  99. package/dist/api/FileDelete.d.ts +1 -0
  100. package/dist/api/FileDelete.d.ts.map +1 -1
  101. package/dist/api/FileRead.d.ts +1 -0
  102. package/dist/api/FileRead.d.ts.map +1 -1
  103. package/dist/api/FileWrite.d.ts +2 -0
  104. package/dist/api/FileWrite.d.ts.map +1 -1
  105. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  106. package/dist/api/FirmwareUpdateV2.d.ts +12 -2
  107. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  108. package/dist/api/FirmwareUpdateV3.d.ts +7 -3
  109. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  110. package/dist/api/FirmwareUpdateV4.d.ts +47 -18
  111. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  112. package/dist/api/GetDeviceState.d.ts +8 -0
  113. package/dist/api/GetDeviceState.d.ts.map +1 -0
  114. package/dist/api/GetFeatures.d.ts +1 -1
  115. package/dist/api/GetFeatures.d.ts.map +1 -1
  116. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  117. package/dist/api/GetPassphraseState.d.ts +2 -6
  118. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  119. package/dist/api/OpenWalletSession.d.ts +8 -0
  120. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  121. package/dist/api/PathInfo.d.ts +1 -0
  122. package/dist/api/PathInfo.d.ts.map +1 -1
  123. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  124. package/dist/api/SearchDevices.d.ts +3 -0
  125. package/dist/api/SearchDevices.d.ts.map +1 -1
  126. package/dist/api/UploadPortfolio.d.ts +17 -0
  127. package/dist/api/UploadPortfolio.d.ts.map +1 -0
  128. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  129. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  130. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  131. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  132. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  133. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  134. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  135. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  136. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  137. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  138. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  139. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  140. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  141. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  142. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  143. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  144. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  145. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  146. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  147. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  148. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  149. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  150. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  151. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  152. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  153. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  154. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  155. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  156. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  157. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  158. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  159. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  160. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  161. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  162. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  163. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  164. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  165. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  166. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  167. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  168. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  169. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  170. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  171. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  172. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  173. package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
  174. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  175. package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
  176. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  177. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
  178. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  179. package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
  180. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  181. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  182. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  183. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  184. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  185. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  186. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  187. package/dist/api/device/DeviceCancel.d.ts +1 -0
  188. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  189. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  190. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  191. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  192. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  193. package/dist/api/device/DeviceLock.d.ts +1 -0
  194. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  195. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  196. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  197. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  198. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  199. package/dist/api/device/DeviceSettings.d.ts +1 -0
  200. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  201. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  202. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  203. package/dist/api/device/DeviceUnlock.d.ts +3 -2
  204. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  205. package/dist/api/device/DeviceUpdateBootloader.d.ts +5 -1
  206. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  207. package/dist/api/device/DeviceWipe.d.ts +1 -0
  208. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  209. package/dist/api/device/PreInitialize.d.ts +1 -0
  210. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  211. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  212. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  213. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  214. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  215. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  216. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  217. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  218. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  219. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  220. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  221. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  222. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  223. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  224. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  225. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  226. package/dist/api/evm/protocol.d.ts +3 -0
  227. package/dist/api/evm/protocol.d.ts.map +1 -0
  228. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  229. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  230. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  231. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  232. package/dist/api/firmware/FirmwareArtifactSource.d.ts +25 -0
  233. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +1 -0
  234. package/dist/api/firmware/FirmwareHostBinding.d.ts +6 -0
  235. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -0
  236. package/dist/api/firmware/FirmwarePreparationError.d.ts +3 -0
  237. package/dist/api/firmware/FirmwarePreparationError.d.ts.map +1 -0
  238. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +12 -3
  239. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  240. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +3 -0
  241. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +1 -0
  242. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +25 -0
  243. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -0
  244. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +32 -0
  245. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -0
  246. package/dist/api/firmware/getBinary.d.ts +15 -4
  247. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  248. package/dist/api/firmware/protocolV2Release.d.ts +33 -0
  249. package/dist/api/firmware/protocolV2Release.d.ts.map +1 -0
  250. package/dist/api/firmware/updateBootloader.d.ts +2 -0
  251. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  252. package/dist/api/firmware/uploadFirmware.d.ts +9 -1
  253. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  254. package/dist/api/helpers/filesystemValidation.d.ts +3 -0
  255. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
  256. package/dist/api/helpers/paramsValidator.d.ts +1 -0
  257. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  258. package/dist/api/helpers/protocolV2FileWrite.d.ts +43 -0
  259. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
  260. package/dist/api/index.d.ts +9 -25
  261. package/dist/api/index.d.ts.map +1 -1
  262. package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
  263. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  264. package/dist/api/kaspa/KaspaSignTransaction.d.ts +9 -1
  265. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  266. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  267. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  268. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  269. package/dist/api/near/NearGetAddress.d.ts +1 -0
  270. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  271. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  272. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  273. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  274. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  275. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  276. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  277. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  278. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  279. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  280. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  281. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  282. package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
  283. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  284. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  285. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  286. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  287. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  288. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  289. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  290. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  291. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  292. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  293. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  294. package/dist/api/polkadot/PolkadotGetAddress.d.ts +2 -1
  295. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  296. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  297. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  298. package/dist/api/polkadot/networks.d.ts +1 -1
  299. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  300. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  301. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  302. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  303. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -0
  304. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  305. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +1 -0
  306. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  307. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +7 -0
  308. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
  309. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +1 -1
  310. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  311. package/dist/api/protocol-v2/DeviceReboot.d.ts +1 -0
  312. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  313. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +7 -0
  314. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  315. package/dist/api/protocol-v2/DeviceUploadNft.d.ts +31 -0
  316. package/dist/api/protocol-v2/DeviceUploadNft.d.ts.map +1 -0
  317. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +27 -0
  318. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
  319. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  320. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  321. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  322. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  323. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  324. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  325. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  326. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  327. package/dist/api/protocol-v2/helpers.d.ts +1 -1
  328. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  329. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  330. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  331. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  332. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  333. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  334. package/dist/api/solana/SolSignMessage.d.ts +2 -1
  335. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  336. package/dist/api/solana/SolSignOffchainMessage.d.ts +2 -1
  337. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  338. package/dist/api/solana/SolSignTransaction.d.ts +3 -2
  339. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  340. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  341. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  342. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  343. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  344. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  345. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  346. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  347. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  348. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  349. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  350. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  351. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  352. package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
  353. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  354. package/dist/api/sui/SuiGetAddress.d.ts +2 -1
  355. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  356. package/dist/api/sui/SuiGetPublicKey.d.ts +2 -1
  357. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  358. package/dist/api/sui/SuiSignMessage.d.ts +2 -1
  359. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  360. package/dist/api/sui/SuiSignTransaction.d.ts +2 -1
  361. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  362. package/dist/api/ton/TonGetAddress.d.ts +2 -1
  363. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  364. package/dist/api/ton/TonSignData.d.ts +1 -0
  365. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  366. package/dist/api/ton/TonSignMessage.d.ts +2 -1
  367. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  368. package/dist/api/ton/TonSignProof.d.ts +2 -1
  369. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  370. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  371. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  372. package/dist/api/tron/TronSignMessage.d.ts +6 -1
  373. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  374. package/dist/api/tron/TronSignTransaction.d.ts +2 -1
  375. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  376. package/dist/api/utils.d.ts +4 -1
  377. package/dist/api/utils.d.ts.map +1 -1
  378. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  379. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  380. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  381. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  382. package/dist/constants/index.d.ts +1 -1
  383. package/dist/constants/index.d.ts.map +1 -1
  384. package/dist/core/RequestQueue.d.ts.map +1 -1
  385. package/dist/core/deviceEventRegistration.d.ts +13 -0
  386. package/dist/core/deviceEventRegistration.d.ts.map +1 -0
  387. package/dist/core/index.d.ts +3 -1
  388. package/dist/core/index.d.ts.map +1 -1
  389. package/dist/core/uiPromiseRegistry.d.ts +6 -0
  390. package/dist/core/uiPromiseRegistry.d.ts.map +1 -0
  391. package/dist/data-manager/DataManager.d.ts +9 -3
  392. package/dist/data-manager/DataManager.d.ts.map +1 -1
  393. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  394. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  395. package/dist/device/Device.d.ts +72 -17
  396. package/dist/device/Device.d.ts.map +1 -1
  397. package/dist/device/DeviceCommands.d.ts +8 -6
  398. package/dist/device/DeviceCommands.d.ts.map +1 -1
  399. package/dist/device/DeviceConnector.d.ts +4 -3
  400. package/dist/device/DeviceConnector.d.ts.map +1 -1
  401. package/dist/device/DeviceFeaturesState.d.ts +3 -0
  402. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  403. package/dist/device/DevicePool.d.ts +6 -2
  404. package/dist/device/DevicePool.d.ts.map +1 -1
  405. package/dist/device/DeviceStateMapper.d.ts +13 -0
  406. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  407. package/dist/device/DeviceStateProjector.d.ts +7 -0
  408. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  409. package/dist/device/DeviceStateStore.d.ts +21 -0
  410. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  411. package/dist/device/DeviceWalletSessionStore.d.ts +27 -0
  412. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  413. package/dist/device/cloneDeviceState.d.ts +2 -0
  414. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  415. package/dist/device/deviceIdentity.d.ts +5 -0
  416. package/dist/device/deviceIdentity.d.ts.map +1 -0
  417. package/dist/deviceProfile/buildDeviceFeatures.d.ts +9 -3
  418. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  419. package/dist/deviceProfile/index.d.ts +0 -1
  420. package/dist/deviceProfile/index.d.ts.map +1 -1
  421. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
  422. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
  423. package/dist/events/device.d.ts +16 -2
  424. package/dist/events/device.d.ts.map +1 -1
  425. package/dist/events/logBlockEvent.d.ts +2 -0
  426. package/dist/events/logBlockEvent.d.ts.map +1 -1
  427. package/dist/events/ui-promise.d.ts +4 -2
  428. package/dist/events/ui-promise.d.ts.map +1 -1
  429. package/dist/events/ui-request.d.ts +50 -4
  430. package/dist/events/ui-request.d.ts.map +1 -1
  431. package/dist/events/ui-response.d.ts +10 -2
  432. package/dist/events/ui-response.d.ts.map +1 -1
  433. package/dist/index.d.ts +1818 -770
  434. package/dist/index.d.ts.map +1 -1
  435. package/dist/index.js +11157 -4209
  436. package/dist/inject.d.ts +6 -1
  437. package/dist/inject.d.ts.map +1 -1
  438. package/dist/lowLevelInject.d.ts.map +1 -1
  439. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  440. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  441. package/dist/protocols/protocol-v2/features.d.ts +21 -17
  442. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  443. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
  444. package/dist/protocols/protocol-v2/index.d.ts +3 -2
  445. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  446. package/dist/protocols/protocol-v2/resources.d.ts +29 -0
  447. package/dist/protocols/protocol-v2/resources.d.ts.map +1 -0
  448. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
  449. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  450. package/dist/protocols/protocol-v2/uiInteraction.d.ts +42 -0
  451. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
  452. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +2 -0
  453. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
  454. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts +22 -0
  455. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts.map +1 -0
  456. package/dist/protocols/protocol-v2/walletSession.d.ts +27 -0
  457. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  458. package/dist/topLevelInject.d.ts.map +1 -1
  459. package/dist/types/api/checkAllFirmwareRelease.d.ts +48 -9
  460. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  461. package/dist/types/api/checkBLEFirmwareRelease.d.ts +2 -13
  462. package/dist/types/api/checkBLEFirmwareRelease.d.ts.map +1 -1
  463. package/dist/types/api/checkBootloaderRelease.d.ts +2 -6
  464. package/dist/types/api/checkBootloaderRelease.d.ts.map +1 -1
  465. package/dist/types/api/checkFirmwareRelease.d.ts +2 -13
  466. package/dist/types/api/checkFirmwareRelease.d.ts.map +1 -1
  467. package/dist/types/api/checkFirmwareTypeAvailable.d.ts +2 -2
  468. package/dist/types/api/checkFirmwareTypeAvailable.d.ts.map +1 -1
  469. package/dist/types/api/detectDeviceConnectProtocol.d.ts +4 -0
  470. package/dist/types/api/detectDeviceConnectProtocol.d.ts.map +1 -0
  471. package/dist/types/api/deviceSettings.d.ts +11 -2
  472. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  473. package/dist/types/api/deviceUnlock.d.ts +6 -2
  474. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  475. package/dist/types/api/deviceUpdateBootloader.d.ts +6 -0
  476. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  477. package/dist/types/api/export.d.ts +9 -3
  478. package/dist/types/api/export.d.ts.map +1 -1
  479. package/dist/types/api/firmwareUpdate.d.ts +76 -1
  480. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  481. package/dist/types/api/firmwareUpdateCapabilities.d.ts +9 -0
  482. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +1 -0
  483. package/dist/types/api/firmwareUpdatePlan.d.ts +28 -0
  484. package/dist/types/api/firmwareUpdatePlan.d.ts.map +1 -0
  485. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +42 -0
  486. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +1 -0
  487. package/dist/types/api/getDeviceState.d.ts +12 -0
  488. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  489. package/dist/types/api/getFeatures.d.ts.map +1 -1
  490. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  491. package/dist/types/api/getPassphraseState.d.ts +2 -10
  492. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  493. package/dist/types/api/index.d.ts +34 -31
  494. package/dist/types/api/index.d.ts.map +1 -1
  495. package/dist/types/api/kaspaSignTransaction.d.ts +42 -4
  496. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  497. package/dist/types/api/openWalletSession.d.ts +35 -0
  498. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  499. package/dist/types/api/protocolV2.d.ts +18 -84
  500. package/dist/types/api/protocolV2.d.ts.map +1 -1
  501. package/dist/types/api/protocolV2ResourceManifest.d.ts +17 -0
  502. package/dist/types/api/protocolV2ResourceManifest.d.ts.map +1 -0
  503. package/dist/types/api/sessionCache.d.ts +13 -0
  504. package/dist/types/api/sessionCache.d.ts.map +1 -0
  505. package/dist/types/device.d.ts +142 -10
  506. package/dist/types/device.d.ts.map +1 -1
  507. package/dist/types/params.d.ts +1 -0
  508. package/dist/types/params.d.ts.map +1 -1
  509. package/dist/types/settings.d.ts +69 -22
  510. package/dist/types/settings.d.ts.map +1 -1
  511. package/dist/utils/assets.d.ts +2 -1
  512. package/dist/utils/assets.d.ts.map +1 -1
  513. package/dist/utils/deviceFeaturesCompat.d.ts +14 -0
  514. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  515. package/dist/utils/deviceFeaturesUtils.d.ts +10 -3
  516. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  517. package/dist/utils/deviceInfoUtils.d.ts +9 -9
  518. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  519. package/dist/utils/deviceSettings.d.ts +38 -7
  520. package/dist/utils/deviceSettings.d.ts.map +1 -1
  521. package/dist/utils/deviceVersionUtils.d.ts +7 -5
  522. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  523. package/dist/utils/homescreen.d.ts +4 -0
  524. package/dist/utils/homescreen.d.ts.map +1 -1
  525. package/dist/utils/index.d.ts +6 -3
  526. package/dist/utils/index.d.ts.map +1 -1
  527. package/dist/utils/networkUtils.d.ts +10 -1
  528. package/dist/utils/networkUtils.d.ts.map +1 -1
  529. package/dist/utils/patch.d.ts +1 -1
  530. package/dist/utils/patch.d.ts.map +1 -1
  531. package/dist/utils/pro2Nft.d.ts +31 -0
  532. package/dist/utils/pro2Nft.d.ts.map +1 -0
  533. package/dist/utils/pro2Wallpaper.d.ts +22 -0
  534. package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
  535. package/dist/utils/tracing.d.ts.map +1 -1
  536. package/dist/utils/uiProgressThrottle.d.ts +3 -0
  537. package/dist/utils/uiProgressThrottle.d.ts.map +1 -0
  538. package/package.json +4 -4
  539. package/src/api/BaseMethod.ts +53 -20
  540. package/src/api/CheckAllFirmwareRelease.ts +380 -4
  541. package/src/api/CheckBLEFirmwareRelease.ts +41 -3
  542. package/src/api/CheckBootloaderRelease.ts +41 -3
  543. package/src/api/CheckFirmwareRelease.ts +38 -5
  544. package/src/api/CipherKeyValue.ts +4 -0
  545. package/src/api/ClearSessionCache.ts +32 -0
  546. package/src/api/DetectDeviceConnectProtocol.ts +18 -0
  547. package/src/api/DirList.ts +9 -4
  548. package/src/api/DirMake.ts +7 -4
  549. package/src/api/DirRemove.ts +7 -4
  550. package/src/api/FileDelete.ts +7 -4
  551. package/src/api/FileRead.ts +15 -9
  552. package/src/api/FileWrite.ts +26 -181
  553. package/src/api/FirmwareUpdate.ts +30 -15
  554. package/src/api/FirmwareUpdateV2.ts +385 -115
  555. package/src/api/FirmwareUpdateV3.ts +274 -71
  556. package/src/api/FirmwareUpdateV4.ts +1465 -660
  557. package/src/api/GetDeviceState.ts +59 -0
  558. package/src/api/GetFeatures.ts +6 -4
  559. package/src/api/GetOnekeyFeatures.ts +1 -75
  560. package/src/api/GetPassphraseState.ts +36 -21
  561. package/src/api/OpenWalletSession.ts +268 -0
  562. package/src/api/PathInfo.ts +9 -4
  563. package/src/api/PromptWebDeviceAccess.ts +2 -7
  564. package/src/api/SearchDevices.ts +31 -4
  565. package/src/api/UploadPortfolio.ts +58 -0
  566. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  567. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  568. package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
  569. package/src/api/algo/AlgoGetAddress.ts +4 -0
  570. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  571. package/src/api/allnetwork/AllNetworkGetAddress.ts +21 -21
  572. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +45 -32
  573. package/src/api/aptos/AptosGetAddress.ts +4 -0
  574. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  575. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  576. package/src/api/aptos/AptosSignMessage.ts +4 -0
  577. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  578. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  579. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  580. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  581. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  582. package/src/api/btc/BTCGetAddress.ts +8 -1
  583. package/src/api/btc/BTCGetPublicKey.ts +9 -2
  584. package/src/api/btc/BTCSignMessage.ts +8 -1
  585. package/src/api/btc/BTCSignPsbt.ts +4 -0
  586. package/src/api/btc/BTCSignTransaction.ts +8 -1
  587. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  588. package/src/api/btc/helpers/versionLimit.ts +7 -4
  589. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  590. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  591. package/src/api/cardano/CardanoSignMessage.ts +5 -1
  592. package/src/api/cardano/CardanoSignTransaction.ts +5 -1
  593. package/src/api/conflux/ConfluxGetAddress.ts +6 -0
  594. package/src/api/conflux/ConfluxSignMessage.ts +6 -0
  595. package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
  596. package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
  597. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  598. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  599. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  600. package/src/api/device/DeviceCancel.ts +5 -0
  601. package/src/api/device/DeviceChangePin.ts +28 -0
  602. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  603. package/src/api/device/DeviceLock.ts +5 -0
  604. package/src/api/device/DeviceRebootToBoardloader.ts +5 -0
  605. package/src/api/device/DeviceRebootToBootloader.ts +5 -0
  606. package/src/api/device/DeviceSettings.ts +195 -1
  607. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  608. package/src/api/device/DeviceUnlock.ts +21 -3
  609. package/src/api/device/DeviceUpdateBootloader.ts +126 -8
  610. package/src/api/device/DeviceWipe.ts +25 -0
  611. package/src/api/device/PreInitialize.ts +4 -0
  612. package/src/api/dynex/DnxGetAddress.ts +0 -6
  613. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  614. package/src/api/evm/EVMGetAddress.ts +6 -2
  615. package/src/api/evm/EVMGetPublicKey.ts +6 -2
  616. package/src/api/evm/EVMSignMessage.ts +6 -2
  617. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  618. package/src/api/evm/EVMSignTransaction.ts +6 -2
  619. package/src/api/evm/EVMSignTypedData.ts +42 -50
  620. package/src/api/evm/EVMVerifyMessage.ts +6 -2
  621. package/src/api/evm/legacyV1/getAddress.ts +2 -2
  622. package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
  623. package/src/api/evm/legacyV1/signMessage.ts +2 -2
  624. package/src/api/evm/legacyV1/signTypedData.ts +2 -2
  625. package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
  626. package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
  627. package/src/api/evm/protocol.ts +6 -0
  628. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  629. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  630. package/src/api/firmware/FirmwareArtifactSource.ts +278 -0
  631. package/src/api/firmware/FirmwareHostBinding.ts +100 -0
  632. package/src/api/firmware/FirmwarePreparationError.ts +12 -0
  633. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +102 -16
  634. package/src/api/firmware/FirmwareUpdateCapabilities.ts +9 -0
  635. package/src/api/firmware/FirmwareUpdatePlan.ts +772 -0
  636. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +449 -0
  637. package/src/api/firmware/getBinary.ts +8 -3
  638. package/src/api/firmware/protocolV2Release.ts +166 -0
  639. package/src/api/firmware/updateBootloader.ts +19 -4
  640. package/src/api/firmware/uploadFirmware.ts +157 -26
  641. package/src/api/helpers/batchGetPublickeys.ts +2 -2
  642. package/src/api/helpers/filesystemValidation.ts +61 -0
  643. package/src/api/helpers/paramsValidator.ts +1 -1
  644. package/src/api/helpers/protocolV2FileWrite.ts +392 -0
  645. package/src/api/index.ts +10 -26
  646. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  647. package/src/api/kaspa/KaspaSignTransaction.ts +369 -29
  648. package/src/api/kaspa/helpers/TransferSerialize.ts +17 -7
  649. package/src/api/lightning/LnurlAuth.ts +0 -4
  650. package/src/api/near/NearGetAddress.ts +4 -0
  651. package/src/api/near/NearSignTransaction.ts +4 -0
  652. package/src/api/nem/NEMGetAddress.ts +4 -0
  653. package/src/api/nem/NEMSignTransaction.ts +4 -0
  654. package/src/api/neo/NeoGetAddress.ts +0 -4
  655. package/src/api/neo/NeoSignTransaction.ts +0 -4
  656. package/src/api/nervos/NervosGetAddress.ts +0 -4
  657. package/src/api/nervos/NervosSignTransaction.ts +2 -6
  658. package/src/api/nexa/NexaGetAddress.ts +0 -4
  659. package/src/api/nexa/NexaSignTransaction.ts +3 -5
  660. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  661. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  662. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  663. package/src/api/nostr/NostrSignEvent.ts +4 -0
  664. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  665. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  666. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  667. package/src/api/polkadot/networks.ts +3 -3
  668. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
  669. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +5 -2
  670. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +8 -5
  671. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +10 -6
  672. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +21 -0
  673. package/src/api/protocol-v2/DeviceInfoGet.ts +8 -15
  674. package/src/api/protocol-v2/DeviceReboot.ts +7 -3
  675. package/src/api/protocol-v2/DeviceStatusGet.ts +19 -0
  676. package/src/api/protocol-v2/DeviceUploadNft.ts +197 -0
  677. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +134 -0
  678. package/src/api/protocol-v2/FilesystemFormat.ts +9 -3
  679. package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
  680. package/src/api/protocol-v2/Ping.ts +37 -3
  681. package/src/api/protocol-v2/ProtocolInfoRequest.ts +8 -3
  682. package/src/api/protocol-v2/helpers.ts +17 -17
  683. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  684. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  685. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  686. package/src/api/solana/SolGetAddress.ts +4 -0
  687. package/src/api/solana/SolSignMessage.ts +5 -1
  688. package/src/api/solana/SolSignOffchainMessage.ts +5 -1
  689. package/src/api/solana/SolSignTransaction.ts +6 -2
  690. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  691. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  692. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  693. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  694. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  695. package/src/api/stellar/StellarGetAddress.ts +1 -10
  696. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  697. package/src/api/sui/SuiGetAddress.ts +5 -1
  698. package/src/api/sui/SuiGetPublicKey.ts +5 -1
  699. package/src/api/sui/SuiSignMessage.ts +5 -1
  700. package/src/api/sui/SuiSignTransaction.ts +5 -1
  701. package/src/api/ton/TonGetAddress.ts +5 -1
  702. package/src/api/ton/TonSignData.ts +5 -1
  703. package/src/api/ton/TonSignMessage.ts +5 -1
  704. package/src/api/ton/TonSignProof.ts +5 -1
  705. package/src/api/tron/TronGetAddress.ts +4 -0
  706. package/src/api/tron/TronSignMessage.ts +19 -8
  707. package/src/api/tron/TronSignTransaction.ts +5 -1
  708. package/src/api/utils.ts +32 -3
  709. package/src/api/xrp/XrpGetAddress.ts +4 -0
  710. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  711. package/src/constants/index.ts +1 -4
  712. package/src/core/RequestQueue.ts +1 -0
  713. package/src/core/deviceEventRegistration.ts +27 -0
  714. package/src/core/index.ts +381 -152
  715. package/src/core/uiPromiseRegistry.ts +63 -0
  716. package/src/data/messages/messages-protocol-v2.json +1138 -441
  717. package/src/data/messages/messages.json +286 -1
  718. package/src/data-manager/DataManager.ts +132 -41
  719. package/src/data-manager/TransportManager.ts +7 -1
  720. package/src/data-manager/connectSettings.ts +11 -0
  721. package/src/device/Device.ts +898 -296
  722. package/src/device/DeviceCommands.ts +193 -158
  723. package/src/device/DeviceConnector.ts +44 -21
  724. package/src/device/DeviceFeaturesState.ts +25 -0
  725. package/src/device/DevicePool.ts +101 -23
  726. package/src/device/DeviceStateMapper.ts +416 -0
  727. package/src/device/DeviceStateProjector.ts +152 -0
  728. package/src/device/DeviceStateStore.ts +232 -0
  729. package/src/device/DeviceWalletSessionStore.ts +144 -0
  730. package/src/device/cloneDeviceState.ts +39 -0
  731. package/src/device/deviceIdentity.ts +18 -0
  732. package/src/deviceProfile/buildDeviceFeatures.ts +223 -189
  733. package/src/deviceProfile/index.ts +0 -1
  734. package/src/deviceProfile/protocolV2DeviceIdentity.ts +35 -0
  735. package/src/events/device.ts +22 -1
  736. package/src/events/logBlockEvent.ts +80 -2
  737. package/src/events/ui-promise.ts +4 -2
  738. package/src/events/ui-request.ts +61 -4
  739. package/src/events/ui-response.ts +12 -2
  740. package/src/index.ts +12 -0
  741. package/src/inject.ts +97 -45
  742. package/src/lowLevelInject.ts +11 -4
  743. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  744. package/src/protocols/protocol-v2/features.ts +100 -33
  745. package/src/protocols/protocol-v2/firmware.ts +3 -1
  746. package/src/protocols/protocol-v2/index.ts +8 -1
  747. package/src/protocols/protocol-v2/resources.ts +257 -0
  748. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  749. package/src/protocols/protocol-v2/uiInteraction.ts +250 -0
  750. package/src/protocols/protocol-v2/unlockPolicy.ts +1 -0
  751. package/src/protocols/protocol-v2/unlockPolicyRunner.ts +131 -0
  752. package/src/protocols/protocol-v2/walletSession.ts +463 -0
  753. package/src/topLevelInject.ts +11 -4
  754. package/src/types/api/checkAllFirmwareRelease.ts +72 -9
  755. package/src/types/api/checkBLEFirmwareRelease.ts +4 -13
  756. package/src/types/api/checkBootloaderRelease.ts +2 -6
  757. package/src/types/api/checkFirmwareRelease.ts +2 -13
  758. package/src/types/api/checkFirmwareTypeAvailable.ts +2 -2
  759. package/src/types/api/detectDeviceConnectProtocol.ts +6 -0
  760. package/src/types/api/deviceSettings.ts +26 -2
  761. package/src/types/api/deviceUnlock.ts +13 -2
  762. package/src/types/api/deviceUpdateBootloader.ts +6 -0
  763. package/src/types/api/export.ts +37 -1
  764. package/src/types/api/firmwareUpdate.ts +101 -5
  765. package/src/types/api/firmwareUpdateCapabilities.ts +9 -0
  766. package/src/types/api/firmwareUpdatePlan.ts +38 -0
  767. package/src/types/api/firmwareUpdatePreparedPlan.ts +53 -0
  768. package/src/types/api/getDeviceState.ts +19 -0
  769. package/src/types/api/getFeatures.ts +3 -0
  770. package/src/types/api/getOnekeyFeatures.ts +3 -0
  771. package/src/types/api/getPassphraseState.ts +9 -11
  772. package/src/types/api/index.ts +54 -64
  773. package/src/types/api/kaspaSignTransaction.ts +60 -4
  774. package/src/types/api/openWalletSession.ts +54 -0
  775. package/src/types/api/protocolV2.ts +33 -141
  776. package/src/types/api/protocolV2ResourceManifest.ts +19 -0
  777. package/src/types/api/sessionCache.ts +19 -0
  778. package/src/types/device.ts +216 -10
  779. package/src/types/params.ts +9 -2
  780. package/src/types/settings.ts +86 -24
  781. package/src/utils/assets.ts +4 -1
  782. package/src/utils/deviceFeaturesCompat.ts +191 -0
  783. package/src/utils/deviceFeaturesUtils.ts +65 -47
  784. package/src/utils/deviceInfoUtils.ts +29 -69
  785. package/src/utils/deviceSettings.ts +174 -39
  786. package/src/utils/deviceVersionUtils.ts +25 -44
  787. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  788. package/src/utils/homescreen.ts +40 -0
  789. package/src/utils/index.ts +27 -3
  790. package/src/utils/networkUtils.ts +274 -16
  791. package/src/utils/pro2Nft.ts +142 -0
  792. package/src/utils/pro2Wallpaper.ts +130 -0
  793. package/src/utils/tracing.ts +3 -1
  794. package/src/utils/uiProgressThrottle.ts +63 -0
  795. package/tsconfig.type-tests.json +12 -0
  796. package/dist/api/GetDeviceInfo.d.ts +0 -9
  797. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  798. package/dist/api/firmware/progressThrottle.d.ts +0 -3
  799. package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
  800. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +0 -13
  801. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +0 -1
  802. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
  803. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  804. package/dist/types/api/getDeviceInfo.d.ts +0 -87
  805. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  806. package/src/api/GetDeviceInfo.ts +0 -145
  807. package/src/api/firmware/progressThrottle.ts +0 -44
  808. package/src/api/protocol-v2/FilesystemDiskControl.ts +0 -50
  809. package/src/deviceProfile/buildDeviceProfile.ts +0 -352
  810. package/src/types/api/getDeviceInfo.ts +0 -101
@@ -8,6 +8,7 @@ import { shouldUpdateBootloaderForClassicAndMini } from './bootloaderHelper';
8
8
 
9
9
  import type { Features } from '../../types';
10
10
  import type { EFirmwareType } from '@onekeyfe/hd-shared';
11
+ import type { FirmwareByteSource } from './FirmwareArtifactSource';
11
12
 
12
13
  export function checkNeedUpdateBootForTouch(features: Features, firmwareType: EFirmwareType) {
13
14
  const deviceType = getDeviceType(features);
@@ -62,8 +63,7 @@ export function checkNeedUpdateBootForClassicAndMini({
62
63
  }
63
64
 
64
65
  const INIT_DATA_CHUNK_SIZE = 16 * 1024;
65
- export function checkBootloaderLength(data: ArrayBuffer) {
66
- const chunk = new Uint8Array(data.slice(0, Math.min(INIT_DATA_CHUNK_SIZE, data.byteLength)));
66
+ const readBootloaderLength = (chunk: Uint8Array) => {
67
67
  const buffer = ByteBuffer.wrap(chunk, undefined, undefined, true);
68
68
  buffer.LE();
69
69
  // byte 'O', 'K', 'T', 'B'
@@ -77,6 +77,21 @@ export function checkBootloaderLength(data: ArrayBuffer) {
77
77
  buffer.readUint32();
78
78
  // codelen
79
79
  const codelen = buffer.readUint32();
80
- const bootloaderLength = hdrlen + codelen;
81
- return bootloaderLength === data.byteLength;
80
+ return hdrlen + codelen;
81
+ };
82
+
83
+ export function checkBootloaderLength(data: ArrayBuffer) {
84
+ if (data.byteLength < 16) {
85
+ return false;
86
+ }
87
+ const chunk = new Uint8Array(data.slice(0, Math.min(INIT_DATA_CHUNK_SIZE, data.byteLength)));
88
+ return readBootloaderLength(chunk) === data.byteLength;
82
89
  }
90
+
91
+ export const checkBootloaderSourceLength = async (source: FirmwareByteSource) => {
92
+ if (source.size < 16) {
93
+ return false;
94
+ }
95
+ const chunk = new Uint8Array(await source.readAt(0, Math.min(INIT_DATA_CHUNK_SIZE, source.size)));
96
+ return readBootloaderLength(chunk) === source.size;
97
+ };
@@ -10,6 +10,7 @@ import { bytesToHex } from '../helpers/hexUtils';
10
10
  import { DataManager } from '../../data-manager';
11
11
  import { DevicePool } from '../../device/DevicePool';
12
12
  import { buildProtocolV1FeaturesPayload } from '../../deviceProfile';
13
+ import { openFirmwareByteSource, readFirmwareByteSourceFully } from './FirmwareArtifactSource';
13
14
 
14
15
  import type { KnownDevice } from '../../types';
15
16
  import type { TypedCall, TypedResponseMessage } from '../../device/DeviceCommands';
@@ -17,6 +18,7 @@ import type { PROTO } from '../../constants';
17
18
  import type { CoreMessage, IFirmwareUpdateProgressType } from '../../events';
18
19
  import type { Success } from '@onekeyfe/hd-transport';
19
20
  import type { Device } from '../../device/Device';
21
+ import type { FirmwareByteSource } from './FirmwareArtifactSource';
20
22
 
21
23
  const NEW_BOOT_UPRATE_FIRMWARE_VERSION = '2.4.5';
22
24
  const SESSION_ERROR = 'session not found';
@@ -88,17 +90,20 @@ export const waitBleInstall = async (updateType: string) => {
88
90
  }
89
91
  };
90
92
 
91
- export const uploadFirmware = async (
93
+ const toArrayBuffer = (payload: ArrayBuffer | Buffer): ArrayBuffer => {
94
+ if (payload instanceof ArrayBuffer) {
95
+ return payload;
96
+ }
97
+ return new Uint8Array(payload.buffer, payload.byteOffset, payload.byteLength).slice().buffer;
98
+ };
99
+
100
+ export const uploadFirmwareFromSource = async (
92
101
  updateType: 'firmware' | 'ble',
93
102
  typedCall: TypedCall,
94
103
  postMessage: (message: CoreMessage) => void,
95
104
  device: Device,
96
- {
97
- payload,
98
- rebootOnSuccess,
99
- }: PROTO.FirmwareUpload & {
100
- rebootOnSuccess?: boolean;
101
- },
105
+ source: FirmwareByteSource,
106
+ rebootOnSuccess?: boolean,
102
107
  isUpdateBootloader?: boolean
103
108
  ) => {
104
109
  const deviceType = device.getCurrentDeviceType();
@@ -119,20 +124,20 @@ export const uploadFirmware = async (
119
124
  if (supportUpgradeFileHeader) {
120
125
  // Extract and validate firmware header (first 1KB)
121
126
  const HEADER_SIZE = 1024;
122
- if (payload.byteLength < HEADER_SIZE) {
127
+ if (source.size < HEADER_SIZE) {
123
128
  throw ERRORS.TypedError(
124
129
  HardwareErrorCode.RuntimeError,
125
- `firmware payload too small: ${payload.byteLength} bytes, expected at least ${HEADER_SIZE} bytes`
130
+ `firmware payload too small: ${source.size} bytes, expected at least ${HEADER_SIZE} bytes`
126
131
  );
127
132
  }
128
133
 
129
134
  Log.debug('Uploading firmware header:', {
130
135
  size: HEADER_SIZE,
131
- totalSize: payload.byteLength,
136
+ totalSize: source.size,
132
137
  });
133
138
  postProgressTip(device, 'UploadingFirmwareHeader', postMessage);
134
139
 
135
- const header = new Uint8Array(payload.slice(0, HEADER_SIZE));
140
+ const header = new Uint8Array(await source.readAt(0, HEADER_SIZE));
136
141
 
137
142
  try {
138
143
  const headerRes = await typedCall('UpgradeFileHeader', 'Success', {
@@ -169,6 +174,9 @@ export const uploadFirmware = async (
169
174
  postProgressMessage(device, 0, 'installingFirmware', postMessage);
170
175
  let updateResponse: TypedResponseMessage<'Success'>;
171
176
  try {
177
+ // Classic/Mini bootloaders accept one protobuf payload and do not expose
178
+ // a request-range protocol. Other device families remain fully streamed.
179
+ const payload = await readFirmwareByteSourceFully(source);
172
180
  updateResponse = await typedCall('FirmwareUpload', 'Success', {
173
181
  payload,
174
182
  });
@@ -200,9 +208,7 @@ export const uploadFirmware = async (
200
208
  updateType,
201
209
  postMessage,
202
210
  device,
203
- {
204
- payload,
205
- },
211
+ source,
206
212
  rebootOnSuccess
207
213
  );
208
214
  return response.message;
@@ -211,7 +217,7 @@ export const uploadFirmware = async (
211
217
 
212
218
  postConfirmationMessage(device);
213
219
  postProgressTip(device, 'ConfirmOnDevice', postMessage);
214
- const length = payload.byteLength;
220
+ const length = source.size;
215
221
 
216
222
  let response = await typedCall('FirmwareErase', ['FirmwareRequest', 'Success'], { length });
217
223
  postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
@@ -220,7 +226,7 @@ export const uploadFirmware = async (
220
226
  const start = response.message.offset!;
221
227
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
222
228
  const end = response.message.offset! + response.message.length!;
223
- const chunk = payload.slice(start, end);
229
+ const chunk = await source.readAt(start, end - start);
224
230
 
225
231
  if (start > 0) {
226
232
  postProgressMessage(
@@ -249,11 +255,45 @@ export const uploadFirmware = async (
249
255
  throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'uploadFirmware: unknown device model');
250
256
  };
251
257
 
258
+ export const uploadFirmware = async (
259
+ updateType: 'firmware' | 'ble',
260
+ typedCall: TypedCall,
261
+ postMessage: (message: CoreMessage) => void,
262
+ device: Device,
263
+ {
264
+ payload,
265
+ rebootOnSuccess,
266
+ }: PROTO.FirmwareUpload & {
267
+ rebootOnSuccess?: boolean;
268
+ },
269
+ isUpdateBootloader?: boolean
270
+ ) => {
271
+ const source = await openFirmwareByteSource({
272
+ binary: toArrayBuffer(payload),
273
+ });
274
+ if (!source) {
275
+ throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'firmware payload is empty');
276
+ }
277
+ try {
278
+ return await uploadFirmwareFromSource(
279
+ updateType,
280
+ typedCall,
281
+ postMessage,
282
+ device,
283
+ source,
284
+ rebootOnSuccess,
285
+ isUpdateBootloader
286
+ );
287
+ } finally {
288
+ await source.close();
289
+ }
290
+ };
291
+
252
292
  const newTouchUpdateProcess = async (
253
293
  updateType: 'firmware' | 'ble',
254
294
  postMessage: (message: CoreMessage) => void,
255
295
  device: Device,
256
- { payload }: PROTO.FirmwareUpload,
296
+ source: FirmwareByteSource,
257
297
  rebootOnSuccess = true
258
298
  ) => {
259
299
  let typedCall = device.getCommands().typedCall.bind(device.getCommands());
@@ -263,13 +303,13 @@ const newTouchUpdateProcess = async (
263
303
  const env = DataManager.getSettings('env');
264
304
  const perPackageSize = DataManager.isBleConnect(env) ? 16 : 128;
265
305
  const chunkSize = 1024 * perPackageSize;
266
- const totalChunks = Math.ceil(payload.byteLength / chunkSize);
306
+ const totalChunks = Math.ceil(source.size / chunkSize);
267
307
  let offset = 0;
268
308
  for (let i = 0; i < totalChunks; i++) {
269
309
  const chunkStart = i * chunkSize;
270
- const chunkEnd = Math.min(chunkStart + chunkSize, payload.byteLength);
310
+ const chunkEnd = Math.min(chunkStart + chunkSize, source.size);
271
311
  const chunkLength = chunkEnd - chunkStart;
272
- const chunk = payload.slice(chunkStart, chunkEnd);
312
+ const chunk = await source.readAt(chunkStart, chunkLength);
273
313
  const overwrite = i === 0;
274
314
  const progress = Math.round(((i + 1) / totalChunks) * 100);
275
315
  const writeRes = await emmcFileWriteWithRetry(
@@ -322,7 +362,12 @@ const newTouchUpdateProcess = async (
322
362
  try {
323
363
  if (isBleReconnect) {
324
364
  try {
325
- await device.deviceConnector?.acquire(device.originalDescriptor.id, null, true);
365
+ await device.deviceConnector?.acquire(
366
+ device.originalDescriptor.id,
367
+ null,
368
+ true,
369
+ device.originalDescriptor.protocolType
370
+ );
326
371
  const typedCall = device.getCommands().typedCall.bind(device.getCommands());
327
372
  await Promise.race([
328
373
  typedCall('Initialize', 'Features', {}),
@@ -341,7 +386,8 @@ const newTouchUpdateProcess = async (
341
386
  const devicesDescriptor = deviceDiff?.descriptors ?? [];
342
387
  const { deviceList } = await DevicePool.getDevices(
343
388
  devicesDescriptor,
344
- device.originalDescriptor.id
389
+ device.originalDescriptor.id,
390
+ { connectProtocol: device.originalDescriptor.protocolType }
345
391
  );
346
392
  if (deviceList.length === 1) {
347
393
  device.updateFromCache(deviceList[0]);
@@ -416,7 +462,12 @@ const emmcFileWriteWithRetry = async (
416
462
  const env = DataManager.getSettings('env');
417
463
  if (DataManager.isBleConnect(env)) {
418
464
  await wait(3000);
419
- await device.deviceConnector?.acquire(device.originalDescriptor.id, null, true);
465
+ await device.deviceConnector?.acquire(
466
+ device.originalDescriptor.id,
467
+ null,
468
+ true,
469
+ device.originalDescriptor.protocolType
470
+ );
420
471
  await device.initialize();
421
472
  } else if (
422
473
  error?.message?.indexOf(SESSION_ERROR) > -1 ||
@@ -424,7 +475,9 @@ const emmcFileWriteWithRetry = async (
424
475
  ) {
425
476
  const deviceDiff = await device.deviceConnector?.enumerate();
426
477
  const devicesDescriptor = deviceDiff?.descriptors ?? [];
427
- const { deviceList } = await DevicePool.getDevices(devicesDescriptor, undefined);
478
+ const { deviceList } = await DevicePool.getDevices(devicesDescriptor, undefined, {
479
+ connectProtocol: device.originalDescriptor.protocolType,
480
+ });
428
481
  if (deviceList.length === 1 && deviceList[0]?.isBootloader()) {
429
482
  device.updateFromCache(deviceList[0]);
430
483
  await device.acquire();
@@ -490,6 +543,67 @@ export const updateResource = async (
490
543
  return processResourceRequest(typedCall, res, data);
491
544
  };
492
545
 
546
+ export const updateResourceFromSource = async (
547
+ typedCall: TypedCall,
548
+ fileName: string,
549
+ source: FirmwareByteSource,
550
+ onConfirmAfter?: () => void
551
+ ) => {
552
+ const initialLength = Math.min(INIT_DATA_CHUNK_SIZE, source.size);
553
+ const initialChunk = new Uint8Array(await source.readAt(0, initialLength));
554
+ let response = await typedCall('ResourceUpdate', ['ResourceRequest', 'Success'], {
555
+ file_name: fileName,
556
+ data_length: source.size,
557
+ initial_data_chunk: bytesToHex(initialChunk),
558
+ hash: bytesToHex(blake2s(initialChunk)),
559
+ });
560
+ onConfirmAfter?.();
561
+
562
+ while (response.type !== 'Success') {
563
+ const { offset, data_length: dataLength } = response.message;
564
+ if (
565
+ !Number.isSafeInteger(offset) ||
566
+ offset === undefined ||
567
+ offset < 0 ||
568
+ !Number.isSafeInteger(dataLength) ||
569
+ dataLength === undefined ||
570
+ dataLength <= 0 ||
571
+ offset + dataLength > source.size
572
+ ) {
573
+ throw ERRORS.TypedError(
574
+ HardwareErrorCode.RuntimeError,
575
+ 'Device requested an invalid firmware resource range'
576
+ );
577
+ }
578
+ const chunk = new Uint8Array(await source.readAt(offset, dataLength));
579
+ response = await typedCall('ResourceAck', ['ResourceRequest', 'Success'], {
580
+ data_chunk: bytesToHex(chunk),
581
+ hash: bytesToHex(blake2s(chunk)),
582
+ });
583
+ }
584
+ return response.message;
585
+ };
586
+
587
+ export const updateResourcesFromSources = async (
588
+ typedCall: TypedCall,
589
+ postMessage: (message: CoreMessage) => void,
590
+ device: Device,
591
+ entries: ReadonlyArray<{ entryName: string; source: FirmwareByteSource }>
592
+ ) => {
593
+ postProgressTip(device, 'UpdateSysResource', postMessage);
594
+ for (const [index, entry] of entries.entries()) {
595
+ await updateResourceFromSource(typedCall, entry.entryName, entry.source);
596
+ postProgressMessage(
597
+ device,
598
+ Math.floor(((index + 1) / entries.length) * 100),
599
+ 'installingFirmware',
600
+ postMessage
601
+ );
602
+ }
603
+ postProgressTip(device, 'UpdateSysResourceSuccess', postMessage);
604
+ return true;
605
+ };
606
+
493
607
  export const updateResources = async (
494
608
  typedCall: TypedCall,
495
609
  postMessage: (message: CoreMessage) => void,
@@ -524,11 +638,28 @@ export const updateBootloader = async (
524
638
  typedCall: TypedCall,
525
639
  postMessage: (message: CoreMessage) => void,
526
640
  device: Device,
527
- source: ArrayBuffer
641
+ data: ArrayBuffer
642
+ ) => {
643
+ const source = await openFirmwareByteSource({ binary: data });
644
+ if (!source) {
645
+ throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'bootloader payload is empty');
646
+ }
647
+ try {
648
+ return await updateBootloaderFromSource(typedCall, postMessage, device, source);
649
+ } finally {
650
+ await source.close();
651
+ }
652
+ };
653
+
654
+ export const updateBootloaderFromSource = async (
655
+ typedCall: TypedCall,
656
+ postMessage: (message: CoreMessage) => void,
657
+ device: Device,
658
+ source: FirmwareByteSource
528
659
  ) => {
529
660
  postProgressTip(device, 'UpdateBootloader', postMessage);
530
661
  postProgressMessage(device, Math.floor(0), 'installingFirmware', postMessage);
531
- await updateResource(typedCall, 'bootloader.bin', source, () => {
662
+ await updateResourceFromSource(typedCall, 'bootloader.bin', source, () => {
532
663
  postProcessingMessage('resource', postMessage);
533
664
  });
534
665
  postProgressMessage(device, Math.floor(100), 'installingFirmware', postMessage);
@@ -27,8 +27,8 @@ export function supportBatchPublicKeyByDevice(
27
27
  const currentVersion = device.getCurrentFirmwareVersionString() ?? '0.0.0';
28
28
  const deviceType = device.getCurrentDeviceType();
29
29
 
30
- // Pro2 (Protocol V2) 版本线独立于 Pro 系列,固件从首个版本即支持 batch / include_node,
31
- // 不能套用下面 Pro 系列的 4.x 门槛。
30
+ // Pro2 has an independent version line and supports batch/include_node from its first
31
+ // firmware version, so the Protocol V1 Pro 4.x threshold does not apply.
32
32
  if (device.isProtocolV2() || deviceType === EDeviceType.Pro2) {
33
33
  return true;
34
34
  }
@@ -10,6 +10,67 @@ export function validateNonEmptyString(value: unknown, name: string): string {
10
10
  return value;
11
11
  }
12
12
 
13
+ const PROTOCOL_V2_FILESYSTEM_VOLUMES = new Set(['vol0', 'vol1']);
14
+ // Bootloader and romloader reserve 128 bytes including the terminating NUL.
15
+ const MAX_PROTOCOL_V2_FILESYSTEM_PATH_BYTES = 127;
16
+
17
+ function getUtf8ByteLength(value: string) {
18
+ return Array.from(value).reduce((length, character) => {
19
+ const codePoint = character.codePointAt(0) ?? 0;
20
+ if (codePoint <= 0x7f) return length + 1;
21
+ if (codePoint <= 0x7ff) return length + 2;
22
+ if (codePoint <= 0xffff) return length + 3;
23
+ return length + 4;
24
+ }, 0);
25
+ }
26
+
27
+ export function validateProtocolV2FilesystemPath(
28
+ value: unknown,
29
+ name: string,
30
+ options: { allowVolumeRoot?: boolean } = {}
31
+ ): string {
32
+ const rawPath = validateNonEmptyString(value, name).trim();
33
+ const containsUnsupportedCharacter = Array.from(rawPath).some(character => {
34
+ const codePoint = character.charCodeAt(0);
35
+ return codePoint <= 0x1f || codePoint === 0x7f || character === '\\';
36
+ });
37
+
38
+ if (containsUnsupportedCharacter) {
39
+ throw invalidParameter(`Parameter [${name}] contains unsupported path characters.`);
40
+ }
41
+
42
+ const match = /^([a-zA-Z0-9]+):(.*)$/.exec(rawPath);
43
+ if (!match) {
44
+ throw invalidParameter(
45
+ `Parameter [${name}] must use a supported Protocol V2 filesystem volume.`
46
+ );
47
+ }
48
+
49
+ const volume = match[1].toLowerCase();
50
+ if (!PROTOCOL_V2_FILESYSTEM_VOLUMES.has(volume)) {
51
+ throw invalidParameter(`Parameter [${name}] uses an unsupported filesystem volume.`);
52
+ }
53
+
54
+ const rawSuffix = match[2];
55
+ if (rawSuffix.length === 0) {
56
+ if (options.allowVolumeRoot) return `${volume}:`;
57
+ throw invalidParameter(`Parameter [${name}] must identify a filesystem entry.`);
58
+ }
59
+
60
+ const suffix = rawSuffix.startsWith('/') ? rawSuffix : `/${rawSuffix}`;
61
+ const segments = suffix.slice(1).split('/');
62
+ if (segments.some(segment => segment.length === 0 || segment === '.' || segment === '..')) {
63
+ throw invalidParameter(`Parameter [${name}] contains an invalid path segment.`);
64
+ }
65
+
66
+ const canonicalPath = `${volume}:${rawSuffix.startsWith('/') ? '/' : ''}${segments.join('/')}`;
67
+ if (getUtf8ByteLength(canonicalPath) > MAX_PROTOCOL_V2_FILESYSTEM_PATH_BYTES) {
68
+ throw invalidParameter(`Parameter [${name}] exceeds the maximum filesystem path length.`);
69
+ }
70
+
71
+ return canonicalPath;
72
+ }
73
+
13
74
  export function validateNonNegativeInteger(
14
75
  value: unknown,
15
76
  name: string,
@@ -20,7 +20,7 @@ export type SchemaParam = {
20
20
  allowNegative?: boolean;
21
21
  };
22
22
 
23
- const invalidParameter = (message: string) =>
23
+ export const invalidParameter = (message: string) =>
24
24
  ERRORS.TypedError(HardwareErrorCode.CallMethodInvalidParameter, message);
25
25
 
26
26
  const invalidResponse = (message: string) =>