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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (810) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +390 -0
  2. package/__tests__/DeviceCommands.test.ts +563 -0
  3. package/__tests__/DeviceEventRegistration.test.ts +49 -0
  4. package/__tests__/chain-params-onekey-compatibility.test.ts +229 -0
  5. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +492 -0
  6. package/__tests__/check-firmware-release-protocol-v2.test.ts +164 -0
  7. package/__tests__/connectSettings.test.ts +45 -5
  8. package/__tests__/core-dispose.test.ts +34 -0
  9. package/__tests__/core-error-output.test.ts +39 -0
  10. package/__tests__/core-initialization.test.ts +23 -0
  11. package/__tests__/device-connector-protocol.test.ts +81 -0
  12. package/__tests__/device-features-state.test.ts +78 -0
  13. package/__tests__/device-identity.test.ts +52 -0
  14. package/__tests__/device-initialize-timeout.test.ts +56 -0
  15. package/__tests__/device-lifecycle-events.test.ts +351 -0
  16. package/__tests__/device-pool-state.test.ts +166 -0
  17. package/__tests__/device-settings.test.ts +437 -0
  18. package/__tests__/device-state-contract.test.ts +28 -0
  19. package/__tests__/device-state-events.test.ts +286 -0
  20. package/__tests__/device-state-mapper.test.ts +288 -0
  21. package/__tests__/device-state-projector.test.ts +114 -0
  22. package/__tests__/device-state-store.test.ts +109 -0
  23. package/__tests__/device-utils.test.ts +154 -0
  24. package/__tests__/device-wallet-session-store.test.ts +478 -0
  25. package/__tests__/deviceFeaturesUtils.test.ts +39 -0
  26. package/__tests__/devicePoolBootloaderPath.test.ts +64 -0
  27. package/__tests__/deviceSettings.test.ts +113 -0
  28. package/__tests__/deviceUploadNft.test.ts +316 -0
  29. package/__tests__/evmLedgerLegacySafety.test.ts +12 -6
  30. package/__tests__/evmSignTransaction.test.ts +69 -0
  31. package/__tests__/evmSignTypedData.test.ts +80 -0
  32. package/__tests__/filesystemValidation.test.ts +53 -0
  33. package/__tests__/firmware-update/check-all-firmware-release.test.ts +175 -0
  34. package/__tests__/firmware-update/device-update-bootloader.test.ts +87 -0
  35. package/__tests__/firmware-update/firmware-artifact-source.test.ts +119 -0
  36. package/__tests__/firmware-update/firmware-host-binding.test.ts +70 -0
  37. package/__tests__/firmware-update/firmware-preparation-error.test.ts +27 -0
  38. package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +200 -0
  39. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +13 -0
  40. package/__tests__/firmware-update/firmware-update-plan-bootloader-identity.test.ts +394 -0
  41. package/__tests__/firmware-update/firmware-update-plan.test.ts +593 -0
  42. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +231 -0
  43. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +457 -0
  44. package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +121 -0
  45. package/__tests__/firmware-update/firmware-upload-source.test.ts +70 -0
  46. package/__tests__/get-device-state.test.ts +578 -0
  47. package/__tests__/homescreen.test.ts +81 -0
  48. package/__tests__/kaspa-public-types.type-test.ts +16 -0
  49. package/__tests__/kaspa-use-tweak-pro2.test.ts +20 -0
  50. package/__tests__/kaspaSignTransaction.test.ts +578 -0
  51. package/__tests__/known-device-public-types.type-test.ts +3 -0
  52. package/__tests__/logBlockEvent.test.ts +128 -1
  53. package/__tests__/method-protocol-support.test.ts +144 -0
  54. package/__tests__/networkUtils.test.ts +406 -0
  55. package/__tests__/open-wallet-session-error-response.test.ts +43 -0
  56. package/__tests__/open-wallet-session.test.ts +1899 -0
  57. package/__tests__/pro2Nft.test.ts +108 -0
  58. package/__tests__/pro2Wallpaper.test.ts +39 -0
  59. package/__tests__/protocol-binding.test.ts +89 -0
  60. package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
  61. package/__tests__/protocol-v2-firmware-targets.test.ts +85 -0
  62. package/__tests__/protocol-v2-ping.test.ts +28 -0
  63. package/__tests__/protocol-v2-resources.test.ts +250 -0
  64. package/__tests__/protocol-v2-ui-lifecycle.test.ts +91 -0
  65. package/__tests__/protocol-v2-unlock-policy.test.ts +308 -0
  66. package/__tests__/protocol-v2.test.ts +7034 -2497
  67. package/__tests__/protocolV2FileWrite.test.ts +285 -0
  68. package/__tests__/protocolV2UiInteraction.test.ts +329 -0
  69. package/__tests__/public-device-state-api.test.ts +275 -0
  70. package/__tests__/public-pro2-api-boundary.test.ts +107 -0
  71. package/__tests__/refresh-device-state.test.ts +101 -0
  72. package/__tests__/request-context-logging.test.ts +16 -0
  73. package/__tests__/search-devices.test.ts +145 -0
  74. package/__tests__/tron-sign-message-init.test.ts +74 -0
  75. package/__tests__/uiProgressThrottle.test.ts +74 -0
  76. package/__tests__/uiPromiseRegistry.test.ts +115 -0
  77. package/dist/api/BaseMethod.d.ts +16 -1
  78. package/dist/api/BaseMethod.d.ts.map +1 -1
  79. package/dist/api/CheckAllFirmwareRelease.d.ts +25 -1
  80. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  81. package/dist/api/CheckBLEFirmwareRelease.d.ts +2 -1
  82. package/dist/api/CheckBLEFirmwareRelease.d.ts.map +1 -1
  83. package/dist/api/CheckBootloaderRelease.d.ts +3 -2
  84. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  85. package/dist/api/CheckFirmwareRelease.d.ts +2 -1
  86. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  87. package/dist/api/CipherKeyValue.d.ts +1 -0
  88. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  89. package/dist/api/ClearSessionCache.d.ts +9 -0
  90. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  91. package/dist/api/DetectDeviceConnectProtocol.d.ts +7 -0
  92. package/dist/api/DetectDeviceConnectProtocol.d.ts.map +1 -0
  93. package/dist/api/DirList.d.ts +1 -0
  94. package/dist/api/DirList.d.ts.map +1 -1
  95. package/dist/api/DirMake.d.ts +1 -0
  96. package/dist/api/DirMake.d.ts.map +1 -1
  97. package/dist/api/DirRemove.d.ts +1 -0
  98. package/dist/api/DirRemove.d.ts.map +1 -1
  99. package/dist/api/FileDelete.d.ts +1 -0
  100. package/dist/api/FileDelete.d.ts.map +1 -1
  101. package/dist/api/FileRead.d.ts +1 -0
  102. package/dist/api/FileRead.d.ts.map +1 -1
  103. package/dist/api/FileWrite.d.ts +2 -0
  104. package/dist/api/FileWrite.d.ts.map +1 -1
  105. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  106. package/dist/api/FirmwareUpdateV2.d.ts +12 -2
  107. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  108. package/dist/api/FirmwareUpdateV3.d.ts +7 -3
  109. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  110. package/dist/api/FirmwareUpdateV4.d.ts +47 -18
  111. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  112. package/dist/api/GetDeviceState.d.ts +8 -0
  113. package/dist/api/GetDeviceState.d.ts.map +1 -0
  114. package/dist/api/GetFeatures.d.ts +1 -1
  115. package/dist/api/GetFeatures.d.ts.map +1 -1
  116. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  117. package/dist/api/GetPassphraseState.d.ts +2 -6
  118. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  119. package/dist/api/OpenWalletSession.d.ts +8 -0
  120. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  121. package/dist/api/PathInfo.d.ts +1 -0
  122. package/dist/api/PathInfo.d.ts.map +1 -1
  123. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  124. package/dist/api/SearchDevices.d.ts +3 -0
  125. package/dist/api/SearchDevices.d.ts.map +1 -1
  126. package/dist/api/UploadPortfolio.d.ts +17 -0
  127. package/dist/api/UploadPortfolio.d.ts.map +1 -0
  128. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  129. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  130. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  131. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  132. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  133. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  134. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  135. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  136. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  137. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  138. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  139. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  140. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  141. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  142. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  143. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  144. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  145. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  146. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  147. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  148. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  149. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  150. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  151. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  152. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  153. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  154. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  155. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  156. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  157. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  158. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  159. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  160. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  161. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  162. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  163. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  164. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  165. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  166. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  167. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  168. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  169. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  170. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  171. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  172. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  173. package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
  174. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  175. package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
  176. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  177. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
  178. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  179. package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
  180. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  181. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  182. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  183. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  184. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  185. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  186. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  187. package/dist/api/device/DeviceCancel.d.ts +1 -0
  188. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  189. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  190. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  191. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  192. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  193. package/dist/api/device/DeviceLock.d.ts +1 -0
  194. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  195. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  196. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  197. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  198. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  199. package/dist/api/device/DeviceSettings.d.ts +1 -0
  200. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  201. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  202. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  203. package/dist/api/device/DeviceUnlock.d.ts +3 -2
  204. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  205. package/dist/api/device/DeviceUpdateBootloader.d.ts +5 -1
  206. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  207. package/dist/api/device/DeviceWipe.d.ts +1 -0
  208. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  209. package/dist/api/device/PreInitialize.d.ts +1 -0
  210. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  211. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  212. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  213. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  214. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  215. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  216. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  217. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  218. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  219. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  220. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  221. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  222. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  223. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  224. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  225. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  226. package/dist/api/evm/protocol.d.ts +3 -0
  227. package/dist/api/evm/protocol.d.ts.map +1 -0
  228. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  229. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  230. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  231. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  232. package/dist/api/firmware/FirmwareArtifactSource.d.ts +25 -0
  233. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +1 -0
  234. package/dist/api/firmware/FirmwareHostBinding.d.ts +6 -0
  235. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -0
  236. package/dist/api/firmware/FirmwarePreparationError.d.ts +3 -0
  237. package/dist/api/firmware/FirmwarePreparationError.d.ts.map +1 -0
  238. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +12 -3
  239. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  240. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +3 -0
  241. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +1 -0
  242. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +25 -0
  243. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -0
  244. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +32 -0
  245. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -0
  246. package/dist/api/firmware/getBinary.d.ts +15 -4
  247. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  248. package/dist/api/firmware/protocolV2Release.d.ts +33 -0
  249. package/dist/api/firmware/protocolV2Release.d.ts.map +1 -0
  250. package/dist/api/firmware/updateBootloader.d.ts +2 -0
  251. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  252. package/dist/api/firmware/uploadFirmware.d.ts +9 -1
  253. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  254. package/dist/api/helpers/filesystemValidation.d.ts +3 -0
  255. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
  256. package/dist/api/helpers/paramsValidator.d.ts +1 -0
  257. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  258. package/dist/api/helpers/protocolV2FileWrite.d.ts +43 -0
  259. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
  260. package/dist/api/index.d.ts +9 -25
  261. package/dist/api/index.d.ts.map +1 -1
  262. package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
  263. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  264. package/dist/api/kaspa/KaspaSignTransaction.d.ts +9 -1
  265. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  266. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  267. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  268. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  269. package/dist/api/near/NearGetAddress.d.ts +1 -0
  270. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  271. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  272. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  273. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  274. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  275. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  276. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  277. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  278. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  279. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  280. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  281. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  282. package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
  283. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  284. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  285. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  286. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  287. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  288. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  289. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  290. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  291. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  292. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  293. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  294. package/dist/api/polkadot/PolkadotGetAddress.d.ts +2 -1
  295. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  296. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  297. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  298. package/dist/api/polkadot/networks.d.ts +1 -1
  299. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  300. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  301. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  302. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  303. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -0
  304. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  305. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +1 -0
  306. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  307. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +7 -0
  308. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
  309. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +1 -1
  310. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  311. package/dist/api/protocol-v2/DeviceReboot.d.ts +1 -0
  312. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  313. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +7 -0
  314. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  315. package/dist/api/protocol-v2/DeviceUploadNft.d.ts +31 -0
  316. package/dist/api/protocol-v2/DeviceUploadNft.d.ts.map +1 -0
  317. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +27 -0
  318. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
  319. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  320. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  321. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  322. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  323. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  324. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  325. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  326. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  327. package/dist/api/protocol-v2/helpers.d.ts +1 -1
  328. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  329. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  330. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  331. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  332. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  333. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  334. package/dist/api/solana/SolSignMessage.d.ts +2 -1
  335. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  336. package/dist/api/solana/SolSignOffchainMessage.d.ts +2 -1
  337. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  338. package/dist/api/solana/SolSignTransaction.d.ts +3 -2
  339. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  340. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  341. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  342. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  343. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  344. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  345. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  346. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  347. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  348. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  349. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  350. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  351. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  352. package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
  353. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  354. package/dist/api/sui/SuiGetAddress.d.ts +2 -1
  355. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  356. package/dist/api/sui/SuiGetPublicKey.d.ts +2 -1
  357. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  358. package/dist/api/sui/SuiSignMessage.d.ts +2 -1
  359. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  360. package/dist/api/sui/SuiSignTransaction.d.ts +2 -1
  361. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  362. package/dist/api/ton/TonGetAddress.d.ts +2 -1
  363. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  364. package/dist/api/ton/TonSignData.d.ts +1 -0
  365. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  366. package/dist/api/ton/TonSignMessage.d.ts +2 -1
  367. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  368. package/dist/api/ton/TonSignProof.d.ts +2 -1
  369. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  370. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  371. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  372. package/dist/api/tron/TronSignMessage.d.ts +6 -1
  373. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  374. package/dist/api/tron/TronSignTransaction.d.ts +2 -1
  375. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  376. package/dist/api/utils.d.ts +4 -1
  377. package/dist/api/utils.d.ts.map +1 -1
  378. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  379. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  380. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  381. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  382. package/dist/constants/index.d.ts +1 -1
  383. package/dist/constants/index.d.ts.map +1 -1
  384. package/dist/core/RequestQueue.d.ts.map +1 -1
  385. package/dist/core/deviceEventRegistration.d.ts +13 -0
  386. package/dist/core/deviceEventRegistration.d.ts.map +1 -0
  387. package/dist/core/index.d.ts +3 -1
  388. package/dist/core/index.d.ts.map +1 -1
  389. package/dist/core/uiPromiseRegistry.d.ts +6 -0
  390. package/dist/core/uiPromiseRegistry.d.ts.map +1 -0
  391. package/dist/data-manager/DataManager.d.ts +9 -3
  392. package/dist/data-manager/DataManager.d.ts.map +1 -1
  393. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  394. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  395. package/dist/device/Device.d.ts +72 -17
  396. package/dist/device/Device.d.ts.map +1 -1
  397. package/dist/device/DeviceCommands.d.ts +8 -6
  398. package/dist/device/DeviceCommands.d.ts.map +1 -1
  399. package/dist/device/DeviceConnector.d.ts +4 -3
  400. package/dist/device/DeviceConnector.d.ts.map +1 -1
  401. package/dist/device/DeviceFeaturesState.d.ts +3 -0
  402. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  403. package/dist/device/DevicePool.d.ts +6 -2
  404. package/dist/device/DevicePool.d.ts.map +1 -1
  405. package/dist/device/DeviceStateMapper.d.ts +13 -0
  406. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  407. package/dist/device/DeviceStateProjector.d.ts +7 -0
  408. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  409. package/dist/device/DeviceStateStore.d.ts +21 -0
  410. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  411. package/dist/device/DeviceWalletSessionStore.d.ts +27 -0
  412. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  413. package/dist/device/cloneDeviceState.d.ts +2 -0
  414. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  415. package/dist/device/deviceIdentity.d.ts +5 -0
  416. package/dist/device/deviceIdentity.d.ts.map +1 -0
  417. package/dist/deviceProfile/buildDeviceFeatures.d.ts +9 -3
  418. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  419. package/dist/deviceProfile/index.d.ts +0 -1
  420. package/dist/deviceProfile/index.d.ts.map +1 -1
  421. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
  422. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
  423. package/dist/events/device.d.ts +16 -2
  424. package/dist/events/device.d.ts.map +1 -1
  425. package/dist/events/logBlockEvent.d.ts +2 -0
  426. package/dist/events/logBlockEvent.d.ts.map +1 -1
  427. package/dist/events/ui-promise.d.ts +4 -2
  428. package/dist/events/ui-promise.d.ts.map +1 -1
  429. package/dist/events/ui-request.d.ts +50 -4
  430. package/dist/events/ui-request.d.ts.map +1 -1
  431. package/dist/events/ui-response.d.ts +10 -2
  432. package/dist/events/ui-response.d.ts.map +1 -1
  433. package/dist/index.d.ts +1818 -770
  434. package/dist/index.d.ts.map +1 -1
  435. package/dist/index.js +11157 -4209
  436. package/dist/inject.d.ts +6 -1
  437. package/dist/inject.d.ts.map +1 -1
  438. package/dist/lowLevelInject.d.ts.map +1 -1
  439. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  440. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  441. package/dist/protocols/protocol-v2/features.d.ts +21 -17
  442. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  443. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
  444. package/dist/protocols/protocol-v2/index.d.ts +3 -2
  445. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  446. package/dist/protocols/protocol-v2/resources.d.ts +29 -0
  447. package/dist/protocols/protocol-v2/resources.d.ts.map +1 -0
  448. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
  449. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  450. package/dist/protocols/protocol-v2/uiInteraction.d.ts +42 -0
  451. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
  452. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +2 -0
  453. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
  454. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts +22 -0
  455. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts.map +1 -0
  456. package/dist/protocols/protocol-v2/walletSession.d.ts +27 -0
  457. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  458. package/dist/topLevelInject.d.ts.map +1 -1
  459. package/dist/types/api/checkAllFirmwareRelease.d.ts +48 -9
  460. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  461. package/dist/types/api/checkBLEFirmwareRelease.d.ts +2 -13
  462. package/dist/types/api/checkBLEFirmwareRelease.d.ts.map +1 -1
  463. package/dist/types/api/checkBootloaderRelease.d.ts +2 -6
  464. package/dist/types/api/checkBootloaderRelease.d.ts.map +1 -1
  465. package/dist/types/api/checkFirmwareRelease.d.ts +2 -13
  466. package/dist/types/api/checkFirmwareRelease.d.ts.map +1 -1
  467. package/dist/types/api/checkFirmwareTypeAvailable.d.ts +2 -2
  468. package/dist/types/api/checkFirmwareTypeAvailable.d.ts.map +1 -1
  469. package/dist/types/api/detectDeviceConnectProtocol.d.ts +4 -0
  470. package/dist/types/api/detectDeviceConnectProtocol.d.ts.map +1 -0
  471. package/dist/types/api/deviceSettings.d.ts +11 -2
  472. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  473. package/dist/types/api/deviceUnlock.d.ts +6 -2
  474. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  475. package/dist/types/api/deviceUpdateBootloader.d.ts +6 -0
  476. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  477. package/dist/types/api/export.d.ts +9 -3
  478. package/dist/types/api/export.d.ts.map +1 -1
  479. package/dist/types/api/firmwareUpdate.d.ts +76 -1
  480. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  481. package/dist/types/api/firmwareUpdateCapabilities.d.ts +9 -0
  482. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +1 -0
  483. package/dist/types/api/firmwareUpdatePlan.d.ts +28 -0
  484. package/dist/types/api/firmwareUpdatePlan.d.ts.map +1 -0
  485. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +42 -0
  486. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +1 -0
  487. package/dist/types/api/getDeviceState.d.ts +12 -0
  488. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  489. package/dist/types/api/getFeatures.d.ts.map +1 -1
  490. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  491. package/dist/types/api/getPassphraseState.d.ts +2 -10
  492. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  493. package/dist/types/api/index.d.ts +34 -31
  494. package/dist/types/api/index.d.ts.map +1 -1
  495. package/dist/types/api/kaspaSignTransaction.d.ts +42 -4
  496. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  497. package/dist/types/api/openWalletSession.d.ts +35 -0
  498. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  499. package/dist/types/api/protocolV2.d.ts +18 -84
  500. package/dist/types/api/protocolV2.d.ts.map +1 -1
  501. package/dist/types/api/protocolV2ResourceManifest.d.ts +17 -0
  502. package/dist/types/api/protocolV2ResourceManifest.d.ts.map +1 -0
  503. package/dist/types/api/sessionCache.d.ts +13 -0
  504. package/dist/types/api/sessionCache.d.ts.map +1 -0
  505. package/dist/types/device.d.ts +142 -10
  506. package/dist/types/device.d.ts.map +1 -1
  507. package/dist/types/params.d.ts +1 -0
  508. package/dist/types/params.d.ts.map +1 -1
  509. package/dist/types/settings.d.ts +69 -22
  510. package/dist/types/settings.d.ts.map +1 -1
  511. package/dist/utils/assets.d.ts +2 -1
  512. package/dist/utils/assets.d.ts.map +1 -1
  513. package/dist/utils/deviceFeaturesCompat.d.ts +14 -0
  514. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  515. package/dist/utils/deviceFeaturesUtils.d.ts +10 -3
  516. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  517. package/dist/utils/deviceInfoUtils.d.ts +9 -9
  518. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  519. package/dist/utils/deviceSettings.d.ts +38 -7
  520. package/dist/utils/deviceSettings.d.ts.map +1 -1
  521. package/dist/utils/deviceVersionUtils.d.ts +7 -5
  522. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  523. package/dist/utils/homescreen.d.ts +4 -0
  524. package/dist/utils/homescreen.d.ts.map +1 -1
  525. package/dist/utils/index.d.ts +6 -3
  526. package/dist/utils/index.d.ts.map +1 -1
  527. package/dist/utils/networkUtils.d.ts +10 -1
  528. package/dist/utils/networkUtils.d.ts.map +1 -1
  529. package/dist/utils/patch.d.ts +1 -1
  530. package/dist/utils/patch.d.ts.map +1 -1
  531. package/dist/utils/pro2Nft.d.ts +31 -0
  532. package/dist/utils/pro2Nft.d.ts.map +1 -0
  533. package/dist/utils/pro2Wallpaper.d.ts +22 -0
  534. package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
  535. package/dist/utils/tracing.d.ts.map +1 -1
  536. package/dist/utils/uiProgressThrottle.d.ts +3 -0
  537. package/dist/utils/uiProgressThrottle.d.ts.map +1 -0
  538. package/package.json +4 -4
  539. package/src/api/BaseMethod.ts +53 -20
  540. package/src/api/CheckAllFirmwareRelease.ts +380 -4
  541. package/src/api/CheckBLEFirmwareRelease.ts +41 -3
  542. package/src/api/CheckBootloaderRelease.ts +41 -3
  543. package/src/api/CheckFirmwareRelease.ts +38 -5
  544. package/src/api/CipherKeyValue.ts +4 -0
  545. package/src/api/ClearSessionCache.ts +32 -0
  546. package/src/api/DetectDeviceConnectProtocol.ts +18 -0
  547. package/src/api/DirList.ts +9 -4
  548. package/src/api/DirMake.ts +7 -4
  549. package/src/api/DirRemove.ts +7 -4
  550. package/src/api/FileDelete.ts +7 -4
  551. package/src/api/FileRead.ts +15 -9
  552. package/src/api/FileWrite.ts +26 -181
  553. package/src/api/FirmwareUpdate.ts +30 -15
  554. package/src/api/FirmwareUpdateV2.ts +385 -115
  555. package/src/api/FirmwareUpdateV3.ts +274 -71
  556. package/src/api/FirmwareUpdateV4.ts +1465 -660
  557. package/src/api/GetDeviceState.ts +59 -0
  558. package/src/api/GetFeatures.ts +6 -4
  559. package/src/api/GetOnekeyFeatures.ts +1 -75
  560. package/src/api/GetPassphraseState.ts +36 -21
  561. package/src/api/OpenWalletSession.ts +268 -0
  562. package/src/api/PathInfo.ts +9 -4
  563. package/src/api/PromptWebDeviceAccess.ts +2 -7
  564. package/src/api/SearchDevices.ts +31 -4
  565. package/src/api/UploadPortfolio.ts +58 -0
  566. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  567. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  568. package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
  569. package/src/api/algo/AlgoGetAddress.ts +4 -0
  570. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  571. package/src/api/allnetwork/AllNetworkGetAddress.ts +21 -21
  572. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +45 -32
  573. package/src/api/aptos/AptosGetAddress.ts +4 -0
  574. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  575. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  576. package/src/api/aptos/AptosSignMessage.ts +4 -0
  577. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  578. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  579. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  580. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  581. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  582. package/src/api/btc/BTCGetAddress.ts +8 -1
  583. package/src/api/btc/BTCGetPublicKey.ts +9 -2
  584. package/src/api/btc/BTCSignMessage.ts +8 -1
  585. package/src/api/btc/BTCSignPsbt.ts +4 -0
  586. package/src/api/btc/BTCSignTransaction.ts +8 -1
  587. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  588. package/src/api/btc/helpers/versionLimit.ts +7 -4
  589. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  590. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  591. package/src/api/cardano/CardanoSignMessage.ts +5 -1
  592. package/src/api/cardano/CardanoSignTransaction.ts +5 -1
  593. package/src/api/conflux/ConfluxGetAddress.ts +6 -0
  594. package/src/api/conflux/ConfluxSignMessage.ts +6 -0
  595. package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
  596. package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
  597. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  598. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  599. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  600. package/src/api/device/DeviceCancel.ts +5 -0
  601. package/src/api/device/DeviceChangePin.ts +28 -0
  602. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  603. package/src/api/device/DeviceLock.ts +5 -0
  604. package/src/api/device/DeviceRebootToBoardloader.ts +5 -0
  605. package/src/api/device/DeviceRebootToBootloader.ts +5 -0
  606. package/src/api/device/DeviceSettings.ts +195 -1
  607. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  608. package/src/api/device/DeviceUnlock.ts +21 -3
  609. package/src/api/device/DeviceUpdateBootloader.ts +126 -8
  610. package/src/api/device/DeviceWipe.ts +25 -0
  611. package/src/api/device/PreInitialize.ts +4 -0
  612. package/src/api/dynex/DnxGetAddress.ts +0 -6
  613. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  614. package/src/api/evm/EVMGetAddress.ts +6 -2
  615. package/src/api/evm/EVMGetPublicKey.ts +6 -2
  616. package/src/api/evm/EVMSignMessage.ts +6 -2
  617. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  618. package/src/api/evm/EVMSignTransaction.ts +6 -2
  619. package/src/api/evm/EVMSignTypedData.ts +42 -50
  620. package/src/api/evm/EVMVerifyMessage.ts +6 -2
  621. package/src/api/evm/legacyV1/getAddress.ts +2 -2
  622. package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
  623. package/src/api/evm/legacyV1/signMessage.ts +2 -2
  624. package/src/api/evm/legacyV1/signTypedData.ts +2 -2
  625. package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
  626. package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
  627. package/src/api/evm/protocol.ts +6 -0
  628. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  629. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  630. package/src/api/firmware/FirmwareArtifactSource.ts +278 -0
  631. package/src/api/firmware/FirmwareHostBinding.ts +100 -0
  632. package/src/api/firmware/FirmwarePreparationError.ts +12 -0
  633. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +102 -16
  634. package/src/api/firmware/FirmwareUpdateCapabilities.ts +9 -0
  635. package/src/api/firmware/FirmwareUpdatePlan.ts +772 -0
  636. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +449 -0
  637. package/src/api/firmware/getBinary.ts +8 -3
  638. package/src/api/firmware/protocolV2Release.ts +166 -0
  639. package/src/api/firmware/updateBootloader.ts +19 -4
  640. package/src/api/firmware/uploadFirmware.ts +157 -26
  641. package/src/api/helpers/batchGetPublickeys.ts +2 -2
  642. package/src/api/helpers/filesystemValidation.ts +61 -0
  643. package/src/api/helpers/paramsValidator.ts +1 -1
  644. package/src/api/helpers/protocolV2FileWrite.ts +392 -0
  645. package/src/api/index.ts +10 -26
  646. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  647. package/src/api/kaspa/KaspaSignTransaction.ts +369 -29
  648. package/src/api/kaspa/helpers/TransferSerialize.ts +17 -7
  649. package/src/api/lightning/LnurlAuth.ts +0 -4
  650. package/src/api/near/NearGetAddress.ts +4 -0
  651. package/src/api/near/NearSignTransaction.ts +4 -0
  652. package/src/api/nem/NEMGetAddress.ts +4 -0
  653. package/src/api/nem/NEMSignTransaction.ts +4 -0
  654. package/src/api/neo/NeoGetAddress.ts +0 -4
  655. package/src/api/neo/NeoSignTransaction.ts +0 -4
  656. package/src/api/nervos/NervosGetAddress.ts +0 -4
  657. package/src/api/nervos/NervosSignTransaction.ts +2 -6
  658. package/src/api/nexa/NexaGetAddress.ts +0 -4
  659. package/src/api/nexa/NexaSignTransaction.ts +3 -5
  660. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  661. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  662. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  663. package/src/api/nostr/NostrSignEvent.ts +4 -0
  664. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  665. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  666. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  667. package/src/api/polkadot/networks.ts +3 -3
  668. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
  669. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +5 -2
  670. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +8 -5
  671. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +10 -6
  672. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +21 -0
  673. package/src/api/protocol-v2/DeviceInfoGet.ts +8 -15
  674. package/src/api/protocol-v2/DeviceReboot.ts +7 -3
  675. package/src/api/protocol-v2/DeviceStatusGet.ts +19 -0
  676. package/src/api/protocol-v2/DeviceUploadNft.ts +197 -0
  677. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +134 -0
  678. package/src/api/protocol-v2/FilesystemFormat.ts +9 -3
  679. package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
  680. package/src/api/protocol-v2/Ping.ts +37 -3
  681. package/src/api/protocol-v2/ProtocolInfoRequest.ts +8 -3
  682. package/src/api/protocol-v2/helpers.ts +17 -17
  683. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  684. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  685. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  686. package/src/api/solana/SolGetAddress.ts +4 -0
  687. package/src/api/solana/SolSignMessage.ts +5 -1
  688. package/src/api/solana/SolSignOffchainMessage.ts +5 -1
  689. package/src/api/solana/SolSignTransaction.ts +6 -2
  690. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  691. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  692. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  693. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  694. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  695. package/src/api/stellar/StellarGetAddress.ts +1 -10
  696. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  697. package/src/api/sui/SuiGetAddress.ts +5 -1
  698. package/src/api/sui/SuiGetPublicKey.ts +5 -1
  699. package/src/api/sui/SuiSignMessage.ts +5 -1
  700. package/src/api/sui/SuiSignTransaction.ts +5 -1
  701. package/src/api/ton/TonGetAddress.ts +5 -1
  702. package/src/api/ton/TonSignData.ts +5 -1
  703. package/src/api/ton/TonSignMessage.ts +5 -1
  704. package/src/api/ton/TonSignProof.ts +5 -1
  705. package/src/api/tron/TronGetAddress.ts +4 -0
  706. package/src/api/tron/TronSignMessage.ts +19 -8
  707. package/src/api/tron/TronSignTransaction.ts +5 -1
  708. package/src/api/utils.ts +32 -3
  709. package/src/api/xrp/XrpGetAddress.ts +4 -0
  710. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  711. package/src/constants/index.ts +1 -4
  712. package/src/core/RequestQueue.ts +1 -0
  713. package/src/core/deviceEventRegistration.ts +27 -0
  714. package/src/core/index.ts +381 -152
  715. package/src/core/uiPromiseRegistry.ts +63 -0
  716. package/src/data/messages/messages-protocol-v2.json +1138 -441
  717. package/src/data/messages/messages.json +286 -1
  718. package/src/data-manager/DataManager.ts +132 -41
  719. package/src/data-manager/TransportManager.ts +7 -1
  720. package/src/data-manager/connectSettings.ts +11 -0
  721. package/src/device/Device.ts +898 -296
  722. package/src/device/DeviceCommands.ts +193 -158
  723. package/src/device/DeviceConnector.ts +44 -21
  724. package/src/device/DeviceFeaturesState.ts +25 -0
  725. package/src/device/DevicePool.ts +101 -23
  726. package/src/device/DeviceStateMapper.ts +416 -0
  727. package/src/device/DeviceStateProjector.ts +152 -0
  728. package/src/device/DeviceStateStore.ts +232 -0
  729. package/src/device/DeviceWalletSessionStore.ts +144 -0
  730. package/src/device/cloneDeviceState.ts +39 -0
  731. package/src/device/deviceIdentity.ts +18 -0
  732. package/src/deviceProfile/buildDeviceFeatures.ts +223 -189
  733. package/src/deviceProfile/index.ts +0 -1
  734. package/src/deviceProfile/protocolV2DeviceIdentity.ts +35 -0
  735. package/src/events/device.ts +22 -1
  736. package/src/events/logBlockEvent.ts +80 -2
  737. package/src/events/ui-promise.ts +4 -2
  738. package/src/events/ui-request.ts +61 -4
  739. package/src/events/ui-response.ts +12 -2
  740. package/src/index.ts +12 -0
  741. package/src/inject.ts +97 -45
  742. package/src/lowLevelInject.ts +11 -4
  743. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  744. package/src/protocols/protocol-v2/features.ts +100 -33
  745. package/src/protocols/protocol-v2/firmware.ts +3 -1
  746. package/src/protocols/protocol-v2/index.ts +8 -1
  747. package/src/protocols/protocol-v2/resources.ts +257 -0
  748. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  749. package/src/protocols/protocol-v2/uiInteraction.ts +250 -0
  750. package/src/protocols/protocol-v2/unlockPolicy.ts +1 -0
  751. package/src/protocols/protocol-v2/unlockPolicyRunner.ts +131 -0
  752. package/src/protocols/protocol-v2/walletSession.ts +463 -0
  753. package/src/topLevelInject.ts +11 -4
  754. package/src/types/api/checkAllFirmwareRelease.ts +72 -9
  755. package/src/types/api/checkBLEFirmwareRelease.ts +4 -13
  756. package/src/types/api/checkBootloaderRelease.ts +2 -6
  757. package/src/types/api/checkFirmwareRelease.ts +2 -13
  758. package/src/types/api/checkFirmwareTypeAvailable.ts +2 -2
  759. package/src/types/api/detectDeviceConnectProtocol.ts +6 -0
  760. package/src/types/api/deviceSettings.ts +26 -2
  761. package/src/types/api/deviceUnlock.ts +13 -2
  762. package/src/types/api/deviceUpdateBootloader.ts +6 -0
  763. package/src/types/api/export.ts +37 -1
  764. package/src/types/api/firmwareUpdate.ts +101 -5
  765. package/src/types/api/firmwareUpdateCapabilities.ts +9 -0
  766. package/src/types/api/firmwareUpdatePlan.ts +38 -0
  767. package/src/types/api/firmwareUpdatePreparedPlan.ts +53 -0
  768. package/src/types/api/getDeviceState.ts +19 -0
  769. package/src/types/api/getFeatures.ts +3 -0
  770. package/src/types/api/getOnekeyFeatures.ts +3 -0
  771. package/src/types/api/getPassphraseState.ts +9 -11
  772. package/src/types/api/index.ts +54 -64
  773. package/src/types/api/kaspaSignTransaction.ts +60 -4
  774. package/src/types/api/openWalletSession.ts +54 -0
  775. package/src/types/api/protocolV2.ts +33 -141
  776. package/src/types/api/protocolV2ResourceManifest.ts +19 -0
  777. package/src/types/api/sessionCache.ts +19 -0
  778. package/src/types/device.ts +216 -10
  779. package/src/types/params.ts +9 -2
  780. package/src/types/settings.ts +86 -24
  781. package/src/utils/assets.ts +4 -1
  782. package/src/utils/deviceFeaturesCompat.ts +191 -0
  783. package/src/utils/deviceFeaturesUtils.ts +65 -47
  784. package/src/utils/deviceInfoUtils.ts +29 -69
  785. package/src/utils/deviceSettings.ts +174 -39
  786. package/src/utils/deviceVersionUtils.ts +25 -44
  787. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  788. package/src/utils/homescreen.ts +40 -0
  789. package/src/utils/index.ts +27 -3
  790. package/src/utils/networkUtils.ts +274 -16
  791. package/src/utils/pro2Nft.ts +142 -0
  792. package/src/utils/pro2Wallpaper.ts +130 -0
  793. package/src/utils/tracing.ts +3 -1
  794. package/src/utils/uiProgressThrottle.ts +63 -0
  795. package/tsconfig.type-tests.json +12 -0
  796. package/dist/api/GetDeviceInfo.d.ts +0 -9
  797. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  798. package/dist/api/firmware/progressThrottle.d.ts +0 -3
  799. package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
  800. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +0 -13
  801. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +0 -1
  802. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
  803. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  804. package/dist/types/api/getDeviceInfo.d.ts +0 -87
  805. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  806. package/src/api/GetDeviceInfo.ts +0 -145
  807. package/src/api/firmware/progressThrottle.ts +0 -44
  808. package/src/api/protocol-v2/FilesystemDiskControl.ts +0 -50
  809. package/src/deviceProfile/buildDeviceProfile.ts +0 -352
  810. package/src/types/api/getDeviceInfo.ts +0 -101
