@onekeyfe/hd-core 1.2.0-alpha.6 → 1.2.0-alpha.63

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 (740) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +77 -0
  2. package/__tests__/DeviceCommands.test.ts +517 -0
  3. package/__tests__/DeviceEventRegistration.test.ts +43 -0
  4. package/__tests__/chain-params-onekey-compatibility.test.ts +229 -0
  5. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +282 -0
  6. package/__tests__/connectSettings.test.ts +61 -0
  7. package/__tests__/core-dispose.test.ts +34 -0
  8. package/__tests__/core-error-output.test.ts +39 -0
  9. package/__tests__/device-features-state.test.ts +78 -0
  10. package/__tests__/device-identity.test.ts +52 -0
  11. package/__tests__/device-initialize-timeout.test.ts +56 -0
  12. package/__tests__/device-lifecycle-events.test.ts +249 -0
  13. package/__tests__/device-pool-state.test.ts +144 -0
  14. package/__tests__/device-settings.test.ts +416 -0
  15. package/__tests__/device-state-contract.test.ts +27 -0
  16. package/__tests__/device-state-events.test.ts +286 -0
  17. package/__tests__/device-state-mapper.test.ts +261 -0
  18. package/__tests__/device-state-projector.test.ts +94 -0
  19. package/__tests__/device-state-store.test.ts +82 -0
  20. package/__tests__/device-utils.test.ts +107 -0
  21. package/__tests__/device-wallet-session-store.test.ts +478 -0
  22. package/__tests__/deviceFeaturesUtils.test.ts +39 -0
  23. package/__tests__/deviceSettings.test.ts +103 -0
  24. package/__tests__/evmLedgerLegacySafety.test.ts +12 -6
  25. package/__tests__/evmSignTransaction.test.ts +69 -0
  26. package/__tests__/evmSignTypedData.test.ts +80 -0
  27. package/__tests__/filesystemValidation.test.ts +53 -0
  28. package/__tests__/firmware-update/check-all-firmware-release.test.ts +175 -0
  29. package/__tests__/firmware-update/firmware-artifact-source.test.ts +119 -0
  30. package/__tests__/firmware-update/firmware-host-binding.test.ts +70 -0
  31. package/__tests__/firmware-update/firmware-preparation-error.test.ts +27 -0
  32. package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +200 -0
  33. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +13 -0
  34. package/__tests__/firmware-update/firmware-update-plan-bootloader-identity.test.ts +394 -0
  35. package/__tests__/firmware-update/firmware-update-plan.test.ts +593 -0
  36. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +213 -0
  37. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +430 -0
  38. package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +58 -0
  39. package/__tests__/firmware-update/firmware-upload-source.test.ts +70 -0
  40. package/__tests__/get-device-state.test.ts +458 -0
  41. package/__tests__/homescreen.test.ts +24 -0
  42. package/__tests__/kaspa-public-types.type-test.ts +16 -0
  43. package/__tests__/kaspa-use-tweak-pro2.test.ts +20 -0
  44. package/__tests__/kaspaSignTransaction.test.ts +601 -0
  45. package/__tests__/known-device-public-types.type-test.ts +3 -0
  46. package/__tests__/logBlockEvent.test.ts +128 -1
  47. package/__tests__/method-protocol-support.test.ts +113 -0
  48. package/__tests__/networkUtils.test.ts +406 -0
  49. package/__tests__/open-wallet-session-error-response.test.ts +43 -0
  50. package/__tests__/open-wallet-session.test.ts +1368 -0
  51. package/__tests__/pro2Wallpaper.test.ts +39 -0
  52. package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
  53. package/__tests__/protocol-v2-firmware-targets.test.ts +37 -0
  54. package/__tests__/protocol-v2-ping.test.ts +28 -0
  55. package/__tests__/protocol-v2-unlock-policy.test.ts +45 -0
  56. package/__tests__/protocol-v2.test.ts +6058 -2525
  57. package/__tests__/protocolV2FileWrite.test.ts +92 -0
  58. package/__tests__/protocolV2UiInteraction.test.ts +266 -0
  59. package/__tests__/public-device-state-api.test.ts +275 -0
  60. package/__tests__/public-pro2-api-boundary.test.ts +106 -0
  61. package/__tests__/refresh-device-state.test.ts +101 -0
  62. package/__tests__/request-context-logging.test.ts +16 -0
  63. package/__tests__/search-devices.test.ts +136 -0
  64. package/__tests__/tron-sign-message-init.test.ts +74 -0
  65. package/dist/api/BaseMethod.d.ts +14 -1
  66. package/dist/api/BaseMethod.d.ts.map +1 -1
  67. package/dist/api/CheckAllFirmwareRelease.d.ts +24 -1
  68. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  69. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  70. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  71. package/dist/api/CipherKeyValue.d.ts +1 -0
  72. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  73. package/dist/api/ClearSessionCache.d.ts +9 -0
  74. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  75. package/dist/api/DirList.d.ts +1 -0
  76. package/dist/api/DirList.d.ts.map +1 -1
  77. package/dist/api/DirMake.d.ts +1 -0
  78. package/dist/api/DirMake.d.ts.map +1 -1
  79. package/dist/api/DirRemove.d.ts +1 -0
  80. package/dist/api/DirRemove.d.ts.map +1 -1
  81. package/dist/api/FileDelete.d.ts +1 -0
  82. package/dist/api/FileDelete.d.ts.map +1 -1
  83. package/dist/api/FileRead.d.ts +1 -0
  84. package/dist/api/FileRead.d.ts.map +1 -1
  85. package/dist/api/FileWrite.d.ts +2 -0
  86. package/dist/api/FileWrite.d.ts.map +1 -1
  87. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  88. package/dist/api/FirmwareUpdateV2.d.ts +13 -2
  89. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  90. package/dist/api/FirmwareUpdateV3.d.ts +7 -3
  91. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  92. package/dist/api/FirmwareUpdateV4.d.ts +40 -16
  93. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  94. package/dist/api/GetDeviceState.d.ts +8 -0
  95. package/dist/api/GetDeviceState.d.ts.map +1 -0
  96. package/dist/api/GetFeatures.d.ts +1 -1
  97. package/dist/api/GetFeatures.d.ts.map +1 -1
  98. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  99. package/dist/api/GetPassphraseState.d.ts +2 -6
  100. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  101. package/dist/api/OpenWalletSession.d.ts +8 -0
  102. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  103. package/dist/api/PathInfo.d.ts +1 -0
  104. package/dist/api/PathInfo.d.ts.map +1 -1
  105. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  106. package/dist/api/SearchDevices.d.ts +3 -0
  107. package/dist/api/SearchDevices.d.ts.map +1 -1
  108. package/dist/api/UploadPortfolio.d.ts +17 -0
  109. package/dist/api/UploadPortfolio.d.ts.map +1 -0
  110. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  111. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  112. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  113. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  114. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  115. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  116. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  117. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  118. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  119. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  120. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  121. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  122. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  123. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  124. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  125. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  126. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  127. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  128. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  129. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  130. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  131. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  132. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  133. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  134. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  135. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  136. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  137. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  138. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  139. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  140. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  141. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  142. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  143. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  144. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  145. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  146. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  147. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  148. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  149. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  150. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  151. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  152. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  153. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  154. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  155. package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
  156. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  157. package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
  158. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  159. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
  160. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  161. package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
  162. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  163. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  164. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  165. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  166. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  167. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  168. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  169. package/dist/api/device/DeviceCancel.d.ts +1 -0
  170. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  171. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  172. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  173. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  174. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  175. package/dist/api/device/DeviceLock.d.ts +1 -0
  176. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  177. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  178. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  179. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  180. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  181. package/dist/api/device/DeviceSettings.d.ts +1 -0
  182. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  183. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  184. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  185. package/dist/api/device/DeviceUnlock.d.ts +1 -0
  186. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  187. package/dist/api/device/DeviceUpdateBootloader.d.ts +5 -1
  188. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  189. package/dist/api/device/DeviceWipe.d.ts +1 -0
  190. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  191. package/dist/api/device/PreInitialize.d.ts +1 -0
  192. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  193. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  194. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  195. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  196. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  197. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  198. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  199. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  200. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  201. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  202. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  203. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  204. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  205. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  206. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  207. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  208. package/dist/api/evm/protocol.d.ts +3 -0
  209. package/dist/api/evm/protocol.d.ts.map +1 -0
  210. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  211. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  212. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  213. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  214. package/dist/api/firmware/FirmwareArtifactSource.d.ts +25 -0
  215. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +1 -0
  216. package/dist/api/firmware/FirmwareHostBinding.d.ts +6 -0
  217. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -0
  218. package/dist/api/firmware/FirmwarePreparationError.d.ts +3 -0
  219. package/dist/api/firmware/FirmwarePreparationError.d.ts.map +1 -0
  220. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +8 -0
  221. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  222. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +3 -0
  223. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +1 -0
  224. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +25 -0
  225. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -0
  226. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +32 -0
  227. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -0
  228. package/dist/api/firmware/getBinary.d.ts +15 -4
  229. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  230. package/dist/api/firmware/updateBootloader.d.ts +2 -0
  231. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  232. package/dist/api/firmware/uploadFirmware.d.ts +9 -1
  233. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  234. package/dist/api/helpers/filesystemValidation.d.ts +3 -0
  235. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
  236. package/dist/api/helpers/paramsValidator.d.ts +1 -0
  237. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  238. package/dist/api/helpers/protocolV2FileWrite.d.ts +33 -0
  239. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
  240. package/dist/api/index.d.ts +7 -25
  241. package/dist/api/index.d.ts.map +1 -1
  242. package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
  243. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  244. package/dist/api/kaspa/KaspaSignTransaction.d.ts +9 -1
  245. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  246. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  247. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  248. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  249. package/dist/api/near/NearGetAddress.d.ts +1 -0
  250. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  251. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  252. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  253. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  254. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  255. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  256. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  257. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  258. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  259. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  260. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  261. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  262. package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
  263. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  264. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  265. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  266. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  267. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  268. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  269. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  270. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  271. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  272. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  273. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  274. package/dist/api/polkadot/PolkadotGetAddress.d.ts +1 -0
  275. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  276. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  277. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  278. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  279. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  280. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  281. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  282. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -0
  283. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  284. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +1 -0
  285. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  286. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +7 -0
  287. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
  288. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +1 -1
  289. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  290. package/dist/api/protocol-v2/DeviceReboot.d.ts +1 -0
  291. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  292. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +7 -0
  293. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  294. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +27 -0
  295. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
  296. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  297. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  298. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  299. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  300. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  301. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  302. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  303. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  304. package/dist/api/protocol-v2/helpers.d.ts +1 -1
  305. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  306. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  307. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  308. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  309. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  310. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  311. package/dist/api/solana/SolSignMessage.d.ts +1 -0
  312. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  313. package/dist/api/solana/SolSignOffchainMessage.d.ts +1 -0
  314. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  315. package/dist/api/solana/SolSignTransaction.d.ts +1 -0
  316. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  317. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  318. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  319. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  320. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  321. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  322. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  323. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  324. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  325. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  326. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  327. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  328. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  329. package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
  330. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  331. package/dist/api/sui/SuiGetAddress.d.ts +1 -0
  332. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  333. package/dist/api/sui/SuiGetPublicKey.d.ts +1 -0
  334. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  335. package/dist/api/sui/SuiSignMessage.d.ts +1 -0
  336. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  337. package/dist/api/sui/SuiSignTransaction.d.ts +1 -0
  338. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  339. package/dist/api/ton/TonGetAddress.d.ts +1 -0
  340. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  341. package/dist/api/ton/TonSignData.d.ts +1 -0
  342. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  343. package/dist/api/ton/TonSignMessage.d.ts +1 -0
  344. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  345. package/dist/api/ton/TonSignProof.d.ts +1 -0
  346. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  347. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  348. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  349. package/dist/api/tron/TronSignMessage.d.ts +5 -0
  350. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  351. package/dist/api/tron/TronSignTransaction.d.ts +1 -0
  352. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  353. package/dist/api/utils.d.ts +2 -1
  354. package/dist/api/utils.d.ts.map +1 -1
  355. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  356. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  357. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  358. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  359. package/dist/constants/index.d.ts +1 -1
  360. package/dist/constants/index.d.ts.map +1 -1
  361. package/dist/core/RequestQueue.d.ts.map +1 -1
  362. package/dist/core/deviceEventRegistration.d.ts +11 -0
  363. package/dist/core/deviceEventRegistration.d.ts.map +1 -0
  364. package/dist/core/index.d.ts +3 -1
  365. package/dist/core/index.d.ts.map +1 -1
  366. package/dist/data-manager/DataManager.d.ts +1 -0
  367. package/dist/data-manager/DataManager.d.ts.map +1 -1
  368. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  369. package/dist/device/Device.d.ts +45 -14
  370. package/dist/device/Device.d.ts.map +1 -1
  371. package/dist/device/DeviceCommands.d.ts +8 -6
  372. package/dist/device/DeviceCommands.d.ts.map +1 -1
  373. package/dist/device/DeviceConnector.d.ts +1 -1
  374. package/dist/device/DeviceConnector.d.ts.map +1 -1
  375. package/dist/device/DeviceFeaturesState.d.ts +3 -0
  376. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  377. package/dist/device/DevicePool.d.ts +5 -2
  378. package/dist/device/DevicePool.d.ts.map +1 -1
  379. package/dist/device/DeviceStateMapper.d.ts +13 -0
  380. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  381. package/dist/device/DeviceStateProjector.d.ts +7 -0
  382. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  383. package/dist/device/DeviceStateStore.d.ts +21 -0
  384. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  385. package/dist/device/DeviceWalletSessionStore.d.ts +27 -0
  386. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  387. package/dist/device/cloneDeviceState.d.ts +2 -0
  388. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  389. package/dist/device/deviceIdentity.d.ts +5 -0
  390. package/dist/device/deviceIdentity.d.ts.map +1 -0
  391. package/dist/deviceProfile/buildDeviceFeatures.d.ts +9 -3
  392. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  393. package/dist/deviceProfile/index.d.ts +0 -1
  394. package/dist/deviceProfile/index.d.ts.map +1 -1
  395. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
  396. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
  397. package/dist/events/device.d.ts +12 -2
  398. package/dist/events/device.d.ts.map +1 -1
  399. package/dist/events/logBlockEvent.d.ts +2 -0
  400. package/dist/events/logBlockEvent.d.ts.map +1 -1
  401. package/dist/events/ui-request.d.ts +19 -2
  402. package/dist/events/ui-request.d.ts.map +1 -1
  403. package/dist/index.d.ts +1564 -739
  404. package/dist/index.d.ts.map +1 -1
  405. package/dist/index.js +9262 -3918
  406. package/dist/inject.d.ts.map +1 -1
  407. package/dist/lowLevelInject.d.ts.map +1 -1
  408. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  409. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  410. package/dist/protocols/protocol-v2/features.d.ts +25 -17
  411. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  412. package/dist/protocols/protocol-v2/index.d.ts +3 -2
  413. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  414. package/dist/protocols/protocol-v2/lockedError.d.ts +2 -0
  415. package/dist/protocols/protocol-v2/lockedError.d.ts.map +1 -0
  416. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
  417. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  418. package/dist/protocols/protocol-v2/uiInteraction.d.ts +39 -0
  419. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
  420. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +4 -0
  421. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
  422. package/dist/protocols/protocol-v2/unlockRetry.d.ts +10 -0
  423. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +1 -0
  424. package/dist/protocols/protocol-v2/walletSession.d.ts +22 -0
  425. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  426. package/dist/topLevelInject.d.ts.map +1 -1
  427. package/dist/types/api/checkAllFirmwareRelease.d.ts +29 -4
  428. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  429. package/dist/types/api/deviceSettings.d.ts +11 -2
  430. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  431. package/dist/types/api/deviceUnlock.d.ts +1 -1
  432. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  433. package/dist/types/api/deviceUpdateBootloader.d.ts +6 -0
  434. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  435. package/dist/types/api/export.d.ts +6 -2
  436. package/dist/types/api/export.d.ts.map +1 -1
  437. package/dist/types/api/firmwareUpdate.d.ts +75 -1
  438. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  439. package/dist/types/api/firmwareUpdateCapabilities.d.ts +9 -0
  440. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +1 -0
  441. package/dist/types/api/firmwareUpdatePlan.d.ts +28 -0
  442. package/dist/types/api/firmwareUpdatePlan.d.ts.map +1 -0
  443. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +42 -0
  444. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +1 -0
  445. package/dist/types/api/getDeviceState.d.ts +12 -0
  446. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  447. package/dist/types/api/getFeatures.d.ts.map +1 -1
  448. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  449. package/dist/types/api/getPassphraseState.d.ts +2 -10
  450. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  451. package/dist/types/api/index.d.ts +27 -31
  452. package/dist/types/api/index.d.ts.map +1 -1
  453. package/dist/types/api/kaspaSignTransaction.d.ts +42 -4
  454. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  455. package/dist/types/api/openWalletSession.d.ts +35 -0
  456. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  457. package/dist/types/api/protocolV2.d.ts +15 -84
  458. package/dist/types/api/protocolV2.d.ts.map +1 -1
  459. package/dist/types/api/sessionCache.d.ts +13 -0
  460. package/dist/types/api/sessionCache.d.ts.map +1 -0
  461. package/dist/types/device.d.ts +132 -8
  462. package/dist/types/device.d.ts.map +1 -1
  463. package/dist/types/params.d.ts.map +1 -1
  464. package/dist/types/settings.d.ts +20 -14
  465. package/dist/types/settings.d.ts.map +1 -1
  466. package/dist/utils/assets.d.ts +2 -1
  467. package/dist/utils/assets.d.ts.map +1 -1
  468. package/dist/utils/deviceFeaturesCompat.d.ts +14 -0
  469. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  470. package/dist/utils/deviceFeaturesUtils.d.ts +6 -3
  471. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  472. package/dist/utils/deviceInfoUtils.d.ts +9 -9
  473. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  474. package/dist/utils/deviceSettings.d.ts +38 -7
  475. package/dist/utils/deviceSettings.d.ts.map +1 -1
  476. package/dist/utils/deviceVersionUtils.d.ts +7 -5
  477. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  478. package/dist/utils/homescreen.d.ts.map +1 -1
  479. package/dist/utils/index.d.ts +5 -2
  480. package/dist/utils/index.d.ts.map +1 -1
  481. package/dist/utils/networkUtils.d.ts +10 -1
  482. package/dist/utils/networkUtils.d.ts.map +1 -1
  483. package/dist/utils/patch.d.ts +1 -1
  484. package/dist/utils/patch.d.ts.map +1 -1
  485. package/dist/utils/pro2Wallpaper.d.ts +12 -0
  486. package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
  487. package/dist/utils/tracing.d.ts.map +1 -1
  488. package/package.json +4 -4
  489. package/src/api/BaseMethod.ts +52 -17
  490. package/src/api/CheckAllFirmwareRelease.ts +344 -4
  491. package/src/api/CheckBootloaderRelease.ts +1 -2
  492. package/src/api/CheckFirmwareRelease.ts +1 -2
  493. package/src/api/CipherKeyValue.ts +4 -0
  494. package/src/api/ClearSessionCache.ts +32 -0
  495. package/src/api/DirList.ts +9 -4
  496. package/src/api/DirMake.ts +7 -4
  497. package/src/api/DirRemove.ts +7 -4
  498. package/src/api/FileDelete.ts +7 -4
  499. package/src/api/FileRead.ts +15 -9
  500. package/src/api/FileWrite.ts +26 -181
  501. package/src/api/FirmwareUpdate.ts +24 -13
  502. package/src/api/FirmwareUpdateV2.ts +386 -113
  503. package/src/api/FirmwareUpdateV3.ts +266 -68
  504. package/src/api/FirmwareUpdateV4.ts +1222 -635
  505. package/src/api/GetDeviceState.ts +59 -0
  506. package/src/api/GetFeatures.ts +6 -4
  507. package/src/api/GetOnekeyFeatures.ts +1 -75
  508. package/src/api/GetPassphraseState.ts +30 -21
  509. package/src/api/OpenWalletSession.ts +214 -0
  510. package/src/api/PathInfo.ts +9 -4
  511. package/src/api/PromptWebDeviceAccess.ts +2 -7
  512. package/src/api/SearchDevices.ts +29 -4
  513. package/src/api/UploadPortfolio.ts +40 -0
  514. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  515. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  516. package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
  517. package/src/api/algo/AlgoGetAddress.ts +4 -0
  518. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  519. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +9 -21
  520. package/src/api/aptos/AptosGetAddress.ts +4 -0
  521. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  522. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  523. package/src/api/aptos/AptosSignMessage.ts +4 -0
  524. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  525. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  526. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  527. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  528. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  529. package/src/api/btc/BTCGetAddress.ts +8 -1
  530. package/src/api/btc/BTCGetPublicKey.ts +9 -2
  531. package/src/api/btc/BTCSignMessage.ts +8 -1
  532. package/src/api/btc/BTCSignPsbt.ts +4 -0
  533. package/src/api/btc/BTCSignTransaction.ts +8 -1
  534. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  535. package/src/api/btc/helpers/versionLimit.ts +7 -4
  536. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  537. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  538. package/src/api/cardano/CardanoSignMessage.ts +5 -1
  539. package/src/api/cardano/CardanoSignTransaction.ts +5 -1
  540. package/src/api/conflux/ConfluxGetAddress.ts +6 -0
  541. package/src/api/conflux/ConfluxSignMessage.ts +6 -0
  542. package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
  543. package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
  544. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  545. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  546. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  547. package/src/api/device/DeviceCancel.ts +5 -0
  548. package/src/api/device/DeviceChangePin.ts +28 -0
  549. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  550. package/src/api/device/DeviceLock.ts +5 -0
  551. package/src/api/device/DeviceRebootToBoardloader.ts +5 -0
  552. package/src/api/device/DeviceRebootToBootloader.ts +5 -0
  553. package/src/api/device/DeviceSettings.ts +194 -1
  554. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  555. package/src/api/device/DeviceUnlock.ts +13 -0
  556. package/src/api/device/DeviceUpdateBootloader.ts +126 -8
  557. package/src/api/device/DeviceWipe.ts +25 -0
  558. package/src/api/device/PreInitialize.ts +4 -0
  559. package/src/api/dynex/DnxGetAddress.ts +0 -6
  560. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  561. package/src/api/evm/EVMGetAddress.ts +6 -2
  562. package/src/api/evm/EVMGetPublicKey.ts +6 -2
  563. package/src/api/evm/EVMSignMessage.ts +6 -2
  564. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  565. package/src/api/evm/EVMSignTransaction.ts +6 -2
  566. package/src/api/evm/EVMSignTypedData.ts +42 -50
  567. package/src/api/evm/EVMVerifyMessage.ts +6 -2
  568. package/src/api/evm/legacyV1/getAddress.ts +2 -2
  569. package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
  570. package/src/api/evm/legacyV1/signMessage.ts +2 -2
  571. package/src/api/evm/legacyV1/signTypedData.ts +2 -2
  572. package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
  573. package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
  574. package/src/api/evm/protocol.ts +6 -0
  575. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  576. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  577. package/src/api/firmware/FirmwareArtifactSource.ts +278 -0
  578. package/src/api/firmware/FirmwareHostBinding.ts +100 -0
  579. package/src/api/firmware/FirmwarePreparationError.ts +12 -0
  580. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +75 -4
  581. package/src/api/firmware/FirmwareUpdateCapabilities.ts +9 -0
  582. package/src/api/firmware/FirmwareUpdatePlan.ts +772 -0
  583. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +449 -0
  584. package/src/api/firmware/getBinary.ts +8 -3
  585. package/src/api/firmware/updateBootloader.ts +19 -4
  586. package/src/api/firmware/uploadFirmware.ts +140 -22
  587. package/src/api/helpers/batchGetPublickeys.ts +2 -2
  588. package/src/api/helpers/filesystemValidation.ts +61 -0
  589. package/src/api/helpers/paramsValidator.ts +1 -1
  590. package/src/api/helpers/protocolV2FileWrite.ts +199 -0
  591. package/src/api/index.ts +8 -26
  592. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  593. package/src/api/kaspa/KaspaSignTransaction.ts +380 -29
  594. package/src/api/kaspa/helpers/TransferSerialize.ts +17 -7
  595. package/src/api/lightning/LnurlAuth.ts +0 -4
  596. package/src/api/near/NearGetAddress.ts +4 -0
  597. package/src/api/near/NearSignTransaction.ts +4 -0
  598. package/src/api/nem/NEMGetAddress.ts +4 -0
  599. package/src/api/nem/NEMSignTransaction.ts +4 -0
  600. package/src/api/neo/NeoGetAddress.ts +0 -4
  601. package/src/api/neo/NeoSignTransaction.ts +0 -4
  602. package/src/api/nervos/NervosGetAddress.ts +0 -4
  603. package/src/api/nervos/NervosSignTransaction.ts +2 -6
  604. package/src/api/nexa/NexaGetAddress.ts +0 -4
  605. package/src/api/nexa/NexaSignTransaction.ts +3 -5
  606. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  607. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  608. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  609. package/src/api/nostr/NostrSignEvent.ts +4 -0
  610. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  611. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  612. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  613. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
  614. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +5 -2
  615. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +8 -5
  616. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +10 -6
  617. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +21 -0
  618. package/src/api/protocol-v2/DeviceInfoGet.ts +8 -15
  619. package/src/api/protocol-v2/DeviceReboot.ts +7 -3
  620. package/src/api/protocol-v2/DeviceStatusGet.ts +19 -0
  621. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +134 -0
  622. package/src/api/protocol-v2/FilesystemFormat.ts +9 -3
  623. package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
  624. package/src/api/protocol-v2/Ping.ts +37 -3
  625. package/src/api/protocol-v2/ProtocolInfoRequest.ts +5 -2
  626. package/src/api/protocol-v2/helpers.ts +17 -17
  627. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  628. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  629. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  630. package/src/api/solana/SolGetAddress.ts +4 -0
  631. package/src/api/solana/SolSignMessage.ts +4 -0
  632. package/src/api/solana/SolSignOffchainMessage.ts +4 -0
  633. package/src/api/solana/SolSignTransaction.ts +4 -0
  634. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  635. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  636. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  637. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  638. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  639. package/src/api/stellar/StellarGetAddress.ts +1 -10
  640. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  641. package/src/api/sui/SuiGetAddress.ts +4 -0
  642. package/src/api/sui/SuiGetPublicKey.ts +4 -0
  643. package/src/api/sui/SuiSignMessage.ts +4 -0
  644. package/src/api/sui/SuiSignTransaction.ts +4 -0
  645. package/src/api/ton/TonGetAddress.ts +4 -0
  646. package/src/api/ton/TonSignData.ts +5 -1
  647. package/src/api/ton/TonSignMessage.ts +4 -0
  648. package/src/api/ton/TonSignProof.ts +4 -0
  649. package/src/api/tron/TronGetAddress.ts +4 -0
  650. package/src/api/tron/TronSignMessage.ts +18 -7
  651. package/src/api/tron/TronSignTransaction.ts +4 -0
  652. package/src/api/utils.ts +7 -3
  653. package/src/api/xrp/XrpGetAddress.ts +4 -0
  654. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  655. package/src/constants/index.ts +1 -4
  656. package/src/core/RequestQueue.ts +1 -0
  657. package/src/core/deviceEventRegistration.ts +23 -0
  658. package/src/core/index.ts +164 -53
  659. package/src/data/messages/messages-protocol-v2.json +1155 -483
  660. package/src/data/messages/messages.json +286 -1
  661. package/src/data-manager/DataManager.ts +39 -39
  662. package/src/data-manager/TransportManager.ts +1 -1
  663. package/src/data-manager/connectSettings.ts +15 -0
  664. package/src/device/Device.ts +652 -281
  665. package/src/device/DeviceCommands.ts +166 -158
  666. package/src/device/DeviceConnector.ts +10 -7
  667. package/src/device/DeviceFeaturesState.ts +25 -0
  668. package/src/device/DevicePool.ts +66 -16
  669. package/src/device/DeviceStateMapper.ts +374 -0
  670. package/src/device/DeviceStateProjector.ts +94 -0
  671. package/src/device/DeviceStateStore.ts +201 -0
  672. package/src/device/DeviceWalletSessionStore.ts +144 -0
  673. package/src/device/cloneDeviceState.ts +39 -0
  674. package/src/device/deviceIdentity.ts +18 -0
  675. package/src/deviceProfile/buildDeviceFeatures.ts +224 -190
  676. package/src/deviceProfile/index.ts +0 -1
  677. package/src/deviceProfile/protocolV2DeviceIdentity.ts +32 -0
  678. package/src/events/device.ts +18 -1
  679. package/src/events/logBlockEvent.ts +79 -2
  680. package/src/events/ui-request.ts +25 -2
  681. package/src/index.ts +5 -0
  682. package/src/inject.ts +37 -43
  683. package/src/lowLevelInject.ts +5 -1
  684. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  685. package/src/protocols/protocol-v2/features.ts +96 -32
  686. package/src/protocols/protocol-v2/firmware.ts +1 -1
  687. package/src/protocols/protocol-v2/index.ts +8 -1
  688. package/src/protocols/protocol-v2/lockedError.ts +10 -0
  689. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  690. package/src/protocols/protocol-v2/uiInteraction.ts +210 -0
  691. package/src/protocols/protocol-v2/unlockPolicy.ts +105 -0
  692. package/src/protocols/protocol-v2/unlockRetry.ts +109 -0
  693. package/src/protocols/protocol-v2/walletSession.ts +285 -0
  694. package/src/topLevelInject.ts +5 -1
  695. package/src/types/api/checkAllFirmwareRelease.ts +50 -4
  696. package/src/types/api/deviceSettings.ts +26 -2
  697. package/src/types/api/deviceUnlock.ts +1 -1
  698. package/src/types/api/deviceUpdateBootloader.ts +6 -0
  699. package/src/types/api/export.ts +26 -0
  700. package/src/types/api/firmwareUpdate.ts +99 -5
  701. package/src/types/api/firmwareUpdateCapabilities.ts +9 -0
  702. package/src/types/api/firmwareUpdatePlan.ts +38 -0
  703. package/src/types/api/firmwareUpdatePreparedPlan.ts +53 -0
  704. package/src/types/api/getDeviceState.ts +19 -0
  705. package/src/types/api/getFeatures.ts +3 -0
  706. package/src/types/api/getOnekeyFeatures.ts +3 -0
  707. package/src/types/api/getPassphraseState.ts +9 -11
  708. package/src/types/api/index.ts +39 -64
  709. package/src/types/api/kaspaSignTransaction.ts +60 -4
  710. package/src/types/api/openWalletSession.ts +54 -0
  711. package/src/types/api/protocolV2.ts +24 -145
  712. package/src/types/api/sessionCache.ts +19 -0
  713. package/src/types/device.ts +185 -7
  714. package/src/types/params.ts +3 -2
  715. package/src/types/settings.ts +30 -16
  716. package/src/utils/assets.ts +4 -1
  717. package/src/utils/deviceFeaturesCompat.ts +186 -0
  718. package/src/utils/deviceFeaturesUtils.ts +52 -45
  719. package/src/utils/deviceInfoUtils.ts +27 -69
  720. package/src/utils/deviceSettings.ts +171 -39
  721. package/src/utils/deviceVersionUtils.ts +25 -44
  722. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  723. package/src/utils/homescreen.ts +10 -0
  724. package/src/utils/index.ts +21 -2
  725. package/src/utils/networkUtils.ts +274 -16
  726. package/src/utils/pro2Wallpaper.ts +103 -0
  727. package/src/utils/tracing.ts +3 -1
  728. package/tsconfig.type-tests.json +12 -0
  729. package/dist/api/GetDeviceInfo.d.ts +0 -9
  730. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  731. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +0 -13
  732. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +0 -1
  733. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
  734. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  735. package/dist/types/api/getDeviceInfo.d.ts +0 -87
  736. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  737. package/src/api/GetDeviceInfo.ts +0 -145
  738. package/src/api/protocol-v2/FilesystemDiskControl.ts +0 -50
  739. package/src/deviceProfile/buildDeviceProfile.ts +0 -352
  740. 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 { 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,
@@ -36,6 +30,7 @@ import {
36
30
  updateRequestContext,
37
31
  } from '../utils/tracing';
38
32
  import { Device } from '../device/Device';
33
+ import { checkLiveDeviceId } from '../device/deviceIdentity';
39
34
  import { DeviceList } from '../device/DeviceList';
40
35
  import { DevicePool } from '../device/DevicePool';
41
36
  import { PollingStateManager } from './PollingStateManager';
@@ -51,18 +46,31 @@ import {
51
46
  createDeviceMessage,
52
47
  createResponseMessage,
53
48
  createUiMessage,
49
+ formatLogMethodLabel,
50
+ getLogBlockLabel,
51
+ getSafeLogPayload,
54
52
  } from '../events';
55
53
  import TransportManager from '../data-manager/TransportManager';
56
54
  import DeviceConnector from '../device/DeviceConnector';
57
55
  import RequestQueue from './RequestQueue';
56
+ import { registerHardwareUiEventListeners } from './deviceEventRegistration';
58
57
  import { getSynchronize } from '../utils/getSynchronize';
58
+ import { runMethodWithUnlockRetry } from '../protocols/protocol-v2/unlockRetry';
59
+ import {
60
+ ProtocolV2UiInteractionCoordinator,
61
+ isProtocolV2UiEnabled,
62
+ } from '../protocols/protocol-v2/uiInteraction';
59
63
 
60
64
  import type { ConnectSettings, Features, KnownDevice } from '../types';
61
65
  import type { CoreMessage, IFrameCallMessage, UiPromise, UiPromiseResponse } from '../events';
62
66
  import type { DeviceEvents, InitOptions, RunOptions } from '../device/Device';
63
67
  import type { SdkTracingContext } from '../utils/tracing';
64
68
  import type { Deferred } from '@onekeyfe/hd-shared';
65
- import type { LowlevelTransportSharedPlugin, OneKeyDeviceInfo } from '@onekeyfe/hd-transport';
69
+ import type {
70
+ LowlevelTransportSharedPlugin,
71
+ OneKeyDeviceInfo,
72
+ TransportDeviceDisconnectEvent,
73
+ } from '@onekeyfe/hd-transport';
66
74
  import type { BaseMethod } from '../api/BaseMethod';
67
75
 
68
76
  const Log = getLogger(LoggerNames.Core);
@@ -91,14 +99,14 @@ function hasDeriveCardano(method: BaseMethod): boolean {
91
99
 
92
100
  const parseInitOptions = (method?: BaseMethod): InitOptions => ({
93
101
  initSession: method?.payload.initSession,
94
- passphraseState: method?.payload.passphraseState,
102
+ passphraseState: method?.payload.useEmptyPassphrase ? undefined : method?.payload.passphraseState,
95
103
  deviceId: method?.payload.deviceId,
96
104
  deriveCardano: method && hasDeriveCardano(method),
97
105
  connectProtocol: method?.payload.connectProtocol,
98
106
  protocolV2DeviceInfoTimeoutMs: method?.payload.protocolV2DeviceInfoTimeoutMs,
99
107
  });
100
108
 
101
- let _core: Core;
109
+ let _core: Core | undefined;
102
110
  let _deviceList: DeviceList | undefined;
103
111
  let _connector: DeviceConnector | undefined;
104
112
  let _uiPromises: UiPromise<UiPromiseResponse['type']>[] = []; // Waiting for ui response
@@ -142,7 +150,7 @@ export const callAPI = async (context: CoreContext, message: CoreMessage) => {
142
150
  }
143
151
 
144
152
  // find api method
145
- let method: BaseMethod;
153
+ let method!: BaseMethod;
146
154
  try {
147
155
  method = findMethod(message as IFrameCallMessage);
148
156
  method.connector = _connector;
@@ -158,11 +166,13 @@ export const callAPI = async (context: CoreContext, message: CoreMessage) => {
158
166
 
159
167
  method.init();
160
168
  } catch (error) {
161
- return Promise.reject(error);
169
+ if (method) {
170
+ completeMethodRequestContext(method, error);
171
+ method.dispose();
172
+ }
173
+ return createResponseMessage(method?.responseID ?? message.id, false, { error });
162
174
  }
163
175
 
164
- DevicePool.emitter.on(DEVICE.CONNECT, onDeviceConnectHandler);
165
-
166
176
  if (!method.useDevice) {
167
177
  updateMethodRequestContext(method, { status: 'running' });
168
178
  try {
@@ -357,7 +367,7 @@ const onCallDevice = async (
357
367
  );
358
368
  } catch (e) {
359
369
  preWarmCallbackTask?.resolve();
360
- console.log('ensureConnected error: ', e);
370
+ Log.debug('ensureConnected error: ', e);
361
371
 
362
372
  completeMethodRequestContext(method, e);
363
373
 
@@ -394,18 +404,23 @@ const onCallDevice = async (
394
404
  );
395
405
  }
396
406
 
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);
407
+ registerHardwareUiEventListeners(device, {
408
+ pin: onDevicePinHandler,
409
+ button: onDeviceButtonHandler,
410
+ passphrase: message.payload.useEmptyPassphrase
411
+ ? onEmptyPassphraseHandler
412
+ : onDevicePassphraseHandler,
413
+ passphraseOnDevice: onEnterPassphraseOnDeviceHandler,
414
+ attachPinOnDevice: onEnterAttachPinOnDeviceHandler,
415
+ });
404
416
  device.on(DEVICE.FEATURES, onDeviceFeaturesHandler);
417
+ device.on(DEVICE.STATE, onDeviceStateHandler);
405
418
  device.on(
406
419
  DEVICE.SELECT_DEVICE_IN_BOOTLOADER_FOR_WEB_DEVICE,
407
420
  onSelectDeviceInBootloaderForWebDeviceHandler
408
421
  );
422
+
423
+ const protocolV2UiCoordinator = new ProtocolV2UiInteractionCoordinator(device, postMessage);
409
424
  device.on(
410
425
  DEVICE.SELECT_DEVICE_FOR_SWITCH_FIRMWARE_WEB_DEVICE,
411
426
  onSelectDeviceForSwitchFirmwareWebDeviceHandler
@@ -420,11 +435,9 @@ const onCallDevice = async (
420
435
  await waitForPendingPromise(getPrePendingCallPromise, setPrePendingCallPromise);
421
436
 
422
437
  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
- }
438
+ // Protocol is established from an active device response during acquire/initialize.
439
+ // Reject unsupported methods before any method-specific device command is sent.
440
+ method.assertProtocolSupported(device.getProtocol(), device.getCurrentFirmwareType());
428
441
 
429
442
  // check firmware version
430
443
  const versionRange = device.getCurrentMethodVersionRange(
@@ -435,8 +448,8 @@ const onCallDevice = async (
435
448
  const deviceFirmwareType = device.getCurrentFirmwareType();
436
449
  let newVersionStatus: ReturnType<typeof DataManager.getFirmwareStatus> | undefined;
437
450
 
438
- // 故障批次检测与远端强制升级门禁基于 V1 features/remote config
439
- // Pro2(V2) 暂不参与:profile 版的 firmwareStatus 需要 DataManager 支持后再接入。
451
+ // Defective-batch and forced-update gates depend on V1 features/remote config.
452
+ // Pro2 joins after DataManager supports its profile firmwareStatus.
440
453
  if (device.features && !device.isProtocolV2()) {
441
454
  await DataManager.checkAndReloadData();
442
455
 
@@ -484,10 +497,6 @@ const onCallDevice = async (
484
497
  }
485
498
  }
486
499
 
487
- if (isMethodVersionRangeUnsupported(versionRange)) {
488
- throw createDeviceNotSupportMethodError(method.name, deviceFirmwareType);
489
- }
490
-
491
500
  if (versionRange) {
492
501
  if (semver.valid(versionRange.min) && semver.lt(currentFirmwareVersion, versionRange.min)) {
493
502
  if (newVersionStatus === 'none' || newVersionStatus === 'valid') {
@@ -539,7 +548,7 @@ const onCallDevice = async (
539
548
  }
540
549
 
541
550
  if (method.deviceId && method.checkDeviceId) {
542
- const isSameDeviceID = device.checkDeviceId(method.deviceId);
551
+ const isSameDeviceID = await checkLiveDeviceId(device, method.deviceId);
543
552
  if (!isSameDeviceID) {
544
553
  return Promise.reject(ERRORS.TypedError(HardwareErrorCode.DeviceCheckDeviceIdError));
545
554
  }
@@ -616,7 +625,11 @@ const onCallDevice = async (
616
625
  method.device?.commands?.checkDisposed();
617
626
 
618
627
  try {
619
- const response: object = await method.run();
628
+ const response: object = await runMethodWithUnlockRetry(
629
+ method,
630
+ device,
631
+ protocolV2UiCoordinator
632
+ );
620
633
  messageResponse = createResponseMessage(method.responseID, true, response);
621
634
  requestQueue.resolveRequest(method.responseID, messageResponse);
622
635
  completeMethodRequestContext(method);
@@ -633,6 +646,8 @@ const onCallDevice = async (
633
646
  ) {
634
647
  throw error;
635
648
  }
649
+ } finally {
650
+ protocolV2UiCoordinator.close();
636
651
  }
637
652
  };
638
653
  Log.debug('Call API - Device Run: ', device.mainId);
@@ -686,7 +701,9 @@ const onCallDevice = async (
686
701
 
687
702
  requestQueue.releaseTask(method.responseID);
688
703
 
689
- closePopup();
704
+ if (isProtocolV2UiEnabled(method)) {
705
+ closePopup();
706
+ }
690
707
 
691
708
  cleanup();
692
709
 
@@ -848,8 +865,15 @@ function isRetryableBleProtocolV2ProbeError(method: BaseMethod, error: unknown)
848
865
  */
849
866
  async function connectDeviceForBle(method: BaseMethod, device: Device, retryCount = 0) {
850
867
  try {
851
- await device.acquire(method.payload.connectProtocol);
868
+ const shouldAcquire =
869
+ !device.hasDeviceAcquire() || !device.commands || device.commands.disposed;
870
+ if (shouldAcquire) {
871
+ await device.acquire(method.payload.connectProtocol);
872
+ }
852
873
  if (method.payload?.onlyConnectBleDevice) {
874
+ if (shouldAcquire) {
875
+ DevicePool.emitter.emit(DEVICE.CONNECT, device);
876
+ }
853
877
  return;
854
878
  }
855
879
  // Skip initialize if conditions are met
@@ -860,6 +884,9 @@ async function connectDeviceForBle(method: BaseMethod, device: Device, retryCoun
860
884
  passphraseState: initOptions.passphraseState,
861
885
  });
862
886
  }
887
+ if (shouldAcquire) {
888
+ DevicePool.emitter.emit(DEVICE.CONNECT, device);
889
+ }
863
890
  } catch (err) {
864
891
  if (
865
892
  (err.errorCode === HardwareErrorCode.BleTimeoutError ||
@@ -1160,8 +1187,6 @@ const cleanup = () => {
1160
1187
 
1161
1188
  const removeDeviceListener = (device: Device) => {
1162
1189
  device.removeAllListeners();
1163
- DevicePool.emitter.removeAllListeners(DEVICE.CONNECT);
1164
- // DevicePool.emitter.removeListener(DEVICE.DISCONNECT, onDeviceDisconnectHandler);
1165
1190
  };
1166
1191
 
1167
1192
  /**
@@ -1172,16 +1197,30 @@ const closePopup = () => {
1172
1197
  };
1173
1198
 
1174
1199
  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 }));
1200
+ const deviceObject = device.toMessageObject();
1201
+ if (!deviceObject) return;
1202
+ postMessage(createDeviceMessage(DEVICE.CONNECT, { device: deviceObject }));
1178
1203
  };
1179
1204
 
1180
1205
  const onDeviceDisconnectHandler = (device: Device) => {
1181
1206
  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 }));
1207
+ const deviceObject = device.toMessageObject();
1208
+ if (!deviceObject) return;
1209
+ postMessage(createDeviceMessage(DEVICE.DISCONNECT, { device: deviceObject }));
1210
+ };
1211
+
1212
+ const onTransportDeviceDisconnectHandler = (event: TransportDeviceDisconnectEvent) => {
1213
+ const device =
1214
+ deviceCacheMap.get(event.connectId) ??
1215
+ DevicePool.devicesCache[event.connectId] ??
1216
+ DevicePool.getDeviceByPath(event.connectId);
1217
+ if (!device) {
1218
+ Log.debug('Ignoring transport disconnect for an unknown device:', event.connectId);
1219
+ return;
1220
+ }
1221
+
1222
+ device.markTransportDisconnected();
1223
+ DevicePool.emitter.emit(DEVICE.DISCONNECT, device);
1185
1224
  };
1186
1225
 
1187
1226
  const onDevicePinHandler = async (...[device, type, callback]: DeviceEvents['pin']) => {
@@ -1222,6 +1261,10 @@ const onDeviceFeaturesHandler = (...[_, features]: [...DeviceEvents['features']]
1222
1261
  postMessage(createDeviceMessage(DEVICE.FEATURES, { ...features }));
1223
1262
  };
1224
1263
 
1264
+ const onDeviceStateHandler = (...[_, stateEvent]: [...DeviceEvents['state']]) => {
1265
+ postMessage(createDeviceMessage(DEVICE.STATE, stateEvent));
1266
+ };
1267
+
1225
1268
  const onDevicePassphraseHandler = async (
1226
1269
  ...[device, requestPayload, callback]: DeviceEvents['passphrase']
1227
1270
  ) => {
@@ -1232,6 +1275,10 @@ const onDevicePassphraseHandler = async (
1232
1275
  device: device.toMessageObject() as KnownDevice,
1233
1276
  passphraseState: device.passphraseState,
1234
1277
  existsAttachPinUser: requestPayload.existsAttachPinUser,
1278
+ deviceOnly: requestPayload.deviceOnly,
1279
+ source: requestPayload.source,
1280
+ reason: requestPayload.reason,
1281
+ expectedPassphraseState: requestPayload.expectedPassphraseState,
1235
1282
  })
1236
1283
  );
1237
1284
  // wait for passphrase
@@ -1253,12 +1300,27 @@ const onEmptyPassphraseHandler = (...[_, , callback]: DeviceEvents['passphrase']
1253
1300
  };
1254
1301
 
1255
1302
  const onEnterPassphraseOnDeviceHandler = (
1256
- ...[device]: [...DeviceEvents['passphrase_on_device']]
1303
+ ...[device, requestPayload]: [...DeviceEvents['passphrase_on_device']]
1257
1304
  ) => {
1258
1305
  postMessage(
1259
1306
  createUiMessage(UI_REQUEST.REQUEST_PASSPHRASE_ON_DEVICE, {
1260
1307
  device: device.toMessageObject() as KnownDevice,
1261
1308
  passphraseState: device.passphraseState,
1309
+ source: requestPayload?.source,
1310
+ reason: requestPayload?.reason,
1311
+ })
1312
+ );
1313
+ };
1314
+
1315
+ const onEnterAttachPinOnDeviceHandler = (
1316
+ ...[device, requestPayload]: [...DeviceEvents['attach_pin_on_device']]
1317
+ ) => {
1318
+ postMessage(
1319
+ createUiMessage(UI_REQUEST.REQUEST_PIN, {
1320
+ device: device.toMessageObject() as KnownDevice,
1321
+ type: 'ButtonRequest_AttachPin',
1322
+ source: requestPayload?.source,
1323
+ reason: requestPayload?.reason,
1262
1324
  })
1263
1325
  );
1264
1326
  };
@@ -1329,6 +1391,8 @@ export default class Core extends EventEmitter {
1329
1391
 
1330
1392
  private requestQueue = new RequestQueue();
1331
1393
 
1394
+ private disposePromise?: Promise<void>;
1395
+
1332
1396
  // background task
1333
1397
  private prePendingCallPromise: Promise<void> | undefined;
1334
1398
 
@@ -1387,10 +1451,17 @@ export default class Core extends EventEmitter {
1387
1451
  }
1388
1452
 
1389
1453
  case IFRAME.CALL: {
1390
- Log.log(`[${Date.now()}][CALL_API]`, message);
1454
+ const logBlockLabel = getLogBlockLabel(message);
1455
+ Log.log(
1456
+ formatLogMethodLabel(`[${Date.now()}][CALL_API]`, logBlockLabel),
1457
+ getSafeLogPayload(message, logBlockLabel)
1458
+ );
1391
1459
  const response = await callAPI(this.getCoreContext(), message);
1392
1460
  const { success, payload } = response;
1393
- Log.log(`[${Date.now()}][CALL_API_RESPONSE]`, response);
1461
+ Log.log(
1462
+ formatLogMethodLabel(`[${Date.now()}][CALL_API_RESPONSE]`, logBlockLabel),
1463
+ getSafeLogPayload(response, logBlockLabel)
1464
+ );
1394
1465
  if (success) {
1395
1466
  return response;
1396
1467
  }
@@ -1420,25 +1491,65 @@ export default class Core extends EventEmitter {
1420
1491
  return Promise.resolve(message);
1421
1492
  }
1422
1493
 
1423
- dispose() {
1494
+ dispose(): Promise<void> {
1495
+ if (!this.disposePromise) {
1496
+ this.disposePromise = this.disposeResources();
1497
+ }
1498
+ return this.disposePromise;
1499
+ }
1500
+
1501
+ private async disposeResources(): Promise<void> {
1502
+ Log.debug(`[Core] Disposing SDK instance: ${this.sdkInstanceId}`);
1503
+ pollingManager.stopAll();
1504
+ this.requestQueue.abortAllRequests();
1505
+ cleanup();
1506
+
1507
+ _connector?.stop();
1508
+ let transportCleanup: Promise<void>;
1509
+ try {
1510
+ transportCleanup = Promise.resolve(TransportManager.getTransport()?.stop?.()).catch(error => {
1511
+ Log.warn('[Core] Transport cleanup failed:', error);
1512
+ });
1513
+ } catch (error) {
1514
+ Log.warn('[Core] Transport cleanup failed:', error);
1515
+ transportCleanup = Promise.resolve();
1516
+ }
1517
+
1518
+ // Preserve synchronous dispose semantics for in-memory state and listeners.
1424
1519
  _deviceList = undefined;
1425
1520
  _connector = undefined;
1521
+ DevicePool.dispose();
1426
1522
  deviceCacheMap.clear();
1427
1523
  preWarmInflight.clear();
1428
1524
  preWarmDoneAt.clear();
1429
- Log.debug(`[Core] Disposing SDK instance: ${this.sdkInstanceId}`);
1525
+ preConnectCache = { passphraseState: undefined };
1526
+ this.prePendingCallPromise = undefined;
1527
+ this.removeAllListeners();
1430
1528
  cleanupSdkInstance(this.sdkInstanceId);
1529
+ if (_core === this) _core = undefined;
1530
+
1531
+ // Transports, especially Node USB, may release native handles asynchronously.
1532
+ await transportCleanup;
1431
1533
  }
1432
1534
  }
1433
1535
 
1434
1536
  export const initCore = () => {
1435
- _core = new Core();
1436
- return _core;
1537
+ const core = new Core();
1538
+ _core = core;
1539
+ return core;
1437
1540
  };
1438
1541
 
1439
1542
  export const initConnector = () => {
1440
1543
  _connector = new DeviceConnector();
1544
+ DevicePool.emitter.removeListener(DEVICE.CONNECT, onDeviceConnectHandler);
1545
+ DevicePool.emitter.removeListener(DEVICE.DISCONNECT, onDeviceDisconnectHandler);
1546
+ DevicePool.emitter.removeListener(
1547
+ TRANSPORT_EVENT.DEVICE_DISCONNECT,
1548
+ onTransportDeviceDisconnectHandler
1549
+ );
1550
+ DevicePool.emitter.on(DEVICE.CONNECT, onDeviceConnectHandler);
1441
1551
  DevicePool.emitter.on(DEVICE.DISCONNECT, onDeviceDisconnectHandler);
1552
+ DevicePool.emitter.on(TRANSPORT_EVENT.DEVICE_DISCONNECT, onTransportDeviceDisconnectHandler);
1442
1553
  return _connector;
1443
1554
  };
1444
1555