@onekeyfe/hd-core 1.2.0-alpha.18 → 1.2.0-alpha.181

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 (846) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +390 -0
  2. package/__tests__/DeviceCommands.test.ts +586 -9
  3. package/__tests__/DeviceEventRegistration.test.ts +6 -0
  4. package/__tests__/base64Data.test.ts +69 -0
  5. package/__tests__/chain-params-onekey-compatibility.test.ts +229 -0
  6. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +878 -0
  7. package/__tests__/check-firmware-release-protocol-v2.test.ts +270 -0
  8. package/__tests__/connectSettings.test.ts +45 -5
  9. package/__tests__/core-dispose.test.ts +34 -0
  10. package/__tests__/core-error-output.test.ts +39 -0
  11. package/__tests__/core-initialization.test.ts +23 -0
  12. package/__tests__/device-connector-protocol.test.ts +102 -0
  13. package/__tests__/device-features-state.test.ts +78 -0
  14. package/__tests__/device-identity.test.ts +52 -0
  15. package/__tests__/device-initialize-timeout.test.ts +56 -0
  16. package/__tests__/device-lifecycle-events.test.ts +752 -0
  17. package/__tests__/device-pool-state.test.ts +191 -0
  18. package/__tests__/device-settings.test.ts +665 -0
  19. package/__tests__/device-state-contract.test.ts +28 -0
  20. package/__tests__/device-state-events.test.ts +286 -0
  21. package/__tests__/device-state-mapper.test.ts +344 -0
  22. package/__tests__/device-state-projector.test.ts +114 -0
  23. package/__tests__/device-state-store.test.ts +109 -0
  24. package/__tests__/device-utils.test.ts +168 -0
  25. package/__tests__/device-wallet-session-store.test.ts +474 -1
  26. package/__tests__/deviceFeaturesUtils.test.ts +13 -1
  27. package/__tests__/devicePoolBootloaderPath.test.ts +64 -0
  28. package/__tests__/deviceSettings.test.ts +117 -0
  29. package/__tests__/deviceUploadNft.test.ts +348 -0
  30. package/__tests__/evmLedgerLegacySafety.test.ts +10 -7
  31. package/__tests__/evmSignTransaction.test.ts +69 -0
  32. package/__tests__/evmSignTypedData.test.ts +80 -0
  33. package/__tests__/filesystemValidation.test.ts +53 -0
  34. package/__tests__/firmware-update/check-all-firmware-release.test.ts +175 -0
  35. package/__tests__/firmware-update/device-update-bootloader.test.ts +109 -0
  36. package/__tests__/firmware-update/firmware-artifact-source.test.ts +171 -0
  37. package/__tests__/firmware-update/firmware-host-binding.test.ts +79 -0
  38. package/__tests__/firmware-update/firmware-preparation-error.test.ts +27 -0
  39. package/__tests__/firmware-update/firmware-prepared-host-digest.test.ts +583 -0
  40. package/__tests__/firmware-update/firmware-prepared-resource-archive.test.ts +171 -0
  41. package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +438 -0
  42. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +13 -0
  43. package/__tests__/firmware-update/firmware-update-plan-bootloader-identity.test.ts +474 -0
  44. package/__tests__/firmware-update/firmware-update-plan.test.ts +819 -0
  45. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +297 -0
  46. package/__tests__/firmware-update/firmware-update-prepared-resource-executors.test.ts +326 -0
  47. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +457 -0
  48. package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +237 -0
  49. package/__tests__/firmware-update/firmware-update-v4-install-poll.test.ts +525 -0
  50. package/__tests__/firmware-update/firmware-update-v4-parameters.test.ts +85 -0
  51. package/__tests__/firmware-update/firmware-upload-source.test.ts +70 -0
  52. package/__tests__/get-device-state.test.ts +617 -0
  53. package/__tests__/homescreen.test.ts +58 -1
  54. package/__tests__/kaspa-public-types.type-test.ts +16 -0
  55. package/__tests__/kaspa-use-tweak-pro2.test.ts +20 -0
  56. package/__tests__/kaspaSignTransaction.test.ts +16 -29
  57. package/__tests__/known-device-public-types.type-test.ts +3 -0
  58. package/__tests__/logBlockEvent.test.ts +140 -1
  59. package/__tests__/method-protocol-support.test.ts +144 -0
  60. package/__tests__/networkUtils.test.ts +406 -0
  61. package/__tests__/open-wallet-session-error-response.test.ts +43 -0
  62. package/__tests__/open-wallet-session.test.ts +1899 -0
  63. package/__tests__/pro2Nft.test.ts +108 -0
  64. package/__tests__/pro2Wallpaper.test.ts +8 -19
  65. package/__tests__/protocol-binding.test.ts +89 -0
  66. package/__tests__/protocol-v2-firmware-targets.test.ts +105 -0
  67. package/__tests__/protocol-v2-ping.test.ts +28 -0
  68. package/__tests__/protocol-v2-resources.test.ts +371 -0
  69. package/__tests__/protocol-v2-ui-lifecycle.test.ts +91 -0
  70. package/__tests__/protocol-v2-unlock-policy.test.ts +507 -0
  71. package/__tests__/protocol-v2.test.ts +7577 -2183
  72. package/__tests__/protocolV2FileWrite.test.ts +193 -0
  73. package/__tests__/protocolV2UiInteraction.test.ts +63 -0
  74. package/__tests__/public-device-state-api.test.ts +275 -0
  75. package/__tests__/public-pro2-api-boundary.test.ts +107 -0
  76. package/__tests__/refresh-device-state.test.ts +103 -0
  77. package/__tests__/request-context-logging.test.ts +16 -0
  78. package/__tests__/resourceBase64Boundary.test.ts +48 -0
  79. package/__tests__/search-devices.test.ts +192 -0
  80. package/__tests__/ton-sign-message.test.ts +84 -0
  81. package/__tests__/tron-sign-message-init.test.ts +74 -0
  82. package/__tests__/uiProgressThrottle.test.ts +74 -0
  83. package/__tests__/uiPromiseRegistry.test.ts +115 -0
  84. package/dist/api/BaseMethod.d.ts +10 -2
  85. package/dist/api/BaseMethod.d.ts.map +1 -1
  86. package/dist/api/CheckAllFirmwareRelease.d.ts +25 -1
  87. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  88. package/dist/api/CheckBLEFirmwareRelease.d.ts +3 -2
  89. package/dist/api/CheckBLEFirmwareRelease.d.ts.map +1 -1
  90. package/dist/api/CheckBootloaderRelease.d.ts +2 -1
  91. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  92. package/dist/api/CheckFirmwareRelease.d.ts +3 -2
  93. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  94. package/dist/api/CipherKeyValue.d.ts +1 -0
  95. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  96. package/dist/api/ClearSessionCache.d.ts.map +1 -1
  97. package/dist/api/DetectDeviceConnectProtocol.d.ts +7 -0
  98. package/dist/api/DetectDeviceConnectProtocol.d.ts.map +1 -0
  99. package/dist/api/DirList.d.ts +1 -0
  100. package/dist/api/DirList.d.ts.map +1 -1
  101. package/dist/api/DirMake.d.ts +1 -0
  102. package/dist/api/DirMake.d.ts.map +1 -1
  103. package/dist/api/DirRemove.d.ts +1 -0
  104. package/dist/api/DirRemove.d.ts.map +1 -1
  105. package/dist/api/FileDelete.d.ts +1 -0
  106. package/dist/api/FileDelete.d.ts.map +1 -1
  107. package/dist/api/FileRead.d.ts +1 -0
  108. package/dist/api/FileRead.d.ts.map +1 -1
  109. package/dist/api/FileWrite.d.ts +1 -0
  110. package/dist/api/FileWrite.d.ts.map +1 -1
  111. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  112. package/dist/api/FirmwareUpdateV2.d.ts +13 -2
  113. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  114. package/dist/api/FirmwareUpdateV3.d.ts +7 -3
  115. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  116. package/dist/api/FirmwareUpdateV4.d.ts +65 -14
  117. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  118. package/dist/api/GetDeviceState.d.ts +8 -0
  119. package/dist/api/GetDeviceState.d.ts.map +1 -0
  120. package/dist/api/GetFeatures.d.ts +1 -1
  121. package/dist/api/GetFeatures.d.ts.map +1 -1
  122. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  123. package/dist/api/GetPassphraseState.d.ts +1 -0
  124. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  125. package/dist/api/OpenWalletSession.d.ts +8 -0
  126. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  127. package/dist/api/PathInfo.d.ts +1 -0
  128. package/dist/api/PathInfo.d.ts.map +1 -1
  129. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  130. package/dist/api/SearchDevices.d.ts +3 -0
  131. package/dist/api/SearchDevices.d.ts.map +1 -1
  132. package/dist/api/UploadPortfolio.d.ts +1 -2
  133. package/dist/api/UploadPortfolio.d.ts.map +1 -1
  134. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  135. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  136. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  137. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  138. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  139. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  140. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  141. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  142. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  143. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  144. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  145. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  146. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  147. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  148. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  149. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  150. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  151. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  152. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  153. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  154. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  155. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  156. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  157. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  158. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  159. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  160. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  161. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  162. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  163. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  164. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  165. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  166. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  167. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  168. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  169. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  170. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  171. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  172. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  173. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  174. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  175. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  176. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  177. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  178. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  179. package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
  180. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  181. package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
  182. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  183. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
  184. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  185. package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
  186. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  187. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  188. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  189. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  190. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  191. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  192. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  193. package/dist/api/device/DeviceCancel.d.ts +1 -0
  194. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  195. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  196. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  197. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  198. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  199. package/dist/api/device/DeviceLock.d.ts +1 -0
  200. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  201. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  202. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  203. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  204. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  205. package/dist/api/device/DeviceSettings.d.ts +1 -0
  206. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  207. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  208. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  209. package/dist/api/device/DeviceUnlock.d.ts +3 -2
  210. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  211. package/dist/api/device/DeviceUpdateBootloader.d.ts +5 -1
  212. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  213. package/dist/api/device/DeviceVerify.d.ts +1 -0
  214. package/dist/api/device/DeviceVerify.d.ts.map +1 -1
  215. package/dist/api/device/DeviceWipe.d.ts +1 -0
  216. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  217. package/dist/api/device/PreInitialize.d.ts +1 -0
  218. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  219. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  220. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  221. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  222. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  223. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  224. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  225. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  226. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  227. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  228. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  229. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  230. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  231. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  232. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  233. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  234. package/dist/api/evm/protocol.d.ts +3 -0
  235. package/dist/api/evm/protocol.d.ts.map +1 -0
  236. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  237. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  238. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  239. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  240. package/dist/api/firmware/FirmwareArtifactSource.d.ts +29 -0
  241. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +1 -0
  242. package/dist/api/firmware/FirmwareHostBinding.d.ts +6 -0
  243. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -0
  244. package/dist/api/firmware/FirmwarePreparationError.d.ts +3 -0
  245. package/dist/api/firmware/FirmwarePreparationError.d.ts.map +1 -0
  246. package/dist/api/firmware/FirmwarePreparedResourceArchive.d.ts +11 -0
  247. package/dist/api/firmware/FirmwarePreparedResourceArchive.d.ts.map +1 -0
  248. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +12 -3
  249. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  250. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +3 -0
  251. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +1 -0
  252. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +57 -0
  253. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -0
  254. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +38 -0
  255. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -0
  256. package/dist/api/firmware/getBinary.d.ts +15 -4
  257. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  258. package/dist/api/firmware/protocolV2Release.d.ts +33 -0
  259. package/dist/api/firmware/protocolV2Release.d.ts.map +1 -0
  260. package/dist/api/firmware/updateBootloader.d.ts +2 -0
  261. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  262. package/dist/api/firmware/uploadFirmware.d.ts +9 -1
  263. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  264. package/dist/api/helpers/base64Data.d.ts +16 -0
  265. package/dist/api/helpers/base64Data.d.ts.map +1 -0
  266. package/dist/api/helpers/filesystemValidation.d.ts +3 -0
  267. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
  268. package/dist/api/helpers/paramsValidator.d.ts +1 -0
  269. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  270. package/dist/api/helpers/protocolV2FileWrite.d.ts +10 -0
  271. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -1
  272. package/dist/api/index.d.ts +5 -29
  273. package/dist/api/index.d.ts.map +1 -1
  274. package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
  275. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  276. package/dist/api/kaspa/KaspaSignTransaction.d.ts +4 -0
  277. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  278. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  279. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  280. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  281. package/dist/api/near/NearGetAddress.d.ts +1 -0
  282. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  283. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  284. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  285. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  286. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  287. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  288. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  289. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  290. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  291. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  292. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  293. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  294. package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
  295. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  296. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  297. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  298. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  299. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  300. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  301. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  302. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  303. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  304. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  305. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  306. package/dist/api/polkadot/PolkadotGetAddress.d.ts +2 -1
  307. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  308. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  309. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  310. package/dist/api/polkadot/networks.d.ts +1 -1
  311. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  312. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  313. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  314. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  315. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +4 -1
  316. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  317. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +1 -0
  318. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  319. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +2 -1
  320. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -1
  321. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +2 -2
  322. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  323. package/dist/api/protocol-v2/DeviceReboot.d.ts +2 -1
  324. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  325. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +1 -0
  326. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -1
  327. package/dist/api/protocol-v2/DeviceUploadNft.d.ts +30 -0
  328. package/dist/api/protocol-v2/DeviceUploadNft.d.ts.map +1 -0
  329. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +3 -3
  330. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -1
  331. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  332. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  333. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  334. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  335. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  336. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  337. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  338. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  339. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  340. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  341. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  342. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  343. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  344. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  345. package/dist/api/solana/SolSignMessage.d.ts +2 -1
  346. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  347. package/dist/api/solana/SolSignOffchainMessage.d.ts +2 -1
  348. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  349. package/dist/api/solana/SolSignTransaction.d.ts +3 -2
  350. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  351. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  352. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  353. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  354. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  355. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  356. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  357. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  358. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  359. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  360. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  361. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  362. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  363. package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
  364. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  365. package/dist/api/sui/SuiGetAddress.d.ts +2 -1
  366. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  367. package/dist/api/sui/SuiGetPublicKey.d.ts +2 -1
  368. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  369. package/dist/api/sui/SuiSignMessage.d.ts +2 -1
  370. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  371. package/dist/api/sui/SuiSignTransaction.d.ts +2 -1
  372. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  373. package/dist/api/ton/TonGetAddress.d.ts +2 -1
  374. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  375. package/dist/api/ton/TonSignData.d.ts +1 -0
  376. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  377. package/dist/api/ton/TonSignMessage.d.ts +2 -1
  378. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  379. package/dist/api/ton/TonSignProof.d.ts +2 -1
  380. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  381. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  382. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  383. package/dist/api/tron/TronSignMessage.d.ts +6 -1
  384. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  385. package/dist/api/tron/TronSignTransaction.d.ts +2 -1
  386. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  387. package/dist/api/utils.d.ts +4 -1
  388. package/dist/api/utils.d.ts.map +1 -1
  389. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  390. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  391. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  392. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  393. package/dist/constants/index.d.ts +1 -1
  394. package/dist/constants/index.d.ts.map +1 -1
  395. package/dist/core/RequestQueue.d.ts +0 -2
  396. package/dist/core/RequestQueue.d.ts.map +1 -1
  397. package/dist/core/deviceEventRegistration.d.ts +2 -0
  398. package/dist/core/deviceEventRegistration.d.ts.map +1 -1
  399. package/dist/core/index.d.ts +8 -3
  400. package/dist/core/index.d.ts.map +1 -1
  401. package/dist/core/uiPromiseRegistry.d.ts +6 -0
  402. package/dist/core/uiPromiseRegistry.d.ts.map +1 -0
  403. package/dist/data-manager/DataManager.d.ts +14 -5
  404. package/dist/data-manager/DataManager.d.ts.map +1 -1
  405. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  406. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  407. package/dist/device/Device.d.ts +82 -14
  408. package/dist/device/Device.d.ts.map +1 -1
  409. package/dist/device/DeviceCommands.d.ts +5 -5
  410. package/dist/device/DeviceCommands.d.ts.map +1 -1
  411. package/dist/device/DeviceConnector.d.ts +4 -3
  412. package/dist/device/DeviceConnector.d.ts.map +1 -1
  413. package/dist/device/DeviceFeaturesState.d.ts +3 -0
  414. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  415. package/dist/device/DevicePool.d.ts +4 -0
  416. package/dist/device/DevicePool.d.ts.map +1 -1
  417. package/dist/device/DeviceStateMapper.d.ts +13 -0
  418. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  419. package/dist/device/DeviceStateProjector.d.ts +7 -0
  420. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  421. package/dist/device/DeviceStateStore.d.ts +21 -0
  422. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  423. package/dist/device/DeviceWalletSessionStore.d.ts +13 -1
  424. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -1
  425. package/dist/device/cloneDeviceState.d.ts +2 -0
  426. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  427. package/dist/device/deviceIdentity.d.ts +5 -0
  428. package/dist/device/deviceIdentity.d.ts.map +1 -0
  429. package/dist/deviceProfile/buildDeviceFeatures.d.ts +3 -1
  430. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  431. package/dist/deviceProfile/index.d.ts +0 -1
  432. package/dist/deviceProfile/index.d.ts.map +1 -1
  433. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
  434. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
  435. package/dist/events/call.d.ts +0 -7
  436. package/dist/events/call.d.ts.map +1 -1
  437. package/dist/events/core.d.ts +2 -2
  438. package/dist/events/core.d.ts.map +1 -1
  439. package/dist/events/device.d.ts +12 -2
  440. package/dist/events/device.d.ts.map +1 -1
  441. package/dist/events/iframe.d.ts +0 -1
  442. package/dist/events/iframe.d.ts.map +1 -1
  443. package/dist/events/logBlockEvent.d.ts +2 -0
  444. package/dist/events/logBlockEvent.d.ts.map +1 -1
  445. package/dist/events/ui-promise.d.ts +4 -2
  446. package/dist/events/ui-promise.d.ts.map +1 -1
  447. package/dist/events/ui-request.d.ts +32 -2
  448. package/dist/events/ui-request.d.ts.map +1 -1
  449. package/dist/events/ui-response.d.ts +10 -2
  450. package/dist/events/ui-response.d.ts.map +1 -1
  451. package/dist/index.d.ts +1690 -847
  452. package/dist/index.d.ts.map +1 -1
  453. package/dist/index.js +10856 -4825
  454. package/dist/inject.d.ts +7 -3
  455. package/dist/inject.d.ts.map +1 -1
  456. package/dist/lowLevelInject.d.ts +1 -2
  457. package/dist/lowLevelInject.d.ts.map +1 -1
  458. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  459. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  460. package/dist/protocols/protocol-v2/features.d.ts +31 -8
  461. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  462. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
  463. package/dist/protocols/protocol-v2/index.d.ts +2 -2
  464. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  465. package/dist/protocols/protocol-v2/resources.d.ts +17 -0
  466. package/dist/protocols/protocol-v2/resources.d.ts.map +1 -0
  467. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
  468. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  469. package/dist/protocols/protocol-v2/uiInteraction.d.ts +7 -4
  470. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -1
  471. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +2 -0
  472. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
  473. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts +22 -0
  474. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts.map +1 -0
  475. package/dist/protocols/protocol-v2/walletSession.d.ts +16 -3
  476. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -1
  477. package/dist/topLevelInject.d.ts.map +1 -1
  478. package/dist/types/api/checkAllFirmwareRelease.d.ts +48 -9
  479. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  480. package/dist/types/api/checkBLEFirmwareRelease.d.ts +2 -13
  481. package/dist/types/api/checkBLEFirmwareRelease.d.ts.map +1 -1
  482. package/dist/types/api/checkBootloaderRelease.d.ts +2 -6
  483. package/dist/types/api/checkBootloaderRelease.d.ts.map +1 -1
  484. package/dist/types/api/checkFirmwareRelease.d.ts +2 -13
  485. package/dist/types/api/checkFirmwareRelease.d.ts.map +1 -1
  486. package/dist/types/api/checkFirmwareTypeAvailable.d.ts +2 -2
  487. package/dist/types/api/checkFirmwareTypeAvailable.d.ts.map +1 -1
  488. package/dist/types/api/detectDeviceConnectProtocol.d.ts +4 -0
  489. package/dist/types/api/detectDeviceConnectProtocol.d.ts.map +1 -0
  490. package/dist/types/api/deviceSettings.d.ts +11 -2
  491. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  492. package/dist/types/api/deviceUnlock.d.ts +6 -2
  493. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  494. package/dist/types/api/deviceUpdateBootloader.d.ts +6 -0
  495. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  496. package/dist/types/api/export.d.ts +8 -3
  497. package/dist/types/api/export.d.ts.map +1 -1
  498. package/dist/types/api/firmwareUpdate.d.ts +67 -5
  499. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  500. package/dist/types/api/firmwareUpdateCapabilities.d.ts +9 -0
  501. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +1 -0
  502. package/dist/types/api/firmwareUpdatePlan.d.ts +28 -0
  503. package/dist/types/api/firmwareUpdatePlan.d.ts.map +1 -0
  504. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +42 -0
  505. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +1 -0
  506. package/dist/types/api/getDeviceState.d.ts +12 -0
  507. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  508. package/dist/types/api/getFeatures.d.ts.map +1 -1
  509. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  510. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  511. package/dist/types/api/index.d.ts +25 -35
  512. package/dist/types/api/index.d.ts.map +1 -1
  513. package/dist/types/api/kaspaSignTransaction.d.ts +15 -2
  514. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  515. package/dist/types/api/openWalletSession.d.ts +35 -0
  516. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  517. package/dist/types/api/protocolV2.d.ts +11 -95
  518. package/dist/types/api/protocolV2.d.ts.map +1 -1
  519. package/dist/types/api/sessionCache.d.ts +4 -1
  520. package/dist/types/api/sessionCache.d.ts.map +1 -1
  521. package/dist/types/device.d.ts +138 -8
  522. package/dist/types/device.d.ts.map +1 -1
  523. package/dist/types/params.d.ts +1 -0
  524. package/dist/types/params.d.ts.map +1 -1
  525. package/dist/types/settings.d.ts +31 -16
  526. package/dist/types/settings.d.ts.map +1 -1
  527. package/dist/utils/assets.d.ts +2 -1
  528. package/dist/utils/assets.d.ts.map +1 -1
  529. package/dist/utils/deviceFeaturesCompat.d.ts +14 -0
  530. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  531. package/dist/utils/deviceFeaturesUtils.d.ts +10 -1
  532. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  533. package/dist/utils/deviceInfoUtils.d.ts +9 -9
  534. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  535. package/dist/utils/deviceSettings.d.ts +39 -7
  536. package/dist/utils/deviceSettings.d.ts.map +1 -1
  537. package/dist/utils/deviceVersionUtils.d.ts +7 -5
  538. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  539. package/dist/utils/homescreen.d.ts +4 -0
  540. package/dist/utils/homescreen.d.ts.map +1 -1
  541. package/dist/utils/index.d.ts +5 -4
  542. package/dist/utils/index.d.ts.map +1 -1
  543. package/dist/utils/networkUtils.d.ts +10 -1
  544. package/dist/utils/networkUtils.d.ts.map +1 -1
  545. package/dist/utils/patch.d.ts +1 -1
  546. package/dist/utils/patch.d.ts.map +1 -1
  547. package/dist/utils/pro2Nft.d.ts +38 -0
  548. package/dist/utils/pro2Nft.d.ts.map +1 -0
  549. package/dist/utils/pro2Wallpaper.d.ts +10 -0
  550. package/dist/utils/pro2Wallpaper.d.ts.map +1 -1
  551. package/dist/utils/tracing.d.ts.map +1 -1
  552. package/dist/utils/uiProgressThrottle.d.ts +3 -0
  553. package/dist/utils/uiProgressThrottle.d.ts.map +1 -0
  554. package/package.json +6 -4
  555. package/src/api/BaseMethod.ts +39 -25
  556. package/src/api/CheckAllFirmwareRelease.ts +440 -4
  557. package/src/api/CheckBLEFirmwareRelease.ts +37 -5
  558. package/src/api/CheckBootloaderRelease.ts +37 -5
  559. package/src/api/CheckFirmwareRelease.ts +36 -9
  560. package/src/api/CipherKeyValue.ts +4 -0
  561. package/src/api/ClearSessionCache.ts +4 -0
  562. package/src/api/DetectDeviceConnectProtocol.ts +18 -0
  563. package/src/api/DirList.ts +9 -4
  564. package/src/api/DirMake.ts +7 -4
  565. package/src/api/DirRemove.ts +7 -4
  566. package/src/api/FileDelete.ts +7 -4
  567. package/src/api/FileRead.ts +13 -7
  568. package/src/api/FileWrite.ts +7 -4
  569. package/src/api/FirmwareUpdate.ts +30 -15
  570. package/src/api/FirmwareUpdateV2.ts +535 -169
  571. package/src/api/FirmwareUpdateV3.ts +349 -91
  572. package/src/api/FirmwareUpdateV4.ts +2195 -696
  573. package/src/api/GetDeviceState.ts +59 -0
  574. package/src/api/GetFeatures.ts +6 -4
  575. package/src/api/GetOnekeyFeatures.ts +1 -75
  576. package/src/api/GetPassphraseState.ts +34 -13
  577. package/src/api/OpenWalletSession.ts +268 -0
  578. package/src/api/PathInfo.ts +9 -4
  579. package/src/api/PromptWebDeviceAccess.ts +3 -8
  580. package/src/api/SearchDevices.ts +35 -5
  581. package/src/api/UploadPortfolio.ts +29 -5
  582. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  583. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  584. package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
  585. package/src/api/algo/AlgoGetAddress.ts +4 -0
  586. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  587. package/src/api/allnetwork/AllNetworkGetAddress.ts +21 -21
  588. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +45 -32
  589. package/src/api/aptos/AptosGetAddress.ts +4 -0
  590. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  591. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  592. package/src/api/aptos/AptosSignMessage.ts +4 -0
  593. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  594. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  595. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  596. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  597. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  598. package/src/api/btc/BTCGetAddress.ts +8 -1
  599. package/src/api/btc/BTCGetPublicKey.ts +9 -2
  600. package/src/api/btc/BTCSignMessage.ts +8 -1
  601. package/src/api/btc/BTCSignPsbt.ts +4 -0
  602. package/src/api/btc/BTCSignTransaction.ts +8 -1
  603. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  604. package/src/api/btc/helpers/versionLimit.ts +7 -4
  605. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  606. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  607. package/src/api/cardano/CardanoSignMessage.ts +4 -0
  608. package/src/api/cardano/CardanoSignTransaction.ts +4 -0
  609. package/src/api/conflux/ConfluxGetAddress.ts +6 -0
  610. package/src/api/conflux/ConfluxSignMessage.ts +6 -0
  611. package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
  612. package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
  613. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  614. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  615. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  616. package/src/api/device/DeviceCancel.ts +4 -0
  617. package/src/api/device/DeviceChangePin.ts +9 -1
  618. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  619. package/src/api/device/DeviceLock.ts +4 -0
  620. package/src/api/device/DeviceRebootToBoardloader.ts +8 -1
  621. package/src/api/device/DeviceRebootToBootloader.ts +8 -1
  622. package/src/api/device/DeviceSettings.ts +211 -3
  623. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  624. package/src/api/device/DeviceUnlock.ts +12 -3
  625. package/src/api/device/DeviceUpdateBootloader.ts +152 -8
  626. package/src/api/device/DeviceVerify.ts +25 -0
  627. package/src/api/device/DeviceWipe.ts +11 -1
  628. package/src/api/device/PreInitialize.ts +4 -0
  629. package/src/api/dynex/DnxGetAddress.ts +0 -6
  630. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  631. package/src/api/evm/EVMGetAddress.ts +6 -2
  632. package/src/api/evm/EVMGetPublicKey.ts +6 -2
  633. package/src/api/evm/EVMSignMessage.ts +6 -2
  634. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  635. package/src/api/evm/EVMSignTransaction.ts +6 -2
  636. package/src/api/evm/EVMSignTypedData.ts +42 -50
  637. package/src/api/evm/EVMVerifyMessage.ts +6 -2
  638. package/src/api/evm/legacyV1/getAddress.ts +2 -2
  639. package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
  640. package/src/api/evm/legacyV1/signMessage.ts +2 -2
  641. package/src/api/evm/legacyV1/signTypedData.ts +2 -2
  642. package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
  643. package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
  644. package/src/api/evm/protocol.ts +6 -0
  645. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  646. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  647. package/src/api/firmware/FirmwareArtifactSource.ts +305 -0
  648. package/src/api/firmware/FirmwareHostBinding.ts +123 -0
  649. package/src/api/firmware/FirmwarePreparationError.ts +12 -0
  650. package/src/api/firmware/FirmwarePreparedResourceArchive.ts +196 -0
  651. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +214 -77
  652. package/src/api/firmware/FirmwareUpdateCapabilities.ts +9 -0
  653. package/src/api/firmware/FirmwareUpdatePlan.ts +905 -0
  654. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +490 -0
  655. package/src/api/firmware/getBinary.ts +8 -3
  656. package/src/api/firmware/protocolV2Release.ts +173 -0
  657. package/src/api/firmware/updateBootloader.ts +19 -4
  658. package/src/api/firmware/uploadFirmware.ts +157 -26
  659. package/src/api/helpers/base64Data.ts +85 -0
  660. package/src/api/helpers/batchGetPublickeys.ts +2 -2
  661. package/src/api/helpers/filesystemValidation.ts +61 -0
  662. package/src/api/helpers/paramsValidator.ts +1 -1
  663. package/src/api/helpers/protocolV2FileWrite.ts +260 -60
  664. package/src/api/index.ts +6 -30
  665. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  666. package/src/api/kaspa/KaspaSignTransaction.ts +48 -27
  667. package/src/api/kaspa/helpers/TransferSerialize.ts +3 -7
  668. package/src/api/lightning/LnurlAuth.ts +0 -4
  669. package/src/api/near/NearGetAddress.ts +4 -0
  670. package/src/api/near/NearSignTransaction.ts +4 -0
  671. package/src/api/nem/NEMGetAddress.ts +4 -0
  672. package/src/api/nem/NEMSignTransaction.ts +4 -0
  673. package/src/api/neo/NeoGetAddress.ts +0 -4
  674. package/src/api/neo/NeoSignTransaction.ts +0 -4
  675. package/src/api/nervos/NervosGetAddress.ts +0 -4
  676. package/src/api/nervos/NervosSignTransaction.ts +2 -6
  677. package/src/api/nexa/NexaGetAddress.ts +0 -4
  678. package/src/api/nexa/NexaSignTransaction.ts +3 -5
  679. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  680. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  681. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  682. package/src/api/nostr/NostrSignEvent.ts +4 -0
  683. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  684. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  685. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  686. package/src/api/polkadot/networks.ts +3 -3
  687. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
  688. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +6 -3
  689. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +13 -32
  690. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +10 -6
  691. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +6 -3
  692. package/src/api/protocol-v2/DeviceInfoGet.ts +11 -17
  693. package/src/api/protocol-v2/DeviceReboot.ts +12 -3
  694. package/src/api/protocol-v2/DeviceStatusGet.ts +5 -1
  695. package/src/api/protocol-v2/DeviceUploadNft.ts +249 -0
  696. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +57 -20
  697. package/src/api/protocol-v2/FilesystemFormat.ts +5 -2
  698. package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
  699. package/src/api/protocol-v2/Ping.ts +37 -3
  700. package/src/api/protocol-v2/ProtocolInfoRequest.ts +8 -3
  701. package/src/api/protocol-v2/helpers.ts +1 -1
  702. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  703. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  704. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  705. package/src/api/solana/SolGetAddress.ts +4 -0
  706. package/src/api/solana/SolSignMessage.ts +5 -1
  707. package/src/api/solana/SolSignOffchainMessage.ts +5 -1
  708. package/src/api/solana/SolSignTransaction.ts +6 -2
  709. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  710. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  711. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  712. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  713. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  714. package/src/api/stellar/StellarGetAddress.ts +1 -10
  715. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  716. package/src/api/sui/SuiGetAddress.ts +5 -1
  717. package/src/api/sui/SuiGetPublicKey.ts +5 -1
  718. package/src/api/sui/SuiSignMessage.ts +5 -1
  719. package/src/api/sui/SuiSignTransaction.ts +5 -1
  720. package/src/api/ton/TonGetAddress.ts +5 -1
  721. package/src/api/ton/TonSignData.ts +5 -1
  722. package/src/api/ton/TonSignMessage.ts +10 -4
  723. package/src/api/ton/TonSignProof.ts +5 -1
  724. package/src/api/tron/TronGetAddress.ts +4 -0
  725. package/src/api/tron/TronSignMessage.ts +19 -8
  726. package/src/api/tron/TronSignTransaction.ts +5 -1
  727. package/src/api/utils.ts +32 -3
  728. package/src/api/xrp/XrpGetAddress.ts +4 -0
  729. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  730. package/src/constants/index.ts +1 -4
  731. package/src/core/RequestQueue.ts +0 -18
  732. package/src/core/deviceEventRegistration.ts +4 -0
  733. package/src/core/index.ts +583 -203
  734. package/src/core/uiPromiseRegistry.ts +63 -0
  735. package/src/data/messages/messages-protocol-v2.json +515 -540
  736. package/src/data-manager/DataManager.ts +162 -44
  737. package/src/data-manager/TransportManager.ts +10 -2
  738. package/src/data-manager/connectSettings.ts +11 -0
  739. package/src/device/Device.ts +1016 -254
  740. package/src/device/DeviceCommands.ts +175 -157
  741. package/src/device/DeviceConnector.ts +59 -22
  742. package/src/device/DeviceFeaturesState.ts +25 -0
  743. package/src/device/DevicePool.ts +96 -19
  744. package/src/device/DeviceStateMapper.ts +422 -0
  745. package/src/device/DeviceStateProjector.ts +152 -0
  746. package/src/device/DeviceStateStore.ts +232 -0
  747. package/src/device/DeviceWalletSessionStore.ts +72 -6
  748. package/src/device/cloneDeviceState.ts +39 -0
  749. package/src/device/deviceIdentity.ts +18 -0
  750. package/src/deviceProfile/buildDeviceFeatures.ts +199 -188
  751. package/src/deviceProfile/index.ts +0 -1
  752. package/src/deviceProfile/protocolV2DeviceIdentity.ts +35 -0
  753. package/src/events/call.ts +0 -6
  754. package/src/events/core.ts +0 -2
  755. package/src/events/device.ts +18 -1
  756. package/src/events/iframe.ts +0 -1
  757. package/src/events/logBlockEvent.ts +93 -2
  758. package/src/events/ui-promise.ts +4 -2
  759. package/src/events/ui-request.ts +37 -2
  760. package/src/events/ui-response.ts +12 -2
  761. package/src/index.ts +7 -4
  762. package/src/inject.ts +89 -55
  763. package/src/lowLevelInject.ts +11 -7
  764. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  765. package/src/protocols/protocol-v2/features.ts +104 -45
  766. package/src/protocols/protocol-v2/firmware.ts +3 -1
  767. package/src/protocols/protocol-v2/index.ts +9 -2
  768. package/src/protocols/protocol-v2/resources.ts +173 -0
  769. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  770. package/src/protocols/protocol-v2/uiInteraction.ts +50 -9
  771. package/src/protocols/protocol-v2/unlockPolicy.ts +1 -0
  772. package/src/protocols/protocol-v2/unlockPolicyRunner.ts +136 -0
  773. package/src/protocols/protocol-v2/walletSession.ts +395 -130
  774. package/src/topLevelInject.ts +11 -6
  775. package/src/types/api/checkAllFirmwareRelease.ts +72 -9
  776. package/src/types/api/checkBLEFirmwareRelease.ts +4 -13
  777. package/src/types/api/checkBootloaderRelease.ts +2 -6
  778. package/src/types/api/checkFirmwareRelease.ts +2 -13
  779. package/src/types/api/checkFirmwareTypeAvailable.ts +2 -2
  780. package/src/types/api/detectDeviceConnectProtocol.ts +6 -0
  781. package/src/types/api/deviceSettings.ts +26 -2
  782. package/src/types/api/deviceUnlock.ts +13 -2
  783. package/src/types/api/deviceUpdateBootloader.ts +7 -0
  784. package/src/types/api/export.ts +33 -1
  785. package/src/types/api/firmwareUpdate.ts +85 -11
  786. package/src/types/api/firmwareUpdateCapabilities.ts +9 -0
  787. package/src/types/api/firmwareUpdatePlan.ts +38 -0
  788. package/src/types/api/firmwareUpdatePreparedPlan.ts +53 -0
  789. package/src/types/api/getDeviceState.ts +19 -0
  790. package/src/types/api/getFeatures.ts +3 -0
  791. package/src/types/api/getOnekeyFeatures.ts +3 -0
  792. package/src/types/api/getPassphraseState.ts +7 -0
  793. package/src/types/api/index.ts +43 -73
  794. package/src/types/api/kaspaSignTransaction.ts +20 -2
  795. package/src/types/api/openWalletSession.ts +54 -0
  796. package/src/types/api/protocolV2.ts +23 -190
  797. package/src/types/api/sessionCache.ts +9 -4
  798. package/src/types/device.ts +206 -9
  799. package/src/types/params.ts +9 -2
  800. package/src/types/settings.ts +37 -25
  801. package/src/utils/assets.ts +4 -1
  802. package/src/utils/deviceFeaturesCompat.ts +196 -0
  803. package/src/utils/deviceFeaturesUtils.ts +34 -14
  804. package/src/utils/deviceInfoUtils.ts +37 -70
  805. package/src/utils/deviceSettings.ts +181 -39
  806. package/src/utils/deviceVersionUtils.ts +25 -44
  807. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  808. package/src/utils/homescreen.ts +37 -7
  809. package/src/utils/index.ts +26 -7
  810. package/src/utils/networkUtils.ts +274 -16
  811. package/src/utils/pro2Nft.ts +165 -0
  812. package/src/utils/pro2Wallpaper.ts +44 -25
  813. package/src/utils/tracing.ts +3 -1
  814. package/src/utils/uiProgressThrottle.ts +63 -0
  815. package/tsconfig.type-tests.json +12 -0
  816. package/__tests__/RequestQueue.test.ts +0 -34
  817. package/dist/api/GetDeviceInfo.d.ts +0 -9
  818. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  819. package/dist/api/firmware/progressThrottle.d.ts +0 -3
  820. package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
  821. package/dist/api/protocol-v2/DeviceSessionOpen.d.ts +0 -28
  822. package/dist/api/protocol-v2/DeviceSessionOpen.d.ts.map +0 -1
  823. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts +0 -6
  824. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts.map +0 -1
  825. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts +0 -16
  826. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts.map +0 -1
  827. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts +0 -12
  828. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts.map +0 -1
  829. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -22
  830. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  831. package/dist/protocols/protocol-v2/lockedError.d.ts +0 -2
  832. package/dist/protocols/protocol-v2/lockedError.d.ts.map +0 -1
  833. package/dist/protocols/protocol-v2/unlockRetry.d.ts +0 -11
  834. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +0 -1
  835. package/dist/types/api/getDeviceInfo.d.ts +0 -88
  836. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  837. package/src/api/GetDeviceInfo.ts +0 -152
  838. package/src/api/firmware/progressThrottle.ts +0 -44
  839. package/src/api/protocol-v2/DeviceSessionOpen.ts +0 -100
  840. package/src/api/protocol-v2/DeviceSettingsGet.ts +0 -16
  841. package/src/api/protocol-v2/DeviceSettingsPageShow.ts +0 -67
  842. package/src/api/protocol-v2/DeviceSettingsSet.ts +0 -49
  843. package/src/deviceProfile/buildDeviceProfile.ts +0 -370
  844. package/src/protocols/protocol-v2/lockedError.ts +0 -10
  845. package/src/protocols/protocol-v2/unlockRetry.ts +0 -76
  846. package/src/types/api/getDeviceInfo.ts +0 -106
