@onekeyfe/hd-core 1.2.0-alpha.17 → 1.2.0-alpha.171

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (847) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +390 -0
  2. package/__tests__/DeviceCommands.test.ts +586 -9
  3. package/__tests__/DeviceEventRegistration.test.ts +9 -0
  4. package/__tests__/base64Data.test.ts +69 -0
  5. package/__tests__/chain-params-onekey-compatibility.test.ts +229 -0
  6. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +878 -0
  7. package/__tests__/check-firmware-release-protocol-v2.test.ts +270 -0
  8. package/__tests__/connectSettings.test.ts +45 -5
  9. package/__tests__/core-dispose.test.ts +34 -0
  10. package/__tests__/core-error-output.test.ts +39 -0
  11. package/__tests__/core-initialization.test.ts +23 -0
  12. package/__tests__/device-connector-protocol.test.ts +102 -0
  13. package/__tests__/device-features-state.test.ts +78 -0
  14. package/__tests__/device-identity.test.ts +52 -0
  15. package/__tests__/device-initialize-timeout.test.ts +56 -0
  16. package/__tests__/device-lifecycle-events.test.ts +752 -0
  17. package/__tests__/device-pool-state.test.ts +191 -0
  18. package/__tests__/device-settings.test.ts +665 -0
  19. package/__tests__/device-state-contract.test.ts +28 -0
  20. package/__tests__/device-state-events.test.ts +286 -0
  21. package/__tests__/device-state-mapper.test.ts +344 -0
  22. package/__tests__/device-state-projector.test.ts +114 -0
  23. package/__tests__/device-state-store.test.ts +109 -0
  24. package/__tests__/device-utils.test.ts +168 -0
  25. package/__tests__/device-wallet-session-store.test.ts +474 -1
  26. package/__tests__/deviceFeaturesUtils.test.ts +13 -1
  27. package/__tests__/devicePoolBootloaderPath.test.ts +64 -0
  28. package/__tests__/deviceSettings.test.ts +117 -0
  29. package/__tests__/deviceUploadNft.test.ts +348 -0
  30. package/__tests__/evmLedgerLegacySafety.test.ts +10 -7
  31. package/__tests__/evmSignTransaction.test.ts +69 -0
  32. package/__tests__/evmSignTypedData.test.ts +80 -0
  33. package/__tests__/filesystemValidation.test.ts +53 -0
  34. package/__tests__/firmware-update/check-all-firmware-release.test.ts +175 -0
  35. package/__tests__/firmware-update/device-update-bootloader.test.ts +109 -0
  36. package/__tests__/firmware-update/firmware-artifact-source.test.ts +171 -0
  37. package/__tests__/firmware-update/firmware-host-binding.test.ts +79 -0
  38. package/__tests__/firmware-update/firmware-preparation-error.test.ts +27 -0
  39. package/__tests__/firmware-update/firmware-prepared-host-digest.test.ts +583 -0
  40. package/__tests__/firmware-update/firmware-prepared-resource-archive.test.ts +171 -0
  41. package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +438 -0
  42. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +13 -0
  43. package/__tests__/firmware-update/firmware-update-plan-bootloader-identity.test.ts +474 -0
  44. package/__tests__/firmware-update/firmware-update-plan.test.ts +819 -0
  45. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +297 -0
  46. package/__tests__/firmware-update/firmware-update-prepared-resource-executors.test.ts +326 -0
  47. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +457 -0
  48. package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +237 -0
  49. package/__tests__/firmware-update/firmware-update-v4-install-poll.test.ts +266 -0
  50. package/__tests__/firmware-update/firmware-update-v4-parameters.test.ts +85 -0
  51. package/__tests__/firmware-update/firmware-upload-source.test.ts +70 -0
  52. package/__tests__/get-device-state.test.ts +617 -0
  53. package/__tests__/homescreen.test.ts +58 -1
  54. package/__tests__/kaspa-public-types.type-test.ts +16 -0
  55. package/__tests__/kaspa-use-tweak-pro2.test.ts +20 -0
  56. package/__tests__/kaspaSignTransaction.test.ts +578 -0
  57. package/__tests__/known-device-public-types.type-test.ts +3 -0
  58. package/__tests__/logBlockEvent.test.ts +140 -1
  59. package/__tests__/method-protocol-support.test.ts +144 -0
  60. package/__tests__/networkUtils.test.ts +406 -0
  61. package/__tests__/open-wallet-session-error-response.test.ts +43 -0
  62. package/__tests__/open-wallet-session.test.ts +1899 -0
  63. package/__tests__/pro2Nft.test.ts +108 -0
  64. package/__tests__/pro2Wallpaper.test.ts +74 -19
  65. package/__tests__/protocol-binding.test.ts +89 -0
  66. package/__tests__/protocol-v2-firmware-targets.test.ts +105 -0
  67. package/__tests__/protocol-v2-ping.test.ts +28 -0
  68. package/__tests__/protocol-v2-resources.test.ts +371 -0
  69. package/__tests__/protocol-v2-ui-lifecycle.test.ts +91 -0
  70. package/__tests__/protocol-v2-unlock-policy.test.ts +507 -0
  71. package/__tests__/protocol-v2.test.ts +7560 -2214
  72. package/__tests__/protocolV2FileWrite.test.ts +193 -0
  73. package/__tests__/protocolV2UiInteraction.test.ts +63 -0
  74. package/__tests__/public-device-state-api.test.ts +275 -0
  75. package/__tests__/public-pro2-api-boundary.test.ts +107 -0
  76. package/__tests__/refresh-device-state.test.ts +103 -0
  77. package/__tests__/request-context-logging.test.ts +16 -0
  78. package/__tests__/resourceBase64Boundary.test.ts +48 -0
  79. package/__tests__/search-devices.test.ts +192 -0
  80. package/__tests__/ton-sign-message.test.ts +84 -0
  81. package/__tests__/tron-sign-message-init.test.ts +74 -0
  82. package/__tests__/uiProgressThrottle.test.ts +74 -0
  83. package/__tests__/uiPromiseRegistry.test.ts +115 -0
  84. package/dist/api/BaseMethod.d.ts +10 -2
  85. package/dist/api/BaseMethod.d.ts.map +1 -1
  86. package/dist/api/CheckAllFirmwareRelease.d.ts +25 -1
  87. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  88. package/dist/api/CheckBLEFirmwareRelease.d.ts +3 -2
  89. package/dist/api/CheckBLEFirmwareRelease.d.ts.map +1 -1
  90. package/dist/api/CheckBootloaderRelease.d.ts +2 -1
  91. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  92. package/dist/api/CheckFirmwareRelease.d.ts +3 -2
  93. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  94. package/dist/api/CipherKeyValue.d.ts +1 -0
  95. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  96. package/dist/api/ClearSessionCache.d.ts.map +1 -1
  97. package/dist/api/DetectDeviceConnectProtocol.d.ts +7 -0
  98. package/dist/api/DetectDeviceConnectProtocol.d.ts.map +1 -0
  99. package/dist/api/DirList.d.ts +1 -0
  100. package/dist/api/DirList.d.ts.map +1 -1
  101. package/dist/api/DirMake.d.ts +1 -0
  102. package/dist/api/DirMake.d.ts.map +1 -1
  103. package/dist/api/DirRemove.d.ts +1 -0
  104. package/dist/api/DirRemove.d.ts.map +1 -1
  105. package/dist/api/FileDelete.d.ts +1 -0
  106. package/dist/api/FileDelete.d.ts.map +1 -1
  107. package/dist/api/FileRead.d.ts +1 -0
  108. package/dist/api/FileRead.d.ts.map +1 -1
  109. package/dist/api/FileWrite.d.ts +1 -0
  110. package/dist/api/FileWrite.d.ts.map +1 -1
  111. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  112. package/dist/api/FirmwareUpdateV2.d.ts +13 -2
  113. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  114. package/dist/api/FirmwareUpdateV3.d.ts +7 -3
  115. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  116. package/dist/api/FirmwareUpdateV4.d.ts +65 -14
  117. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  118. package/dist/api/GetDeviceState.d.ts +8 -0
  119. package/dist/api/GetDeviceState.d.ts.map +1 -0
  120. package/dist/api/GetFeatures.d.ts +1 -1
  121. package/dist/api/GetFeatures.d.ts.map +1 -1
  122. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  123. package/dist/api/GetPassphraseState.d.ts +1 -0
  124. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  125. package/dist/api/OpenWalletSession.d.ts +8 -0
  126. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  127. package/dist/api/PathInfo.d.ts +1 -0
  128. package/dist/api/PathInfo.d.ts.map +1 -1
  129. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  130. package/dist/api/SearchDevices.d.ts +3 -0
  131. package/dist/api/SearchDevices.d.ts.map +1 -1
  132. package/dist/api/UploadPortfolio.d.ts +1 -2
  133. package/dist/api/UploadPortfolio.d.ts.map +1 -1
  134. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  135. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  136. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  137. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  138. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  139. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  140. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  141. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  142. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  143. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  144. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  145. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  146. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  147. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  148. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  149. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  150. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  151. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  152. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  153. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  154. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  155. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  156. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  157. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  158. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  159. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  160. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  161. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  162. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  163. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  164. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  165. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  166. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  167. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  168. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  169. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  170. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  171. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  172. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  173. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  174. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  175. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  176. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  177. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  178. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  179. package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
  180. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  181. package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
  182. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  183. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
  184. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  185. package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
  186. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  187. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  188. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  189. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  190. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  191. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  192. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  193. package/dist/api/device/DeviceCancel.d.ts +1 -0
  194. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  195. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  196. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  197. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  198. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  199. package/dist/api/device/DeviceLock.d.ts +1 -0
  200. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  201. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  202. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  203. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  204. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  205. package/dist/api/device/DeviceSettings.d.ts +1 -0
  206. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  207. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  208. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  209. package/dist/api/device/DeviceUnlock.d.ts +3 -2
  210. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  211. package/dist/api/device/DeviceUpdateBootloader.d.ts +5 -1
  212. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  213. package/dist/api/device/DeviceVerify.d.ts +1 -0
  214. package/dist/api/device/DeviceVerify.d.ts.map +1 -1
  215. package/dist/api/device/DeviceWipe.d.ts +1 -0
  216. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  217. package/dist/api/device/PreInitialize.d.ts +1 -0
  218. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  219. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  220. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  221. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  222. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  223. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  224. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  225. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  226. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  227. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  228. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  229. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  230. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  231. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  232. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  233. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  234. package/dist/api/evm/protocol.d.ts +3 -0
  235. package/dist/api/evm/protocol.d.ts.map +1 -0
  236. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  237. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  238. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  239. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  240. package/dist/api/firmware/FirmwareArtifactSource.d.ts +29 -0
  241. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +1 -0
  242. package/dist/api/firmware/FirmwareHostBinding.d.ts +6 -0
  243. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -0
  244. package/dist/api/firmware/FirmwarePreparationError.d.ts +3 -0
  245. package/dist/api/firmware/FirmwarePreparationError.d.ts.map +1 -0
  246. package/dist/api/firmware/FirmwarePreparedResourceArchive.d.ts +11 -0
  247. package/dist/api/firmware/FirmwarePreparedResourceArchive.d.ts.map +1 -0
  248. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +12 -3
  249. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  250. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +3 -0
  251. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +1 -0
  252. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +57 -0
  253. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -0
  254. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +38 -0
  255. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -0
  256. package/dist/api/firmware/getBinary.d.ts +15 -4
  257. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  258. package/dist/api/firmware/protocolV2Release.d.ts +33 -0
  259. package/dist/api/firmware/protocolV2Release.d.ts.map +1 -0
  260. package/dist/api/firmware/updateBootloader.d.ts +2 -0
  261. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  262. package/dist/api/firmware/uploadFirmware.d.ts +9 -1
  263. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  264. package/dist/api/helpers/base64Data.d.ts +16 -0
  265. package/dist/api/helpers/base64Data.d.ts.map +1 -0
  266. package/dist/api/helpers/filesystemValidation.d.ts +3 -0
  267. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
  268. package/dist/api/helpers/paramsValidator.d.ts +1 -0
  269. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  270. package/dist/api/helpers/protocolV2FileWrite.d.ts +10 -0
  271. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -1
  272. package/dist/api/index.d.ts +5 -29
  273. package/dist/api/index.d.ts.map +1 -1
  274. package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
  275. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  276. package/dist/api/kaspa/KaspaSignTransaction.d.ts +9 -1
  277. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  278. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  279. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  280. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  281. package/dist/api/near/NearGetAddress.d.ts +1 -0
  282. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  283. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  284. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  285. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  286. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  287. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  288. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  289. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  290. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  291. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  292. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  293. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  294. package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
  295. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  296. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  297. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  298. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  299. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  300. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  301. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  302. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  303. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  304. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  305. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  306. package/dist/api/polkadot/PolkadotGetAddress.d.ts +2 -1
  307. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  308. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  309. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  310. package/dist/api/polkadot/networks.d.ts +1 -1
  311. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  312. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  313. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  314. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  315. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +4 -1
  316. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  317. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +1 -0
  318. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  319. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +2 -1
  320. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -1
  321. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +2 -2
  322. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  323. package/dist/api/protocol-v2/DeviceReboot.d.ts +2 -1
  324. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  325. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +1 -0
  326. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -1
  327. package/dist/api/protocol-v2/DeviceUploadNft.d.ts +30 -0
  328. package/dist/api/protocol-v2/DeviceUploadNft.d.ts.map +1 -0
  329. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +5 -4
  330. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -1
  331. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  332. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  333. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  334. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  335. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  336. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  337. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  338. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  339. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  340. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  341. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  342. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  343. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  344. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  345. package/dist/api/solana/SolSignMessage.d.ts +2 -1
  346. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  347. package/dist/api/solana/SolSignOffchainMessage.d.ts +2 -1
  348. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  349. package/dist/api/solana/SolSignTransaction.d.ts +3 -2
  350. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  351. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  352. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  353. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  354. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  355. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  356. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  357. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  358. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  359. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  360. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  361. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  362. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  363. package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
  364. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  365. package/dist/api/sui/SuiGetAddress.d.ts +2 -1
  366. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  367. package/dist/api/sui/SuiGetPublicKey.d.ts +2 -1
  368. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  369. package/dist/api/sui/SuiSignMessage.d.ts +2 -1
  370. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  371. package/dist/api/sui/SuiSignTransaction.d.ts +2 -1
  372. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  373. package/dist/api/ton/TonGetAddress.d.ts +2 -1
  374. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  375. package/dist/api/ton/TonSignData.d.ts +1 -0
  376. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  377. package/dist/api/ton/TonSignMessage.d.ts +2 -1
  378. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  379. package/dist/api/ton/TonSignProof.d.ts +2 -1
  380. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  381. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  382. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  383. package/dist/api/tron/TronSignMessage.d.ts +6 -1
  384. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  385. package/dist/api/tron/TronSignTransaction.d.ts +2 -1
  386. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  387. package/dist/api/utils.d.ts +4 -1
  388. package/dist/api/utils.d.ts.map +1 -1
  389. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  390. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  391. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  392. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  393. package/dist/constants/index.d.ts +1 -1
  394. package/dist/constants/index.d.ts.map +1 -1
  395. package/dist/core/RequestQueue.d.ts +0 -2
  396. package/dist/core/RequestQueue.d.ts.map +1 -1
  397. package/dist/core/deviceEventRegistration.d.ts +2 -0
  398. package/dist/core/deviceEventRegistration.d.ts.map +1 -1
  399. package/dist/core/index.d.ts +8 -3
  400. package/dist/core/index.d.ts.map +1 -1
  401. package/dist/core/uiPromiseRegistry.d.ts +6 -0
  402. package/dist/core/uiPromiseRegistry.d.ts.map +1 -0
  403. package/dist/data-manager/DataManager.d.ts +14 -5
  404. package/dist/data-manager/DataManager.d.ts.map +1 -1
  405. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  406. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  407. package/dist/device/Device.d.ts +82 -14
  408. package/dist/device/Device.d.ts.map +1 -1
  409. package/dist/device/DeviceCommands.d.ts +5 -5
  410. package/dist/device/DeviceCommands.d.ts.map +1 -1
  411. package/dist/device/DeviceConnector.d.ts +4 -3
  412. package/dist/device/DeviceConnector.d.ts.map +1 -1
  413. package/dist/device/DeviceFeaturesState.d.ts +3 -0
  414. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  415. package/dist/device/DevicePool.d.ts +4 -0
  416. package/dist/device/DevicePool.d.ts.map +1 -1
  417. package/dist/device/DeviceStateMapper.d.ts +13 -0
  418. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  419. package/dist/device/DeviceStateProjector.d.ts +7 -0
  420. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  421. package/dist/device/DeviceStateStore.d.ts +21 -0
  422. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  423. package/dist/device/DeviceWalletSessionStore.d.ts +13 -1
  424. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -1
  425. package/dist/device/cloneDeviceState.d.ts +2 -0
  426. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  427. package/dist/device/deviceIdentity.d.ts +5 -0
  428. package/dist/device/deviceIdentity.d.ts.map +1 -0
  429. package/dist/deviceProfile/buildDeviceFeatures.d.ts +3 -1
  430. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  431. package/dist/deviceProfile/index.d.ts +0 -1
  432. package/dist/deviceProfile/index.d.ts.map +1 -1
  433. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
  434. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
  435. package/dist/events/call.d.ts +0 -7
  436. package/dist/events/call.d.ts.map +1 -1
  437. package/dist/events/core.d.ts +2 -2
  438. package/dist/events/core.d.ts.map +1 -1
  439. package/dist/events/device.d.ts +12 -2
  440. package/dist/events/device.d.ts.map +1 -1
  441. package/dist/events/iframe.d.ts +0 -1
  442. package/dist/events/iframe.d.ts.map +1 -1
  443. package/dist/events/logBlockEvent.d.ts +2 -0
  444. package/dist/events/logBlockEvent.d.ts.map +1 -1
  445. package/dist/events/ui-promise.d.ts +4 -2
  446. package/dist/events/ui-promise.d.ts.map +1 -1
  447. package/dist/events/ui-request.d.ts +32 -2
  448. package/dist/events/ui-request.d.ts.map +1 -1
  449. package/dist/events/ui-response.d.ts +10 -2
  450. package/dist/events/ui-response.d.ts.map +1 -1
  451. package/dist/index.d.ts +1720 -849
  452. package/dist/index.d.ts.map +1 -1
  453. package/dist/index.js +11415 -4761
  454. package/dist/inject.d.ts +7 -3
  455. package/dist/inject.d.ts.map +1 -1
  456. package/dist/lowLevelInject.d.ts +1 -2
  457. package/dist/lowLevelInject.d.ts.map +1 -1
  458. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  459. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  460. package/dist/protocols/protocol-v2/features.d.ts +31 -8
  461. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  462. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
  463. package/dist/protocols/protocol-v2/index.d.ts +2 -2
  464. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  465. package/dist/protocols/protocol-v2/resources.d.ts +17 -0
  466. package/dist/protocols/protocol-v2/resources.d.ts.map +1 -0
  467. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
  468. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  469. package/dist/protocols/protocol-v2/uiInteraction.d.ts +7 -4
  470. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -1
  471. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +2 -0
  472. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
  473. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts +22 -0
  474. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts.map +1 -0
  475. package/dist/protocols/protocol-v2/walletSession.d.ts +16 -3
  476. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -1
  477. package/dist/topLevelInject.d.ts.map +1 -1
  478. package/dist/types/api/checkAllFirmwareRelease.d.ts +48 -9
  479. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  480. package/dist/types/api/checkBLEFirmwareRelease.d.ts +2 -13
  481. package/dist/types/api/checkBLEFirmwareRelease.d.ts.map +1 -1
  482. package/dist/types/api/checkBootloaderRelease.d.ts +2 -6
  483. package/dist/types/api/checkBootloaderRelease.d.ts.map +1 -1
  484. package/dist/types/api/checkFirmwareRelease.d.ts +2 -13
  485. package/dist/types/api/checkFirmwareRelease.d.ts.map +1 -1
  486. package/dist/types/api/checkFirmwareTypeAvailable.d.ts +2 -2
  487. package/dist/types/api/checkFirmwareTypeAvailable.d.ts.map +1 -1
  488. package/dist/types/api/detectDeviceConnectProtocol.d.ts +4 -0
  489. package/dist/types/api/detectDeviceConnectProtocol.d.ts.map +1 -0
  490. package/dist/types/api/deviceSettings.d.ts +11 -2
  491. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  492. package/dist/types/api/deviceUnlock.d.ts +6 -2
  493. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  494. package/dist/types/api/deviceUpdateBootloader.d.ts +6 -0
  495. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  496. package/dist/types/api/export.d.ts +8 -3
  497. package/dist/types/api/export.d.ts.map +1 -1
  498. package/dist/types/api/firmwareUpdate.d.ts +67 -5
  499. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  500. package/dist/types/api/firmwareUpdateCapabilities.d.ts +9 -0
  501. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +1 -0
  502. package/dist/types/api/firmwareUpdatePlan.d.ts +28 -0
  503. package/dist/types/api/firmwareUpdatePlan.d.ts.map +1 -0
  504. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +42 -0
  505. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +1 -0
  506. package/dist/types/api/getDeviceState.d.ts +12 -0
  507. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  508. package/dist/types/api/getFeatures.d.ts.map +1 -1
  509. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  510. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  511. package/dist/types/api/index.d.ts +25 -35
  512. package/dist/types/api/index.d.ts.map +1 -1
  513. package/dist/types/api/kaspaSignTransaction.d.ts +42 -4
  514. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  515. package/dist/types/api/openWalletSession.d.ts +35 -0
  516. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  517. package/dist/types/api/protocolV2.d.ts +11 -95
  518. package/dist/types/api/protocolV2.d.ts.map +1 -1
  519. package/dist/types/api/sessionCache.d.ts +4 -1
  520. package/dist/types/api/sessionCache.d.ts.map +1 -1
  521. package/dist/types/device.d.ts +138 -8
  522. package/dist/types/device.d.ts.map +1 -1
  523. package/dist/types/params.d.ts +1 -0
  524. package/dist/types/params.d.ts.map +1 -1
  525. package/dist/types/settings.d.ts +31 -16
  526. package/dist/types/settings.d.ts.map +1 -1
  527. package/dist/utils/assets.d.ts +2 -1
  528. package/dist/utils/assets.d.ts.map +1 -1
  529. package/dist/utils/deviceFeaturesCompat.d.ts +14 -0
  530. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  531. package/dist/utils/deviceFeaturesUtils.d.ts +10 -1
  532. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  533. package/dist/utils/deviceInfoUtils.d.ts +9 -9
  534. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  535. package/dist/utils/deviceSettings.d.ts +39 -7
  536. package/dist/utils/deviceSettings.d.ts.map +1 -1
  537. package/dist/utils/deviceVersionUtils.d.ts +7 -5
  538. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  539. package/dist/utils/homescreen.d.ts +4 -0
  540. package/dist/utils/homescreen.d.ts.map +1 -1
  541. package/dist/utils/index.d.ts +5 -4
  542. package/dist/utils/index.d.ts.map +1 -1
  543. package/dist/utils/networkUtils.d.ts +10 -1
  544. package/dist/utils/networkUtils.d.ts.map +1 -1
  545. package/dist/utils/patch.d.ts +1 -1
  546. package/dist/utils/patch.d.ts.map +1 -1
  547. package/dist/utils/pro2Nft.d.ts +38 -0
  548. package/dist/utils/pro2Nft.d.ts.map +1 -0
  549. package/dist/utils/pro2Wallpaper.d.ts +13 -1
  550. package/dist/utils/pro2Wallpaper.d.ts.map +1 -1
  551. package/dist/utils/tracing.d.ts.map +1 -1
  552. package/dist/utils/uiProgressThrottle.d.ts +3 -0
  553. package/dist/utils/uiProgressThrottle.d.ts.map +1 -0
  554. package/package.json +6 -4
  555. package/src/api/BaseMethod.ts +39 -25
  556. package/src/api/CheckAllFirmwareRelease.ts +440 -4
  557. package/src/api/CheckBLEFirmwareRelease.ts +37 -5
  558. package/src/api/CheckBootloaderRelease.ts +37 -5
  559. package/src/api/CheckFirmwareRelease.ts +36 -9
  560. package/src/api/CipherKeyValue.ts +4 -0
  561. package/src/api/ClearSessionCache.ts +4 -0
  562. package/src/api/DetectDeviceConnectProtocol.ts +18 -0
  563. package/src/api/DirList.ts +9 -4
  564. package/src/api/DirMake.ts +7 -4
  565. package/src/api/DirRemove.ts +7 -4
  566. package/src/api/FileDelete.ts +7 -4
  567. package/src/api/FileRead.ts +13 -7
  568. package/src/api/FileWrite.ts +7 -4
  569. package/src/api/FirmwareUpdate.ts +30 -15
  570. package/src/api/FirmwareUpdateV2.ts +535 -169
  571. package/src/api/FirmwareUpdateV3.ts +349 -91
  572. package/src/api/FirmwareUpdateV4.ts +2201 -696
  573. package/src/api/GetDeviceState.ts +59 -0
  574. package/src/api/GetFeatures.ts +6 -4
  575. package/src/api/GetOnekeyFeatures.ts +1 -75
  576. package/src/api/GetPassphraseState.ts +34 -13
  577. package/src/api/OpenWalletSession.ts +268 -0
  578. package/src/api/PathInfo.ts +9 -4
  579. package/src/api/PromptWebDeviceAccess.ts +3 -8
  580. package/src/api/SearchDevices.ts +35 -5
  581. package/src/api/UploadPortfolio.ts +29 -5
  582. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  583. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  584. package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
  585. package/src/api/algo/AlgoGetAddress.ts +4 -0
  586. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  587. package/src/api/allnetwork/AllNetworkGetAddress.ts +21 -21
  588. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +45 -32
  589. package/src/api/aptos/AptosGetAddress.ts +4 -0
  590. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  591. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  592. package/src/api/aptos/AptosSignMessage.ts +4 -0
  593. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  594. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  595. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  596. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  597. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  598. package/src/api/btc/BTCGetAddress.ts +8 -1
  599. package/src/api/btc/BTCGetPublicKey.ts +9 -2
  600. package/src/api/btc/BTCSignMessage.ts +8 -1
  601. package/src/api/btc/BTCSignPsbt.ts +4 -0
  602. package/src/api/btc/BTCSignTransaction.ts +8 -1
  603. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  604. package/src/api/btc/helpers/versionLimit.ts +7 -4
  605. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  606. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  607. package/src/api/cardano/CardanoSignMessage.ts +4 -0
  608. package/src/api/cardano/CardanoSignTransaction.ts +4 -0
  609. package/src/api/conflux/ConfluxGetAddress.ts +6 -0
  610. package/src/api/conflux/ConfluxSignMessage.ts +6 -0
  611. package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
  612. package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
  613. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  614. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  615. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  616. package/src/api/device/DeviceCancel.ts +4 -0
  617. package/src/api/device/DeviceChangePin.ts +9 -1
  618. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  619. package/src/api/device/DeviceLock.ts +4 -0
  620. package/src/api/device/DeviceRebootToBoardloader.ts +8 -1
  621. package/src/api/device/DeviceRebootToBootloader.ts +8 -1
  622. package/src/api/device/DeviceSettings.ts +211 -3
  623. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  624. package/src/api/device/DeviceUnlock.ts +12 -3
  625. package/src/api/device/DeviceUpdateBootloader.ts +152 -8
  626. package/src/api/device/DeviceVerify.ts +25 -0
  627. package/src/api/device/DeviceWipe.ts +11 -1
  628. package/src/api/device/PreInitialize.ts +4 -0
  629. package/src/api/dynex/DnxGetAddress.ts +0 -6
  630. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  631. package/src/api/evm/EVMGetAddress.ts +6 -2
  632. package/src/api/evm/EVMGetPublicKey.ts +6 -2
  633. package/src/api/evm/EVMSignMessage.ts +6 -2
  634. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  635. package/src/api/evm/EVMSignTransaction.ts +6 -2
  636. package/src/api/evm/EVMSignTypedData.ts +42 -50
  637. package/src/api/evm/EVMVerifyMessage.ts +6 -2
  638. package/src/api/evm/legacyV1/getAddress.ts +2 -2
  639. package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
  640. package/src/api/evm/legacyV1/signMessage.ts +2 -2
  641. package/src/api/evm/legacyV1/signTypedData.ts +2 -2
  642. package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
  643. package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
  644. package/src/api/evm/protocol.ts +6 -0
  645. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  646. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  647. package/src/api/firmware/FirmwareArtifactSource.ts +305 -0
  648. package/src/api/firmware/FirmwareHostBinding.ts +123 -0
  649. package/src/api/firmware/FirmwarePreparationError.ts +12 -0
  650. package/src/api/firmware/FirmwarePreparedResourceArchive.ts +196 -0
  651. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +214 -77
  652. package/src/api/firmware/FirmwareUpdateCapabilities.ts +9 -0
  653. package/src/api/firmware/FirmwareUpdatePlan.ts +905 -0
  654. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +490 -0
  655. package/src/api/firmware/getBinary.ts +8 -3
  656. package/src/api/firmware/protocolV2Release.ts +173 -0
  657. package/src/api/firmware/updateBootloader.ts +19 -4
  658. package/src/api/firmware/uploadFirmware.ts +157 -26
  659. package/src/api/helpers/base64Data.ts +85 -0
  660. package/src/api/helpers/batchGetPublickeys.ts +2 -2
  661. package/src/api/helpers/filesystemValidation.ts +61 -0
  662. package/src/api/helpers/paramsValidator.ts +1 -1
  663. package/src/api/helpers/protocolV2FileWrite.ts +260 -60
  664. package/src/api/index.ts +6 -30
  665. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  666. package/src/api/kaspa/KaspaSignTransaction.ts +369 -29
  667. package/src/api/kaspa/helpers/TransferSerialize.ts +17 -7
  668. package/src/api/lightning/LnurlAuth.ts +0 -4
  669. package/src/api/near/NearGetAddress.ts +4 -0
  670. package/src/api/near/NearSignTransaction.ts +4 -0
  671. package/src/api/nem/NEMGetAddress.ts +4 -0
  672. package/src/api/nem/NEMSignTransaction.ts +4 -0
  673. package/src/api/neo/NeoGetAddress.ts +0 -4
  674. package/src/api/neo/NeoSignTransaction.ts +0 -4
  675. package/src/api/nervos/NervosGetAddress.ts +0 -4
  676. package/src/api/nervos/NervosSignTransaction.ts +2 -6
  677. package/src/api/nexa/NexaGetAddress.ts +0 -4
  678. package/src/api/nexa/NexaSignTransaction.ts +3 -5
  679. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  680. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  681. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  682. package/src/api/nostr/NostrSignEvent.ts +4 -0
  683. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  684. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  685. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  686. package/src/api/polkadot/networks.ts +3 -3
  687. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
  688. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +6 -3
  689. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +13 -32
  690. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +10 -6
  691. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +6 -3
  692. package/src/api/protocol-v2/DeviceInfoGet.ts +11 -17
  693. package/src/api/protocol-v2/DeviceReboot.ts +12 -3
  694. package/src/api/protocol-v2/DeviceStatusGet.ts +5 -1
  695. package/src/api/protocol-v2/DeviceUploadNft.ts +249 -0
  696. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +67 -20
  697. package/src/api/protocol-v2/FilesystemFormat.ts +5 -2
  698. package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
  699. package/src/api/protocol-v2/Ping.ts +37 -3
  700. package/src/api/protocol-v2/ProtocolInfoRequest.ts +8 -3
  701. package/src/api/protocol-v2/helpers.ts +1 -1
  702. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  703. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  704. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  705. package/src/api/solana/SolGetAddress.ts +4 -0
  706. package/src/api/solana/SolSignMessage.ts +5 -1
  707. package/src/api/solana/SolSignOffchainMessage.ts +5 -1
  708. package/src/api/solana/SolSignTransaction.ts +6 -2
  709. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  710. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  711. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  712. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  713. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  714. package/src/api/stellar/StellarGetAddress.ts +1 -10
  715. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  716. package/src/api/sui/SuiGetAddress.ts +5 -1
  717. package/src/api/sui/SuiGetPublicKey.ts +5 -1
  718. package/src/api/sui/SuiSignMessage.ts +5 -1
  719. package/src/api/sui/SuiSignTransaction.ts +5 -1
  720. package/src/api/ton/TonGetAddress.ts +5 -1
  721. package/src/api/ton/TonSignData.ts +5 -1
  722. package/src/api/ton/TonSignMessage.ts +10 -4
  723. package/src/api/ton/TonSignProof.ts +5 -1
  724. package/src/api/tron/TronGetAddress.ts +4 -0
  725. package/src/api/tron/TronSignMessage.ts +19 -8
  726. package/src/api/tron/TronSignTransaction.ts +5 -1
  727. package/src/api/utils.ts +32 -3
  728. package/src/api/xrp/XrpGetAddress.ts +4 -0
  729. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  730. package/src/constants/index.ts +1 -4
  731. package/src/core/RequestQueue.ts +0 -18
  732. package/src/core/deviceEventRegistration.ts +4 -0
  733. package/src/core/index.ts +486 -200
  734. package/src/core/uiPromiseRegistry.ts +63 -0
  735. package/src/data/messages/messages-protocol-v2.json +515 -540
  736. package/src/data/messages/messages.json +286 -1
  737. package/src/data-manager/DataManager.ts +162 -44
  738. package/src/data-manager/TransportManager.ts +10 -2
  739. package/src/data-manager/connectSettings.ts +11 -0
  740. package/src/device/Device.ts +1016 -254
  741. package/src/device/DeviceCommands.ts +175 -157
  742. package/src/device/DeviceConnector.ts +59 -22
  743. package/src/device/DeviceFeaturesState.ts +25 -0
  744. package/src/device/DevicePool.ts +96 -19
  745. package/src/device/DeviceStateMapper.ts +422 -0
  746. package/src/device/DeviceStateProjector.ts +152 -0
  747. package/src/device/DeviceStateStore.ts +232 -0
  748. package/src/device/DeviceWalletSessionStore.ts +72 -6
  749. package/src/device/cloneDeviceState.ts +39 -0
  750. package/src/device/deviceIdentity.ts +18 -0
  751. package/src/deviceProfile/buildDeviceFeatures.ts +199 -188
  752. package/src/deviceProfile/index.ts +0 -1
  753. package/src/deviceProfile/protocolV2DeviceIdentity.ts +35 -0
  754. package/src/events/call.ts +0 -6
  755. package/src/events/core.ts +0 -2
  756. package/src/events/device.ts +18 -1
  757. package/src/events/iframe.ts +0 -1
  758. package/src/events/logBlockEvent.ts +93 -2
  759. package/src/events/ui-promise.ts +4 -2
  760. package/src/events/ui-request.ts +37 -2
  761. package/src/events/ui-response.ts +12 -2
  762. package/src/index.ts +7 -4
  763. package/src/inject.ts +89 -55
  764. package/src/lowLevelInject.ts +11 -7
  765. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  766. package/src/protocols/protocol-v2/features.ts +104 -45
  767. package/src/protocols/protocol-v2/firmware.ts +3 -1
  768. package/src/protocols/protocol-v2/index.ts +9 -2
  769. package/src/protocols/protocol-v2/resources.ts +173 -0
  770. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  771. package/src/protocols/protocol-v2/uiInteraction.ts +50 -9
  772. package/src/protocols/protocol-v2/unlockPolicy.ts +1 -0
  773. package/src/protocols/protocol-v2/unlockPolicyRunner.ts +136 -0
  774. package/src/protocols/protocol-v2/walletSession.ts +395 -130
  775. package/src/topLevelInject.ts +11 -6
  776. package/src/types/api/checkAllFirmwareRelease.ts +72 -9
  777. package/src/types/api/checkBLEFirmwareRelease.ts +4 -13
  778. package/src/types/api/checkBootloaderRelease.ts +2 -6
  779. package/src/types/api/checkFirmwareRelease.ts +2 -13
  780. package/src/types/api/checkFirmwareTypeAvailable.ts +2 -2
  781. package/src/types/api/detectDeviceConnectProtocol.ts +6 -0
  782. package/src/types/api/deviceSettings.ts +26 -2
  783. package/src/types/api/deviceUnlock.ts +13 -2
  784. package/src/types/api/deviceUpdateBootloader.ts +7 -0
  785. package/src/types/api/export.ts +33 -1
  786. package/src/types/api/firmwareUpdate.ts +85 -11
  787. package/src/types/api/firmwareUpdateCapabilities.ts +9 -0
  788. package/src/types/api/firmwareUpdatePlan.ts +38 -0
  789. package/src/types/api/firmwareUpdatePreparedPlan.ts +53 -0
  790. package/src/types/api/getDeviceState.ts +19 -0
  791. package/src/types/api/getFeatures.ts +3 -0
  792. package/src/types/api/getOnekeyFeatures.ts +3 -0
  793. package/src/types/api/getPassphraseState.ts +7 -0
  794. package/src/types/api/index.ts +43 -73
  795. package/src/types/api/kaspaSignTransaction.ts +60 -4
  796. package/src/types/api/openWalletSession.ts +54 -0
  797. package/src/types/api/protocolV2.ts +23 -190
  798. package/src/types/api/sessionCache.ts +9 -4
  799. package/src/types/device.ts +206 -9
  800. package/src/types/params.ts +9 -2
  801. package/src/types/settings.ts +37 -25
  802. package/src/utils/assets.ts +4 -1
  803. package/src/utils/deviceFeaturesCompat.ts +196 -0
  804. package/src/utils/deviceFeaturesUtils.ts +34 -14
  805. package/src/utils/deviceInfoUtils.ts +37 -70
  806. package/src/utils/deviceSettings.ts +181 -39
  807. package/src/utils/deviceVersionUtils.ts +25 -44
  808. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  809. package/src/utils/homescreen.ts +37 -7
  810. package/src/utils/index.ts +26 -7
  811. package/src/utils/networkUtils.ts +274 -16
  812. package/src/utils/pro2Nft.ts +165 -0
  813. package/src/utils/pro2Wallpaper.ts +241 -26
  814. package/src/utils/tracing.ts +3 -1
  815. package/src/utils/uiProgressThrottle.ts +63 -0
  816. package/tsconfig.type-tests.json +12 -0
  817. package/__tests__/RequestQueue.test.ts +0 -34
  818. package/dist/api/GetDeviceInfo.d.ts +0 -9
  819. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  820. package/dist/api/firmware/progressThrottle.d.ts +0 -3
  821. package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
  822. package/dist/api/protocol-v2/DeviceSessionOpen.d.ts +0 -28
  823. package/dist/api/protocol-v2/DeviceSessionOpen.d.ts.map +0 -1
  824. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts +0 -6
  825. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts.map +0 -1
  826. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts +0 -16
  827. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts.map +0 -1
  828. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts +0 -12
  829. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts.map +0 -1
  830. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -22
  831. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  832. package/dist/protocols/protocol-v2/lockedError.d.ts +0 -2
  833. package/dist/protocols/protocol-v2/lockedError.d.ts.map +0 -1
  834. package/dist/protocols/protocol-v2/unlockRetry.d.ts +0 -11
  835. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +0 -1
  836. package/dist/types/api/getDeviceInfo.d.ts +0 -88
  837. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  838. package/src/api/GetDeviceInfo.ts +0 -152
  839. package/src/api/firmware/progressThrottle.ts +0 -44
  840. package/src/api/protocol-v2/DeviceSessionOpen.ts +0 -100
  841. package/src/api/protocol-v2/DeviceSettingsGet.ts +0 -16
  842. package/src/api/protocol-v2/DeviceSettingsPageShow.ts +0 -67
  843. package/src/api/protocol-v2/DeviceSettingsSet.ts +0 -49
  844. package/src/deviceProfile/buildDeviceProfile.ts +0 -370
  845. package/src/protocols/protocol-v2/lockedError.ts +0 -10
  846. package/src/protocols/protocol-v2/unlockRetry.ts +0 -76
  847. package/src/types/api/getDeviceInfo.ts +0 -106