@@ -0,0 +1,58 @@
1
+ import { createDeviceNotSupportMethodError } from '@onekeyfe/hd-shared';
2
+
3
+ import { supportsProtocolV2Message } from '../protocols/protocol-v2/features';
4
+ import FileWrite from './FileWrite';
5
+
6
+ export type UploadPortfolioParams = {
7
+ packageBytes: ArrayBuffer | Uint8Array | Blob;
8
+ timeoutMs?: number | string;
9
+ };
10
+
11
+ const PORTFOLIO_PENDING_PATH = 'vol1:/portfolio/portfolio.okpkg.pending';
12
+ const PORTFOLIO_CHUNK_SIZE = 2048;
13
+ const FILESYSTEM_FILE_WRITE_MESSAGE_TYPE = 60805;
14
+ const PORTFOLIO_UPDATE_MESSAGE_TYPE = 61400;
15
+
16
+ export default class UploadPortfolio extends FileWrite {
17
+ init() {
18
+ const { packageBytes, timeoutMs } = this.payload as UploadPortfolioParams;
19
+ this.payload = {
20
+ ...this.payload,
21
+ path: PORTFOLIO_PENDING_PATH,
22
+ offset: 0,
23
+ data: packageBytes,
24
+ chunkSize: PORTFOLIO_CHUNK_SIZE,
25
+ overwrite: true,
26
+ append: false,
27
+ emitProgress: false,
28
+ timeoutMs,
29
+ };
30
+ super.init();
31
+ this.unlockPolicy = 'none';
32
+ // Portfolio is a background write/apply flow and never synthesizes UI events.
33
+ this.protocolV2UiMode = 'none';
34
+ }
35
+
36
+ async run() {
37
+ const protocolInfo = await this.device.ensureProtocolV2RuntimeContext();
38
+ const hasFileWrite = supportsProtocolV2Message(
39
+ protocolInfo,
40
+ FILESYSTEM_FILE_WRITE_MESSAGE_TYPE
41
+ );
42
+ const hasPortfolioUpdate = supportsProtocolV2Message(
43
+ protocolInfo,
44
+ PORTFOLIO_UPDATE_MESSAGE_TYPE
45
+ );
46
+ if (!hasFileWrite || !hasPortfolioUpdate) {
47
+ throw createDeviceNotSupportMethodError(this.name, this.device.getCurrentFirmwareType());
48
+ }
49
+
50
+ const stagedFile = await super.run();
51
+ this.throwIfAborted();
52
+ await this.device.commands.typedCall('PortfolioUpdate', 'Success', {});
53
+ return {
54
+ ...stagedFile,
55
+ portfolioUpdated: true,
56
+ };
57
+ }
58
+ }
@@ -45,10 +45,6 @@ export default class AlephiumGetAddress extends BaseMethod<HardwareAlephiumGetAd
45
45
 
