@onekeyfe/hd-core 1.2.0-alpha.16 → 1.2.0-alpha.160

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 (847) 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 +9 -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 +754 -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 +39 -0
  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 +12 -6
  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 +166 -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 +81 -0
  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 +578 -0
  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 +364 -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 +7901 -2129
  72. package/__tests__/protocolV2FileWrite.test.ts +221 -3
  73. package/__tests__/protocolV2UiInteraction.test.ts +329 -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 +14 -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 +62 -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 +11 -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 +9 -1
  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 +3 -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 +84 -16
  408. package/dist/device/Device.d.ts.map +1 -1
  409. package/dist/device/DeviceCommands.d.ts +8 -6
  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 +6 -2
  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 +8 -2
  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 +16 -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 +50 -4
  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 +1743 -830
  452. package/dist/index.d.ts.map +1 -1
  453. package/dist/index.js +11463 -4629
  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 +33 -22
  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 +42 -0
  470. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
  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 +18 -4
  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 +42 -4
  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 -93
  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 +139 -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 +45 -23
  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 +350 -91
  572. package/src/api/FirmwareUpdateV4.ts +2036 -744
  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 +36 -12
  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 +30 -4
  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 +5 -0
  617. package/src/api/device/DeviceChangePin.ts +31 -0
  618. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  619. package/src/api/device/DeviceLock.ts +5 -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 +21 -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 +28 -0
  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 +266 -42
  664. package/src/api/index.ts +6 -30
  665. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  666. package/src/api/kaspa/KaspaSignTransaction.ts +369 -29
  667. package/src/api/kaspa/helpers/TransferSerialize.ts +17 -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 -18
  693. package/src/api/protocol-v2/DeviceReboot.ts +12 -3
  694. package/src/api/protocol-v2/DeviceStatusGet.ts +6 -1
  695. package/src/api/protocol-v2/DeviceUploadNft.ts +249 -0
  696. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +59 -21
  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 +6 -0
  733. package/src/core/index.ts +512 -195
  734. package/src/core/uiPromiseRegistry.ts +63 -0
  735. package/src/data/messages/messages-protocol-v2.json +523 -449
  736. package/src/data/messages/messages.json +286 -1
  737. package/src/data-manager/DataManager.ts +162 -44
  738. package/src/data-manager/TransportManager.ts +10 -2
  739. package/src/data-manager/connectSettings.ts +11 -0
  740. package/src/device/Device.ts +1021 -267
  741. package/src/device/DeviceCommands.ts +204 -162
  742. package/src/device/DeviceConnector.ts +54 -21
  743. package/src/device/DeviceFeaturesState.ts +25 -0
  744. package/src/device/DevicePool.ts +108 -23
  745. package/src/device/DeviceStateMapper.ts +422 -0
  746. package/src/device/DeviceStateProjector.ts +152 -0
  747. package/src/device/DeviceStateStore.ts +232 -0
  748. package/src/device/DeviceWalletSessionStore.ts +72 -6
  749. package/src/device/cloneDeviceState.ts +39 -0
  750. package/src/device/deviceIdentity.ts +18 -0
  751. package/src/deviceProfile/buildDeviceFeatures.ts +215 -192
  752. package/src/deviceProfile/index.ts +0 -1
  753. package/src/deviceProfile/protocolV2DeviceIdentity.ts +35 -0
  754. package/src/events/call.ts +0 -6
  755. package/src/events/core.ts +0 -2
  756. package/src/events/device.ts +22 -1
  757. package/src/events/iframe.ts +0 -1
  758. package/src/events/logBlockEvent.ts +93 -2
  759. package/src/events/ui-promise.ts +4 -2
  760. package/src/events/ui-request.ts +61 -4
  761. package/src/events/ui-response.ts +12 -2
  762. package/src/index.ts +7 -4
  763. package/src/inject.ts +89 -55
  764. package/src/lowLevelInject.ts +11 -7
  765. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  766. package/src/protocols/protocol-v2/features.ts +118 -52
  767. package/src/protocols/protocol-v2/firmware.ts +3 -1
  768. package/src/protocols/protocol-v2/index.ts +9 -3
  769. package/src/protocols/protocol-v2/resources.ts +165 -0
  770. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  771. package/src/protocols/protocol-v2/uiInteraction.ts +250 -0
  772. package/src/protocols/protocol-v2/unlockPolicy.ts +1 -0
  773. package/src/protocols/protocol-v2/unlockPolicyRunner.ts +136 -0
  774. package/src/protocols/protocol-v2/walletSession.ts +417 -61
  775. package/src/topLevelInject.ts +11 -6
  776. package/src/types/api/checkAllFirmwareRelease.ts +72 -9
  777. package/src/types/api/checkBLEFirmwareRelease.ts +4 -13
  778. package/src/types/api/checkBootloaderRelease.ts +2 -6
  779. package/src/types/api/checkFirmwareRelease.ts +2 -13
  780. package/src/types/api/checkFirmwareTypeAvailable.ts +2 -2
  781. package/src/types/api/detectDeviceConnectProtocol.ts +6 -0
  782. package/src/types/api/deviceSettings.ts +26 -2
  783. package/src/types/api/deviceUnlock.ts +13 -2
  784. package/src/types/api/deviceUpdateBootloader.ts +7 -0
  785. package/src/types/api/export.ts +33 -1
  786. package/src/types/api/firmwareUpdate.ts +85 -11
  787. package/src/types/api/firmwareUpdateCapabilities.ts +9 -0
  788. package/src/types/api/firmwareUpdatePlan.ts +38 -0
  789. package/src/types/api/firmwareUpdatePreparedPlan.ts +53 -0
  790. package/src/types/api/getDeviceState.ts +19 -0
  791. package/src/types/api/getFeatures.ts +3 -0
  792. package/src/types/api/getOnekeyFeatures.ts +3 -0
  793. package/src/types/api/getPassphraseState.ts +7 -0
  794. package/src/types/api/index.ts +43 -73
  795. package/src/types/api/kaspaSignTransaction.ts +60 -4
  796. package/src/types/api/openWalletSession.ts +54 -0
  797. package/src/types/api/protocolV2.ts +23 -188
  798. package/src/types/api/sessionCache.ts +9 -4
  799. package/src/types/device.ts +211 -9
  800. package/src/types/params.ts +9 -2
  801. package/src/types/settings.ts +37 -25
  802. package/src/utils/assets.ts +4 -1
  803. package/src/utils/deviceFeaturesCompat.ts +196 -0
  804. package/src/utils/deviceFeaturesUtils.ts +42 -9
  805. package/src/utils/deviceInfoUtils.ts +37 -70
  806. package/src/utils/deviceSettings.ts +181 -39
  807. package/src/utils/deviceVersionUtils.ts +25 -44
  808. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  809. package/src/utils/homescreen.ts +40 -0
  810. package/src/utils/index.ts +26 -7
  811. package/src/utils/networkUtils.ts +274 -16
  812. package/src/utils/pro2Nft.ts +165 -0
  813. package/src/utils/pro2Wallpaper.ts +44 -25
  814. package/src/utils/tracing.ts +3 -1
  815. package/src/utils/uiProgressThrottle.ts +63 -0
  816. package/tsconfig.type-tests.json +12 -0
  817. package/__tests__/RequestQueue.test.ts +0 -34
  818. package/dist/api/GetDeviceInfo.d.ts +0 -9
  819. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  820. package/dist/api/firmware/progressThrottle.d.ts +0 -3
  821. package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
  822. package/dist/api/protocol-v2/DeviceSessionGet.d.ts +0 -6
  823. package/dist/api/protocol-v2/DeviceSessionGet.d.ts.map +0 -1
  824. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts +0 -6
  825. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts.map +0 -1
  826. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts +0 -16
  827. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts.map +0 -1
  828. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts +0 -12
  829. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts.map +0 -1
  830. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
  831. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  832. package/dist/protocols/protocol-v2/lockedError.d.ts +0 -2
  833. package/dist/protocols/protocol-v2/lockedError.d.ts.map +0 -1
  834. package/dist/protocols/protocol-v2/unlockRetry.d.ts +0 -9
  835. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +0 -1
  836. package/dist/types/api/getDeviceInfo.d.ts +0 -87
  837. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  838. package/src/api/GetDeviceInfo.ts +0 -145
  839. package/src/api/firmware/progressThrottle.ts +0 -44
  840. package/src/api/protocol-v2/DeviceSessionGet.ts +0 -15
  841. package/src/api/protocol-v2/DeviceSettingsGet.ts +0 -16
  842. package/src/api/protocol-v2/DeviceSettingsPageShow.ts +0 -59
  843. package/src/api/protocol-v2/DeviceSettingsSet.ts +0 -39
  844. package/src/deviceProfile/buildDeviceProfile.ts +0 -354
  845. package/src/protocols/protocol-v2/lockedError.ts +0 -10
  846. package/src/protocols/protocol-v2/unlockRetry.ts +0 -36
  847. package/src/types/api/getDeviceInfo.ts +0 -101