@@ -4,12 +4,12 @@ import type {
4
4
  DeviceInfoGet,
5
5
  DeviceSEInfo,
6
6
  DeviceStatus,
7
+ ProtocolInfo,
7
8
  ProtocolV2DeviceInfo,
8
9
  } from '@onekeyfe/hd-transport';
9
10
  import type { DeviceCommands } from '../../device/DeviceCommands';
10
11
 
11
- // 单源类型:直接使用 hd-transport 生成的 ProtocolV2DeviceInfo / DeviceSEInfo /
12
- // DeviceFirmwareImageInfo(与 firmware-pro2 proto 一致),不再维护手写副本。
12
+ // Use hd-transport generated Protocol V2 types as the single source of truth.
13
13
  export type { ProtocolV2DeviceInfo };
14
14
  export type { DeviceFirmwareImageInfo as ProtocolV2FirmwareImageInfo } from '@onekeyfe/hd-transport';
15
15
  export type { DeviceSEInfo as ProtocolV2SEInfo } from '@onekeyfe/hd-transport';
@@ -17,8 +17,8 @@ export type { DeviceSEInfo as ProtocolV2SEInfo } from '@onekeyfe/hd-transport';
17
17
  export type ProtocolV2SeStateLabel = 'BOOT' | 'APP_FACTORY' | 'APP';