46
46
  getVersionRange(): DeviceFirmwareRange {
47
47
  return {
48
- pro2: {
49
- min: '0.0.0',
50
- unsupported: true,
51
- },
52
48
  model_touch: {
53
49
  min: '4.10.0',
54
50
  },
@@ -33,10 +33,6 @@ export default class AlephiumSignMessage extends BaseMethod<HardwareAlephiumSign
33
33
 
34
34
  getVersionRange(): DeviceFirmwareRange {
35
35
  return {
36
- pro2: {
37
- min: '0.0.0',
38
- unsupported: true,
39
- },
40
36
  model_touch: {
41
37
  min: '4.10.0',
42
38
  },
@@ -42,10 +42,6 @@ export default class AlephiumSignTransaction extends BaseMethod<HardwareAlephium
42
42
 
43
43
  getVersionRange(): DeviceFirmwareRange {
44
44
  return {
45
- pro2: {
46
- min: '0.0.0',
47
- unsupported: true,
48
- },
49
45
  model_touch: {
50
46
  min: '4.10.0',
51
47
  },
@@ -63,8 +59,8 @@ export default class AlephiumSignTransaction extends BaseMethod<HardwareAlephium
63
59
  data: Buffer,
64
60
  scriptOpt?: Buffer,
65
61
  dataOffset = 0
66
- // 设备可能在最后一个 AlephiumTxRequest(无 data_length)里返回签名,
67
- // 该消息没有 address 字段,返回类型如实声明为联合类型
62
+ // The final AlephiumTxRequest may return a signature without data_length or address,
63
+ // so the result accurately uses a union type.
68
64
  ): Promise<AlephiumSignedTx | AlephiumTxRequest> => {
69
65
  const responseType = res.type;
70
66
  if (res.type === 'AlephiumSignedTx') {
@@ -6,6 +6,10 @@ import type { AlgorandGetAddress as HardwareAlgoGetAddress } from '@onekeyfe/hd-
6
6
  import type { AlgoAddress, AlgoGetAddressParams } from '../../types';
7
7
 
8
8
  export default class AlgoGetAddress extends BaseMethod<HardwareAlgoGetAddress[]> {
9
+ getSupportedProtocols() {
10
+ return ['V1', 'V2'] as const;
11
+ }
12
+
9
13
  hasBundle = false;
10
14
 
11
15
  init() {
@@ -7,6 +7,10 @@ import type { SolanaSignTransactionParams } from '../../types';
7
7
  import type { AlgorandSignTx as HardwareAlgorandSignTx } from '@onekeyfe/hd-transport';
8
8
 
9
9
  export default class AlgoSignTransaction extends BaseMethod<HardwareAlgorandSignTx> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  hasBundle = false;
11
15
 
12
16
  init() {
@@ -24,24 +24,28 @@ export default class AllNetworkGetAddress extends AllNetworkGetAddressBase {
24
24
  const resultMap: Record<string, AllNetworkAddress> = {};
25
25
  const { bundle } = this.payload as AllNetworkGetAddressParams;
26
26
 
27
- const methodGroups = bundle
28
- .map((param, index) =>
29
- this.generateMethodName({
30
- network: param.network,
31
- payload: param,
32
- originalIndex: index,
33
- })
34
- )
35
- .reduce((acc, cur) => {
36
- if (!acc[cur.methodName]) {
37
- acc[cur.methodName] = [];
38
- }
39
- acc[cur.methodName].push(cur);
40
- return acc;
41
- }, {} as Record<keyof CoreApi, MethodParams[]>);
27
+ const methodParams = bundle.map((param, index) =>
28
+ this.generateMethodName({
29
+ network: param.network,
30
+ payload: param,
31
+ originalIndex: index,
32
+ })
33
+ );
34
+ const groupedMethodParams = methodParams.reduce((groups, param) => {
35
+ const group = groups.get(param.methodName) ?? [];
36
+ group.push(param);
37
+ groups.set(param.methodName, group);
38
+ return groups;
39
+ }, new Map<keyof CoreApi, MethodParams[]>());
40
+ const requiresProtocolV2WalletHandoff =
41
+ this.device.isProtocolV2() &&
42
+ (this.payload.useEmptyPassphrase === true || !!this.payload.passphraseState);
43
+ const methodGroups: [keyof CoreApi, MethodParams[]][] = requiresProtocolV2WalletHandoff
44
+ ? methodParams.map(param => [param.methodName, [param]])
45
+ : Array.from(groupedMethodParams.entries());
42
46
 
43
47
  let i = 0;
44
- for (const [methodName, params] of Object.entries(methodGroups)) {
48
+ for (const [methodName, params] of methodGroups) {
45
49
  const methodParams = {
46
50
  bundle: params.map(param => ({
47
51
  ...param.params,
@@ -52,11 +56,7 @@ export default class AllNetworkGetAddress extends AllNetworkGetAddressBase {
52
56
  throw new Error(HardwareErrorCodeMessage[HardwareErrorCode.RepeatUnlocking]);
53
57
  }
54
58
  // call method
55
- const response = await this.callMethod(
56
- methodName as keyof CoreApi,
57
- methodParams,
58
- rootFingerprint
59
- );
59
+ const response = await this.callMethod(methodName, methodParams, rootFingerprint);
60
60
 
61
61
  if (this.abortController?.signal.aborted) {
62
62
  throw new Error(HardwareErrorCodeMessage[HardwareErrorCode.RepeatUnlocking]);
@@ -12,9 +12,9 @@ import { validateParams } from '../helpers/paramsValidator';
12
12
  import { PROTO } from '../../constants';
13
13
  import { findMethod } from '../utils';
14
14
  import { DEVICE, IFRAME, createUiMessage } from '../../events';
15
- import { isMethodVersionRangeUnsupported } from '../../utils';
16
15
  import { UI_REQUEST } from '../../constants/ui-request';
17
16
  import { onDeviceButtonHandler } from '../../core';
17
+ import { runMethodWithUnlockPolicy } from '../../protocols/protocol-v2/unlockPolicyRunner';
18
18
  import {
19
19
  completeRequestContext,
20
20
  createRequestContext,
@@ -260,6 +260,10 @@ export default abstract class AllNetworkGetAddressBase extends BaseMethod<
260
260
  chain_name?: string;
261
261
  }[]
262
262
  > {
263
+ getSupportedProtocols() {
264
+ return ['V1', 'V2'] as const;
265
+ }
266
+
263
267
  abortController: AbortController | null = null;
264
268
 
265
269
  init() {
@@ -352,6 +356,7 @@ export default abstract class AllNetworkGetAddressBase extends BaseMethod<
352
356
  };
353
357
 
354
358
  let result: AllNetworkAddress[];
359
+ let requestError: Error | undefined;
355
360
  try {
356
361
  method.init();
357
362
  method.setDevice?.(this.device);
@@ -371,16 +376,38 @@ export default abstract class AllNetworkGetAddressBase extends BaseMethod<
371
376
  this.device.on(DEVICE.PASSPHRASE, onSignalAbort);
372
377
 
373
378
  preCheckDeviceSupport(this.device, method);
374
- if (this.temporarySafetyCheckPrompted) {
375
- method.temporarySafetyCheckPrompted = true;
376
- } else {
377
- const appliedTemporarySafetyCheck = await method.checkSafetyLevelOnTestNet();
378
- if (appliedTemporarySafetyCheck) {
379
- this.temporarySafetyCheckPrompted = true;
380
- }
381
- }
382
-
383
- const response = await method.run();
379
+ const response = await runMethodWithUnlockPolicy<any[]>(method, this.device, {
380
+ context: this.protocolV2UnlockContext,
381
+ prepare: async () => {
382
+ if (this.temporarySafetyCheckPrompted) {
383
+ method.temporarySafetyCheckPrompted = true;
384
+ } else {
385
+ const appliedTemporarySafetyCheck = await method.checkSafetyLevelOnTestNet();
386
+ if (appliedTemporarySafetyCheck) {
387
+ this.temporarySafetyCheckPrompted = true;
388
+ }
389
+ }
390
+
391
+ // Protocol V2 hands a wallet session to exactly one blockchain request.
392
+ // The parent all-network call consumes its first handoff while fetching
393
+ // the root fingerprint, so each nested chain method must resume the
394
+ // requested standard or hidden wallet before sending its device command.
395
+ const useEmptyPassphrase = this.payload.useEmptyPassphrase === true;
396
+ const deriveCardano = method.name.startsWith('cardano');
397
+ const shouldResumeWalletSession = useEmptyPassphrase || !!this.payload.passphraseState;
398
+ if (this.device.isProtocolV2() && shouldResumeWalletSession) {
399
+ const passphraseStateSafety = await this.device.checkPassphraseStateSafety(
400
+ this.payload.passphraseState,
401
+ useEmptyPassphrase,
402
+ this.payload.skipPassphraseCheck,
403
+ deriveCardano
404
+ );
405
+ if (!passphraseStateSafety) {
406
+ throw ERRORS.TypedError(HardwareErrorCode.DeviceCheckPassphraseStateError);
407
+ }
408
+ }
409
+ },
410
+ });
384
411
 
385
412
  if (!Array.isArray(response) || response.length === 0) {
386
413
  throw new Error('No response');
@@ -394,10 +421,8 @@ export default abstract class AllNetworkGetAddressBase extends BaseMethod<
394
421
  rootFingerprint,
395
422
  },
396
423
  }));
397
- if (method.requestContext) {
398
- completeRequestContext(method.requestContext.responseID);
399
- }
400
424
  } catch (e: any) {
425
+ requestError = e instanceof Error ? e : new Error(String(e));
401
426
  const error = handleSkippableHardwareError(e, this.device, method);
402
427
 
403
428
  if (error) {
@@ -415,13 +440,10 @@ export default abstract class AllNetworkGetAddressBase extends BaseMethod<
415
440
  } else {
416
441
  throw e;
417
442
  }
443
+ } finally {
418
444
  if (method.requestContext) {
419
- completeRequestContext(
420
- method.requestContext.responseID,
421
- e instanceof Error ? e : new Error(String(e))
422
- );
445
+ completeRequestContext(method.requestContext.responseID, requestError);
423
446
  }
424
- } finally {
425
447
  this.device.off(DEVICE.BUTTON, buttonListener);
426
448
  this.device.off(DEVICE.PIN, onSignalAbort);
427
449
  this.device.off(DEVICE.PASSPHRASE, onSignalAbort);
@@ -440,7 +462,9 @@ export default abstract class AllNetworkGetAddressBase extends BaseMethod<
440
462
  show_display: false,
441
463
  });
442
464
 
443
- this.postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_PIN_WINDOW));
465
+ if (!this.device.isProtocolV2()) {
466
+ this.postMessage(createUiMessage(UI_REQUEST.CLOSE_UI_PIN_WINDOW));
467
+ }
444
468
 
445
469
  if (res.message.root_fingerprint == null) {
446
470
  throw ERRORS.TypedError(HardwareErrorCode.CallMethodInvalidParameter);
@@ -463,13 +487,10 @@ export default abstract class AllNetworkGetAddressBase extends BaseMethod<
463
487
  * @param method BaseMethod
464
488
  */
465
489
  function preCheckDeviceSupport(device: Device, method: BaseMethod) {
490
+ method.assertProtocolSupported(device.getProtocol(), device.getCurrentFirmwareType());
466
491
  const versionRange = device.getCurrentMethodVersionRange(type => method.getVersionRange()[type]);
467
492
  const currentVersion = device.getCurrentFirmwareVersionString() ?? '0.0.0';
468
493
 
469
- if (isMethodVersionRangeUnsupported(versionRange)) {
470
- throw ERRORS.createDeviceNotSupportMethodError(method.name, device.getCurrentFirmwareType());
471
- }
472
-
473
494
  if (
474
495
  versionRange &&
475
496
  semver.valid(versionRange.min) &&
@@ -509,14 +530,6 @@ function handleSkippableHardwareError(
509
530
  );
510
531
  const currentVersion = device.getCurrentFirmwareVersionString() ?? '0.0.0';
511
532
 
512
- if (isMethodVersionRangeUnsupported(versionRange)) {
513
- error = ERRORS.createDeviceNotSupportMethodError(
514
- method.name,
515
- device.getCurrentFirmwareType()
516
- );
517
- return error;
518
- }
519
-
520
533
  if (
521
534
  versionRange &&
522
535
  semver.valid(versionRange.min) &&
@@ -12,6 +12,10 @@ import type { AptosAddress, AptosGetAddressParams } from '../../types';
12
12
  import type { AptosGetAddress as HardwareAptosGetAddress } from '@onekeyfe/hd-transport';
13
13
 
14
14
  export default class AptosGetAddress extends BaseMethod<HardwareAptosGetAddress[]> {
15
+ getSupportedProtocols() {
16
+ return ['V1', 'V2'] as const;
17
+ }
18
+
15
19
  hasBundle = false;
16
20
 
17
21
  shouldConfirm = false;
@@ -7,6 +7,10 @@ import { batchGetPublickeys } from '../helpers/batchGetPublickeys';
7
7
  import type { AptosGetAddressParams, AptosPublicKey } from '../../types';
8
8
 
9
9
  export default class AptosGetPublicKey extends BaseMethod<any> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  hasBundle = false;
11
15
 
12
16
  init() {
@@ -7,6 +7,10 @@ import type { AptosSignSIWAMessage } from '@onekeyfe/hd-transport';
7
7
  import type { AptosSignInMessageParams, AptosSignInMessageSignature } from '../../types';
8
8
 
9
9
  export default class AptosSignInMessage extends BaseMethod<AptosSignSIWAMessage> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  init() {
11
15
  this.checkDeviceId = true;
12
16
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -7,6 +7,10 @@ import type { AptosSignMessage as HardwareAptosSignMessage } from '@onekeyfe/hd-
7
7
  import type { AptosMessageSignature, AptosSignMessageParams } from '../../types';
8
8
 
9
9
  export default class AptosSignMessage extends BaseMethod<HardwareAptosSignMessage> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  init() {
11
15
  this.checkDeviceId = true;
12
16
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -7,6 +7,10 @@ import { formatAnyHex } from '../helpers/hexUtils';
7
7
  import type { AptosSignTx as HardwareAptosSignTx } from '@onekeyfe/hd-transport';
8
8
 
9
9
  export default class AptosSignTransaction extends BaseMethod<HardwareAptosSignTx> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  init() {
11
15
  this.checkDeviceId = true;
12
16
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -1,3 +1,5 @@
1
+ import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
2
+
1
3
  import { BaseMethod } from '../BaseMethod';
2
4
  import { validateParams, validateResult } from '../helpers/paramsValidator';
3
5
  import { serializedPath, validatePath } from '../helpers/pathUtils';
@@ -8,6 +10,13 @@ import { batchGetPublickeys, supportBatchPublicKeyByDevice } from '../helpers/ba
8
10
  import type { BenfenAddress, BenfenGetAddressParams, DeviceFirmwareRange } from '../../types';
9
11
  import type { BenfenGetAddress as HardwareBenfenGetAddress } from '@onekeyfe/hd-transport';
10
12
 
13
+ const requireAddress = (address: string | undefined): string => {
14
+ if (address == null) {
15
+ throw ERRORS.TypedError(HardwareErrorCode.CallMethodError, "Field 'address' is null");
16
+ }
17
+ return address;
18
+ };
19
+
11
20
  export default class BenfenGetAddress extends BaseMethod<HardwareBenfenGetAddress[]> {
12
21
  hasBundle = false;
13
22
 
@@ -48,10 +57,6 @@ export default class BenfenGetAddress extends BaseMethod<HardwareBenfenGetAddres
48
57
 
49
58
  getVersionRange(): DeviceFirmwareRange {
50
59
  return {
51
- pro2: {
52
- min: '0.0.0',
53
- unsupported: true,
54
- },
55
60
  pro: {
56
61
  min: '4.12.0',
57
62
  },
@@ -78,8 +83,7 @@ export default class BenfenGetAddress extends BaseMethod<HardwareBenfenGetAddres
78
83
  'BenfenAddress',
79
84
  param
80
85
  );
81
- // proto 里 BenfenAddress.address 是 optional;正常响应必然携带
82
- address = addressRes.message.address ?? '';
86
+ address = requireAddress(addressRes.message.address);
83
87
  } else {
84
88
  address = publicKeyToAddress(publicKey);
85
89
  }
@@ -107,7 +111,7 @@ export default class BenfenGetAddress extends BaseMethod<HardwareBenfenGetAddres
107
111
  );
108
112
  const result = {
109
113
  path: serializedPath(param.address_n),
110
- address: hex2BfcAddress(res.message.address ?? ''),
114
+ address: hex2BfcAddress(requireAddress(res.message.address)),
111
115
  };
112
116
  if (this.shouldConfirm) {
113
117
  this.postPreviousAddressMessage(result);
@@ -40,10 +40,6 @@ export default class BenfenGetPublicKey extends BaseMethod<any> {
40
40
 
41
41
  getVersionRange(): DeviceFirmwareRange {
42
42
  return {
43
- pro2: {
44
- min: '0.0.0',
45
- unsupported: true,
46
- },
47
43
  pro: {
48
44
  min: '4.12.0',
49
45
  },
@@ -29,10 +29,6 @@ export default class BenfenSignMessage extends BaseMethod<HardwareBenfenSignMess
29
29
 
30
30
  getVersionRange(): DeviceFirmwareRange {
31
31
  return {
32
- pro2: {
33
- min: '0.0.0',
34
- unsupported: true,
35
- },
36
32
  pro: {
37
33
  min: '4.12.0',
38
34
  },
@@ -36,10 +36,6 @@ export default class BenfenSignTransaction extends BaseMethod<BenfenSignTx> {
36
36
 
37
37
  getVersionRange(): DeviceFirmwareRange {
38
38
  return {
39
- pro2: {
40
- min: '0.0.0',
41
- unsupported: true,
42
- },
43
39
  pro: {
44
40
  min: '4.12.0',
45
41
  },
@@ -3,7 +3,10 @@ import { getScriptType, serializedPath, validatePath } from '../helpers/pathUtil
3
3
  import { BaseMethod } from '../BaseMethod';
4
4
  import { validateParams, validateResult } from '../helpers/paramsValidator';
5
5
  import { getCoinInfo } from './helpers/btcParamsUtils';
6
- import { getBitcoinForkVersionRange } from './helpers/versionLimit';
6
+ import {
7
+ getBitcoinForkSupportedProtocols,
8
+ getBitcoinForkVersionRange,
9
+ } from './helpers/versionLimit';
7
10
 
8
11
  import type { BTCAddress, BTCGetAddressParams } from '../../types/api/btcGetAddress';
9
12
  import type { GetAddress } from '@onekeyfe/hd-transport';
@@ -11,6 +14,10 @@ import type { GetAddress } from '@onekeyfe/hd-transport';
11
14
  export default class BTCGetAddress extends BaseMethod<GetAddress[]> {
12
15
  hasBundle = false;
13
16
 
17
+ getSupportedProtocols() {
18
+ return getBitcoinForkSupportedProtocols(this.params?.map(param => param.coin_name) ?? []);
19
+ }
20
+
14
21
  init() {
15
22
  this.checkDeviceId = true;
16
23
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -5,7 +5,10 @@ import { getScriptType, isTaprootPath, serializedPath, validatePath } from '../h
5
5
  import { BaseMethod } from '../BaseMethod';
6
6
  import { validateParams, validateResult } from '../helpers/paramsValidator';
7
7
  import { getCoinInfo } from './helpers/btcParamsUtils';
8
- import { getBitcoinForkVersionRange } from './helpers/versionLimit';
8
+ import {
9
+ getBitcoinForkSupportedProtocols,
10
+ getBitcoinForkVersionRange,
11
+ } from './helpers/versionLimit';
9
12
  import { batchGetPublickeys } from '../helpers/batchGetPublickeys';
10
13
  import { createExtendedPublicKey, getVersionBytes } from './helpers/xpubUtils';
11
14
 
@@ -14,6 +17,10 @@ import type { BTCGetAddressParams } from '../../types/api/btcGetAddress';
14
17
  import type { GetPublicKey } from '@onekeyfe/hd-transport';
15
18
 
16
19
  export default class BTCGetPublicKey extends BaseMethod<GetPublicKey[]> {
20
+ getSupportedProtocols() {
21
+ return getBitcoinForkSupportedProtocols(this.params?.map(param => param.coin_name) ?? []);
22
+ }
23
+
17
24
  hasBundle = false;
18
25
 
19
26
  init() {
@@ -78,7 +85,7 @@ export default class BTCGetPublicKey extends BaseMethod<GetPublicKey[]> {
78
85
  }
79
86
 
80
87
  for (const param of this.params) {
81
- // init() 必然设置 coin_name;生成类型里该字段为 optional,这里兜底空串
88
+ // init() sets coin_name; keep an empty fallback for the generated optional type.
82
89
  const versionBytes = getVersionBytes(param.coin_name ?? '', param.script_type);
83
90
  if (!versionBytes) {
84
91
  throw new Error(
@@ -4,11 +4,18 @@ import { BaseMethod } from '../BaseMethod';
4
4
  import { validateParams } from '../helpers/paramsValidator';
5
5
  import { formatAnyHex } from '../helpers/hexUtils';
6
6
  import { getCoinAndScriptType } from './helpers/btcParamsUtils';
7
- import { getBitcoinForkVersionRange } from './helpers/versionLimit';
7
+ import {
8
+ getBitcoinForkSupportedProtocols,
9
+ getBitcoinForkVersionRange,
10
+ } from './helpers/versionLimit';
8
11
 
9
12
  import type { SignMessage } from '@onekeyfe/hd-transport';
10
13
 
11
14
  export default class BTCSignMessage extends BaseMethod<SignMessage> {
15
+ getSupportedProtocols() {
16
+ return getBitcoinForkSupportedProtocols([this.params?.coin_name]);
17
+ }
18
+
12
19
  init() {
13
20
  this.checkDeviceId = true;
14
21
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -9,6 +9,10 @@ import { getCoinInfo } from './helpers/btcParamsUtils';
9
9
  import type { SignPsbt } from '@onekeyfe/hd-transport';
10
10
 
11
11
  export default class BTCSignPsbt extends BaseMethod<SignPsbt> {
12
+ getSupportedProtocols() {
13
+ return ['V1', 'V2'] as const;
14
+ }
15
+
12
16
  init() {
13
17
  this.checkDeviceId = true;
14
18
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -7,7 +7,10 @@ import { validateParams } from '../helpers/paramsValidator';
7
7
  import signtx from './helpers/signtx';
8
8
  import signtxLegacy from './helpers/signtxLegacy';
9
9
  import { getCoinInfo } from './helpers/btcParamsUtils';
10
- import { getBitcoinForkVersionRange } from './helpers/versionLimit';
10
+ import {
11
+ getBitcoinForkSupportedProtocols,
12
+ getBitcoinForkVersionRange,
13
+ } from './helpers/versionLimit';
11
14
 
12
15
  import type {
13
16
  AccountAddresses,
@@ -26,6 +29,10 @@ type Params = {
26
29
  coinName: string;
27
30
  };
28
31
  export default class BTCSignTransaction extends BaseMethod<Params> {
32
+ getSupportedProtocols() {
33
+ return getBitcoinForkSupportedProtocols([this.params?.coinName]);
34
+ }
35
+
29
36
  init() {
30
37
  this.checkDeviceId = true;
31
38
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -3,11 +3,18 @@ import { BaseMethod } from '../BaseMethod';
3
3
  import { validateParams } from '../helpers/paramsValidator';
4
4
  import { formatAnyHex } from '../helpers/hexUtils';
5
5
  import { getCoinInfo } from './helpers/btcParamsUtils';
6
- import { getBitcoinForkVersionRange } from './helpers/versionLimit';
6
+ import {
7
+ getBitcoinForkSupportedProtocols,
8
+ getBitcoinForkVersionRange,
9
+ } from './helpers/versionLimit';
7
10
 
8
11
  import type { VerifyMessage } from '@onekeyfe/hd-transport';
9
12
 
10
13
  export default class BTCVerifyMessage extends BaseMethod<VerifyMessage> {
14
+ getSupportedProtocols() {
15
+ return getBitcoinForkSupportedProtocols([this.params?.coin_name]);
16
+ }
17
+
11
18
  init() {
12
19
  this.checkDeviceId = true;
13
20
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -1,4 +1,5 @@
1
1
  import type { DeviceFirmwareRange } from '../../../types';
2
+ import type { ProtocolType } from '@onekeyfe/hd-transport';
2
3
 
3
4
  function isCoinNameInList(coinName: string, coinNames: (string | undefined)[]) {
4
5
  for (let i = 0; i < coinNames.length; i++) {
@@ -13,10 +14,6 @@ function isCoinNameInList(coinName: string, coinNames: (string | undefined)[]) {
13
14
  export function getBitcoinForkVersionRange(params: (string | undefined)[]): DeviceFirmwareRange {
14
15
  if (isCoinNameInList('Neurai', params)) {
15
16
  return {
16
- pro2: {
17
- min: '0.0.0',
18
- unsupported: true,
19
- },
20
17
  model_mini: {
21
18
  min: '3.7.0',
22
19
  },
@@ -29,3 +26,9 @@ export function getBitcoinForkVersionRange(params: (string | undefined)[]): Devi
29
26
  // No version restrictions for other coins
30
27
  return {};
31
28
  }
29
+
30
+ export function getBitcoinForkSupportedProtocols(
31
+ params: (string | undefined)[]
32
+ ): readonly ProtocolType[] {
33
+ return isCoinNameInList('Neurai', params) ? ['V1'] : ['V1', 'V2'];
34
+ }
@@ -13,6 +13,10 @@ import type { CardanoAddress, CardanoGetAddressParams } from '../../types/api/ca
13
13
  import type { CardanoGetAddressMethodParams } from '../../types';
14
14
 
15
15
  export default class CardanoGetAddress extends BaseMethod<CardanoGetAddressParams[]> {
16
+ getSupportedProtocols() {
17
+ return ['V1', 'V2'] as const;
18
+ }
19
+
16
20
  hasBundle?: boolean;
17
21
 
18
22
  isCheck?: boolean;
@@ -7,6 +7,10 @@ import { serializedPath, validatePath } from '../helpers/pathUtils';
7
7
  import type { CardanoPublicKey, CardanoPublicKeyParams } from '../../types/api/cardanoGetPublicKey';
8
8
 
9
9
  export default class CardanoGetPublicKey extends BaseMethod<CardanoPublicKeyParams[]> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  hasBundle?: boolean;
11
15
 
12
16
  init() {