@onekeyfe/hd-core 1.2.0-alpha.7 → 1.2.0-alpha.70

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 (785) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +390 -0
  2. package/__tests__/DeviceCommands.test.ts +563 -0
  3. package/__tests__/DeviceEventRegistration.test.ts +49 -0
  4. package/__tests__/chain-params-onekey-compatibility.test.ts +229 -0
  5. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +477 -0
  6. package/__tests__/connectSettings.test.ts +45 -5
  7. package/__tests__/core-dispose.test.ts +34 -0
  8. package/__tests__/core-error-output.test.ts +39 -0
  9. package/__tests__/core-initialization.test.ts +23 -0
  10. package/__tests__/device-connector-protocol.test.ts +81 -0
  11. package/__tests__/device-features-state.test.ts +78 -0
  12. package/__tests__/device-identity.test.ts +52 -0
  13. package/__tests__/device-initialize-timeout.test.ts +56 -0
  14. package/__tests__/device-lifecycle-events.test.ts +351 -0
  15. package/__tests__/device-pool-state.test.ts +166 -0
  16. package/__tests__/device-settings.test.ts +437 -0
  17. package/__tests__/device-state-contract.test.ts +28 -0
  18. package/__tests__/device-state-events.test.ts +286 -0
  19. package/__tests__/device-state-mapper.test.ts +273 -0
  20. package/__tests__/device-state-projector.test.ts +94 -0
  21. package/__tests__/device-state-store.test.ts +82 -0
  22. package/__tests__/device-utils.test.ts +154 -0
  23. package/__tests__/device-wallet-session-store.test.ts +478 -0
  24. package/__tests__/deviceFeaturesUtils.test.ts +39 -0
  25. package/__tests__/deviceSettings.test.ts +113 -0
  26. package/__tests__/deviceUploadNft.test.ts +316 -0
  27. package/__tests__/evmLedgerLegacySafety.test.ts +12 -6
  28. package/__tests__/evmSignTransaction.test.ts +69 -0
  29. package/__tests__/evmSignTypedData.test.ts +80 -0
  30. package/__tests__/filesystemValidation.test.ts +53 -0
  31. package/__tests__/firmware-update/check-all-firmware-release.test.ts +175 -0
  32. package/__tests__/firmware-update/device-update-bootloader.test.ts +87 -0
  33. package/__tests__/firmware-update/firmware-artifact-source.test.ts +119 -0
  34. package/__tests__/firmware-update/firmware-host-binding.test.ts +70 -0
  35. package/__tests__/firmware-update/firmware-preparation-error.test.ts +27 -0
  36. package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +200 -0
  37. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +13 -0
  38. package/__tests__/firmware-update/firmware-update-plan-bootloader-identity.test.ts +394 -0
  39. package/__tests__/firmware-update/firmware-update-plan.test.ts +593 -0
  40. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +231 -0
  41. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +430 -0
  42. package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +63 -0
  43. package/__tests__/firmware-update/firmware-upload-source.test.ts +70 -0
  44. package/__tests__/get-device-state.test.ts +578 -0
  45. package/__tests__/homescreen.test.ts +64 -0
  46. package/__tests__/kaspa-public-types.type-test.ts +16 -0
  47. package/__tests__/kaspa-use-tweak-pro2.test.ts +20 -0
  48. package/__tests__/kaspaSignTransaction.test.ts +578 -0
  49. package/__tests__/known-device-public-types.type-test.ts +3 -0
  50. package/__tests__/logBlockEvent.test.ts +128 -1
  51. package/__tests__/method-protocol-support.test.ts +132 -0
  52. package/__tests__/networkUtils.test.ts +406 -0
  53. package/__tests__/open-wallet-session-error-response.test.ts +43 -0
  54. package/__tests__/open-wallet-session.test.ts +1899 -0
  55. package/__tests__/pro2Nft.test.ts +108 -0
  56. package/__tests__/pro2Wallpaper.test.ts +39 -0
  57. package/__tests__/protocol-binding.test.ts +89 -0
  58. package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
  59. package/__tests__/protocol-v2-firmware-targets.test.ts +37 -0
  60. package/__tests__/protocol-v2-ping.test.ts +28 -0
  61. package/__tests__/protocol-v2-resources.test.ts +340 -0
  62. package/__tests__/protocol-v2-ui-lifecycle.test.ts +91 -0
  63. package/__tests__/protocol-v2-unlock-policy.test.ts +308 -0
  64. package/__tests__/protocol-v2.test.ts +6815 -2596
  65. package/__tests__/protocolV2FileWrite.test.ts +244 -0
  66. package/__tests__/protocolV2UiInteraction.test.ts +329 -0
  67. package/__tests__/public-device-state-api.test.ts +275 -0
  68. package/__tests__/public-pro2-api-boundary.test.ts +107 -0
  69. package/__tests__/refresh-device-state.test.ts +101 -0
  70. package/__tests__/request-context-logging.test.ts +16 -0
  71. package/__tests__/search-devices.test.ts +145 -0
  72. package/__tests__/tron-sign-message-init.test.ts +74 -0
  73. package/__tests__/uiProgressThrottle.test.ts +74 -0
  74. package/__tests__/uiPromiseRegistry.test.ts +115 -0
  75. package/dist/api/BaseMethod.d.ts +16 -1
  76. package/dist/api/BaseMethod.d.ts.map +1 -1
  77. package/dist/api/CheckAllFirmwareRelease.d.ts +25 -1
  78. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  79. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  80. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  81. package/dist/api/CipherKeyValue.d.ts +1 -0
  82. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  83. package/dist/api/ClearSessionCache.d.ts +9 -0
  84. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  85. package/dist/api/DetectDeviceConnectProtocol.d.ts +7 -0
  86. package/dist/api/DetectDeviceConnectProtocol.d.ts.map +1 -0
  87. package/dist/api/DirList.d.ts +1 -0
  88. package/dist/api/DirList.d.ts.map +1 -1
  89. package/dist/api/DirMake.d.ts +1 -0
  90. package/dist/api/DirMake.d.ts.map +1 -1
  91. package/dist/api/DirRemove.d.ts +1 -0
  92. package/dist/api/DirRemove.d.ts.map +1 -1
  93. package/dist/api/FileDelete.d.ts +1 -0
  94. package/dist/api/FileDelete.d.ts.map +1 -1
  95. package/dist/api/FileRead.d.ts +1 -0
  96. package/dist/api/FileRead.d.ts.map +1 -1
  97. package/dist/api/FileWrite.d.ts +2 -0
  98. package/dist/api/FileWrite.d.ts.map +1 -1
  99. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  100. package/dist/api/FirmwareUpdateV2.d.ts +12 -2
  101. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  102. package/dist/api/FirmwareUpdateV3.d.ts +7 -3
  103. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  104. package/dist/api/FirmwareUpdateV4.d.ts +49 -18
  105. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  106. package/dist/api/GetDeviceState.d.ts +8 -0
  107. package/dist/api/GetDeviceState.d.ts.map +1 -0
  108. package/dist/api/GetFeatures.d.ts +1 -1
  109. package/dist/api/GetFeatures.d.ts.map +1 -1
  110. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  111. package/dist/api/GetPassphraseState.d.ts +2 -6
  112. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  113. package/dist/api/OpenWalletSession.d.ts +8 -0
  114. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  115. package/dist/api/PathInfo.d.ts +1 -0
  116. package/dist/api/PathInfo.d.ts.map +1 -1
  117. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  118. package/dist/api/SearchDevices.d.ts +3 -0
  119. package/dist/api/SearchDevices.d.ts.map +1 -1
  120. package/dist/api/UploadPortfolio.d.ts +17 -0
  121. package/dist/api/UploadPortfolio.d.ts.map +1 -0
  122. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  123. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  124. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  125. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  126. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  127. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  128. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  129. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  130. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  131. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  132. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  133. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  134. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  135. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  136. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  137. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  138. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  139. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  140. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  141. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  142. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  143. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  144. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  145. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  146. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  147. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  148. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  149. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  150. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  151. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  152. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  153. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  154. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  155. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  156. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  157. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  158. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  159. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  160. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  161. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  162. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  163. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  164. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  165. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  166. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  167. package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
  168. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  169. package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
  170. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  171. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
  172. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  173. package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
  174. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  175. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  176. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  177. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  178. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  179. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  180. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  181. package/dist/api/device/DeviceCancel.d.ts +1 -0
  182. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  183. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  184. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  185. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  186. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  187. package/dist/api/device/DeviceLock.d.ts +1 -0
  188. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  189. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  190. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  191. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  192. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  193. package/dist/api/device/DeviceSettings.d.ts +1 -0
  194. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  195. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  196. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  197. package/dist/api/device/DeviceUnlock.d.ts +3 -2
  198. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  199. package/dist/api/device/DeviceUpdateBootloader.d.ts +5 -1
  200. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  201. package/dist/api/device/DeviceWipe.d.ts +1 -0
  202. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  203. package/dist/api/device/PreInitialize.d.ts +1 -0
  204. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  205. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  206. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  207. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  208. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  209. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  210. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  211. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  212. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  213. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  214. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  215. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  216. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  217. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  218. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  219. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  220. package/dist/api/evm/protocol.d.ts +3 -0
  221. package/dist/api/evm/protocol.d.ts.map +1 -0
  222. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  223. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  224. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  225. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  226. package/dist/api/firmware/FirmwareArtifactSource.d.ts +25 -0
  227. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +1 -0
  228. package/dist/api/firmware/FirmwareHostBinding.d.ts +6 -0
  229. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -0
  230. package/dist/api/firmware/FirmwarePreparationError.d.ts +3 -0
  231. package/dist/api/firmware/FirmwarePreparationError.d.ts.map +1 -0
  232. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +12 -3
  233. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  234. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +3 -0
  235. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +1 -0
  236. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +25 -0
  237. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -0
  238. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +32 -0
  239. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -0
  240. package/dist/api/firmware/getBinary.d.ts +15 -4
  241. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  242. package/dist/api/firmware/updateBootloader.d.ts +2 -0
  243. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  244. package/dist/api/firmware/uploadFirmware.d.ts +9 -1
  245. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  246. package/dist/api/helpers/filesystemValidation.d.ts +3 -0
  247. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
  248. package/dist/api/helpers/paramsValidator.d.ts +1 -0
  249. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  250. package/dist/api/helpers/protocolV2FileWrite.d.ts +42 -0
  251. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
  252. package/dist/api/index.d.ts +9 -25
  253. package/dist/api/index.d.ts.map +1 -1
  254. package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
  255. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  256. package/dist/api/kaspa/KaspaSignTransaction.d.ts +9 -1
  257. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  258. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  259. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  260. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  261. package/dist/api/near/NearGetAddress.d.ts +1 -0
  262. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  263. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  264. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  265. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  266. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  267. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  268. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  269. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  270. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  271. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  272. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  273. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  274. package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
  275. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  276. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  277. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  278. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  279. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  280. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  281. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  282. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  283. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  284. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  285. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  286. package/dist/api/polkadot/PolkadotGetAddress.d.ts +2 -1
  287. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  288. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  289. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  290. package/dist/api/polkadot/networks.d.ts +1 -1
  291. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  292. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  293. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  294. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  295. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -0
  296. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  297. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +1 -0
  298. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  299. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +7 -0
  300. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
  301. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +1 -1
  302. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  303. package/dist/api/protocol-v2/DeviceReboot.d.ts +1 -0
  304. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  305. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +7 -0
  306. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  307. package/dist/api/protocol-v2/DeviceUploadNft.d.ts +31 -0
  308. package/dist/api/protocol-v2/DeviceUploadNft.d.ts.map +1 -0
  309. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +27 -0
  310. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
  311. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  312. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  313. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  314. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  315. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  316. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  317. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  318. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  319. package/dist/api/protocol-v2/helpers.d.ts +1 -1
  320. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  321. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  322. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  323. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  324. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  325. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  326. package/dist/api/solana/SolSignMessage.d.ts +2 -1
  327. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  328. package/dist/api/solana/SolSignOffchainMessage.d.ts +2 -1
  329. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  330. package/dist/api/solana/SolSignTransaction.d.ts +3 -2
  331. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  332. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  333. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  334. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  335. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  336. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  337. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  338. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  339. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  340. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  341. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  342. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  343. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  344. package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
  345. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  346. package/dist/api/sui/SuiGetAddress.d.ts +2 -1
  347. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  348. package/dist/api/sui/SuiGetPublicKey.d.ts +2 -1
  349. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  350. package/dist/api/sui/SuiSignMessage.d.ts +2 -1
  351. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  352. package/dist/api/sui/SuiSignTransaction.d.ts +2 -1
  353. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  354. package/dist/api/ton/TonGetAddress.d.ts +2 -1
  355. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  356. package/dist/api/ton/TonSignData.d.ts +1 -0
  357. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  358. package/dist/api/ton/TonSignMessage.d.ts +2 -1
  359. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  360. package/dist/api/ton/TonSignProof.d.ts +2 -1
  361. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  362. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  363. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  364. package/dist/api/tron/TronSignMessage.d.ts +6 -1
  365. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  366. package/dist/api/tron/TronSignTransaction.d.ts +2 -1
  367. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  368. package/dist/api/utils.d.ts +2 -1
  369. package/dist/api/utils.d.ts.map +1 -1
  370. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  371. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  372. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  373. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  374. package/dist/constants/index.d.ts +1 -1
  375. package/dist/constants/index.d.ts.map +1 -1
  376. package/dist/core/RequestQueue.d.ts.map +1 -1
  377. package/dist/core/deviceEventRegistration.d.ts +13 -0
  378. package/dist/core/deviceEventRegistration.d.ts.map +1 -0
  379. package/dist/core/index.d.ts +3 -1
  380. package/dist/core/index.d.ts.map +1 -1
  381. package/dist/core/uiPromiseRegistry.d.ts +6 -0
  382. package/dist/core/uiPromiseRegistry.d.ts.map +1 -0
  383. package/dist/data-manager/DataManager.d.ts +10 -3
  384. package/dist/data-manager/DataManager.d.ts.map +1 -1
  385. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  386. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  387. package/dist/device/Device.d.ts +72 -17
  388. package/dist/device/Device.d.ts.map +1 -1
  389. package/dist/device/DeviceCommands.d.ts +8 -6
  390. package/dist/device/DeviceCommands.d.ts.map +1 -1
  391. package/dist/device/DeviceConnector.d.ts +3 -2
  392. package/dist/device/DeviceConnector.d.ts.map +1 -1
  393. package/dist/device/DeviceFeaturesState.d.ts +3 -0
  394. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  395. package/dist/device/DevicePool.d.ts +5 -2
  396. package/dist/device/DevicePool.d.ts.map +1 -1
  397. package/dist/device/DeviceStateMapper.d.ts +13 -0
  398. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  399. package/dist/device/DeviceStateProjector.d.ts +7 -0
  400. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  401. package/dist/device/DeviceStateStore.d.ts +21 -0
  402. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  403. package/dist/device/DeviceWalletSessionStore.d.ts +27 -0
  404. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  405. package/dist/device/cloneDeviceState.d.ts +2 -0
  406. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  407. package/dist/device/deviceIdentity.d.ts +5 -0
  408. package/dist/device/deviceIdentity.d.ts.map +1 -0
  409. package/dist/deviceProfile/buildDeviceFeatures.d.ts +9 -3
  410. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  411. package/dist/deviceProfile/index.d.ts +0 -1
  412. package/dist/deviceProfile/index.d.ts.map +1 -1
  413. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
  414. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
  415. package/dist/events/device.d.ts +16 -2
  416. package/dist/events/device.d.ts.map +1 -1
  417. package/dist/events/logBlockEvent.d.ts +2 -0
  418. package/dist/events/logBlockEvent.d.ts.map +1 -1
  419. package/dist/events/ui-promise.d.ts +4 -2
  420. package/dist/events/ui-promise.d.ts.map +1 -1
  421. package/dist/events/ui-request.d.ts +50 -4
  422. package/dist/events/ui-request.d.ts.map +1 -1
  423. package/dist/events/ui-response.d.ts +10 -2
  424. package/dist/events/ui-response.d.ts.map +1 -1
  425. package/dist/index.d.ts +1770 -772
  426. package/dist/index.d.ts.map +1 -1
  427. package/dist/index.js +10827 -4143
  428. package/dist/inject.d.ts +6 -1
  429. package/dist/inject.d.ts.map +1 -1
  430. package/dist/lowLevelInject.d.ts.map +1 -1
  431. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  432. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  433. package/dist/protocols/protocol-v2/features.d.ts +21 -17
  434. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  435. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
  436. package/dist/protocols/protocol-v2/index.d.ts +3 -2
  437. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  438. package/dist/protocols/protocol-v2/resources.d.ts +30 -0
  439. package/dist/protocols/protocol-v2/resources.d.ts.map +1 -0
  440. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
  441. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  442. package/dist/protocols/protocol-v2/uiInteraction.d.ts +42 -0
  443. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
  444. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +2 -0
  445. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
  446. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts +22 -0
  447. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts.map +1 -0
  448. package/dist/protocols/protocol-v2/walletSession.d.ts +27 -0
  449. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  450. package/dist/topLevelInject.d.ts.map +1 -1
  451. package/dist/types/api/checkAllFirmwareRelease.d.ts +31 -4
  452. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  453. package/dist/types/api/detectDeviceConnectProtocol.d.ts +4 -0
  454. package/dist/types/api/detectDeviceConnectProtocol.d.ts.map +1 -0
  455. package/dist/types/api/deviceSettings.d.ts +11 -2
  456. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  457. package/dist/types/api/deviceUnlock.d.ts +6 -2
  458. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  459. package/dist/types/api/deviceUpdateBootloader.d.ts +6 -0
  460. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  461. package/dist/types/api/export.d.ts +7 -2
  462. package/dist/types/api/export.d.ts.map +1 -1
  463. package/dist/types/api/firmwareUpdate.d.ts +76 -1
  464. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  465. package/dist/types/api/firmwareUpdateCapabilities.d.ts +9 -0
  466. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +1 -0
  467. package/dist/types/api/firmwareUpdatePlan.d.ts +28 -0
  468. package/dist/types/api/firmwareUpdatePlan.d.ts.map +1 -0
  469. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +42 -0
  470. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +1 -0
  471. package/dist/types/api/getDeviceState.d.ts +12 -0
  472. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  473. package/dist/types/api/getFeatures.d.ts.map +1 -1
  474. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  475. package/dist/types/api/getPassphraseState.d.ts +2 -10
  476. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  477. package/dist/types/api/index.d.ts +32 -31
  478. package/dist/types/api/index.d.ts.map +1 -1
  479. package/dist/types/api/kaspaSignTransaction.d.ts +42 -4
  480. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  481. package/dist/types/api/openWalletSession.d.ts +35 -0
  482. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  483. package/dist/types/api/protocolV2.d.ts +18 -84
  484. package/dist/types/api/protocolV2.d.ts.map +1 -1
  485. package/dist/types/api/sessionCache.d.ts +13 -0
  486. package/dist/types/api/sessionCache.d.ts.map +1 -0
  487. package/dist/types/device.d.ts +134 -10
  488. package/dist/types/device.d.ts.map +1 -1
  489. package/dist/types/params.d.ts +1 -0
  490. package/dist/types/params.d.ts.map +1 -1
  491. package/dist/types/settings.d.ts +57 -21
  492. package/dist/types/settings.d.ts.map +1 -1
  493. package/dist/utils/assets.d.ts +2 -1
  494. package/dist/utils/assets.d.ts.map +1 -1
  495. package/dist/utils/deviceFeaturesCompat.d.ts +14 -0
  496. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  497. package/dist/utils/deviceFeaturesUtils.d.ts +10 -3
  498. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  499. package/dist/utils/deviceInfoUtils.d.ts +9 -9
  500. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  501. package/dist/utils/deviceSettings.d.ts +38 -7
  502. package/dist/utils/deviceSettings.d.ts.map +1 -1
  503. package/dist/utils/deviceVersionUtils.d.ts +7 -5
  504. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  505. package/dist/utils/homescreen.d.ts +4 -0
  506. package/dist/utils/homescreen.d.ts.map +1 -1
  507. package/dist/utils/index.d.ts +6 -3
  508. package/dist/utils/index.d.ts.map +1 -1
  509. package/dist/utils/networkUtils.d.ts +10 -1
  510. package/dist/utils/networkUtils.d.ts.map +1 -1
  511. package/dist/utils/patch.d.ts +1 -1
  512. package/dist/utils/patch.d.ts.map +1 -1
  513. package/dist/utils/pro2Nft.d.ts +31 -0
  514. package/dist/utils/pro2Nft.d.ts.map +1 -0
  515. package/dist/utils/pro2Wallpaper.d.ts +22 -0
  516. package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
  517. package/dist/utils/tracing.d.ts.map +1 -1
  518. package/dist/utils/uiProgressThrottle.d.ts +3 -0
  519. package/dist/utils/uiProgressThrottle.d.ts.map +1 -0
  520. package/package.json +4 -4
  521. package/src/api/BaseMethod.ts +53 -20
  522. package/src/api/CheckAllFirmwareRelease.ts +394 -4
  523. package/src/api/CheckBootloaderRelease.ts +1 -2
  524. package/src/api/CheckFirmwareRelease.ts +1 -2
  525. package/src/api/CipherKeyValue.ts +4 -0
  526. package/src/api/ClearSessionCache.ts +32 -0
  527. package/src/api/DetectDeviceConnectProtocol.ts +18 -0
  528. package/src/api/DirList.ts +9 -4
  529. package/src/api/DirMake.ts +7 -4
  530. package/src/api/DirRemove.ts +7 -4
  531. package/src/api/FileDelete.ts +7 -4
  532. package/src/api/FileRead.ts +15 -9
  533. package/src/api/FileWrite.ts +26 -181
  534. package/src/api/FirmwareUpdate.ts +30 -15
  535. package/src/api/FirmwareUpdateV2.ts +373 -115
  536. package/src/api/FirmwareUpdateV3.ts +272 -70
  537. package/src/api/FirmwareUpdateV4.ts +1487 -688
  538. package/src/api/GetDeviceState.ts +59 -0
  539. package/src/api/GetFeatures.ts +6 -4
  540. package/src/api/GetOnekeyFeatures.ts +1 -75
  541. package/src/api/GetPassphraseState.ts +36 -21
  542. package/src/api/OpenWalletSession.ts +268 -0
  543. package/src/api/PathInfo.ts +9 -4
  544. package/src/api/PromptWebDeviceAccess.ts +2 -7
  545. package/src/api/SearchDevices.ts +31 -4
  546. package/src/api/UploadPortfolio.ts +40 -0
  547. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  548. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  549. package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
  550. package/src/api/algo/AlgoGetAddress.ts +4 -0
  551. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  552. package/src/api/allnetwork/AllNetworkGetAddress.ts +21 -21
  553. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +45 -32
  554. package/src/api/aptos/AptosGetAddress.ts +4 -0
  555. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  556. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  557. package/src/api/aptos/AptosSignMessage.ts +4 -0
  558. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  559. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  560. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  561. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  562. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  563. package/src/api/btc/BTCGetAddress.ts +8 -1
  564. package/src/api/btc/BTCGetPublicKey.ts +9 -2
  565. package/src/api/btc/BTCSignMessage.ts +8 -1
  566. package/src/api/btc/BTCSignPsbt.ts +4 -0
  567. package/src/api/btc/BTCSignTransaction.ts +8 -1
  568. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  569. package/src/api/btc/helpers/versionLimit.ts +7 -4
  570. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  571. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  572. package/src/api/cardano/CardanoSignMessage.ts +5 -1
  573. package/src/api/cardano/CardanoSignTransaction.ts +5 -1
  574. package/src/api/conflux/ConfluxGetAddress.ts +6 -0
  575. package/src/api/conflux/ConfluxSignMessage.ts +6 -0
  576. package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
  577. package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
  578. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  579. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  580. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  581. package/src/api/device/DeviceCancel.ts +5 -0
  582. package/src/api/device/DeviceChangePin.ts +28 -0
  583. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  584. package/src/api/device/DeviceLock.ts +5 -0
  585. package/src/api/device/DeviceRebootToBoardloader.ts +5 -0
  586. package/src/api/device/DeviceRebootToBootloader.ts +5 -0
  587. package/src/api/device/DeviceSettings.ts +195 -1
  588. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  589. package/src/api/device/DeviceUnlock.ts +21 -3
  590. package/src/api/device/DeviceUpdateBootloader.ts +126 -8
  591. package/src/api/device/DeviceWipe.ts +25 -0
  592. package/src/api/device/PreInitialize.ts +4 -0
  593. package/src/api/dynex/DnxGetAddress.ts +0 -6
  594. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  595. package/src/api/evm/EVMGetAddress.ts +6 -2
  596. package/src/api/evm/EVMGetPublicKey.ts +6 -2
  597. package/src/api/evm/EVMSignMessage.ts +6 -2
  598. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  599. package/src/api/evm/EVMSignTransaction.ts +6 -2
  600. package/src/api/evm/EVMSignTypedData.ts +42 -50
  601. package/src/api/evm/EVMVerifyMessage.ts +6 -2
  602. package/src/api/evm/legacyV1/getAddress.ts +2 -2
  603. package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
  604. package/src/api/evm/legacyV1/signMessage.ts +2 -2
  605. package/src/api/evm/legacyV1/signTypedData.ts +2 -2
  606. package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
  607. package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
  608. package/src/api/evm/protocol.ts +6 -0
  609. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  610. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  611. package/src/api/firmware/FirmwareArtifactSource.ts +278 -0
  612. package/src/api/firmware/FirmwareHostBinding.ts +100 -0
  613. package/src/api/firmware/FirmwarePreparationError.ts +12 -0
  614. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +102 -16
  615. package/src/api/firmware/FirmwareUpdateCapabilities.ts +9 -0
  616. package/src/api/firmware/FirmwareUpdatePlan.ts +772 -0
  617. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +449 -0
  618. package/src/api/firmware/getBinary.ts +8 -3
  619. package/src/api/firmware/updateBootloader.ts +19 -4
  620. package/src/api/firmware/uploadFirmware.ts +157 -26
  621. package/src/api/helpers/batchGetPublickeys.ts +2 -2
  622. package/src/api/helpers/filesystemValidation.ts +61 -0
  623. package/src/api/helpers/paramsValidator.ts +1 -1
  624. package/src/api/helpers/protocolV2FileWrite.ts +338 -0
  625. package/src/api/index.ts +10 -26
  626. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  627. package/src/api/kaspa/KaspaSignTransaction.ts +369 -29
  628. package/src/api/kaspa/helpers/TransferSerialize.ts +17 -7
  629. package/src/api/lightning/LnurlAuth.ts +0 -4
  630. package/src/api/near/NearGetAddress.ts +4 -0
  631. package/src/api/near/NearSignTransaction.ts +4 -0
  632. package/src/api/nem/NEMGetAddress.ts +4 -0
  633. package/src/api/nem/NEMSignTransaction.ts +4 -0
  634. package/src/api/neo/NeoGetAddress.ts +0 -4
  635. package/src/api/neo/NeoSignTransaction.ts +0 -4
  636. package/src/api/nervos/NervosGetAddress.ts +0 -4
  637. package/src/api/nervos/NervosSignTransaction.ts +2 -6
  638. package/src/api/nexa/NexaGetAddress.ts +0 -4
  639. package/src/api/nexa/NexaSignTransaction.ts +3 -5
  640. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  641. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  642. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  643. package/src/api/nostr/NostrSignEvent.ts +4 -0
  644. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  645. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  646. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  647. package/src/api/polkadot/networks.ts +3 -3
  648. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
  649. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +5 -2
  650. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +8 -5
  651. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +10 -6
  652. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +21 -0
  653. package/src/api/protocol-v2/DeviceInfoGet.ts +8 -15
  654. package/src/api/protocol-v2/DeviceReboot.ts +7 -3
  655. package/src/api/protocol-v2/DeviceStatusGet.ts +19 -0
  656. package/src/api/protocol-v2/DeviceUploadNft.ts +197 -0
  657. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +134 -0
  658. package/src/api/protocol-v2/FilesystemFormat.ts +9 -3
  659. package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
  660. package/src/api/protocol-v2/Ping.ts +37 -3
  661. package/src/api/protocol-v2/ProtocolInfoRequest.ts +8 -3
  662. package/src/api/protocol-v2/helpers.ts +17 -17
  663. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  664. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  665. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  666. package/src/api/solana/SolGetAddress.ts +4 -0
  667. package/src/api/solana/SolSignMessage.ts +5 -1
  668. package/src/api/solana/SolSignOffchainMessage.ts +5 -1
  669. package/src/api/solana/SolSignTransaction.ts +6 -2
  670. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  671. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  672. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  673. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  674. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  675. package/src/api/stellar/StellarGetAddress.ts +1 -10
  676. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  677. package/src/api/sui/SuiGetAddress.ts +5 -1
  678. package/src/api/sui/SuiGetPublicKey.ts +5 -1
  679. package/src/api/sui/SuiSignMessage.ts +5 -1
  680. package/src/api/sui/SuiSignTransaction.ts +5 -1
  681. package/src/api/ton/TonGetAddress.ts +5 -1
  682. package/src/api/ton/TonSignData.ts +5 -1
  683. package/src/api/ton/TonSignMessage.ts +5 -1
  684. package/src/api/ton/TonSignProof.ts +5 -1
  685. package/src/api/tron/TronGetAddress.ts +4 -0
  686. package/src/api/tron/TronSignMessage.ts +19 -8
  687. package/src/api/tron/TronSignTransaction.ts +5 -1
  688. package/src/api/utils.ts +7 -3
  689. package/src/api/xrp/XrpGetAddress.ts +4 -0
  690. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  691. package/src/constants/index.ts +1 -4
  692. package/src/core/RequestQueue.ts +1 -0
  693. package/src/core/deviceEventRegistration.ts +27 -0
  694. package/src/core/index.ts +365 -152
  695. package/src/core/uiPromiseRegistry.ts +63 -0
  696. package/src/data/messages/messages-protocol-v2.json +1138 -441
  697. package/src/data/messages/messages.json +286 -1
  698. package/src/data-manager/DataManager.ts +121 -41
  699. package/src/data-manager/TransportManager.ts +7 -1
  700. package/src/data-manager/connectSettings.ts +11 -0
  701. package/src/device/Device.ts +896 -295
  702. package/src/device/DeviceCommands.ts +193 -158
  703. package/src/device/DeviceConnector.ts +43 -20
  704. package/src/device/DeviceFeaturesState.ts +25 -0
  705. package/src/device/DevicePool.ts +86 -22
  706. package/src/device/DeviceStateMapper.ts +374 -0
  707. package/src/device/DeviceStateProjector.ts +94 -0
  708. package/src/device/DeviceStateStore.ts +201 -0
  709. package/src/device/DeviceWalletSessionStore.ts +144 -0
  710. package/src/device/cloneDeviceState.ts +39 -0
  711. package/src/device/deviceIdentity.ts +18 -0
  712. package/src/deviceProfile/buildDeviceFeatures.ts +223 -189
  713. package/src/deviceProfile/index.ts +0 -1
  714. package/src/deviceProfile/protocolV2DeviceIdentity.ts +35 -0
  715. package/src/events/device.ts +22 -1
  716. package/src/events/logBlockEvent.ts +80 -2
  717. package/src/events/ui-promise.ts +4 -2
  718. package/src/events/ui-request.ts +61 -4
  719. package/src/events/ui-response.ts +12 -2
  720. package/src/index.ts +5 -0
  721. package/src/inject.ts +95 -45
  722. package/src/lowLevelInject.ts +11 -4
  723. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  724. package/src/protocols/protocol-v2/features.ts +100 -33
  725. package/src/protocols/protocol-v2/firmware.ts +3 -1
  726. package/src/protocols/protocol-v2/index.ts +8 -1
  727. package/src/protocols/protocol-v2/resources.ts +390 -0
  728. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  729. package/src/protocols/protocol-v2/uiInteraction.ts +250 -0
  730. package/src/protocols/protocol-v2/unlockPolicy.ts +1 -0
  731. package/src/protocols/protocol-v2/unlockPolicyRunner.ts +131 -0
  732. package/src/protocols/protocol-v2/walletSession.ts +463 -0
  733. package/src/topLevelInject.ts +11 -4
  734. package/src/types/api/checkAllFirmwareRelease.ts +52 -4
  735. package/src/types/api/detectDeviceConnectProtocol.ts +6 -0
  736. package/src/types/api/deviceSettings.ts +26 -2
  737. package/src/types/api/deviceUnlock.ts +13 -2
  738. package/src/types/api/deviceUpdateBootloader.ts +6 -0
  739. package/src/types/api/export.ts +27 -0
  740. package/src/types/api/firmwareUpdate.ts +101 -5
  741. package/src/types/api/firmwareUpdateCapabilities.ts +9 -0
  742. package/src/types/api/firmwareUpdatePlan.ts +38 -0
  743. package/src/types/api/firmwareUpdatePreparedPlan.ts +53 -0
  744. package/src/types/api/getDeviceState.ts +19 -0
  745. package/src/types/api/getFeatures.ts +3 -0
  746. package/src/types/api/getOnekeyFeatures.ts +3 -0
  747. package/src/types/api/getPassphraseState.ts +9 -11
  748. package/src/types/api/index.ts +52 -64
  749. package/src/types/api/kaspaSignTransaction.ts +60 -4
  750. package/src/types/api/openWalletSession.ts +54 -0
  751. package/src/types/api/protocolV2.ts +33 -141
  752. package/src/types/api/sessionCache.ts +19 -0
  753. package/src/types/device.ts +200 -10
  754. package/src/types/params.ts +9 -2
  755. package/src/types/settings.ts +89 -24
  756. package/src/utils/assets.ts +4 -1
  757. package/src/utils/deviceFeaturesCompat.ts +191 -0
  758. package/src/utils/deviceFeaturesUtils.ts +65 -47
  759. package/src/utils/deviceInfoUtils.ts +29 -69
  760. package/src/utils/deviceSettings.ts +174 -39
  761. package/src/utils/deviceVersionUtils.ts +25 -44
  762. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  763. package/src/utils/homescreen.ts +36 -0
  764. package/src/utils/index.ts +27 -3
  765. package/src/utils/networkUtils.ts +274 -16
  766. package/src/utils/pro2Nft.ts +142 -0
  767. package/src/utils/pro2Wallpaper.ts +130 -0
  768. package/src/utils/tracing.ts +3 -1
  769. package/src/utils/uiProgressThrottle.ts +63 -0
  770. package/tsconfig.type-tests.json +12 -0
  771. package/dist/api/GetDeviceInfo.d.ts +0 -9
  772. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  773. package/dist/api/firmware/progressThrottle.d.ts +0 -3
  774. package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
  775. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +0 -13
  776. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +0 -1
  777. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
  778. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  779. package/dist/types/api/getDeviceInfo.d.ts +0 -87
  780. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  781. package/src/api/GetDeviceInfo.ts +0 -145
  782. package/src/api/firmware/progressThrottle.ts +0 -44
  783. package/src/api/protocol-v2/FilesystemDiskControl.ts +0 -50
  784. package/src/deviceProfile/buildDeviceProfile.ts +0 -352
  785. package/src/types/api/getDeviceInfo.ts +0 -101