18
18
 
19
19
  /**
20
- * 传输层沿用历史 decode 语义:单值 proto enum 输出为名称字符串。
21
- * 这里按 SDK decode 后的字符串语义处理,同时接受数字枚举,便于低层调用复用。
20
+ * The transport historically decodes scalar proto enums as name strings.
21
+ * Accept both that SDK representation and numeric enums for low-level callers.
22
22
  */
23
23
  const normalizeEnumValue = <T extends Record<string | number, string | number>>(
24
24
  enumObject: T,
@@ -31,8 +31,8 @@ const normalizeEnumValue = <T extends Record<string | number, string | number>>(
31
31
  };
32
32
 
33
33
  /**
34
- * DeviceSEInfo.state 可读标签。SDK 内唯一的 SE 状态映射实现,
35
- * DeviceProfile 与标准 Features 构建都从这里取。
34
+ * Map DeviceSEInfo.state to a readable label. This is the SDK's canonical mapping
35
+ * used by DeviceState and the legacy Features projection.
36
36
  */
37
37
  export const getProtocolV2SeState = (se?: DeviceSEInfo): ProtocolV2SeStateLabel | null => {
38
38
  const label = normalizeEnumValue(DeviceSEState, se?.state);
@@ -49,45 +49,80 @@ export const getProtocolV2SeState = (se?: DeviceSEInfo): ProtocolV2SeStateLabel
49
49
  };
50
50
 
51
51
  /**
52
- * DeviceSEInfo.type 可读标签(如 'THD89')。DeviceProfile / Features
53
- * 的 SE 类型归一化从这里取。
52
+ * Map DeviceSEInfo.type to a readable label such as `THD89`.
54
53
  */
55
54
  export const getProtocolV2SeType = (se?: DeviceSEInfo): string | null =>
56
55
  normalizeEnumValue(DeviceSeType, se?.type);
57
56
 
57
+ export type ProtocolV2RuntimeMode = 'normal' | 'bootloader' | 'romloader';
58
+
59
+ export type ProtocolV2ProtocolInfo = ProtocolInfo & {
60
+ /** Present only when hd-transport decoded the pre-build-fingerprint wire layout. */
61
+ protobuf_definition?: string | null;
62
+ };
63
+
64
+ export const isLegacyProtocolV2ProtocolInfo = (
65
+ protocolInfo: ProtocolInfo
66
+ ): protocolInfo is ProtocolV2ProtocolInfo & { protobuf_definition: string | null } =>
67
+ Object.prototype.hasOwnProperty.call(protocolInfo, 'protobuf_definition');
68
+
58
69
  /**
59
- * 兼容尚未提供显式 runtime mode 的 Protocol V2 固件。
60
- *
61
- * 当前 romloader 只上报 hw、fw.romloader 和 fw.bootloader;bootloader
62
- * 还会上报 application/application_data、coprocessor 或 SE 信息。
70
+ * Protocol V2 fingerprints use:
71
+ * <binary>__<version>__<commit>__<PROD|DEV>__<DEBUG|RELEASE>
63
72
  */
64
- export const isProtocolV2RomloaderDeviceInfo = (
65
- deviceInfo?: ProtocolV2DeviceInfo | null,
66
- deviceStatus?: DeviceStatus | null
67
- ) =>
68
- !!deviceInfo &&
69
- deviceStatus == null &&
70
- deviceInfo.fw?.romloader != null &&
71
- deviceInfo.fw?.application == null &&
72
- deviceInfo.fw?.application_data == null &&
73
- deviceInfo.coprocessor == null &&
74
- deviceInfo.se1 == null &&
75
- deviceInfo.se2 == null &&
76
- deviceInfo.se3 == null &&
77
- deviceInfo.se4 == null;
78
-
79
- export const isProtocolV2BootloaderDeviceInfo = (
80
- deviceInfo?: ProtocolV2DeviceInfo | null,
81
- deviceStatus?: DeviceStatus | null
82
- ) =>
83
- !!deviceInfo &&
84
- deviceStatus == null &&
85
- !isProtocolV2RomloaderDeviceInfo(deviceInfo, deviceStatus);
73
+ export type ProtocolV2BuildFingerprint = {
74
+ binary: 'application' | 'bootloader' | 'romloader';
75
+ version: string;
76
+ commit: string;
77
+ environment: 'PROD' | 'DEV';
78
+ buildType: 'DEBUG' | 'RELEASE';
79
+ };
80
+
81
+ export const parseProtocolV2BuildFingerprint = (
82
+ buildFingerprint: string | null | undefined
83
+ ): ProtocolV2BuildFingerprint | null => {
84
+ if (!buildFingerprint) return null;
85
+ const [binary, version, commit, environment, buildType, ...extra] = buildFingerprint.split('__');
86
+ if (
87
+ extra.length > 0 ||
88
+ (binary !== 'application' && binary !== 'bootloader' && binary !== 'romloader') ||
89
+ !version ||
90
+ !commit ||
91
+ (environment !== 'PROD' && environment !== 'DEV') ||
92
+ (buildType !== 'DEBUG' && buildType !== 'RELEASE')
93
+ ) {
94
+ return null;
95
+ }
96
+ return { binary, version, commit, environment, buildType };
97
+ };
98
+
99
+ export const getProtocolV2RuntimeMode = (
100
+ protocolInfo: ProtocolInfo,
101
+ deviceInfo?: ProtocolV2DeviceInfo
102
+ ): ProtocolV2RuntimeMode | undefined => {
103
+ const binary = parseProtocolV2BuildFingerprint(protocolInfo.build_fingerprint)?.binary;
104
+ if (binary === 'application') return 'normal';
105
+ if (binary) return binary;
106
+
107
+ if (isLegacyProtocolV2ProtocolInfo(protocolInfo) && !deviceInfo?.main_mcu?.application) {
108
+ if (deviceInfo?.main_mcu?.romloader) return 'romloader';
109
+ if (deviceInfo?.main_mcu?.bootloader) return 'bootloader';
110
+ }
111
+ return undefined;
112
+ };
113
+
114
+ // MessageType_DeviceStatusGet in the Protocol V2 protobuf registry.
115
+ export const PROTOCOL_V2_DEVICE_STATUS_GET_MESSAGE_TYPE = 60602;
116
+
117
+ export const supportsProtocolV2Message = (
118
+ protocolInfo: ProtocolInfo,
119
+ messageType: number
120
+ ): boolean => protocolInfo.supported_messages.includes(messageType);
86
121
 
87
122
  export const PROTOCOL_V2_FEATURES_DEVICE_INFO_REQUEST = {
88
123
  targets: {
89
124
  hw: true,
90
- fw: true,
125
+ main_mcu: true,
91
126
  coprocessor: true,
92
127
  },
93
128
  types: {
@@ -97,15 +132,13 @@ export const PROTOCOL_V2_FEATURES_DEVICE_INFO_REQUEST = {
97
132
  };
98
133
 
99
134
  /**
100
- * 轻量状态刷新请求(每次 run 前使用)。
101
- *
102
- * status 提供 init_states / passphrase_enabled 等会在设备端变化的字段;
103
- * hw / coprocessor 提供 serialNo / bleName 等身份字段;不含 fw/SE targets,单帧请求开销很小。
135
+ * Version probe used after firmware update completion.
136
+ * It reads hardware and firmware component data without requesting DeviceStatus.
104
137
  */
105
138
  export const PROTOCOL_V2_VERSIONS_DEVICE_INFO_REQUEST = {
106
139
  targets: {
107
140
  hw: true,
108
- fw: true,
141
+ main_mcu: true,
109
142
  coprocessor: true,
110
143
  se1: true,
111
144
  se2: true,
@@ -121,7 +154,7 @@ export const PROTOCOL_V2_VERSIONS_DEVICE_INFO_REQUEST = {
121
154
  export const PROTOCOL_V2_FULL_DEVICE_INFO_REQUEST = {
122
155
  targets: {
123
156
  hw: true,
124
- fw: true,
157
+ main_mcu: true,
125
158
  coprocessor: true,
126
159
  se1: true,
127
160
  se2: true,
@@ -137,7 +170,28 @@ export const PROTOCOL_V2_FULL_DEVICE_INFO_REQUEST = {
137
170
  };
138
171
 
139
172
  export const PROTOCOL_V2_DEVICE_INFO_REQUEST = PROTOCOL_V2_FULL_DEVICE_INFO_REQUEST;
140
- export const PROTOCOL_V2_DEVICE_INFO_TIMEOUT_MS = 10 * 1000;
173
+ export const PROTOCOL_V2_DEVICE_INFO_TIMEOUT_MS = 30 * 1000;
174
+
175
+ export async function requestProtocolV2ProtocolInfo({
176
+ commands,
177
+ timeoutMs,
178
+ }: {
179
+ commands: DeviceCommands;
180
+ timeoutMs?: number;
181
+ }): Promise<ProtocolInfo> {
182
+ const response =
183
+ timeoutMs === undefined
184
+ ? await commands.typedCall('ProtocolInfoRequest', 'ProtocolInfo', {
185
+ eventless_wallet_session: true,
186
+ })
187
+ : await commands.typedCall(
188
+ 'ProtocolInfoRequest',
189
+ 'ProtocolInfo',
190
+ { eventless_wallet_session: true },
191
+ { timeoutMs }
192
+ );
193
+ return response.message;
194
+ }
141
195
 
142
196
  export async function requestProtocolV2DeviceInfo({
143
197
  commands,
@@ -151,16 +205,21 @@ export async function requestProtocolV2DeviceInfo({
151
205
  const { message } = await commands.typedCall('DeviceInfoGet', 'DeviceInfo', request, {
152
206
  timeoutMs,
153
207
  });
154
- // 'DeviceInfo' 在生成类型里是 V1 DeviceInfo | ProtocolV2DeviceInfo 的合并;
155
- // DeviceInfoGet 是 V2-only 消息,这里收窄到 V2 形态。
208
+ // Generated DeviceInfo is a V1/V2 union; DeviceInfoGet narrows it to the V2 shape.
156
209
  return message as ProtocolV2DeviceInfo;
157
210
  }
158
211
 
159
212
  export async function requestProtocolV2DeviceStatus({
160
213
  commands,
214
+ timeoutMs,
161
215
  }: {
162
216
  commands: DeviceCommands;
217
+ timeoutMs?: number;
163
218
  }): Promise<DeviceStatus> {
164
- const { message } = await commands.typedCall('DeviceStatusGet', 'DeviceStatus', {});
219
+ const response =
220
+ timeoutMs === undefined
221
+ ? await commands.typedCall('DeviceStatusGet', 'DeviceStatus', {})
222
+ : await commands.typedCall('DeviceStatusGet', 'DeviceStatus', {}, { timeoutMs });
223
+ const { message } = response;
165
224
  return message;
166
225
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 当前 firmware-pro2 子模块的 DeviceFirmwareTargetType。
2
+ * DeviceFirmwareTargetType from the current firmware-pro2 submodule.
3
3
  */
4
4
  export const ProtocolV2FirmwareTargetType = {
5
5
  FW_MGMT_TARGET_INVALID: 0,
@@ -15,5 +15,7 @@ export const ProtocolV2FirmwareTargetType = {
15
15
  FW_MGMT_TARGET_SE04: 10,
16
16
  } as const;
17
17
 
18
+ // 这里有意同时导出同名值与类型,以保持现有公共 API 不变。
19
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
18
20
  export type ProtocolV2FirmwareTargetType =
19
21
  (typeof ProtocolV2FirmwareTargetType)[keyof typeof ProtocolV2FirmwareTargetType];
@@ -1,18 +1,25 @@
1
1
  export {
2
2
  PROTOCOL_V2_DEVICE_INFO_REQUEST,
3
3
  PROTOCOL_V2_DEVICE_INFO_TIMEOUT_MS,
4
+ PROTOCOL_V2_DEVICE_STATUS_GET_MESSAGE_TYPE,
4
5
  PROTOCOL_V2_FEATURES_DEVICE_INFO_REQUEST,
5
6
  PROTOCOL_V2_VERSIONS_DEVICE_INFO_REQUEST,
6
- isProtocolV2BootloaderDeviceInfo,
7
- isProtocolV2RomloaderDeviceInfo,
7
+ getProtocolV2RuntimeMode,
8
8
  getProtocolV2SeState,
9
9
  getProtocolV2SeType,
10
+ isLegacyProtocolV2ProtocolInfo,
11
+ parseProtocolV2BuildFingerprint,
12
+ requestProtocolV2ProtocolInfo,
13
+ supportsProtocolV2Message,
10
14
  } from './features';
11
15
  export type {
16
+ ProtocolV2BuildFingerprint,
12
17
  ProtocolV2DeviceInfo,
13
18
  ProtocolV2FirmwareImageInfo,
14
19
  ProtocolV2SEInfo,
15
20
  ProtocolV2SeStateLabel,
21
+ ProtocolV2RuntimeMode,
22
+ ProtocolV2ProtocolInfo,
16
23
  } from './features';
17
24
  export * from './firmware';
18
25
  export * from './walletSession';
@@ -0,0 +1,173 @@
1
+ import { bytesToHex } from '@noble/hashes/utils';
2
+
3
+ import type { IProtocolV2Resources, IVersionArray } from '../../types';
4
+
5
+ export const PROTOCOL_V2_BOOT_RESOURCE_PACKAGE_PATH =
6
+ 'vol0:/loaders/bootloader/boot_resource.okpkg';
7
+ export const PROTOCOL_V2_BOOT_RESOURCE_PACKAGE_STAGING_PATH = `${PROTOCOL_V2_BOOT_RESOURCE_PACKAGE_PATH}.staging`;
8
+ export const PROTOCOL_V2_ROM_PARAMS_PACKAGE_PATH = 'vol0:/loaders/rom/params.okpkg';
9
+ export const PROTOCOL_V2_RESOURCE_PACKAGE_HEADER_SIZE = 0x5f90;
10
+
11
+ const PROTOCOL_V2_RESOURCE_PACKAGE_HEADER_VERSION = 1;
12
+ const PROTOCOL_V2_RESOURCE_PACKAGE_FLEXIBLE_OFFSET = 0x6c;
13
+ const PROTOCOL_V2_RESOURCE_PACKAGE_FLEXIBLE_SIZE = 64;
14
+ const PROTOCOL_V2_RESOURCE_PACKAGE_PAYLOAD_HASH_OFFSET = 0x200;
15
+ const PROTOCOL_V2_RESOURCE_PACKAGE_HEADER_HASH_OFFSET = 0x240;
16
+ const PROTOCOL_V2_RESOURCE_PACKAGE_HASH_SIZE = 64;
17
+ const PROTOCOL_V2_RESOURCE_PACKAGE_TYPE = 'RESC';
18
+
19
+ /** Validate a complete Pro2 stable resource set from remote configuration. */
20
+ export function parseProtocolV2Resources(value: unknown): IProtocolV2Resources | undefined {
21
+ if (value === undefined) return undefined;
22
+ if (!value || typeof value !== 'object') {
23
+ throw new Error('Invalid Pro2 resources config');
24
+ }
25
+ const { source } = value as { source?: unknown };
26
+ if (!source || typeof source !== 'object') {
27
+ throw new Error('Invalid Pro2 resources config: source is required');
28
+ }
29
+ const { archiveUrl, archiveSha256, archiveSize } = source as {
30
+ archiveUrl?: unknown;
31
+ archiveSha256?: unknown;
32
+ archiveSize?: unknown;
33
+ };
34
+ if (typeof archiveUrl !== 'string' || !archiveUrl.startsWith('https://')) {
35
+ throw new Error('Invalid Pro2 resources config: source.archiveUrl must use HTTPS');
36
+ }
37
+ if (typeof archiveSha256 !== 'string' || !/^[0-9a-fA-F]{64}$/.test(archiveSha256)) {
38
+ throw new Error('Invalid Pro2 resources config: source.archiveSha256 must be a SHA-256 digest');
39
+ }
40
+ if (!Number.isSafeInteger(archiveSize) || (archiveSize as number) <= 0) {
41
+ throw new Error('Invalid Pro2 resources config: source.archiveSize must be a positive integer');
42
+ }
43
+ return {
44
+ source: {
45
+ archiveUrl,
46
+ archiveSha256: archiveSha256.toLowerCase(),
47
+ archiveSize: archiveSize as number,
48
+ },
49
+ };
50
+ }
51
+
52
+ export function isProtocolV2ResourceArchiveEntryName(entryName: string): boolean {
53
+ const normalized = entryName.replace(/\\/g, '/');
54
+ if (!normalized.toLowerCase().endsWith('.okpkg')) {
55
+ return false;
56
+ }
57
+ const parts = normalized.split('/');
58
+ const fileName = parts[parts.length - 1] ?? '';
59
+ return (
60
+ fileName.length > 0 &&
61
+ !fileName.startsWith('.') &&
62
+ !parts.some(
63
+ part =>
64
+ !part ||
65
+ part === '.' ||
66
+ part === '..' ||
67
+ part === '.DS_Store' ||
68
+ part.startsWith('._') ||
69
+ part.toUpperCase() === '__MACOSX'
70
+ )
71
+ );
72
+ }
73
+
74
+ function isSafeResourceDevicePath(path: string): boolean {
75
+ return !(
76
+ path.includes('\\') ||
77
+ path.includes('//') ||
78
+ [...path].some(char => {
79
+ const code = char.charCodeAt(0);
80
+ return code <= 0x1f || code === 0x7f;
81
+ }) ||
82
+ path.split('/').some(part => part === '.' || part === '..')
83
+ );
84
+ }
85
+
86
+ function readAscii(bytes: Uint8Array, offset: number, length: number): string {
87
+ return Array.from(bytes.slice(offset, offset + length))
88
+ .map(byte => String.fromCharCode(byte))
89
+ .join('');
90
+ }
91
+
92
+ function readResourceDevicePath(bytes: Uint8Array): string {
93
+ const metadata = bytes.slice(
94
+ PROTOCOL_V2_RESOURCE_PACKAGE_FLEXIBLE_OFFSET,
95
+ PROTOCOL_V2_RESOURCE_PACKAGE_FLEXIBLE_OFFSET + PROTOCOL_V2_RESOURCE_PACKAGE_FLEXIBLE_SIZE
96
+ );
97
+ const terminator = metadata.indexOf(0);
98
+ const pathBytes = terminator === -1 ? metadata : metadata.slice(0, terminator);
99
+ const padding = terminator === -1 ? new Uint8Array(0) : metadata.slice(terminator);
100
+ if (
101
+ pathBytes.byteLength === 0 ||
102
+ Array.from(pathBytes).some(byte => byte < 0x20 || byte > 0x7e) ||
103
+ Array.from(padding).some(byte => byte !== 0)
104
+ ) {
105
+ throw new Error('Invalid Pro2 RESOURCE package device path metadata');
106
+ }
107
+ const path = readAscii(pathBytes, 0, pathBytes.byteLength);
108
+ if (!isSafeResourceDevicePath(path)) {
109
+ throw new Error(`Invalid Pro2 RESOURCE package device path: ${path}`);
110
+ }
111
+ return path;
112
+ }
113
+
114
+ export type ProtocolV2ResourcePackageHeader = {
115
+ version: IVersionArray;
116
+ payloadLength: number;
117
+ devicePath: string;
118
+ payloadHash: string;
119
+ headerHash: string;
120
+ };
121
+
122
+ export function parseProtocolV2ResourcePackageHeader(
123
+ bytes: Uint8Array,
124
+ packageSize: number
125
+ ): ProtocolV2ResourcePackageHeader {
126
+ if (bytes.byteLength < PROTOCOL_V2_RESOURCE_PACKAGE_HEADER_SIZE) {
127
+ throw new Error('Pro2 RESOURCE package is shorter than its header');
128
+ }
129
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
130
+ const headerVersion = view.getUint32(0x04, true);
131
+ const headerLength = view.getUint32(0x0c, true);
132
+ const payloadLength = view.getUint32(0x14, true);
133
+ if (
134
+ readAscii(bytes, 0, 4) !== 'OKPP' ||
135
+ readAscii(bytes, 0x08, 4) !== PROTOCOL_V2_RESOURCE_PACKAGE_TYPE ||
136
+ headerVersion !== PROTOCOL_V2_RESOURCE_PACKAGE_HEADER_VERSION ||
137
+ headerLength !== PROTOCOL_V2_RESOURCE_PACKAGE_HEADER_SIZE ||
138
+ payloadLength <= 0 ||
139
+ headerLength + payloadLength !== packageSize
140
+ ) {
141
+ throw new Error('Invalid Pro2 RESOURCE package header');
142
+ }
143
+
144
+ const packedVersion = view.getUint32(0x10, true);
145
+ return {
146
+ version: [
147
+ Math.floor(packedVersion / 0x10000) % 0x100,
148
+ Math.floor(packedVersion / 0x100) % 0x100,
149
+ packedVersion % 0x100,
150
+ ],
151
+ payloadLength,
152
+ devicePath: readResourceDevicePath(bytes),
153
+ payloadHash: bytesToHex(
154
+ bytes.slice(
155
+ PROTOCOL_V2_RESOURCE_PACKAGE_PAYLOAD_HASH_OFFSET,
156
+ PROTOCOL_V2_RESOURCE_PACKAGE_PAYLOAD_HASH_OFFSET + PROTOCOL_V2_RESOURCE_PACKAGE_HASH_SIZE
157
+ )
158
+ ),
159
+ headerHash: bytesToHex(
160
+ bytes.slice(
161
+ PROTOCOL_V2_RESOURCE_PACKAGE_HEADER_HASH_OFFSET,
162
+ PROTOCOL_V2_RESOURCE_PACKAGE_HEADER_HASH_OFFSET + PROTOCOL_V2_RESOURCE_PACKAGE_HASH_SIZE
163
+ )
164
+ ),
165
+ };
166
+ }
167
+
168
+ export function parseProtocolV2ResourcePackage(
169
+ binary: ArrayBuffer | Uint8Array
170
+ ): ProtocolV2ResourcePackageHeader {
171
+ const bytes = binary instanceof Uint8Array ? binary : new Uint8Array(binary);
172
+ return parseProtocolV2ResourcePackageHeader(bytes, bytes.byteLength);
173
+ }
@@ -0,0 +1,65 @@
1
+ import type { DeviceSettings, DeviceSettingsPage } from '@onekeyfe/hd-transport';
2
+ import type { UnlockPolicy } from '../../api/BaseMethod';
3
+ import type { ProtocolV2InteractionDescriptor } from './uiInteraction';
4
+
5
+ export const PROTOCOL_V2_LOCK_FREE_DEVICE_SETTINGS = [
6
+ 'language',
7
+ 'brightness',
8
+ 'animation_enable',
9
+ 'tap_to_wake',
10
+ 'haptic_feedback',
11
+ 'device_name_display_enabled',
12
+ ] as const satisfies readonly (keyof DeviceSettings)[];
13
+
14
+ const lockFreeDeviceSettings = new Set<keyof DeviceSettings>(PROTOCOL_V2_LOCK_FREE_DEVICE_SETTINGS);
15
+
16
+ export const getProtocolV2SettingsUnlockPolicy = (settings: DeviceSettings): UnlockPolicy =>
17
+ Object.keys(settings).every(key => lockFreeDeviceSettings.has(key as keyof DeviceSettings))
18
+ ? 'none'
19
+ : 'unlock-before-run';
20
+
21
+ export type ProtocolV2SettingsOperation =
22
+ | {
23
+ kind: 'direct';
24
+ settings: DeviceSettings;
25
+ }
26
+ | {
27
+ kind: 'page';
28
+ page: DeviceSettingsPage;
29
+ };
30
+
31
+ export const getProtocolV2SettingsBehavior = (
32
+ operation: ProtocolV2SettingsOperation
33
+ ): {
34
+ unlockPolicy: UnlockPolicy;
35
+ uiInteraction?: ProtocolV2InteractionDescriptor;
36
+ } => {
37
+ if (operation.kind === 'page') {
38
+ return {
39
+ unlockPolicy: 'unlock-before-run',
40
+ uiInteraction: {
41
+ request: 'button',
42
+ source: 'method-lifecycle',
43
+ reason: 'settings-page',
44
+ completion: 'operation-completed',
45
+ deviceOnly: true,
46
+ page: operation.page,
47
+ },
48
+ };
49
+ }
50
+
51
+ return {
52
+ unlockPolicy: getProtocolV2SettingsUnlockPolicy(operation.settings),
53
+ uiInteraction:
54
+ typeof operation.settings.label === 'string'
55
+ ? {
56
+ request: 'button',
57
+ source: 'method-lifecycle',
58
+ reason: 'device-management',
59
+ completion: 'operation-completed',
60
+ deviceOnly: true,
61
+ operation: 'change-label',
62
+ }
63
+ : undefined,
64
+ };
65
+ };
@@ -1,6 +1,6 @@
1
1
  import { UI_REQUEST, createUiMessage } from '../../events';
2
2
 
3
- import type { CoreMessage, ProtocolV2UiCompletion } from '../../events';
3
+ import type { CoreMessage, HardwareUiInteractionMeta, ProtocolV2UiCompletion } from '../../events';
4
4
  import type { Device } from '../../device/Device';
5
5
  import type { KnownDevice } from '../../types';
6
6
 
@@ -28,7 +28,15 @@ type ProtocolV2InteractionMethod = {
28
28
  protocolV2UiInteraction?: ProtocolV2InteractionDescriptor;
29
29
  };
30
30
 
31
- type InteractionDevice = Pick<Device, 'isProtocolV2' | 'toMessageObject'>;
31
+ type InteractionDevice = Pick<Device, 'isProtocolV2' | 'toMessageObject'> &
32
+ Partial<
33
+ Pick<
34
+ Device,
35
+ | 'createProtocolV2UiPhaseMetadata'
36
+ | 'finishProtocolV2UiInteraction'
37
+ | 'hasOpenProtocolV2UiInteraction'
38
+ >
39
+ >;
32
40
  type PostMessage = (message: CoreMessage) => void;
33
41
 
34
42
  export const isProtocolV2UiEnabled = (method: { protocolV2UiMode?: 'auto' | 'none' }) =>
@@ -88,8 +96,9 @@ const hasCipherConfirmation = (value: unknown): boolean => {
88
96
  };
89
97
 
90
98
  /**
91
- * Protocol V2 不再依赖固件 ButtonRequest,因此在统一层根据业务方法生成兼容 UI Event。
92
- * 显式声明始终优先;地址和公钥只在设备实际展示时提示,签名统一提示一次。
99
+ * Protocol V2 no longer relies on firmware ButtonRequest, so the SDK synthesizes
100
+ * compatible UI events. Explicit descriptors win; address/public-key prompts appear
101
+ * only when displayed, while signing emits one prompt.
93
102
  */
94
103
  export const resolveProtocolV2UiInteraction = (
95
104
  method: ProtocolV2InteractionMethod
@@ -106,7 +115,7 @@ export const resolveProtocolV2UiInteraction = (
106
115
  const payloadDisplay = getDisplayState(method.payload);
107
116
  const display = paramsDisplay.seen ? paramsDisplay : payloadDisplay;
108
117
 
109
- // 地址接口通常默认在设备展示;公钥接口存在默认静默读取,优先依赖归一化参数。
118
+ // Address methods usually display by default; public-key methods may be silent.
110
119
  const shouldDisplay = display.seen ? display.enabled : isAddress;
111
120
  if (!shouldDisplay) return undefined;
112
121
 
@@ -155,12 +164,17 @@ export class ProtocolV2UiInteractionCoordinator {
155
164
  this.methodInteraction = interaction;
156
165
  if (!interaction) return;
157
166
  const { request, ...metadata } = interaction;
167
+ const interactionMeta = this.device.createProtocolV2UiPhaseMetadata?.(
168
+ request === 'pin' ? 'pin' : 'button',
169
+ 'start'
170
+ );
158
171
 
159
172
  this.emit(
160
173
  request === 'pin' ? UI_REQUEST.REQUEST_PIN : UI_REQUEST.REQUEST_BUTTON,
161
174
  {
162
175
  device: this.device.toMessageObject() as KnownDevice,
163
176
  ...metadata,
177
+ ...(interactionMeta ? { interaction: interactionMeta } : {}),
164
178
  },
165
179
  `method:${request}:${interaction.reason}:${interaction.page ?? ''}:${
166
180
  interaction.operation ?? ''
@@ -168,7 +182,8 @@ export class ProtocolV2UiInteractionCoordinator {
168
182
  );
169
183
  }
170
184
 
171
- enterUnlockInteraction(method?: string) {
185
+ enterUnlockInteraction(method?: string): HardwareUiInteractionMeta | undefined {
186
+ const interaction = this.device.createProtocolV2UiPhaseMetadata?.('pin', 'start');
172
187
  this.emit(
173
188
  UI_REQUEST.REQUEST_PIN,
174
189
  {
@@ -177,19 +192,45 @@ export class ProtocolV2UiInteractionCoordinator {
177
192
  reason: 'device-locked',
178
193
  deviceOnly: true,
179
194
  method,
195
+ ...(interaction ? { interaction } : {}),
180
196
  },
181
197
  `unlock:${method ?? ''}`
182
198
  );
199
+ return interaction;
183
200
  }
184
201
 
185
202
  resumeMethodInteraction() {
186
203
  this.enterMethodInteraction(this.methodInteraction);
187
204
  }
188
205
 
189
- close() {
190
- if (!this.device.isProtocolV2() || !this.opened || this.closed) return;
206
+ close(
207
+ options: {
208
+ ensureOperationClose?: boolean;
209
+ protocolV2Operation?: boolean;
210
+ } = {}
211
+ ): boolean {
212
+ if (
213
+ (!options.protocolV2Operation && !this.device.isProtocolV2()) ||
214
+ (!options.ensureOperationClose &&
215
+ !this.opened &&
216
+ !this.device.hasOpenProtocolV2UiInteraction?.()) ||
217
+ this.closed
218
+ )
219
+ return false;
191
220
  this.closed = true;
192
- this.postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_WINDOW));
221
+ const interaction = this.device.finishProtocolV2UiInteraction?.('succeeded', {
222
+ ensureMetadata: options.ensureOperationClose,
223
+ });
224
+ const device = this.device.toMessageObject();
225
+ this.postMessage(
226
+ interaction
227
+ ? createUiMessage(UI_REQUEST.CLOSE_UI_WINDOW, {
228
+ ...interaction,
229
+ ...(device ? { device } : {}),
230
+ })
231
+ : createUiMessage(UI_REQUEST.CLOSE_UI_WINDOW)
232
+ );
233
+ return true;
193
234
  }
194
235
 
195
236
  private emit(
@@ -0,0 +1 @@
1
+ export type UnlockPolicy = 'none' | 'unlock-before-run';