@@ -1,7 +1,16 @@
1
1
  import { ERRORS, HardwareError, HardwareErrorCode } from '@onekeyfe/hd-shared';
2
+ import {
3
+ DeviceErrorCode,
4
+ DeviceSessionErrorCode,
5
+ type FailureType,
6
+ type Messages,
7
+ type Transport,
8
+ type TransportCallOptions,
9
+ getSafeTransportLogPayload,
10
+ isProtocolV2LinkDisabledFailure,
11
+ } from '@onekeyfe/hd-transport';
2
12
 
3
13
  import TransportManager from '../data-manager/TransportManager';
4
- import DataManager from '../data-manager/DataManager';
5
14
  import { LoggerNames, getLogger, patchFeatures } from '../utils';
6
15
  import { DEVICE, type PassphraseRequestPayload } from '../events';
7
16
  import { DeviceModelToTypes } from '../types';
@@ -12,12 +21,6 @@ import {
12
21
  } from '../utils/tracing';
13
22
 
14
23
  import type { Device } from './Device';
15
- import type {
16
- FailureType,
17
- Messages,
18
- Transport,
19
- TransportCallOptions,
20
- } from '@onekeyfe/hd-transport';
21
24
 
22
25
  export type PassphrasePromptResponse = {
23
26
  passphrase?: string;
@@ -37,10 +40,6 @@ type TypedCallResponseMap = {
37
40
  };
38
41
  export type DefaultMessageResponse = TypedCallResponseMap[MessageKey];
39
42
 
40
- const MAX_DEBUG_ARRAY_ITEMS = 20;
41
- const MAX_DEBUG_OBJECT_KEYS = 40;
42
- const MAX_DEBUG_STRING_LENGTH = 512;
43
- const MAX_DEBUG_DEPTH = 4;
44
43
  const HIGH_VOLUME_DEBUG_CALLS = new Set([
45
44
  'FilesystemFileRead',
46
45
  'FilesystemFileWrite',
@@ -51,100 +50,37 @@ const HIGH_VOLUME_DEBUG_CALLS = new Set([
51
50
  'FirmwareUpload',
52
51
  'ResourceAck',
53
52
  ]);
53
+ const DEVICE_SESSION_CALLS = new Set([
54
+ 'DeviceSessionGet',
55
+ 'DeviceSessionAskPin',
56
+ 'DeviceSessionAskPassphrase',
57
+ ]);
58
+ const DEVICE_CONTROL_CALLS = new Set([
59
+ 'DeviceReboot',
60
+ 'DeviceSettingsGet',
61
+ 'DeviceSettingsSet',
62
+ 'DeviceSettingsPageShow',
63
+ 'DeviceCertificateWrite',
64
+ 'DeviceCertificateRead',
65
+ 'DeviceCertificateSign',
66
+ 'DeviceMiscUsbMscControl',
67
+ ]);
68
+
69
+ // Older Protocol V2 firmware may omit the cancellation subcode, so retain a
70
+ // narrow message fallback for compatibility.
71
+ const isProtocolV2ActionCancelledMessage = (message: string) =>
72
+ /^(?:cancel(?:led|ed)(?: on device)?|confirm dismissed|update cancel(?:led|ed)|user cancel(?:led|ed)(?:\s+.*)?)$/i.test(
73
+ message
74
+ );
54
75
 
55
76
  function shouldReduceDebugForCall(type: string) {
56
77
  return HIGH_VOLUME_DEBUG_CALLS.has(type);
57
78
  }
58
79
 
59
- function getBinaryByteLength(value: unknown): number | undefined {
60
- if (value instanceof ArrayBuffer) {
61
- return value.byteLength;
62
- }
63
-
64
- if (ArrayBuffer.isView(value)) {
65
- return value.byteLength;
66
- }
67
-
68
- if (typeof Blob !== 'undefined' && value instanceof Blob) {
69
- return value.size;
70
- }
71
-
72
- return undefined;
73
- }
74
-
75
- function summarizeRedactedData(value: unknown): string {
76
- const byteLength = getBinaryByteLength(value);
77
- if (byteLength !== undefined) {
78
- return `[redacted data: ${byteLength} bytes]`;
79
- }
80
-
81
- if (typeof value === 'string') {
82
- return `[redacted data: string length=${value.length}]`;
83
- }
84
-
85
- if (Array.isArray(value)) {
86
- return `[redacted data: array length=${value.length}]`;
87
- }
88
-
89
- if (value && typeof value === 'object') {
90
- return `[redacted data: object keys=${Object.keys(value).length}]`;
91
- }
92
-
93
- return `[redacted data: ${typeof value}]`;
94
- }
95
-
96
- function sanitizeDebugPayload(value: unknown, key = '', depth = 0): unknown {
97
- if (key === 'data' && value !== null && value !== undefined) {
98
- return summarizeRedactedData(value);
99
- }
100
-
101
- const byteLength = getBinaryByteLength(value);
102
- if (byteLength !== undefined) {
103
- return `[binary: ${byteLength} bytes]`;
104
- }
105
-
106
- if (typeof value === 'string') {
107
- return value.length > MAX_DEBUG_STRING_LENGTH
108
- ? `${value.slice(0, MAX_DEBUG_STRING_LENGTH)}... (len=${value.length})`
109
- : value;
110
- }
111
-
112
- if (!value || typeof value !== 'object') {
113
- return value;
114
- }
115
-
116
- if (depth >= MAX_DEBUG_DEPTH) {
117
- return Array.isArray(value)
118
- ? `[array length=${value.length}]`
119
- : `[object keys=${Object.keys(value).length}]`;
120
- }
121
-
122
- if (Array.isArray(value)) {
123
- const items = value
124
- .slice(0, MAX_DEBUG_ARRAY_ITEMS)
125
- .map(item => sanitizeDebugPayload(item, key, depth + 1));
126
- if (value.length > MAX_DEBUG_ARRAY_ITEMS) {
127
- items.push(`... (${value.length - MAX_DEBUG_ARRAY_ITEMS} more)`);
128
- }
129
- return items;
130
- }
131
-
132
- const entries = Object.entries(value).slice(0, MAX_DEBUG_OBJECT_KEYS);
133
- const sanitized: Record<string, unknown> = {};
134
- entries.forEach(([entryKey, entryValue]) => {
135
- sanitized[entryKey] = sanitizeDebugPayload(entryValue, entryKey, depth + 1);
136
- });
137
- if (Object.keys(value).length > MAX_DEBUG_OBJECT_KEYS) {
138
- sanitized.__truncated__ = `${Object.keys(value).length - MAX_DEBUG_OBJECT_KEYS} more keys`;
139
- }
140
- return sanitized;
141
- }
142
-
143
80
  /**
144
- * 交互式 Ack(ButtonAck / PinMatrixAck / PassphraseAck 等)不应继承原调用的
145
- * timeoutMs:设备在等待用户操作(确认、输入 PIN/passphrase),思考时间不可预估,
146
- * 沿用业务调用的超时会把用户操作截断。仅保留 expectedTypes / intermediateTypes
147
- * 等与响应类型相关的选项。
81
+ * Interactive acknowledgements must not inherit timeoutMs from the original call.
82
+ * User confirmation and PIN/passphrase entry have unbounded think time. Preserve only
83
+ * response-related options such as expectedTypes and intermediateTypes.
148
84
  */
149
85
  const stripInteractiveAckTimeout = (
150
86
  options?: TransportCallOptions
@@ -326,20 +262,40 @@ export class DeviceCommands {
326
262
  if (this.disposed) {
327
263
  return;
328
264
  }
329
- this.dispose(true);
330
- if (this.callPromise) {
331
- try {
332
- await Promise.all([
333
- new Promise((_resolve, reject) =>
334
- // eslint-disable-next-line no-promise-executor-return
335
- setTimeout(() => reject(new Error('cancel timeout')), 10 * 1000)
336
- ),
337
- await this.callPromise,
338
- ]);
339
- } catch {
340
- // device error
265
+ const activeCall = this.callPromise;
266
+ let timer: ReturnType<typeof setTimeout> | undefined;
267
+ let timedOut = false;
268
+ const cancellation = (async () => {
269
+ await this.dispose(true);
270
+ await activeCall?.catch(() => undefined);
271
+ })();
272
+
273
+ try {
274
+ await Promise.race([
275
+ cancellation,
276
+ new Promise<void>(resolve => {
277
+ timer = setTimeout(() => {
278
+ timedOut = true;
279
+ resolve();
280
+ }, 10 * 1000);
281
+ }),
282
+ ]);
283
+ } finally {
284
+ if (timer) clearTimeout(timer);
285
+ if (
286
+ timedOut &&
287
+ this.transport.name === 'ReactNativeBleTransport' &&
288
+ this.transport.disconnect
289
+ ) {
290
+ await this.transport.disconnect(this.mainId).catch(error => {
291
+ Log.debug('BLE cancellation timeout disconnect error (ignored)', error);
292
+ });
293
+ }
294
+ if (this.callPromise === activeCall) {
341
295
  this.callPromise = undefined;
342
296
  }
297
+ // The cancellation work may finish after the bounded wait.
298
+ cancellation.catch(() => undefined);
343
299
  }
344
300
  }
345
301
 
@@ -351,22 +307,28 @@ export class DeviceCommands {
351
307
  ): Promise<DefaultMessageResponse> {
352
308
  const shouldReduceDebug = shouldReduceDebugForCall(type);
353
309
  if (!shouldReduceDebug) {
354
- Log.debug('[DeviceCommands] [call] Sending', type);
310
+ Log.debug(
311
+ '[DeviceCommands] [call] Sending',
312
+ type,
313
+ getSafeTransportLogPayload(msg ?? {}, type)
314
+ );
355
315
  }
356
316
 
357
317
  try {
358
318
  const promise = this.transport.call(this.mainId, type, msg ?? {}, options) as any;
359
319
  this.callPromise = promise;
360
320
  const res = await promise;
361
- if (res.type === 'Failure') {
362
- LogCore.debug('[DeviceCommands] [call] Received', res.type, res.message);
363
- } else if (!shouldReduceDebug) {
364
- LogCore.debug('[DeviceCommands] [call] Received', res.type);
365
- }
366
321
  return res;
367
322
  } catch (error) {
368
- LogCore.debug('[DeviceCommands] [call] Received error', error);
369
- if (error.errorCode === HardwareErrorCode.BleDeviceBondError) {
323
+ LogCore.debug('[DeviceCommands] [call] Received error', {
324
+ request: type,
325
+ errorCode: error?.errorCode,
326
+ response: getSafeTransportLogPayload(error?.response?.data, type),
327
+ });
328
+ if (
329
+ error.errorCode === HardwareErrorCode.BleDeviceBondError ||
330
+ error.errorCode === HardwareErrorCode.BlePeerRemovedPairingInformation
331
+ ) {
370
332
  return {
371
333
  type: 'BleDeviceBondError',
372
334
  message: {
@@ -386,9 +348,6 @@ export class DeviceCommands {
386
348
  }
387
349
  }
388
350
 
389
- if (responseData) {
390
- Log.debug('error response', responseData);
391
- }
392
351
  if (responseError === 'device disconnected during action') {
393
352
  return { type: 'BridgeDeviceDisconnected', message: { error: responseError } } as any;
394
353
  }
@@ -433,31 +392,6 @@ export class DeviceCommands {
433
392
  );
434
393
  }
435
394
 
436
- // Structured log of actual outgoing payloads (skip acks)
437
- try {
438
- const skipTypes: MessageKey[] = [
439
- 'ButtonAck',
440
- 'PinMatrixAck',
441
- 'PassphraseAck',
442
- 'Cancel',
443
- 'BixinPinInputOnDevice',
444
- 'FilesystemFileRead',
445
- 'FilesystemFileWrite',
446
- 'FileRead',
447
- 'FileWrite',
448
- 'EmmcFileRead',
449
- 'EmmcFileWrite',
450
- 'FirmwareUpload',
451
- 'ResourceAck',
452
- ] as any;
453
- if (!skipTypes.includes(type) && msg) {
454
- // Use debug channel to avoid noise escalation
455
- Log.debug('[DeviceCommands] [typedCall] Sending payload', type, sanitizeDebugPayload(msg));
456
- }
457
- } catch (e) {
458
- // ignore logging errors
459
- }
460
-
461
395
  const expectedTypes = Array.isArray(resType) ? resType : resType.split('|');
462
396
  const response = await this._commonCall(type, msg, {
463
397
  ...options,
@@ -479,7 +413,6 @@ export class DeviceCommands {
479
413
  request: type,
480
414
  expected: resType,
481
415
  received: response.type,
482
- response: sanitizeDebugPayload(response.message),
483
416
  });
484
417
  // Do not intercept CallMethodError
485
418
  // Do not intercept “assertType: Response of unexpected type” error
@@ -491,6 +424,9 @@ export class DeviceCommands {
491
424
  if (error.message.indexOf('BleDeviceBondError') > -1) {
492
425
  throw ERRORS.TypedError(HardwareErrorCode.BleDeviceBondError);
493
426
  }
427
+ if (error.message.indexOf('BlePeerRemovedPairingInformation') > -1) {
428
+ throw ERRORS.TypedError(HardwareErrorCode.BlePeerRemovedPairingInformation);
429
+ }
494
430
  if (error.message.indexOf('BridgeDeviceDisconnected') > -1) {
495
431
  throw ERRORS.TypedError(HardwareErrorCode.BridgeDeviceDisconnected);
496
432
  }
@@ -519,12 +455,14 @@ export class DeviceCommands {
519
455
  options?: TransportCallOptions
520
456
  ): Promise<DefaultMessageResponse> {
521
457
  try {
522
- if (shouldReduceDebugForCall(callType)) {
523
- // 高频文件写入每个 chunk 都会经过这里,避免 debug log 反向拖慢传输。
524
- } else if (DataManager.getSettings('env') === 'react-native') {
525
- Log.debug('_filterCommonTypes: ', JSON.stringify(sanitizeDebugPayload(res)));
526
- } else {
527
- Log.debug('_filterCommonTypes: ', sanitizeDebugPayload(res));
458
+ if (!shouldReduceDebugForCall(callType)) {
459
+ Log.debug('_filterCommonTypes: ', {
460
+ request: callType,
461
+ response: {
462
+ type: res.type,
463
+ message: getSafeTransportLogPayload(res.message, res.type),
464
+ },
465
+ });
528
466
  }
529
467
  } catch (error) {
530
468
  // ignore
@@ -563,7 +501,7 @@ export class DeviceCommands {
563
501
  if (message === 'Please confirm the BlindSign enabled') {
564
502
  error = ERRORS.TypedError(HardwareErrorCode.BlindSignDisabled);
565
503
  }
566
- if (message === 'File already exists') {
504
+ if (message === 'File already exists' || message === 'NFT already exists') {
567
505
  error = ERRORS.TypedError(HardwareErrorCode.FileAlreadyExists);
568
506
  }
569
507
  if (message?.includes('bytes overflow')) {
@@ -577,10 +515,96 @@ export class DeviceCommands {
577
515
  }
578
516
  }
579
517
 
580
- if (code === 'Failure_ProcessError') {
518
+ if (isProtocolV2LinkDisabledFailure(code, message)) {
519
+ error = ERRORS.TypedError(HardwareErrorCode.BleUnavailableWhileUsbConnected, undefined, {
520
+ failureCode: code,
521
+ firmwareMessage: message,
522
+ });
523
+ } else if (code === 'Failure_ProcessError') {
524
+ const normalizedMessage = message?.trim() ?? '';
525
+ const isProtocolV2ActionCancelledFailure =
526
+ this.device.isProtocolV2() && isProtocolV2ActionCancelledMessage(normalizedMessage);
527
+ const isProtocolV2DeviceBusyFailure =
528
+ this.device.isProtocolV2() &&
529
+ DEVICE_CONTROL_CALLS.has(callType) &&
530
+ subcode === DeviceErrorCode.DeviceError_Busy;
581
531
  const isLegacyProtocolV2LockedFailure =
582
- this.device.isProtocolV2() && /^device (?:is )?locked$/i.test(message?.trim() ?? '');
583
- if (subcode === 9 || isLegacyProtocolV2LockedFailure) {
532
+ this.device.isProtocolV2() && /^device (?:is )?locked$/i.test(normalizedMessage);
533
+ if (
534
+ DEVICE_SESSION_CALLS.has(callType) &&
535
+ subcode === DeviceSessionErrorCode.DeviceSessionError_InvalidSession
536
+ ) {
537
+ error = ERRORS.TypedError(HardwareErrorCode.WalletSessionInvalid, message, {
538
+ failureCode: code,
539
+ subcode,
540
+ firmwareMessage: message,
541
+ });
542
+ } else if (
543
+ DEVICE_SESSION_CALLS.has(callType) &&
544
+ subcode === DeviceSessionErrorCode.DeviceSessionError_UserCancelled
545
+ ) {
546
+ error = ERRORS.TypedError(HardwareErrorCode.ActionCancelled, message, {
547
+ failureCode: code,
548
+ subcode,
549
+ firmwareMessage: message,
550
+ });
551
+ } else if (
552
+ DEVICE_SESSION_CALLS.has(callType) &&
553
+ subcode === DeviceSessionErrorCode.DeviceSessionError_AttachPinUnavailable
554
+ ) {
555
+ error = ERRORS.TypedError(HardwareErrorCode.DeviceCheckUnlockTypeError, message, {
556
+ failureCode: code,
557
+ subcode,
558
+ firmwareMessage: message,
559
+ });
560
+ } else if (
561
+ DEVICE_SESSION_CALLS.has(callType) &&
562
+ subcode === DeviceSessionErrorCode.DeviceSessionError_PassphraseDisabled
563
+ ) {
564
+ error = ERRORS.TypedError(HardwareErrorCode.DeviceNotOpenedPassphrase, message, {
565
+ failureCode: code,
566
+ subcode,
567
+ firmwareMessage: message,
568
+ });
569
+ } else if (
570
+ DEVICE_SESSION_CALLS.has(callType) &&
571
+ (subcode === DeviceSessionErrorCode.DeviceSessionError_Busy ||
572
+ /^(?:busy|another flow in progress)$/i.test(normalizedMessage))
573
+ ) {
574
+ error = ERRORS.TypedError(HardwareErrorCode.DeviceBusy, message, {
575
+ failureCode: code,
576
+ subcode,
577
+ firmwareMessage: message,
578
+ });
579
+ } else if (
580
+ callType === 'DeviceSessionAskPin' &&
581
+ /^passphrase disabled$/i.test(normalizedMessage)
582
+ ) {
583
+ error = ERRORS.TypedError(HardwareErrorCode.DeviceNotOpenedPassphrase, message, {
584
+ failureCode: code,
585
+ subcode,
586
+ firmwareMessage: message,
587
+ });
588
+ } else if (isProtocolV2DeviceBusyFailure) {
589
+ error = ERRORS.TypedError(HardwareErrorCode.DeviceBusy, message, {
590
+ failureCode: code,
591
+ subcode,
592
+ firmwareMessage: message,
593
+ });
594
+ } else if (
595
+ (DEVICE_CONTROL_CALLS.has(callType) &&
596
+ subcode === DeviceErrorCode.DeviceError_ActionCancelled) ||
597
+ isProtocolV2ActionCancelledFailure
598
+ ) {
599
+ error = ERRORS.TypedError(HardwareErrorCode.ActionCancelled, message, {
600
+ failureCode: code,
601
+ subcode,
602
+ firmwareMessage: message,
603
+ });
604
+ } else if (
605
+ subcode === DeviceErrorCode.DeviceError_DeviceLocked ||
606
+ isLegacyProtocolV2LockedFailure
607
+ ) {
584
608
  error = ERRORS.TypedError(HardwareErrorCode.DeviceLocked, message, {
585
609
  failureCode: code,
586
610
  subcode,
@@ -663,7 +687,7 @@ export class DeviceCommands {
663
687
 
664
688
  if (res.type === 'PassphraseRequest') {
665
689
  const existsAttachPinUser = res.message.exists_attach_pin_user;
666
- return this._promptPassphrase({
690
+ return this.promptPassphrase({
667
691
  existsAttachPinUser,
668
692
  }).then(response => {
669
693
  const { passphrase, passphraseOnDevice, attachPinOnDevice } = response;
@@ -761,10 +785,27 @@ export class DeviceCommands {
761
785
  });
762
786
  }
763
787
 
764
- _promptPassphrase(options: PassphraseRequestPayload) {
788
+ promptPassphrase(
789
+ options: PassphraseRequestPayload,
790
+ promptOptions: { cancelDeviceOnReject?: boolean } = {}
791
+ ) {
765
792
  return new Promise<PassphrasePromptResponse>((resolve, reject) => {
766
- const cancelAndReject = (_error?: Error) =>
767
- cancelDeviceInPrompt(this.device, false)
793
+ const cancelAndReject = (_error?: Error) => {
794
+ const rejectWithCancelledError = () => {
795
+ reject(
796
+ ERRORS.TypedError(
797
+ HardwareErrorCode.CallQueueActionCancelled,
798
+ `${DEVICE.PASSPHRASE} canceled`
799
+ )
800
+ );
801
+ };
802
+
803
+ if (promptOptions.cancelDeviceOnReject === false) {
804
+ rejectWithCancelledError();
805
+ return Promise.resolve();
806
+ }
807
+
808
+ return cancelDeviceInPrompt(this.device, false)
768
809
  .then(onCancel => {
769
810
  const error = ERRORS.TypedError(
770
811
  HardwareErrorCode.CallQueueActionCancelled,
@@ -781,6 +822,7 @@ export class DeviceCommands {
781
822
  .catch(error => {
782
823
  reject(error);
783
824
  });
825
+ };
784
826
 
785
827
  if (this.device.listenerCount(DEVICE.PASSPHRASE) > 0) {
786
828
  this.device.setCancelableAction(cancelAndReject);
@@ -1,3 +1,4 @@
1
+ import { isProtocolV2LinkDisabledError } from '@onekeyfe/hd-transport';
1
2
  import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
2
3
 
3
4
  import { safeThrowError } from '../constants';
@@ -14,7 +15,7 @@ import type { OneKeyDeviceInfo as DeviceDescriptor, Transport } from '@onekeyfe/
14
15
  const Log = getLogger(LoggerNames.DeviceConnector);
15
16
 
16
17
  export default class DeviceConnector {
17
- transport: Transport;
18
+ transport?: Transport;
18
19
 
19
20
  listenTimestamp = 0;
20
21
 
@@ -30,9 +31,21 @@ export default class DeviceConnector {
30
31
  DevicePool.setConnector(this);
31
32
  }
32
33
 
34
+ private getActiveTransport(): Transport {
35
+ const transport = this.transport ?? TransportManager.getTransport();
36
+ if (!transport) {
37
+ throw ERRORS.TypedError(
38
+ HardwareErrorCode.TransportNotConfigured,
39
+ 'Device connector was created before transport initialization'
40
+ );
41
+ }
42
+ this.transport = transport;
43
+ return transport;
44
+ }
45
+
33
46
  async enumerate() {
34
47
  try {
35
- const descriptors = await this.transport.enumerate();
48
+ const descriptors = await this.getActiveTransport().enumerate();
36
49
  this.upcoming = descriptors;
37
50
  this._reportDevicesChange();
38
51
  return { descriptors } as DeviceDescriptorDiff;
@@ -50,11 +63,10 @@ export default class DeviceConnector {
50
63
  let descriptors: DeviceDescriptor[];
51
64
 
52
65
  try {
66
+ const transport = this.getActiveTransport();
53
67
  Log.debug('Start listening', current);
54
68
  this.listenTimestamp = new Date().getTime();
55
- descriptors = waitForEvent
56
- ? await this.transport.listen(current)
57
- : await this.transport.enumerate();
69
+ descriptors = waitForEvent ? await transport.listen(current) : await transport.enumerate();
58
70
  if (!this.listening) return; // do not continue if stop() was called
59
71
 
60
72
  this.upcoming = descriptors;
@@ -82,44 +94,63 @@ export default class DeviceConnector {
82
94
  path: string,
83
95
  session?: string | null,
84
96
  forceCleanRunPromise?: boolean,
85
- connectProtocol?: HardwareConnectProtocol
97
+ expectedProtocol?: HardwareConnectProtocol,
98
+ protocolHint?: HardwareConnectProtocol,
99
+ forceProtocolDetection?: boolean
86
100
  ) {
87
- Log.debug('acquire', path, session, connectProtocol);
101
+ Log.debug('acquire', path, session, expectedProtocol, protocolHint);
88
102
  const env = DataManager.getSettings('env');
89
103
  try {
104
+ const transport = this.getActiveTransport();
90
105
  let res;
91
106
  if (DataManager.isBleConnect(env)) {
92
- res = await this.transport.acquire({
107
+ res = await transport.acquire({
93
108
  uuid: path,
94
109
  forceCleanRunPromise,
95
- expectedProtocol: connectProtocol,
110
+ expectedProtocol,
111
+ protocolHint,
112
+ forceProtocolDetection,
96
113
  });
97
114
  } else {
98
- res = await this.transport.acquire({
115
+ res = await transport.acquire({
99
116
  path,
100
117
  previous: session ?? null,
101
- expectedProtocol: connectProtocol,
118
+ expectedProtocol,
119
+ protocolHint,
120
+ forceProtocolDetection,
102
121
  });
103
122
  }
104
- if (connectProtocol) {
105
- const detectedProtocol = this.transport.getProtocolType(path);
106
- if (detectedProtocol !== connectProtocol) {
123
+ if (expectedProtocol) {
124
+ // The acquire response is the stable snapshot from this active probe. A delayed
125
+ // disconnect from an older generation may clear caches, so do not rely on cache alone.
126
+ const acquiredProtocol =
127
+ typeof res === 'object' && res !== null
128
+ ? (res as DeviceDescriptor).protocolType
129
+ : undefined;
130
+ const detectedProtocol = acquiredProtocol ?? transport.getProtocolType(path);
131
+ if (detectedProtocol !== expectedProtocol) {
107
132
  throw ERRORS.TypedError(
108
133
  HardwareErrorCode.RuntimeError,
109
- `Device protocol mismatch: expected ${connectProtocol}, detected ${detectedProtocol}`
134
+ `Device protocol mismatch: expected ${expectedProtocol}, detected ${detectedProtocol}`
110
135
  );
111
136
  }
112
137
  }
113
138
  return res;
114
139
  } catch (error) {
115
140
  Log.error('acquire error: ', error.message);
141
+ if (isProtocolV2LinkDisabledError(error)) {
142
+ throw ERRORS.TypedError(HardwareErrorCode.BleUnavailableWhileUsbConnected, undefined, {
143
+ failureCode: error.failureCode,
144
+ firmwareMessage: error.firmwareMessage,
145
+ });
146
+ }
116
147
  safeThrowError(error);
117
148
  }
118
149
  }
119
150
 
120
- async release(session: string, onclose: boolean) {
151
+ async release(session: string, onclose: boolean, keepSession?: boolean) {
121
152
  try {
122
- const res = await this.transport.release(session, onclose);
153
+ const res = await this.getActiveTransport().release(session, onclose, keepSession);
123
154
  return res;
124
155
  } catch (error) {
125
156
  safeThrowError(error);
@@ -128,8 +159,9 @@ export default class DeviceConnector {
128
159
 
129
160
  async disconnect(session: string | undefined | null) {
130
161
  try {
131
- if (this.transport.disconnect && !!session) {
132
- await this.transport.disconnect(session);
162
+ const transport = this.getActiveTransport();
163
+ if (transport.disconnect && !!session) {
164
+ await transport.disconnect(session);
133
165
  }
134
166
  } catch (error) {
135
167
  safeThrowError(error);
@@ -137,10 +169,11 @@ export default class DeviceConnector {
137
169
  }
138
170
 
139
171
  promptDeviceAccess(): Promise<USBDevice | BluetoothDevice | null> {
140
- if (!this.transport.promptDeviceAccess) {
172
+ const transport = this.getActiveTransport();
173
+ if (!transport.promptDeviceAccess) {
141
174
  return Promise.resolve(null);
142
175
  }
143
- return this.transport.promptDeviceAccess();
176
+ return transport.promptDeviceAccess();
144
177
  }
145
178
 
146
179
  _reportDevicesChange() {
@@ -0,0 +1,25 @@
1
+ import type { Features } from '../types';
2
+
3
+ /**
4
+ * Merge a field-level device-state patch.
5
+ *
6
+ * `undefined` means the response omitted a field and preserves the cache; `null`
7
+ * means the device explicitly returned an empty value and must be cached. Callers
8
+ * provide complete object fields such as raw; this function does not deep-merge.
9
+ */
10
+ export function mergeDeviceFeaturesPatch(previous: Features, patch: Partial<Features>): Features {
11
+ let next = previous;
12
+
13
+ for (const [key, value] of Object.entries(patch) as Array<
14
+ [keyof Features, Features[keyof Features] | undefined]
15
+ >) {
16
+ if (value !== undefined && !Object.is(previous[key], value)) {
17
+ if (next === previous) {
18
+ next = { ...previous };
19
+ }
20
+ (next as Record<keyof Features, Features[keyof Features]>)[key] = value;
21
+ }
22
+ }
23
+
24
+ return next;
25
+ }