package/src/core/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import semver from 'semver';
2
2
  import EventEmitter from 'events';
3
+ import { DeviceSessionPinType, TRANSPORT_EVENT } from '@onekeyfe/hd-transport';
3
4
  import {
4
5
  ERRORS,
5
6
  ERROR_CODES_REQUIRE_RELEASE,
@@ -14,14 +15,7 @@ import {
14
15
  createNewFirmwareUnReleaseHardwareError,
15
16
  } from '@onekeyfe/hd-shared';
16
17
 
17
- import {
18
- LoggerNames,
19
- enableLog,
20
- getLogger,
21
- isMethodVersionRangeUnsupported,
22
- setLoggerPostMessage,
23
- wait,
24
- } from '../utils';
18
+ import { LoggerNames, enableLog, getLogger, setLoggerPostMessage, wait } from '../utils';
25
19
  import {
26
20
  findDefectiveBatchDevice,
27
21
  getDefectiveDeviceInfo,
@@ -32,10 +26,12 @@ import {
32
26
  createRequestContext,
33
27
  createSdkTracingContext,
34
28
  formatRequestContext,
29
+ generateInstanceId,
35
30
  getActiveRequestsByDeviceInstance,
36
31
  updateRequestContext,
37
32
  } from '../utils/tracing';
38
33
  import { Device } from '../device/Device';
34
+ import { checkLiveDeviceId } from '../device/deviceIdentity';
39
35
  import { DeviceList } from '../device/DeviceList';
40
36
  import { DevicePool } from '../device/DevicePool';
41
37
  import { PollingStateManager } from './PollingStateManager';
@@ -51,18 +47,33 @@ import {
51
47
  createDeviceMessage,
52
48
  createResponseMessage,
53
49
  createUiMessage,
50
+ formatLogMethodLabel,
51
+ getLogBlockLabel,
52
+ getSafeLogPayload,
54
53
  } from '../events';
55
54
  import TransportManager from '../data-manager/TransportManager';
56
55
  import DeviceConnector from '../device/DeviceConnector';
57
56
  import RequestQueue from './RequestQueue';
57
+ import { consumeUiPromise, findUiPromiseForResponse, rejectUiPromises } from './uiPromiseRegistry';
58
+ import { registerHardwareUiEventListeners } from './deviceEventRegistration';
58
59
  import { getSynchronize } from '../utils/getSynchronize';
60
+ import { runMethodWithUnlockPolicy } from '../protocols/protocol-v2/unlockPolicyRunner';
61
+ import {
62
+ ProtocolV2UiInteractionCoordinator,
63
+ isProtocolV2UiEnabled,
64
+ } from '../protocols/protocol-v2/uiInteraction';
65
+ import { createUiProgressMessageFilter } from '../utils/uiProgressThrottle';
59
66
 
60
67
  import type { ConnectSettings, Features, KnownDevice } from '../types';
61
68
  import type { CoreMessage, IFrameCallMessage, UiPromise, UiPromiseResponse } from '../events';
62
69
  import type { DeviceEvents, InitOptions, RunOptions } from '../device/Device';
63
70
  import type { SdkTracingContext } from '../utils/tracing';
64
71
  import type { Deferred } from '@onekeyfe/hd-shared';
65
- import type { LowlevelTransportSharedPlugin, OneKeyDeviceInfo } from '@onekeyfe/hd-transport';
72
+ import type {
73
+ LowlevelTransportSharedPlugin,
74
+ OneKeyDeviceInfo,
75
+ TransportDeviceDisconnectEvent,
76
+ } from '@onekeyfe/hd-transport';
66
77
  import type { BaseMethod } from '../api/BaseMethod';
67
78
 
68
79
  const Log = getLogger(LoggerNames.Core);
@@ -91,14 +102,15 @@ function hasDeriveCardano(method: BaseMethod): boolean {
91
102
 
92
103
  const parseInitOptions = (method?: BaseMethod): InitOptions => ({
93
104
  initSession: method?.payload.initSession,
94
- passphraseState: method?.payload.passphraseState,
105
+ passphraseState: method?.payload.useEmptyPassphrase ? undefined : method?.payload.passphraseState,
95
106
  deviceId: method?.payload.deviceId,
96
107
  deriveCardano: method && hasDeriveCardano(method),
97
108
  connectProtocol: method?.payload.connectProtocol,
109
+ forceProtocolDetection: method?.payload.forceProtocolDetection,
98
110
  protocolV2DeviceInfoTimeoutMs: method?.payload.protocolV2DeviceInfoTimeoutMs,
99
111
  });
100
112
 
101
- let _core: Core;
113
+ let _core: Core | undefined;
102
114
  let _deviceList: DeviceList | undefined;
103
115
  let _connector: DeviceConnector | undefined;
104
116
  let _uiPromises: UiPromise<UiPromiseResponse['type']>[] = []; // Waiting for ui response
@@ -142,11 +154,16 @@ export const callAPI = async (context: CoreContext, message: CoreMessage) => {
142
154
  }
143
155
 
144
156
  // find api method
145
- let method: BaseMethod;
157
+ let method!: BaseMethod;
146
158
  try {
147
159
  method = findMethod(message as IFrameCallMessage);
148
160
  method.connector = _connector;
149
- method.postMessage = postMessage;
161
+ const shouldPostMessage = createUiProgressMessageFilter();
162
+ method.postMessage = event => {
163
+ if (shouldPostMessage(event)) {
164
+ postMessage(event);
165
+ }
166
+ };
150
167
  method.setContext?.(context);
151
168
 
152
169
  method.requestContext = createRequestContext(method.responseID, method.name, {
@@ -158,11 +175,13 @@ export const callAPI = async (context: CoreContext, message: CoreMessage) => {
158
175
 
159
176
  method.init();
160
177
  } catch (error) {
161
- return Promise.reject(error);
178
+ if (method) {
179
+ completeMethodRequestContext(method, error);
180
+ method.dispose();
181
+ }
182
+ return createResponseMessage(method?.responseID ?? message.id, false, { error });
162
183
  }
163
184
 
164
- DevicePool.emitter.on(DEVICE.CONNECT, onDeviceConnectHandler);
165
-
166
185
  if (!method.useDevice) {
167
186
  updateMethodRequestContext(method, { status: 'running' });
168
187
  try {
@@ -357,7 +376,7 @@ const onCallDevice = async (
357
376
  );
358
377
  } catch (e) {
359
378
  preWarmCallbackTask?.resolve();
360
- console.log('ensureConnected error: ', e);
379
+ Log.debug('ensureConnected error: ', e);
361
380
 
362
381
  completeMethodRequestContext(method, e);
363
382
 
@@ -394,18 +413,28 @@ const onCallDevice = async (
394
413
  );
395
414
  }
396
415
 
397
- device.on(DEVICE.PIN, onDevicePinHandler);
398
- device.on(DEVICE.BUTTON, onDeviceButtonHandler);
399
- device.on(
400
- DEVICE.PASSPHRASE,
401
- message.payload.useEmptyPassphrase ? onEmptyPassphraseHandler : onDevicePassphraseHandler
402
- );
403
- device.on(DEVICE.PASSPHRASE_ON_DEVICE, onEnterPassphraseOnDeviceHandler);
416
+ registerHardwareUiEventListeners(device, {
417
+ pin: onDevicePinHandler,
418
+ pinOnDevice: onEnterPinOnDeviceHandler,
419
+ pinOnDeviceComplete: onPinOnDeviceCompleteHandler,
420
+ button: onDeviceButtonHandler,
421
+ passphrase: message.payload.useEmptyPassphrase
422
+ ? onEmptyPassphraseHandler
423
+ : onDevicePassphraseHandler,
424
+ passphraseOnDevice: onEnterPassphraseOnDeviceHandler,
425
+ attachPinOnDevice: onEnterAttachPinOnDeviceHandler,
426
+ });
404
427
  device.on(DEVICE.FEATURES, onDeviceFeaturesHandler);
428
+ device.on(DEVICE.STATE, onDeviceStateHandler);
405
429
  device.on(
406
430
  DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE,
407
431
  onSelectDeviceInBootloaderForWebDeviceHandler
408
432
  );
433
+
434
+ const protocolV2UiCoordinator = new ProtocolV2UiInteractionCoordinator(device, postMessage);
435
+ let protocolV2Operation = false;
436
+ let protocolV2CloseEmitted = false;
437
+ device.beginProtocolV2UiInteraction();
409
438
  device.on(
410
439
  DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE,
411
440
  onSelectDeviceForSwitchFirmwareWebDeviceHandler
@@ -420,11 +449,10 @@ const onCallDevice = async (
420
449
  await waitForPendingPromise(getPrePendingCallPromise, setPrePendingCallPromise);
421
450
 
422
451
  const inner = async (): Promise<void> => {
423
- // Protocol V2 专属方法统一守卫:协议在 acquire/initialize 后已确定,
424
- // V2 设备直接抛出明确的 NotSupport 错误(见 BaseMethod.requireProtocolV2)。
425
- if (method.requireProtocolV2 && !device.isProtocolV2()) {
426
- throw createDeviceNotSupportMethodError(method.name, device.getCurrentFirmwareType());
427
- }
452
+ // Protocol is established from an active device response during acquire/initialize.
453
+ // Reject unsupported methods before any method-specific device command is sent.
454
+ method.assertProtocolSupported(device.getProtocol(), device.getCurrentFirmwareType());
455
+ protocolV2Operation = device.isProtocolV2();
428
456
 
429
457
  // check firmware version
430
458
  const versionRange = device.getCurrentMethodVersionRange(
@@ -435,8 +463,8 @@ const onCallDevice = async (
435
463
  const deviceFirmwareType = device.getCurrentFirmwareType();
436
464
  let newVersionStatus: ReturnType<typeof DataManager.getFirmwareStatus> | undefined;
437
465
 
438
- // 故障批次检测与远端强制升级门禁基于 V1 features/remote config
439
- // Pro2(V2) 暂不参与:profile 版的 firmwareStatus 需要 DataManager 支持后再接入。
466
+ // Defective-batch and forced-update gates depend on V1 features/remote config.
467
+ // Pro2 joins after DataManager supports its profile firmwareStatus.
440
468
  if (device.features && !device.isProtocolV2()) {
441
469
  await DataManager.checkAndReloadData();
442
470
 
@@ -484,10 +512,6 @@ const onCallDevice = async (
484
512
  }
485
513
  }
486
514
 
487
- if (isMethodVersionRangeUnsupported(versionRange)) {
488
- throw createDeviceNotSupportMethodError(method.name, deviceFirmwareType);
489
- }
490
-
491
515
  if (versionRange) {
492
516
  if (semver.valid(versionRange.min) && semver.lt(currentFirmwareVersion, versionRange.min)) {
493
517
  if (newVersionStatus === 'none' || newVersionStatus === 'valid') {
@@ -538,89 +562,102 @@ const onCallDevice = async (
538
562
  );
539
563
  }
540
564
 
541
- if (method.deviceId && method.checkDeviceId) {
542
- const isSameDeviceID = device.checkDeviceId(method.deviceId);
543
- if (!isSameDeviceID) {
544
- return Promise.reject(ERRORS.TypedError(HardwareErrorCode.DeviceCheckDeviceIdError));
545
- }
546
- }
547
-
548
- /**
549
- * check firmware release info
550
- */
551
- method.checkFirmwareRelease();
565
+ try {
566
+ let deviceIdCheckedDuringUnlockPreflight = false;
567
+ const response = await runMethodWithUnlockPolicy<object>(method, device, {
568
+ uiCoordinator: protocolV2UiCoordinator,
569
+ afterStatusBeforeUnlock: () => {
570
+ if (method.deviceId && method.checkDeviceId) {
571
+ if (!device.checkDeviceId(method.deviceId)) {
572
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceCheckDeviceIdError);
573
+ }
574
+ deviceIdCheckedDuringUnlockPreflight = true;
575
+ }
576
+ },
577
+ prepare: async () => {
578
+ if (method.deviceId && method.checkDeviceId && !deviceIdCheckedDuringUnlockPreflight) {
579
+ const isSameDeviceID = await checkLiveDeviceId(device, method.deviceId);
580
+ if (!isSameDeviceID) {
581
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceCheckDeviceIdError);
582
+ }
583
+ }
552
584
 
553
- /**
554
- * check additional supported feature
555
- */
556
- method.checkDeviceSupportFeature();
585
+ /**
586
+ * check firmware release info
587
+ */
588
+ method.checkFirmwareRelease();
557
589
 
558
- // reconfigure messages
559
- if (_deviceList && device.features && !device.isProtocolV2()) {
560
- await TransportManager.reconfigure(device.features);
561
- }
590
+ /**
591
+ * check additional supported feature
592
+ */
593
+ method.checkDeviceSupportFeature();
562
594
 
563
- // Check to see if it is safe to use Passphrase
564
- checkPassphraseEnableState(method, device.features);
595
+ // reconfigure messages
596
+ if (_deviceList && device.features && !device.isProtocolV2()) {
597
+ await TransportManager.reconfigure(device.features);
598
+ }
565
599
 
566
- if (shouldCheckPassphraseState(method, device)) {
567
- // check version
568
- const support = device.supportNewPassphrase();
569
- if (!support.support) {
570
- return Promise.reject(
571
- ERRORS.TypedError(
572
- HardwareErrorCode.DeviceNotSupportPassphrase,
573
- `Device not support passphrase, please update to ${support.require}`,
574
- {
575
- require: support.require,
600
+ // Check to see if it is safe to use Passphrase
601
+ checkPassphraseEnableState(method, device.features);
602
+
603
+ if (shouldCheckPassphraseState(method, device)) {
604
+ // check version
605
+ const support = device.supportNewPassphrase();
606
+ if (!support.support) {
607
+ throw ERRORS.TypedError(
608
+ HardwareErrorCode.DeviceNotSupportPassphrase,
609
+ `Device not support passphrase, please update to ${support.require}`,
610
+ {
611
+ require: support.require,
612
+ }
613
+ );
576
614
  }
577
- )
578
- );
579
- }
580
615
 
581
- // Check Device passphrase State
582
- const passphraseStateSafety = await device.checkPassphraseStateSafety(
583
- method.payload?.passphraseState,
584
- method.payload?.useEmptyPassphrase,
585
- method.payload?.skipPassphraseCheck
586
- );
587
-
588
- // Double check, handles the special case of Touch/Pro
589
- checkPassphraseEnableState(method, device.features);
616
+ // Check Device passphrase State after the Protocol V2 pre-unlock gate.
617
+ const passphraseStateSafety = await device.checkPassphraseStateSafety(
618
+ method.payload?.passphraseState,
619
+ method.payload?.useEmptyPassphrase,
620
+ method.payload?.skipPassphraseCheck,
621
+ hasDeriveCardano(method)
622
+ );
590
623
 
591
- if (!passphraseStateSafety) {
592
- DevicePool.clearDeviceCache(method.payload.connectId);
593
- return Promise.reject(
594
- ERRORS.TypedError(HardwareErrorCode.DeviceCheckPassphraseStateError)
595
- );
596
- }
624
+ // Double check, handles the special case of Touch/Pro
625
+ checkPassphraseEnableState(method, device.features);
597
626
 
598
- // close pin popup window
599
- postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_PIN_WINDOW));
600
- }
627
+ if (!passphraseStateSafety) {
628
+ DevicePool.clearDeviceCache(method.payload.connectId);
629
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceCheckPassphraseStateError);
630
+ }
601
631
 
602
- // Automatic check safety_check level for Kovan, Ropsten, Rinkeby, Goerli test networks.
603
- try {
604
- await method.checkSafetyLevelOnTestNet();
605
- } catch (e) {
606
- const error =
607
- e instanceof HardwareError
608
- ? e
609
- : ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'open safety check failed.');
610
- // messageResponse = createResponseMessage(method.responseID, false, { error });
611
- // requestQueue.resolveRequest(method.responseID, messageResponse);
612
- // return;
613
- throw error;
614
- }
632
+ // Protocol V2 emits the PIN phase completion from DeviceSessionAskPin.
633
+ // Keep the legacy compatibility close for Protocol V1 only.
634
+ if (!device.isProtocolV2()) {
635
+ postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_PIN_WINDOW));
636
+ }
637
+ }
615
638
 
616
- method.device?.commands?.checkDisposed();
639
+ // Automatic check safety_check level for Kovan, Ropsten, Rinkeby, Goerli test networks.
640
+ try {
641
+ await method.checkSafetyLevelOnTestNet();
642
+ } catch (e) {
643
+ throw e instanceof HardwareError
644
+ ? e
645
+ : ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'open safety check failed.');
646
+ }
617
647
 
618
- try {
619
- const response: object = await method.run();
648
+ method.device?.commands?.checkDisposed();
649
+ },
650
+ });
620
651
  messageResponse = createResponseMessage(method.responseID, true, response);
621
652
  requestQueue.resolveRequest(method.responseID, messageResponse);
622
653
  completeMethodRequestContext(method);
623
654
  } catch (error) {
655
+ // Device.run may release the request before transport callbacks finish after a timeout.
656
+ // Ignore the stale callback because the caller already received the connection error.
657
+ if (!requestQueue.getTask(method.responseID)) {
658
+ Log.debug(`Call API - Ignore late inner method result`, error);
659
+ return;
660
+ }
624
661
  Log.debug(`Call API - Inner Method Run Error`, error);
625
662
  messageResponse = createResponseMessage(method.responseID, false, { error });
626
663
  requestQueue.resolveRequest(method.responseID, messageResponse);
@@ -633,6 +670,13 @@ const onCallDevice = async (
633
670
  ) {
634
671
  throw error;
635
672
  }
673
+ } finally {
674
+ if (isProtocolV2UiEnabled(method)) {
675
+ protocolV2CloseEmitted = protocolV2UiCoordinator.close({
676
+ ensureOperationClose: protocolV2Operation,
677
+ protocolV2Operation,
678
+ });
679
+ }
636
680
  }
637
681
  };
638
682
  Log.debug('Call API - Device Run: ', device.mainId);
@@ -686,7 +730,17 @@ const onCallDevice = async (
686
730
 
687
731
  requestQueue.releaseTask(method.responseID);
688
732
 
689
- closePopup();
733
+ if (isProtocolV2UiEnabled(method)) {
734
+ if (!protocolV2CloseEmitted && protocolV2Operation) {
735
+ protocolV2CloseEmitted = protocolV2UiCoordinator.close({
736
+ ensureOperationClose: true,
737
+ protocolV2Operation: true,
738
+ });
739
+ }
740
+ if (!protocolV2CloseEmitted) {
741
+ closePopup();
742
+ }
743
+ }
690
744
 
691
745
  cleanup();
692
746
 
@@ -848,8 +902,23 @@ function isRetryableBleProtocolV2ProbeError(method: BaseMethod, error: unknown)
848
902
  */
849
903
  async function connectDeviceForBle(method: BaseMethod, device: Device, retryCount = 0) {
850
904
  try {
851
- await device.acquire(method.payload.connectProtocol);
905
+ if (method.payload.forceProtocolDetection && device.hasDeviceAcquire()) {
906
+ await device.release();
907
+ }
908
+ const shouldAcquire =
909
+ method.payload.forceProtocolDetection ||
910
+ !device.hasDeviceAcquire() ||
911
+ !device.commands ||
912
+ device.commands.disposed;
913
+ if (shouldAcquire) {
914
+ await device.acquire(method.payload.connectProtocol, {
915
+ forceProtocolDetection: method.payload.forceProtocolDetection,
916
+ });
917
+ }
852
918
  if (method.payload?.onlyConnectBleDevice) {
919
+ if (shouldAcquire) {
920
+ DevicePool.emitter.emit(DEVICE.CONNECT, device);
921
+ }
853
922
  return;
854
923
  }
855
924
  // Skip initialize if conditions are met
@@ -860,6 +929,9 @@ async function connectDeviceForBle(method: BaseMethod, device: Device, retryCoun
860
929
  passphraseState: initOptions.passphraseState,
861
930
  });
862
931
  }
932
+ if (shouldAcquire) {
933
+ DevicePool.emitter.emit(DEVICE.CONNECT, device);
934
+ }
863
935
  } catch (err) {
864
936
  if (
865
937
  (err.errorCode === HardwareErrorCode.BleTimeoutError ||
@@ -1154,14 +1226,17 @@ const shouldCheckPassphraseState = (method: BaseMethod, device: Device) => {
1154
1226
  };
1155
1227
 
1156
1228
  const cleanup = () => {
1229
+ const pendingUiPromises = _uiPromises;
1157
1230
  _uiPromises = [];
1231
+ rejectUiPromises(
1232
+ pendingUiPromises,
1233
+ ERRORS.TypedError(HardwareErrorCode.ActionCancelled, 'UI request was cancelled')
1234
+ );
1158
1235
  Log.debug('Cleanup...');
1159
1236
  };
1160
1237
 
1161
1238
  const removeDeviceListener = (device: Device) => {
1162
1239
  device.removeAllListeners();
1163
- DevicePool.emitter.removeAllListeners(DEVICE.CONNECT);
1164
- // DevicePool.emitter.removeListener(DEVICE.DISCONNECT, onDeviceDisconnectHandler);
1165
1240
  };
1166
1241
 
1167
1242
  /**
@@ -1172,19 +1247,33 @@ const closePopup = () => {
1172
1247
  };
1173
1248
 
1174
1249
  const onDeviceConnectHandler = (device: Device) => {
1175
- const env = DataManager.getSettings('env');
1176
- const deviceObject = DataManager.isBleConnect(env) ? device : device.toMessageObject();
1177
- postMessage(createDeviceMessage(DEVICE.CONNECT, { device: deviceObject as KnownDevice }));
1250
+ const deviceObject = device.toMessageObject();
1251
+ if (!deviceObject) return;
1252
+ postMessage(createDeviceMessage(DEVICE.CONNECT, { device: deviceObject }));
1178
1253
  };
1179
1254
 
1180
1255
  const onDeviceDisconnectHandler = (device: Device) => {
1181
1256
  device.clearPreInitialized();
1182
- const env = DataManager.getSettings('env');
1183
- const deviceObject = DataManager.isBleConnect(env) ? device : device.toMessageObject();
1184
- postMessage(createDeviceMessage(DEVICE.DISCONNECT, { device: deviceObject as KnownDevice }));
1257
+ const deviceObject = device.toMessageObject();
1258
+ if (!deviceObject) return;
1259
+ postMessage(createDeviceMessage(DEVICE.DISCONNECT, { device: deviceObject }));
1185
1260
  };
1186
1261
 
1187
- const onDevicePinHandler = async (...[device, type, callback]: DeviceEvents['pin']) => {
1262
+ const onTransportDeviceDisconnectHandler = (event: TransportDeviceDisconnectEvent) => {
1263
+ const device =
1264
+ deviceCacheMap.get(event.connectId) ??
1265
+ DevicePool.devicesCache[event.connectId] ??
1266
+ DevicePool.getDeviceByPath(event.connectId);
1267
+ if (!device) {
1268
+ Log.debug('Ignoring transport disconnect for an unknown device:', event.connectId);
1269
+ return;
1270
+ }
1271
+
1272
+ device.markTransportDisconnected();
1273
+ DevicePool.emitter.emit(DEVICE.DISCONNECT, device);
1274
+ };
1275
+
1276
+ const onDevicePinHandler = (...[device, type, callback]: DeviceEvents['pin']) => {
1188
1277
  Log.log('request Input PIN');
1189
1278
  // create ui promise
1190
1279
  const uiPromise = createUiPromise(UI_RESPONSE.RECEIVE_PIN, device);
@@ -1193,12 +1282,14 @@ const onDevicePinHandler = async (...[device, type, callback]: DeviceEvents['pin
1193
1282
  createUiMessage(UI_REQUEST.REQUEST_PIN, {
1194
1283
  device: device.toMessageObject() as unknown as KnownDevice,
1195
1284
  type,
1285
+ responseCorrelation: uiPromise.responseCorrelation,
1196
1286
  })
1197
1287
  );
1198
- // wait for pin
1199
- const uiResp = await uiPromise.promise;
1200
- // callback.apply(null, [null, pin]);
1201
- callback(null, uiResp.payload);
1288
+ consumeUiPromise(
1289
+ uiPromise.promise,
1290
+ uiResp => callback(null, uiResp.payload),
1291
+ error => callback(error, '')
1292
+ );
1202
1293
  };
1203
1294
 
1204
1295
  export const onDeviceButtonHandler = (...[device, request]: [...DeviceEvents['button']]) => {
@@ -1222,7 +1313,11 @@ const onDeviceFeaturesHandler = (...[_, features]: [...DeviceEvents['features']]
1222
1313
  postMessage(createDeviceMessage(DEVICE.FEATURES, { ...features }));
1223
1314
  };
1224
1315
 
1225
- const onDevicePassphraseHandler = async (
1316
+ const onDeviceStateHandler = (...[_, stateEvent]: [...DeviceEvents['state']]) => {
1317
+ postMessage(createDeviceMessage(DEVICE.STATE, stateEvent));
1318
+ };
1319
+
1320
+ const onDevicePassphraseHandler = (
1226
1321
  ...[device, requestPayload, callback]: DeviceEvents['passphrase']
1227
1322
  ) => {
1228
1323
  Log.debug('onDevicePassphraseHandler');
@@ -1232,18 +1327,27 @@ const onDevicePassphraseHandler = async (
1232
1327
  device: device.toMessageObject() as KnownDevice,
1233
1328
  passphraseState: device.passphraseState,
1234
1329
  existsAttachPinUser: requestPayload.existsAttachPinUser,
1330
+ deviceOnly: requestPayload.deviceOnly,
1331
+ source: requestPayload.source,
1332
+ reason: requestPayload.reason,
1333
+ expectedPassphraseState: requestPayload.expectedPassphraseState,
1334
+ ...(requestPayload.interaction ? { interaction: requestPayload.interaction } : {}),
1335
+ responseCorrelation: uiPromise.responseCorrelation,
1235
1336
  })
1236
1337
  );
1237
- // wait for passphrase
1238
- const uiResp = await uiPromise.promise;
1239
- const { value, passphraseOnDevice, save, attachPinOnDevice } = uiResp.payload;
1240
- // send as PassphrasePromptResponse
1241
- callback({
1242
- passphrase: value.normalize('NFKD'),
1243
- passphraseOnDevice,
1244
- attachPinOnDevice,
1245
- cache: save,
1246
- });
1338
+ consumeUiPromise(
1339
+ uiPromise.promise,
1340
+ uiResp => {
1341
+ const { value, passphraseOnDevice, save, attachPinOnDevice } = uiResp.payload;
1342
+ callback({
1343
+ passphrase: value.normalize('NFKD'),
1344
+ passphraseOnDevice,
1345
+ attachPinOnDevice,
1346
+ cache: save,
1347
+ });
1348
+ },
1349
+ error => callback({}, error)
1350
+ );
1247
1351
  };
1248
1352
 
1249
1353
  const onEmptyPassphraseHandler = (...[_, , callback]: DeviceEvents['passphrase']) => {
@@ -1253,17 +1357,62 @@ const onEmptyPassphraseHandler = (...[_, , callback]: DeviceEvents['passphrase']
1253
1357
  };
1254
1358
 
1255
1359
  const onEnterPassphraseOnDeviceHandler = (
1256
- ...[device]: [...DeviceEvents['passphrase_on_device']]
1360
+ ...[device, requestPayload]: [...DeviceEvents['passphrase_on_device']]
1257
1361
  ) => {
1258
1362
  postMessage(
1259
1363
  createUiMessage(UI_REQUEST.REQUEST_PASSPHRASE_ON_DEVICE, {
1260
1364
  device: device.toMessageObject() as KnownDevice,
1261
1365
  passphraseState: device.passphraseState,
1366
+ source: requestPayload?.source,
1367
+ reason: requestPayload?.reason,
1368
+ ...(requestPayload?.interaction ? { interaction: requestPayload.interaction } : {}),
1369
+ })
1370
+ );
1371
+ };
1372
+
1373
+ const onEnterAttachPinOnDeviceHandler = (
1374
+ ...[device, requestPayload]: [...DeviceEvents['attach_pin_on_device']]
1375
+ ) => {
1376
+ postMessage(
1377
+ createUiMessage(UI_REQUEST.REQUEST_PIN, {
1378
+ device: device.toMessageObject() as KnownDevice,
1379
+ type: 'ButtonRequest_AttachPin',
1380
+ source: requestPayload?.source,
1381
+ reason: requestPayload?.reason,
1382
+ ...(requestPayload?.interaction ? { interaction: requestPayload.interaction } : {}),
1262
1383
  })
1263
1384
  );
1264
1385
  };
1265
1386
 
1266
- const onSelectDeviceInBootloaderForWebDeviceHandler = async (
1387
+ const onEnterPinOnDeviceHandler = (
1388
+ ...[device, pinType, metadata]: [...DeviceEvents['pin_on_device']]
1389
+ ) => {
1390
+ postMessage(
1391
+ createUiMessage(UI_REQUEST.REQUEST_PIN, {
1392
+ device: device.toMessageObject() as KnownDevice,
1393
+ type:
1394
+ pinType === DeviceSessionPinType.AttachToPin
1395
+ ? 'ButtonRequest_AttachPin'
1396
+ : 'ButtonRequest_PinEntry',
1397
+ source: metadata?.source,
1398
+ reason: metadata?.reason,
1399
+ deviceOnly: metadata?.deviceOnly ?? true,
1400
+ completion: metadata?.completion,
1401
+ method: metadata?.method,
1402
+ page: metadata?.page,
1403
+ operation: metadata?.operation,
1404
+ ...(metadata?.interaction ? { interaction: metadata.interaction } : {}),
1405
+ })
1406
+ );
1407
+ };
1408
+
1409
+ const onPinOnDeviceCompleteHandler = (
1410
+ ...[_, metadata]: [...DeviceEvents['pin_on_device_complete']]
1411
+ ) => {
1412
+ postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_PIN_WINDOW, metadata));
1413
+ };
1414
+
1415
+ const onSelectDeviceInBootloaderForWebDeviceHandler = (
1267
1416
  ...[device, callback]: [...DeviceEvents['select_device_in_bootloader_for_web_device']]
1268
1417
  ) => {
1269
1418
  Log.debug('onSelectDeviceInBootloaderForWebDeviceHandler');
@@ -1273,11 +1422,14 @@ const onSelectDeviceInBootloaderForWebDeviceHandler = async (
1273
1422
  device: device.toMessageObject() as KnownDevice,
1274
1423
  })
1275
1424
  );
1276
- const uiResp = await uiPromise.promise;
1277
- callback(null, uiResp.payload.deviceId);
1425
+ consumeUiPromise(
1426
+ uiPromise.promise,
1427
+ uiResp => callback(null, uiResp.payload.deviceId),
1428
+ error => callback(error, '')
1429
+ );
1278
1430
  };
1279
1431
 
1280
- const onSelectDeviceForSwitchFirmwareWebDeviceHandler = async (
1432
+ const onSelectDeviceForSwitchFirmwareWebDeviceHandler = (
1281
1433
  ...[device, callback]: [...DeviceEvents['select_device_for_switch_firmware_web_device']]
1282
1434
  ) => {
1283
1435
  Log.debug('onSelectDeviceForSwitchFirmwareWebDeviceHandler');
@@ -1290,8 +1442,11 @@ const onSelectDeviceForSwitchFirmwareWebDeviceHandler = async (
1290
1442
  device: device.toMessageObject() as KnownDevice,
1291
1443
  })
1292
1444
  );
1293
- const uiResp = await uiPromise.promise;
1294
- callback(null, uiResp.payload.deviceId);
1445
+ consumeUiPromise(
1446
+ uiPromise.promise,
1447
+ uiResp => callback(null, uiResp.payload.deviceId),
1448
+ error => callback(error, '')
1449
+ );
1295
1450
  };
1296
1451
 
1297
1452
  /**
@@ -1310,14 +1465,21 @@ const postMessage = (message: CoreMessage) => {
1310
1465
 
1311
1466
  const createUiPromise = <T extends UiPromiseResponse['type']>(promiseEvent: T, device?: Device) => {
1312
1467
  const uiPromise: UiPromise<T> = createDeferred(promiseEvent, device);
1468
+ if (
1469
+ device &&
1470
+ (promiseEvent === UI_RESPONSE.RECEIVE_PIN || promiseEvent === UI_RESPONSE.RECEIVE_PASSPHRASE)
1471
+ ) {
1472
+ const publicDeviceId = device.toMessageObject()?.deviceId;
1473
+ uiPromise.responseCorrelation = {
1474
+ interactionId: generateInstanceId('UiResponse', device.sdkInstanceId),
1475
+ deviceId: publicDeviceId || device.instanceId,
1476
+ };
1477
+ }
1313
1478
  _uiPromises.push(uiPromise as any);
1314
1479
 
1315
1480
  return uiPromise;
1316
1481
  };
1317
1482
 
1318
- const findUiPromise = <T extends UiPromiseResponse['type']>(promiseEvent: T) =>
1319
- _uiPromises.find(p => p.id === promiseEvent);
1320
-
1321
1483
  const removeUiPromise = (promise: Deferred<any>) => {
1322
1484
  _uiPromises = _uiPromises.filter(p => p !== promise);
1323
1485
  };
@@ -1329,6 +1491,8 @@ export default class Core extends EventEmitter {
1329
1491
 
1330
1492
  private requestQueue = new RequestQueue();
1331
1493
 
1494
+ private disposePromise?: Promise<void>;
1495
+
1332
1496
  // background task
1333
1497
  private prePendingCallPromise: Promise<void> | undefined;
1334
1498
 
@@ -1367,11 +1531,16 @@ export default class Core extends EventEmitter {
1367
1531
  case UI_RESPONSE.RECEIVE_PASSPHRASE:
1368
1532
  case UI_RESPONSE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE:
1369
1533
  case UI_RESPONSE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE: {
1370
- const uiPromise = findUiPromise(message.type);
1534
+ const uiPromise = findUiPromiseForResponse(_uiPromises, message);
1371
1535
  if (uiPromise) {
1372
1536
  Log.log('receive UI Response: ', message.type);
1373
1537
  uiPromise.resolve(message);
1374
1538
  removeUiPromise(uiPromise);
1539
+ } else if (
1540
+ message.type === UI_RESPONSE.RECEIVE_PIN ||
1541
+ message.type === UI_RESPONSE.RECEIVE_PASSPHRASE
1542
+ ) {
1543
+ Log.warn('Ignored unmatched or ambiguous sensitive UI response:', message.type);
1375
1544
  }
1376
1545
  break;
1377
1546
  }
@@ -1387,10 +1556,17 @@ export default class Core extends EventEmitter {
1387
1556
  }
1388
1557
 
1389
1558
  case IFRAME.CALL: {
1390
- Log.log(`[${Date.now()}][CALL_API]`, message);
1559
+ const logBlockLabel = getLogBlockLabel(message);
1560
+ Log.log(
1561
+ formatLogMethodLabel(`[${Date.now()}][CALL_API]`, logBlockLabel),
1562
+ getSafeLogPayload(message, logBlockLabel)
1563
+ );
1391
1564
  const response = await callAPI(this.getCoreContext(), message);
1392
1565
  const { success, payload } = response;
1393
- Log.log(`[${Date.now()}][CALL_API_RESPONSE]`, response);
1566
+ Log.log(
1567
+ formatLogMethodLabel(`[${Date.now()}][CALL_API_RESPONSE]`, logBlockLabel),
1568
+ getSafeLogPayload(response, logBlockLabel)
1569
+ );
1394
1570
  if (success) {
1395
1571
  return response;
1396
1572
  }
@@ -1420,25 +1596,65 @@ export default class Core extends EventEmitter {
1420
1596
  return Promise.resolve(message);
1421
1597
  }
1422
1598
 
1423
- dispose() {
1599
+ dispose(): Promise<void> {
1600
+ if (!this.disposePromise) {
1601
+ this.disposePromise = this.disposeResources();
1602
+ }
1603
+ return this.disposePromise;
1604
+ }
1605
+
1606
+ private async disposeResources(): Promise<void> {
1607
+ Log.debug(`[Core] Disposing SDK instance: ${this.sdkInstanceId}`);
1608
+ pollingManager.stopAll();
1609
+ this.requestQueue.abortAllRequests();
1610
+ cleanup();
1611
+
1612
+ _connector?.stop();
1613
+ let transportCleanup: Promise<void>;
1614
+ try {
1615
+ transportCleanup = Promise.resolve(TransportManager.getTransport()?.stop?.()).catch(error => {
1616
+ Log.warn('[Core] Transport cleanup failed:', error);
1617
+ });
1618
+ } catch (error) {
1619
+ Log.warn('[Core] Transport cleanup failed:', error);
1620
+ transportCleanup = Promise.resolve();
1621
+ }
1622
+
1623
+ // Preserve synchronous dispose semantics for in-memory state and listeners.
1424
1624
  _deviceList = undefined;
1425
1625
  _connector = undefined;
1626
+ DevicePool.dispose();
1426
1627
  deviceCacheMap.clear();
1427
1628
  preWarmInflight.clear();
1428
1629
  preWarmDoneAt.clear();
1429
- Log.debug(`[Core] Disposing SDK instance: ${this.sdkInstanceId}`);
1630
+ preConnectCache = { passphraseState: undefined };
1631
+ this.prePendingCallPromise = undefined;
1632
+ this.removeAllListeners();
1430
1633
  cleanupSdkInstance(this.sdkInstanceId);
1634
+ if (_core === this) _core = undefined;
1635
+
1636
+ // Transports, especially Node USB, may release native handles asynchronously.
1637
+ await transportCleanup;
1431
1638
  }
1432
1639
  }
1433
1640
 
1434
1641
  export const initCore = () => {
1435
- _core = new Core();
1436
- return _core;
1642
+ const core = new Core();
1643
+ _core = core;
1644
+ return core;
1437
1645
  };
1438
1646
 
1439
1647
  export const initConnector = () => {
1440
1648
  _connector = new DeviceConnector();
1649
+ DevicePool.emitter.removeListener(DEVICE.CONNECT, onDeviceConnectHandler);
1650
+ DevicePool.emitter.removeListener(DEVICE.DISCONNECT, onDeviceDisconnectHandler);
1651
+ DevicePool.emitter.removeListener(
1652
+ TRANSPORT_EVENT.DEVICE_DISCONNECT,
1653
+ onTransportDeviceDisconnectHandler
1654
+ );
1655
+ DevicePool.emitter.on(DEVICE.CONNECT, onDeviceConnectHandler);
1441
1656
  DevicePool.emitter.on(DEVICE.DISCONNECT, onDeviceDisconnectHandler);
1657
+ DevicePool.emitter.on(TRANSPORT_EVENT.DEVICE_DISCONNECT, onTransportDeviceDisconnectHandler);
1442
1658
  return _connector;
1443
1659
  };
1444
1660
 
@@ -1452,12 +1668,8 @@ export const init = async (
1452
1668
  plugin?: LowlevelTransportSharedPlugin
1453
1669
  ) => {
1454
1670
  try {
1455
- try {
1456
- await DataManager.load(settings);
1457
- initTransport(Transport, plugin);
1458
- } catch {
1459
- Log.error('DataManager.load error');
1460
- }
1671
+ await DataManager.load(settings);
1672
+ initTransport(Transport, plugin);
1461
1673
  enableLog(DataManager.getSettings('debug'));
1462
1674
  if (DataManager.getSettings('env') !== 'react-native') {
1463
1675
  setLoggerPostMessage(postMessage);
@@ -1468,6 +1680,7 @@ export const init = async (
1468
1680
  return _core;
1469
1681
  } catch (error) {
1470
1682
  Log.error('core init', error);
1683
+ throw error;
1471
1684
  }
1472
1685
  };
1473
1686