@@ -30,11 +30,12 @@ export const getSupportProtocolV1MessageSchema = (
30
30
  const currentDeviceVersion = getDeviceFirmwareVersion(features).join('.');
31
31
  const deviceType = getDeviceType(features);
32
32
 
33
- if (
34
- features.bootloaderMode === true &&
35
- features.firmwarePresent === false &&
36
- DeviceModelToTypes.model_mini.includes(deviceType)
37
- ) {
33
+ // In bootloader mode the major/minor/patch fields carry the bootloader version, not the
34
+ // firmware version; normalizing them would mis-route to the legacy schema (e.g. 2.x < 3.3.0).
35
+ // The legacy getDeviceFirmwareVersion returned 0.0.0 here and landed on v1CurrentSchema, so
36
+ // force v1CurrentSchema for every bootloader device, including in-place upgrades on
37
+ // Classic1s/Touch/Pro where firmware is still present.
38
+ if (features.bootloaderMode === true) {
38
39
  return {
39
40
  messages: DataManager.messages.v1CurrentSchema,
40
41
  protocolV1MessageSchema: 'v1CurrentSchema',
@@ -66,11 +67,16 @@ export const getSupportProtocolV1MessageSchema = (
66
67
  };
67
68
  };
68
69
 
69
- export const supportInputPinOnSoftware = (features: Features): SupportFeatureType => {
70
+ export const supportInputPinOnSoftware = (features?: Features): SupportFeatureType => {
70
71
  if (!features) return { support: false };
71
72
 
72
73
  const deviceType = getDeviceType(features);
73
- if (deviceType === EDeviceType.Touch || deviceType === EDeviceType.Pro) {
74
+ if (
75
+ deviceType === EDeviceType.Touch ||
76
+ deviceType === EDeviceType.Pro ||
77
+ deviceType === EDeviceType.Pro2 ||
78
+ deviceType === EDeviceType.Neo
79
+ ) {
74
80
  return { support: false };
75
81
  }
76
82
 
@@ -85,7 +91,8 @@ export const supportNewPassphrase = (features?: Features): SupportFeatureType =>
85
91
  if (
86
92
  deviceType === EDeviceType.Touch ||
87
93
  deviceType === EDeviceType.Pro ||
88
- deviceType === EDeviceType.Pro2
94
+ deviceType === EDeviceType.Pro2 ||
95
+ deviceType === EDeviceType.Neo
89
96
  ) {
90
97
  return { support: true };
91
98
  }
@@ -101,6 +108,8 @@ export const getPassphraseStateWithRefreshDeviceInfo = async (
101
108
  expectPassphraseState?: string;
102
109
  onlyMainPin?: boolean;
103
110
  initSession?: boolean;
111
+ deriveCardano?: boolean;
112
+ rejectAttachPinForMainWallet?: boolean;
104
113
  }
105
114
  ) => {
106
115
  if (device.isProtocolV2()) {
@@ -116,6 +125,8 @@ export const getPassphraseStateWithRefreshDeviceInfo = async (
116
125
  initSession: options?.initSession,
117
126
  expectedPassphraseState: options?.expectPassphraseState,
118
127
  onlyMainPin: options?.onlyMainPin,
128
+ deriveCardano: options?.deriveCardano,
129
+ rejectAttachPinForMainWallet: options?.rejectAttachPinForMainWallet,
119
130
  });
120
131
  }
121
132
 
@@ -134,7 +145,8 @@ export const getPassphraseStateWithRefreshDeviceInfo = async (
134
145
  const isModeT =
135
146
  deviceType === EDeviceType.Touch ||
136
147
  deviceType === EDeviceType.Pro ||
137
- deviceType === EDeviceType.Pro2;
148
+ deviceType === EDeviceType.Pro2 ||
149
+ deviceType === EDeviceType.Neo;
138
150
 
139
151
  // 如果可以获取到 passphraseState,但是设备 features 显示设备未开启 passphrase,需要刷新设备状态
140
152
  // if passphraseState can be obtained, but the device features show that the device has not enabled passphrase, the device status needs to be refreshed
@@ -151,12 +163,16 @@ export const getPassphraseStateWithRefreshDeviceInfo = async (
151
163
 
152
164
  // Attach to pin try to fix internal state
153
165
  const deviceId = device.getCurrentDeviceId();
166
+ let existingSessionId: string | null | undefined;
167
+ if (!options?.initSession && typeof device.getInternalState === 'function') {
168
+ existingSessionId = device.getInternalState();
169
+ }
154
170
  device.updateInternalState(
155
171
  device.getCurrentPassphraseProtection() ?? false,
156
172
  passphraseState,
157
173
  deviceId,
158
174
  newSession,
159
- options?.initSession ? null : device.features?.sessionId
175
+ options?.initSession ? null : existingSessionId
160
176
  );
161
177
 
162
178
  return {
@@ -166,7 +182,7 @@ export const getPassphraseStateWithRefreshDeviceInfo = async (
166
182
  };
167
183
  };
168
184
 
169
- // 仅适用于 Protocol V1 Pro:Pro2 走独立版本线,不能套用 4.15.0 门槛
185
+ // Applies to Protocol V1 Pro only; Pro2 has an independent version line.
170
186
  const supportProSeriesAttachPinPassphrase = (deviceType: IDeviceType, firmwareVersion: string) =>
171
187
  deviceType === EDeviceType.Pro && semver.gte(firmwareVersion, '4.15.0');
172
188
 
@@ -176,6 +192,8 @@ export const getPassphraseState = async (
176
192
  expectPassphraseState?: string;
177
193
  onlyMainPin?: boolean;
178
194
  initSession?: boolean;
195
+ deriveCardano?: boolean;
196
+ rejectAttachPinForMainWallet?: boolean;
179
197
  }
180
198
  ): Promise<{
181
199
  passphraseState: string | undefined;
@@ -184,7 +202,7 @@ export const getPassphraseState = async (
184
202
  }> => {
185
203
  const { features, commands } = device;
186
204
 
187
- // 设备尚未建立任何状态时无法判定,保持旧的空返回语义
205
+ // Preserve legacy empty-result semantics until the device has established state.
188
206
  if (!features)
189
207
  return { passphraseState: undefined, newSession: undefined, unlockedAttachPin: undefined };
190
208
 
@@ -196,6 +214,8 @@ export const getPassphraseState = async (
196
214
  initSession: options?.initSession,
197
215
  expectedPassphraseState: options?.expectPassphraseState,
198
216
  onlyMainPin: options?.onlyMainPin,
217
+ deriveCardano: options?.deriveCardano,
218
+ rejectAttachPinForMainWallet: options?.rejectAttachPinForMainWallet,
199
219
  });
200
220
  }
201
221
 
@@ -308,7 +328,7 @@ export const getFirmwareUpdateField = ({
308
328
  if (deviceType === EDeviceType.Pro) {
309
329
  return latestFirmwareField;
310
330
  }
311
- if (deviceType === EDeviceType.Pro2) {
331
+ if (deviceType === EDeviceType.Pro2 || deviceType === EDeviceType.Neo) {
312
332
  return 'firmware-v1';
313
333
  }
314
334
  return 'firmware';
@@ -354,7 +374,7 @@ export const getFirmwareUpdateFieldArray = (
354
374
  return ['firmware-v8'];
355
375
  }
356
376
 
357
- if (deviceType === 'pro2') {
377
+ if (deviceType === 'pro2' || deviceType === 'neo') {
358
378
  return ['firmware-v1'];
359
379
  }
360
380
 
@@ -1,51 +1,21 @@
1
- import { isEmpty } from 'lodash';
2
- import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
3
- import { Enum_Capability } from '@onekeyfe/hd-transport';
1
+ import { EDeviceType } from '@onekeyfe/hd-shared';
4
2
 
5
3
  import { DeviceModelToTypes } from '../types';
6
- import { existCapability } from './capabilitieUtils';
4
+ import {
5
+ resolveDeviceBleName,
6
+ resolveDeviceFirmwareType,
7
+ resolveDeviceSerialNo,
8
+ resolveDeviceType,
9
+ } from './deviceFeaturesCompat';
7
10
 
8
- import type { Features, IDeviceModel, IDeviceType, IVersionRange } from '../types';
11
+ import type { IDeviceModel, IDeviceType, IVersionRange } from '../types';
12
+ import type { DeviceFeaturesInput } from './deviceFeaturesCompat';
9
13
 
10
14
  /**
11
15
  * get device type by features
12
16
  */
13
- export const getDeviceType = (features?: Features): IDeviceType => {
14
- if (!features || typeof features !== 'object') {
15
- return EDeviceType.Unknown;
16
- }
17
- if (features.deviceType) {
18
- return features.deviceType;
19
- }
20
-
21
- if (features.model === EDeviceType.Pro2 || features.model === 'pro2') {
22
- return EDeviceType.Pro2;
23
- }
24
-
25
- // low version hardware
26
- // onekey_serial_no > onekey_serial > serial_no
27
- const serialNo = getDeviceUUID(features);
28
-
29
- // not exist serialNo, bootloader mode, model 1 is classic
30
- if (isEmpty(serialNo) && features.bootloaderMode === true && features.model === '1') {
31
- return EDeviceType.Classic;
32
- }
33
-
34
- if (isEmpty(serialNo)) return EDeviceType.Unknown;
35
-
36
- const miniFlag = serialNo.slice(0, 2);
37
- // By May 2021, the miniFlag is 'bixin' for all classic devices
38
- if (miniFlag.toLowerCase() === 'bi') return EDeviceType.Classic;
39
- if (miniFlag.toLowerCase() === 'cl') return EDeviceType.Classic;
40
- if (miniFlag.toLowerCase() === 'cp') return EDeviceType.ClassicPure;
41
- if (miniFlag.toLowerCase() === 'mi') return EDeviceType.Mini;
42
- if (miniFlag.toLowerCase() === 'tc') return EDeviceType.Touch;
43
- if (miniFlag.toLowerCase() === 'pr') return EDeviceType.Pro;
44
- if (miniFlag.toLowerCase() === 'p2') return EDeviceType.Pro2;
45
-
46
- // unknown device
47
- return EDeviceType.Unknown;
48
- };
17
+ export const getDeviceType = (features?: DeviceFeaturesInput): IDeviceType =>
18
+ resolveDeviceType(features);
49
19
 
50
20
  /**
51
21
  * get device type by ble name
@@ -60,7 +30,15 @@ export const getDeviceTypeByBleName = (name?: string): IDeviceType => {
60
30
  if (/^T/i.test(name)) return EDeviceType.Touch;
61
31
  if (/^Touch/i.test(name)) return EDeviceType.Touch;
62
32
 
63
- if (/\bPro\s*2\b/i.test(name) || /^Pro2/i.test(name)) return EDeviceType.Pro2;
33
+ const compactName = name.replace(/[\s-]/g, '');
34
+ // Require a 4-hex Pro2 suffix in the compact form. A bare `^Pro2` prefix
35
+ // would also match OneKey Pro names such as "Pro 22D8" / "Pro 2D8F".
36
+ if (/\bPro\s*2\b/i.test(name) || /^(?:OneKey)?Pro2[a-f0-9]{4}$/i.test(compactName)) {
37
+ return EDeviceType.Pro2;
38
+ }
39
+ if (/\bNeo\b/i.test(name) || /^Neo/i.test(name) || /^(?:OneKey)?Neo/i.test(compactName)) {
40
+ return EDeviceType.Neo;
41
+ }
64
42
  if (/\bPro\b/i.test(name) || /^Pro/i.test(name)) return EDeviceType.Pro;
65
43
 
66
44
  return EDeviceType.Unknown;
@@ -70,33 +48,35 @@ export const getDeviceTypeByBleName = (name?: string): IDeviceType => {
70
48
  * Get Connected Device ble name by features
71
49
  * @returns
72
50
  */
73
- export const getDeviceBleName = (features?: Features): string | null => {
74
- if (features == null) return null;
75
- return features.bleName || null;
76
- };
51
+ export const getDeviceBleName = (features?: DeviceFeaturesInput): string | null =>
52
+ resolveDeviceBleName(features);
77
53
 
78
54
  /**
79
- * Get Connected Device UUID by features
55
+ * Get Connected Device serial number by features
80
56
  */
81
- export const getDeviceUUID = (features: Features) => {
82
- return features.serialNo ?? '';
83
- };
57
+ export const getDeviceSerialNo = (features?: DeviceFeaturesInput): string =>
58
+ resolveDeviceSerialNo(features);
59
+
60
+ /**
61
+ * @deprecated Use getDeviceSerialNo instead.
62
+ */
63
+ export const getDeviceUUID = getDeviceSerialNo;
84
64
 
85
65
  /**
86
66
  * Get Connected Device label by features
87
67
  */
88
- export const getDeviceLabel = (features?: Features) => {
68
+ export const getDeviceLabel = (features?: DeviceFeaturesInput) => {
89
69
  if (!features) return null;
90
70
 
91
71
  const deviceType = getDeviceType(features);
92
72
  if (deviceType == null) return null;
93
73
 
94
- if (typeof features.label === 'string' && !isEmpty(features.label)) {
74
+ if ('label' in features && typeof features.label === 'string' && features.label.length > 0) {
95
75
  return features.label;
96
76
  }
97
77
 
98
78
  const bleName = getDeviceBleName(features);
99
- if (!isEmpty(bleName)) return bleName;
79
+ if (bleName) return bleName;
100
80
 
101
81
  if (deviceType === EDeviceType.ClassicPure) {
102
82
  return 'OneKey Classic 1S';
@@ -110,7 +90,7 @@ export const getDeviceLabel = (features?: Features) => {
110
90
  * Type has a higher priority than Model
111
91
  */
112
92
  export const getMethodVersionRange = (
113
- features: Features | undefined,
93
+ features: DeviceFeaturesInput | undefined,
114
94
  getVersionRange: (deviceModel: IDeviceType | IDeviceModel) => IVersionRange | undefined
115
95
  ): IVersionRange | undefined => {
116
96
  const deviceType = getDeviceType(features);
@@ -121,6 +101,7 @@ export const getMethodVersionRange = (
121
101
  }
122
102
 
123
103
  const modelFallbacks: IDeviceModel[] = [
104
+ 'model_pro2',
124
105
  'model_classic1s',
125
106
  'model_classic',
126
107
  'model_mini',
@@ -138,19 +119,5 @@ export const getMethodVersionRange = (
138
119
  return undefined;
139
120
  };
140
121
 
141
- export const isMethodVersionRangeUnsupported = (versionRange?: IVersionRange): boolean =>
142
- versionRange?.unsupported === true;
143
-
144
- export const getFirmwareType = (features: Features | undefined) => {
145
- if (!features) {
146
- return EFirmwareType.Universal;
147
- }
148
- if (features.firmwareType) {
149
- return features.firmwareType;
150
- }
151
- // old firmware
152
- return features?.capabilities?.length > 0 &&
153
- !existCapability(features, Enum_Capability.Capability_Bitcoin_like)
154
- ? EFirmwareType.BitcoinOnly
155
- : EFirmwareType.Universal;
156
- };
122
+ export const getFirmwareType = (features?: DeviceFeaturesInput) =>
123
+ resolveDeviceFirmwareType(features);
@@ -1,6 +1,59 @@
1
1
  import { EDeviceType } from '@onekeyfe/hd-shared';
2
+ import { Enum_SafetyCheckLevel } from '@onekeyfe/hd-transport';
2
3
 
3
4
  import type { IDeviceType } from '../types';
5
+ import type { DeviceSettingsParams } from '../types/api/deviceSettings';
6
+ import type { SafetyCheckLevel } from '@onekeyfe/hd-transport';
7
+
8
+ export type DeviceSettingsProtocol = 'V1' | 'V2';
9
+ export type DeviceSettingsField = keyof DeviceSettingsParams;
10
+
11
+ export const DEVICE_SETTINGS_SHARED_FIELDS = [
12
+ 'language',
13
+ 'label',
14
+ 'usePassphrase',
15
+ 'autoLockDelayMs',
16
+ 'autoShutdownDelayMs',
17
+ 'hapticFeedback',
18
+ 'bluetoothEnabled',
19
+ ] as const satisfies readonly DeviceSettingsField[];
20
+
21
+ export const DEVICE_SETTINGS_V1_ONLY_FIELDS = [
22
+ 'homescreen',
23
+ 'passphraseSource',
24
+ 'displayRotation',
25
+ 'passphraseAlwaysOnDevice',
26
+ 'safetyChecks',
27
+ 'experimentalFeatures',
28
+ 'changeBrightness',
29
+ ] as const satisfies readonly DeviceSettingsField[];
30
+
31
+ export const DEVICE_SETTINGS_V2_ONLY_FIELDS = [
32
+ 'brightness',
33
+ 'airgapMode',
34
+ 'animationEnabled',
35
+ 'tapToWake',
36
+ 'deviceNameDisplayEnabled',
37
+ 'fidoEnabled',
38
+ 'usbLockEnabled',
39
+ 'randomKeypad',
40
+ ] as const satisfies readonly DeviceSettingsField[];
41
+
42
+ export const DEVICE_SETTINGS_NEVER_TIMEOUT_MS = 0x10000000;
43
+ // Keep the protocol-specific name for compatibility with existing SDK consumers.
44
+ export const PROTOCOL_V2_NEVER_TIMEOUT_MS = DEVICE_SETTINGS_NEVER_TIMEOUT_MS;
45
+
46
+ const NEVER_TIMEOUT_MS_BY_PROTOCOL: Record<DeviceSettingsProtocol, number> = {
47
+ V1: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
48
+ V2: PROTOCOL_V2_NEVER_TIMEOUT_MS,
49
+ };
50
+
51
+ export const normalizeSafetyCheckLevel = (
52
+ value: SafetyCheckLevel | null | undefined
53
+ ): Enum_SafetyCheckLevel | null | undefined => {
54
+ if (typeof value === 'number' || value === null || value === undefined) return value;
55
+ return Enum_SafetyCheckLevel[value];
56
+ };
4
57
 
5
58
  export const LANGUAGE_LABELS = {
6
59
  en: 'English',
@@ -19,6 +72,50 @@ export const LANGUAGE_LABELS = {
19
72
  export type LanguageKey = keyof typeof LANGUAGE_LABELS;
20
73
  export type LanguageOption = { code: LanguageKey; label: (typeof LANGUAGE_LABELS)[LanguageKey] };
21
74
 
75
+ export const PROTOCOL_V2_LANGUAGE_BY_KEY: Record<LanguageKey, string> = {
76
+ en: 'en-Latn-US',
77
+ zh_cn: 'zh-Hans-CN',
78
+ zh_hk: 'zh-Hant-HK',
79
+ ja: 'ja-Jpan-JP',
80
+ ko: 'ko-Kore-KR',
81
+ fr: 'fr-Latn-FR',
82
+ de: 'de-Latn-DE',
83
+ ru: 'ru-Cyrl-RU',
84
+ es: 'es-Latn-ES',
85
+ it: 'it-Latn-IT',
86
+ pt_br: 'pt-Latn-BR',
87
+ };
88
+
89
+ export const mapLanguageToProtocolV2 = (language?: string) =>
90
+ language ? PROTOCOL_V2_LANGUAGE_BY_KEY[language as LanguageKey] ?? language : undefined;
91
+
92
+ const PROTOCOL_V2_LANGUAGE_KEY_BY_TAG = Object.fromEntries(
93
+ Object.entries(PROTOCOL_V2_LANGUAGE_BY_KEY).map(([key, tag]) => [tag, key])
94
+ ) as Record<string, LanguageKey>;
95
+
96
+ export const mapLanguageFromProtocolV2 = (language?: string) =>
97
+ language ? PROTOCOL_V2_LANGUAGE_KEY_BY_TAG[language] ?? language : undefined;
98
+
99
+ const PRO2_LANGUAGE_OPTIONS = [
100
+ { code: 'en', label: 'English' },
101
+ { code: 'zh_cn', label: '简体中文' },
102
+ { code: 'zh_hk', label: '繁體中文(香港)' },
103
+ { code: 'zh-Hant-TW', label: '繁體中文(台灣)' },
104
+ { code: 'ja', label: '日本語' },
105
+ { code: 'ko', label: '한국어' },
106
+ { code: 'fr', label: 'Français' },
107
+ { code: 'de', label: 'Deutsch' },
108
+ { code: 'ru', label: 'Русский' },
109
+ { code: 'es', label: 'Español' },
110
+ { code: 'it', label: 'Italiano' },
111
+ { code: 'pt_br', label: 'Portuguese (Brazil)' },
112
+ { code: 'vi-Latn-VN', label: 'Tiếng Việt' },
113
+ { code: 'tr-Latn-TR', label: 'Türkçe' },
114
+ { code: 'id-Latn-ID', label: 'Bahasa Indonesia' },
115
+ { code: 'fil-Latn-PH', label: 'Filipino' },
116
+ { code: 'uk-Cyrl-UA', label: 'Українська' },
117
+ ] as const;
118
+
22
119
  export const getLanguageConfig = (deviceType: IDeviceType): Record<string, string>[] => {
23
120
  let keys: LanguageKey[] = [];
24
121
 
@@ -36,6 +133,9 @@ export const getLanguageConfig = (deviceType: IDeviceType): Record<string, strin
36
133
  case EDeviceType.Pro:
37
134
  keys = Object.keys(LANGUAGE_LABELS) as LanguageKey[];
38
135
  break;
136
+ case EDeviceType.Pro2:
137
+ case EDeviceType.Neo:
138
+ return PRO2_LANGUAGE_OPTIONS.map(option => ({ ...option }));
39
139
  default:
40
140
  keys = [];
41
141
  break;
@@ -44,66 +144,108 @@ export const getLanguageConfig = (deviceType: IDeviceType): Record<string, strin
44
144
  return keys.map(key => ({ code: key, label: LANGUAGE_LABELS[key] }));
45
145
  };
46
146
 
47
- export type DurationParts = {
48
- seconds: number;
49
- minute: number;
50
- hour: number;
51
- day: number;
147
+ export type DeviceSettingsDurationOption = {
148
+ label: string;
149
+ valueMs: number;
150
+ };
151
+
152
+ export type DeviceSettingsValueOption<T> = {
153
+ label: string;
154
+ value: T;
155
+ };
156
+
157
+ const durationOption = (valueMs: number): DeviceSettingsDurationOption => {
158
+ if (valueMs === DEVICE_SETTINGS_NEVER_TIMEOUT_MS) {
159
+ return { label: 'Never', valueMs };
160
+ }
161
+ if (valueMs < 60_000) {
162
+ return { label: `${valueMs / 1000} seconds`, valueMs };
163
+ }
164
+ const minutes = valueMs / 60_000;
165
+ return { label: `${minutes} ${minutes === 1 ? 'minute' : 'minutes'}`, valueMs };
52
166
  };
53
167
 
54
- export const getAutoLockOptions = (_deviceType: IDeviceType): DurationParts[] => {
55
- switch (_deviceType) {
168
+ const withNever = (
169
+ values: readonly number[],
170
+ protocol: DeviceSettingsProtocol
171
+ ): DeviceSettingsDurationOption[] =>
172
+ [...values, NEVER_TIMEOUT_MS_BY_PROTOCOL[protocol]].map(durationOption);
173
+
174
+ export const getAutoLockOptions = (
175
+ deviceType: IDeviceType,
176
+ protocol: DeviceSettingsProtocol
177
+ ): DeviceSettingsDurationOption[] => {
178
+ switch (deviceType) {
56
179
  case EDeviceType.Mini:
57
180
  case EDeviceType.Classic:
58
181
  case EDeviceType.Classic1s:
59
182
  case EDeviceType.ClassicPure:
60
- return [
61
- { seconds: 0, minute: 1, hour: 0, day: 0 },
62
- { seconds: 0, minute: 2, hour: 0, day: 0 },
63
- { seconds: 0, minute: 5, hour: 0, day: 0 },
64
- { seconds: 0, minute: 10, hour: 0, day: 0 },
65
- { seconds: 0, minute: 0, hour: 0, day: 0 },
66
- ];
183
+ return withNever([60_000, 120_000, 300_000, 600_000], protocol);
67
184
  case EDeviceType.Touch:
68
185
  case EDeviceType.Pro:
69
- return [
70
- { seconds: 30, minute: 0, hour: 0, day: 0 },
71
- { seconds: 0, minute: 1, hour: 0, day: 0 },
72
- { seconds: 0, minute: 2, hour: 0, day: 0 },
73
- { seconds: 0, minute: 5, hour: 0, day: 0 },
74
- { seconds: 0, minute: 10, hour: 0, day: 0 },
75
- { seconds: 0, minute: 30, hour: 0, day: 0 },
76
- { seconds: 0, minute: 0, hour: 0, day: 0 },
77
- ];
186
+ case EDeviceType.Pro2:
187
+ case EDeviceType.Neo:
188
+ return withNever([30_000, 60_000, 120_000, 300_000, 600_000, 1_800_000], protocol);
78
189
  default:
79
190
  return [];
80
191
  }
81
192
  };
82
193
 
83
- export const getAutoShutDownOptions = (_deviceType: IDeviceType): DurationParts[] => {
84
- switch (_deviceType) {
194
+ export const getAutoShutDownOptions = (
195
+ deviceType: IDeviceType,
196
+ protocol: DeviceSettingsProtocol
197
+ ): DeviceSettingsDurationOption[] => {
198
+ switch (deviceType) {
85
199
  case EDeviceType.Mini:
86
200
  return [];
87
201
  case EDeviceType.Classic:
88
202
  case EDeviceType.Classic1s:
89
203
  case EDeviceType.ClassicPure:
90
- return [
91
- { seconds: 0, minute: 1, hour: 0, day: 0 },
92
- { seconds: 0, minute: 3, hour: 0, day: 0 },
93
- { seconds: 0, minute: 5, hour: 0, day: 0 },
94
- { seconds: 0, minute: 10, hour: 0, day: 0 },
95
- { seconds: 0, minute: 0, hour: 0, day: 0 },
96
- ];
204
+ return withNever([60_000, 180_000, 300_000, 600_000], protocol);
97
205
  case EDeviceType.Touch:
98
206
  case EDeviceType.Pro:
99
- return [
100
- { seconds: 0, minute: 1, hour: 0, day: 0 },
101
- { seconds: 0, minute: 2, hour: 0, day: 0 },
102
- { seconds: 0, minute: 5, hour: 0, day: 0 },
103
- { seconds: 0, minute: 10, hour: 0, day: 0 },
104
- { seconds: 0, minute: 0, hour: 0, day: 0 },
105
- ];
207
+ return withNever([60_000, 120_000, 300_000, 600_000], protocol);
208
+ case EDeviceType.Pro2:
209
+ case EDeviceType.Neo:
210
+ return withNever([60_000, 120_000, 300_000, 600_000], protocol);
106
211
  default:
107
212
  return [];
108
213
  }
109
214
  };
215
+
216
+ export type DeviceSettingsCapabilities = {
217
+ protocol: DeviceSettingsProtocol;
218
+ supportedFields: readonly DeviceSettingsField[];
219
+ languageOptions: ReadonlyArray<Record<string, string>>;
220
+ autoLockDelayOptions: readonly DeviceSettingsDurationOption[];
221
+ autoShutdownDelayOptions: readonly DeviceSettingsDurationOption[];
222
+ ranges: {
223
+ brightness?: { min: number; max: number };
224
+ };
225
+ safetyCheckOptions: ReadonlyArray<DeviceSettingsValueOption<Enum_SafetyCheckLevel>>;
226
+ onDeviceConfirmationFields: readonly DeviceSettingsField[];
227
+ };
228
+
229
+ export const getDeviceSettingsCapabilities = (
230
+ deviceType: IDeviceType,
231
+ protocol: DeviceSettingsProtocol
232
+ ): DeviceSettingsCapabilities => ({
233
+ protocol,
234
+ supportedFields:
235
+ protocol === 'V2'
236
+ ? [...DEVICE_SETTINGS_SHARED_FIELDS, ...DEVICE_SETTINGS_V2_ONLY_FIELDS]
237
+ : [...DEVICE_SETTINGS_SHARED_FIELDS, ...DEVICE_SETTINGS_V1_ONLY_FIELDS],
238
+ languageOptions: getLanguageConfig(deviceType),
239
+ autoLockDelayOptions: getAutoLockOptions(deviceType, protocol),
240
+ autoShutdownDelayOptions: getAutoShutDownOptions(deviceType, protocol),
241
+ ranges: protocol === 'V2' ? { brightness: { min: 10, max: 100 } } : {},
242
+ safetyCheckOptions:
243
+ protocol === 'V1'
244
+ ? [
245
+ { label: 'Strict', value: Enum_SafetyCheckLevel.Strict },
246
+ { label: 'Prompt Always', value: Enum_SafetyCheckLevel.PromptAlways },
247
+ { label: 'Prompt Temporarily', value: Enum_SafetyCheckLevel.PromptTemporarily },
248
+ ]
249
+ : [],
250
+ onDeviceConfirmationFields: protocol === 'V2' ? ['usePassphrase', 'airgapMode'] : [],
251
+ });
@@ -1,61 +1,42 @@
1
1
  import semver from 'semver';
2
2
 
3
- import type { Features, IVersionArray } from '../types';
3
+ import {
4
+ resolveDeviceBleFirmwareVersion,
5
+ resolveDeviceBoardVersion,
6
+ resolveDeviceBootloaderVersion,
7
+ resolveDeviceFirmwareVersion,
8
+ } from './deviceFeaturesCompat';
4
9
 
5
- /**
6
- * Get Connected Device version by features
7
- */
8
- export const getDeviceFirmwareVersion = (features: Features | undefined): IVersionArray => {
9
- if (!features) return [0, 0, 0];
10
+ import type { IVersionArray } from '../types';
11
+ import type { DeviceFeaturesInput } from './deviceFeaturesCompat';
10
12
 
11
- if (features.firmwareVersion && semver.valid(features.firmwareVersion)) {
12
- return features.firmwareVersion.split('.').map(Number) as IVersionArray;
13
- }
13
+ const EMPTY_VERSION: IVersionArray = [0, 0, 0];
14
14
 
15
- return [0, 0, 0];
15
+ export const parseDeviceVersion = (version?: string | null): IVersionArray => {
16
+ const parsed = version ? semver.parse(version) : null;
17
+ return parsed ? [parsed.major, parsed.minor, parsed.patch] : [...EMPTY_VERSION];
16
18
  };
17
19
 
18
20
  /**
19
- * Get Connected Device bluetooth firmware version by features
21
+ * Get Connected Device version by features
20
22
  */
21
- export const getDeviceBLEFirmwareVersion = (features: Features): IVersionArray => {
22
- const bleVer = features?.bleVersion;
23
-
24
- if (!bleVer) {
25
- return [0, 0, 0];
26
- }
27
-
28
- if (!semver.valid(bleVer)) {
29
- return [0, 0, 0];
30
- }
31
-
32
- if (bleVer) {
33
- return bleVer.split('.').map(Number) as IVersionArray;
34
- }
35
- return [0, 0, 0];
36
- };
23
+ export const getDeviceFirmwareVersion = (features?: DeviceFeaturesInput): IVersionArray =>
24
+ parseDeviceVersion(resolveDeviceFirmwareVersion(features));
37
25
 
38
26
  /**
39
27
  * Get Connected Device bootloader version by features
40
28
  */
41
- export const getDeviceBootloaderVersion = (features: Features | undefined): IVersionArray => {
42
- if (!features) return [0, 0, 0];
43
-
44
- // classic1s 3.5.0 pro 4.6.0
45
- if (features.bootloaderVersion && semver.valid(features.bootloaderVersion)) {
46
- return features.bootloaderVersion.split('.').map(Number) as IVersionArray;
47
- }
48
-
49
- return [0, 0, 0];
50
- };
29
+ export const getDeviceBootloaderVersion = (features?: DeviceFeaturesInput): IVersionArray =>
30
+ parseDeviceVersion(resolveDeviceBootloaderVersion(features));
51
31
 
52
32
  /**
53
- * Get Connected Device boardloader version by features
33
+ * Get Connected Device boardloader/romloader version by features
54
34
  */
55
- export const getDeviceBoardloaderVersion = (features: Features): IVersionArray => {
56
- if (features?.boardVersion && semver.valid(features.boardVersion)) {
57
- return features.boardVersion.split('.').map(Number) as IVersionArray;
58
- }
35
+ export const getDeviceBoardloaderVersion = (features?: DeviceFeaturesInput): IVersionArray =>
36
+ parseDeviceVersion(resolveDeviceBoardVersion(features));
59
37
 
60
- return [0, 0, 0];
61
- };
38
+ /**
39
+ * Get Connected Device bluetooth firmware version by features
40
+ */
41
+ export const getDeviceBLEFirmwareVersion = (features?: DeviceFeaturesInput): IVersionArray =>
42
+ parseDeviceVersion(resolveDeviceBleFirmwareVersion(features));
@@ -1,11 +1,11 @@
1
- import { getDeviceType, getDeviceUUID } from './deviceInfoUtils';
1
+ import { getDeviceSerialNo, getDeviceType } from './deviceInfoUtils';
2
2
 
3
3
  import type { Features } from '../types';
4
4
 
5
5
  /**
6
6
  * 检测故障固件设备
7
7
  * 检测规则:
8
- * - 序列号范围:21032200001 21032201500
8
+ * - Serial number range: 21032200001 through 21032201500
9
9
  * - SE版本为 1.1.0.2
10
10
  *
11
11
  * 对齐之前版本的检测逻辑
@@ -27,7 +27,7 @@ export const findDefectiveBatchDevice = (features: Features) => {
27
27
  */
28
28
  export const getDefectiveDeviceInfo = (features: Features) => {
29
29
  if (!findDefectiveBatchDevice(features)) return null;
30
- const serialNo = getDeviceUUID(features);
30
+ const serialNo = getDeviceSerialNo(features);
31
31
  const deviceType = getDeviceType(features);
32
32
  const { seVersion } = features;
33
33