@onekeyfe/hd-core 1.2.0-alpha.5 → 1.2.0-alpha.50

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 (727) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +155 -0
  2. package/__tests__/DeviceCommands.test.ts +517 -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 +390 -0
  6. package/__tests__/connectSettings.test.ts +19 -0
  7. package/__tests__/core-dispose.test.ts +34 -0
  8. package/__tests__/core-error-output.test.ts +39 -0
  9. package/__tests__/device-features-state.test.ts +78 -0
  10. package/__tests__/device-identity.test.ts +52 -0
  11. package/__tests__/device-lifecycle-events.test.ts +351 -0
  12. package/__tests__/device-pool-state.test.ts +144 -0
  13. package/__tests__/device-settings.test.ts +416 -0
  14. package/__tests__/device-state-contract.test.ts +27 -0
  15. package/__tests__/device-state-events.test.ts +286 -0
  16. package/__tests__/device-state-mapper.test.ts +261 -0
  17. package/__tests__/device-state-projector.test.ts +94 -0
  18. package/__tests__/device-state-store.test.ts +82 -0
  19. package/__tests__/device-utils.test.ts +107 -0
  20. package/__tests__/device-wallet-session-store.test.ts +478 -0
  21. package/__tests__/deviceFeaturesUtils.test.ts +39 -0
  22. package/__tests__/deviceSettings.test.ts +103 -0
  23. package/__tests__/deviceUploadNft.test.ts +293 -0
  24. package/__tests__/evmLedgerLegacySafety.test.ts +12 -6
  25. package/__tests__/evmSignTransaction.test.ts +69 -0
  26. package/__tests__/evmSignTypedData.test.ts +80 -0
  27. package/__tests__/filesystemValidation.test.ts +53 -0
  28. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +402 -0
  29. package/__tests__/get-device-state.test.ts +578 -0
  30. package/__tests__/homescreen.test.ts +64 -0
  31. package/__tests__/kaspa-public-types.type-test.ts +16 -0
  32. package/__tests__/kaspa-use-tweak-pro2.test.ts +20 -0
  33. package/__tests__/kaspaSignTransaction.test.ts +601 -0
  34. package/__tests__/known-device-public-types.type-test.ts +3 -0
  35. package/__tests__/logBlockEvent.test.ts +128 -1
  36. package/__tests__/method-protocol-support.test.ts +132 -0
  37. package/__tests__/networkUtils.test.ts +406 -0
  38. package/__tests__/open-wallet-session-error-response.test.ts +43 -0
  39. package/__tests__/open-wallet-session.test.ts +1781 -0
  40. package/__tests__/pro2Nft.test.ts +108 -0
  41. package/__tests__/pro2Wallpaper.test.ts +39 -0
  42. package/__tests__/protocol-binding.test.ts +89 -0
  43. package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
  44. package/__tests__/protocol-v2-firmware-targets.test.ts +37 -0
  45. package/__tests__/protocol-v2-ping.test.ts +28 -0
  46. package/__tests__/protocol-v2-resources.test.ts +284 -0
  47. package/__tests__/protocol-v2-ui-lifecycle.test.ts +91 -0
  48. package/__tests__/protocol-v2-unlock-policy.test.ts +206 -0
  49. package/__tests__/protocol-v2.test.ts +6162 -2544
  50. package/__tests__/protocolV2FileWrite.test.ts +92 -0
  51. package/__tests__/protocolV2UiInteraction.test.ts +329 -0
  52. package/__tests__/public-device-state-api.test.ts +275 -0
  53. package/__tests__/public-pro2-api-boundary.test.ts +107 -0
  54. package/__tests__/refresh-device-state.test.ts +101 -0
  55. package/__tests__/request-context-logging.test.ts +16 -0
  56. package/__tests__/search-devices.test.ts +145 -0
  57. package/__tests__/tron-sign-message-init.test.ts +74 -0
  58. package/__tests__/uiProgressThrottle.test.ts +74 -0
  59. package/__tests__/uiPromiseRegistry.test.ts +86 -0
  60. package/dist/api/BaseMethod.d.ts +16 -1
  61. package/dist/api/BaseMethod.d.ts.map +1 -1
  62. package/dist/api/CheckAllFirmwareRelease.d.ts +24 -1
  63. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  64. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  65. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  66. package/dist/api/CipherKeyValue.d.ts +1 -0
  67. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  68. package/dist/api/ClearSessionCache.d.ts +9 -0
  69. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  70. package/dist/api/DetectDeviceConnectProtocol.d.ts +7 -0
  71. package/dist/api/DetectDeviceConnectProtocol.d.ts.map +1 -0
  72. package/dist/api/DirList.d.ts +1 -0
  73. package/dist/api/DirList.d.ts.map +1 -1
  74. package/dist/api/DirMake.d.ts +1 -0
  75. package/dist/api/DirMake.d.ts.map +1 -1
  76. package/dist/api/DirRemove.d.ts +1 -0
  77. package/dist/api/DirRemove.d.ts.map +1 -1
  78. package/dist/api/FileDelete.d.ts +1 -0
  79. package/dist/api/FileDelete.d.ts.map +1 -1
  80. package/dist/api/FileRead.d.ts +1 -0
  81. package/dist/api/FileRead.d.ts.map +1 -1
  82. package/dist/api/FileWrite.d.ts +2 -0
  83. package/dist/api/FileWrite.d.ts.map +1 -1
  84. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  85. package/dist/api/FirmwareUpdateV2.d.ts +2 -2
  86. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  87. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  88. package/dist/api/FirmwareUpdateV4.d.ts +24 -16
  89. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  90. package/dist/api/GetDeviceState.d.ts +8 -0
  91. package/dist/api/GetDeviceState.d.ts.map +1 -0
  92. package/dist/api/GetFeatures.d.ts +1 -1
  93. package/dist/api/GetFeatures.d.ts.map +1 -1
  94. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  95. package/dist/api/GetPassphraseState.d.ts +2 -6
  96. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  97. package/dist/api/OpenWalletSession.d.ts +8 -0
  98. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  99. package/dist/api/PathInfo.d.ts +1 -0
  100. package/dist/api/PathInfo.d.ts.map +1 -1
  101. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  102. package/dist/api/SearchDevices.d.ts +3 -0
  103. package/dist/api/SearchDevices.d.ts.map +1 -1
  104. package/dist/api/UploadPortfolio.d.ts +17 -0
  105. package/dist/api/UploadPortfolio.d.ts.map +1 -0
  106. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  107. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  108. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  109. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  110. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  111. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  112. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  113. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  114. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  115. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  116. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  117. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  118. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  119. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  120. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  121. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  122. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  123. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  124. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  125. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  126. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  127. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  128. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  129. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  130. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  131. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  132. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  133. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  134. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  135. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  136. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  137. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  138. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  139. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  140. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  141. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  142. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  143. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  144. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  145. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  146. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  147. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  148. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  149. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  150. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  151. package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
  152. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  153. package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
  154. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  155. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
  156. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  157. package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
  158. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  159. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  160. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  161. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  162. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  163. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  164. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  165. package/dist/api/device/DeviceCancel.d.ts +1 -0
  166. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  167. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  168. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  169. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  170. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  171. package/dist/api/device/DeviceLock.d.ts +1 -0
  172. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  173. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  174. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  175. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  176. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  177. package/dist/api/device/DeviceSettings.d.ts +1 -0
  178. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  179. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  180. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  181. package/dist/api/device/DeviceUnlock.d.ts +1 -0
  182. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  183. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  184. package/dist/api/device/DeviceWipe.d.ts +1 -0
  185. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  186. package/dist/api/device/PreInitialize.d.ts +1 -0
  187. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  188. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  189. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  190. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  191. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  192. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  193. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  194. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  195. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  196. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  197. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  198. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  199. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  200. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  201. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  202. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  203. package/dist/api/evm/protocol.d.ts +3 -0
  204. package/dist/api/evm/protocol.d.ts.map +1 -0
  205. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  206. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  207. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  208. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  209. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +0 -1
  210. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  211. package/dist/api/firmware/getBinary.d.ts +8 -4
  212. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  213. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  214. package/dist/api/helpers/filesystemValidation.d.ts +3 -0
  215. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
  216. package/dist/api/helpers/paramsValidator.d.ts +1 -0
  217. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  218. package/dist/api/helpers/protocolV2FileWrite.d.ts +35 -0
  219. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
  220. package/dist/api/index.d.ts +9 -25
  221. package/dist/api/index.d.ts.map +1 -1
  222. package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
  223. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  224. package/dist/api/kaspa/KaspaSignTransaction.d.ts +9 -1
  225. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  226. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  227. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  228. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  229. package/dist/api/near/NearGetAddress.d.ts +1 -0
  230. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  231. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  232. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  233. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  234. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  235. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  236. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  237. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  238. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  239. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  240. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  241. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  242. package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
  243. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  244. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  245. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  246. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  247. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  248. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  249. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  250. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  251. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  252. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  253. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  254. package/dist/api/polkadot/PolkadotGetAddress.d.ts +1 -0
  255. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  256. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  257. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  258. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  259. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  260. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  261. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  262. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -0
  263. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  264. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +1 -0
  265. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  266. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +7 -0
  267. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
  268. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +1 -1
  269. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  270. package/dist/api/protocol-v2/DeviceReboot.d.ts +1 -0
  271. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  272. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +7 -0
  273. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  274. package/dist/api/protocol-v2/DeviceUploadNft.d.ts +31 -0
  275. package/dist/api/protocol-v2/DeviceUploadNft.d.ts.map +1 -0
  276. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +27 -0
  277. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
  278. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  279. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  280. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  281. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  282. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  283. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  284. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  285. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  286. package/dist/api/protocol-v2/helpers.d.ts +1 -1
  287. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  288. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  289. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  290. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  291. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  292. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  293. package/dist/api/solana/SolSignMessage.d.ts +1 -0
  294. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  295. package/dist/api/solana/SolSignOffchainMessage.d.ts +1 -0
  296. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  297. package/dist/api/solana/SolSignTransaction.d.ts +1 -0
  298. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  299. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  300. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  301. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  302. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  303. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  304. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  305. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  306. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  307. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  308. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  309. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  310. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  311. package/dist/api/stellar/StellarSignTransaction.d.ts +1 -2
  312. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  313. package/dist/api/sui/SuiGetAddress.d.ts +1 -0
  314. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  315. package/dist/api/sui/SuiGetPublicKey.d.ts +1 -0
  316. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  317. package/dist/api/sui/SuiSignMessage.d.ts +1 -0
  318. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  319. package/dist/api/sui/SuiSignTransaction.d.ts +1 -0
  320. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  321. package/dist/api/ton/TonGetAddress.d.ts +1 -0
  322. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  323. package/dist/api/ton/TonSignData.d.ts +1 -0
  324. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  325. package/dist/api/ton/TonSignMessage.d.ts +1 -0
  326. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  327. package/dist/api/ton/TonSignProof.d.ts +1 -0
  328. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  329. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  330. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  331. package/dist/api/tron/TronSignMessage.d.ts +5 -0
  332. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  333. package/dist/api/tron/TronSignTransaction.d.ts +1 -0
  334. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  335. package/dist/api/utils.d.ts +2 -1
  336. package/dist/api/utils.d.ts.map +1 -1
  337. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  338. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  339. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  340. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  341. package/dist/constants/index.d.ts +1 -1
  342. package/dist/constants/index.d.ts.map +1 -1
  343. package/dist/core/RequestQueue.d.ts.map +1 -1
  344. package/dist/core/deviceEventRegistration.d.ts +13 -0
  345. package/dist/core/deviceEventRegistration.d.ts.map +1 -0
  346. package/dist/core/index.d.ts +3 -1
  347. package/dist/core/index.d.ts.map +1 -1
  348. package/dist/core/uiPromiseRegistry.d.ts +4 -0
  349. package/dist/core/uiPromiseRegistry.d.ts.map +1 -0
  350. package/dist/data-manager/DataManager.d.ts +4 -1
  351. package/dist/data-manager/DataManager.d.ts.map +1 -1
  352. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  353. package/dist/device/Device.d.ts +71 -17
  354. package/dist/device/Device.d.ts.map +1 -1
  355. package/dist/device/DeviceCommands.d.ts +8 -6
  356. package/dist/device/DeviceCommands.d.ts.map +1 -1
  357. package/dist/device/DeviceConnector.d.ts +1 -1
  358. package/dist/device/DeviceConnector.d.ts.map +1 -1
  359. package/dist/device/DeviceFeaturesState.d.ts +3 -0
  360. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  361. package/dist/device/DevicePool.d.ts +5 -2
  362. package/dist/device/DevicePool.d.ts.map +1 -1
  363. package/dist/device/DeviceStateMapper.d.ts +13 -0
  364. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  365. package/dist/device/DeviceStateProjector.d.ts +7 -0
  366. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  367. package/dist/device/DeviceStateStore.d.ts +21 -0
  368. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  369. package/dist/device/DeviceWalletSessionStore.d.ts +27 -0
  370. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  371. package/dist/device/cloneDeviceState.d.ts +2 -0
  372. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  373. package/dist/device/deviceIdentity.d.ts +5 -0
  374. package/dist/device/deviceIdentity.d.ts.map +1 -0
  375. package/dist/deviceProfile/buildDeviceFeatures.d.ts +9 -3
  376. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  377. package/dist/deviceProfile/index.d.ts +0 -1
  378. package/dist/deviceProfile/index.d.ts.map +1 -1
  379. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
  380. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
  381. package/dist/events/device.d.ts +16 -2
  382. package/dist/events/device.d.ts.map +1 -1
  383. package/dist/events/logBlockEvent.d.ts +2 -0
  384. package/dist/events/logBlockEvent.d.ts.map +1 -1
  385. package/dist/events/ui-promise.d.ts +4 -2
  386. package/dist/events/ui-promise.d.ts.map +1 -1
  387. package/dist/events/ui-request.d.ts +50 -4
  388. package/dist/events/ui-request.d.ts.map +1 -1
  389. package/dist/events/ui-response.d.ts +10 -2
  390. package/dist/events/ui-response.d.ts.map +1 -1
  391. package/dist/index.d.ts +1592 -794
  392. package/dist/index.js +8249 -3981
  393. package/dist/inject.d.ts +6 -1
  394. package/dist/inject.d.ts.map +1 -1
  395. package/dist/lowLevelInject.d.ts.map +1 -1
  396. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  397. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  398. package/dist/protocols/protocol-v2/features.d.ts +25 -17
  399. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  400. package/dist/protocols/protocol-v2/index.d.ts +3 -2
  401. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  402. package/dist/protocols/protocol-v2/resources.d.ts +30 -0
  403. package/dist/protocols/protocol-v2/resources.d.ts.map +1 -0
  404. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
  405. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  406. package/dist/protocols/protocol-v2/uiInteraction.d.ts +42 -0
  407. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
  408. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +2 -0
  409. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
  410. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts +22 -0
  411. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts.map +1 -0
  412. package/dist/protocols/protocol-v2/walletSession.d.ts +25 -0
  413. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  414. package/dist/topLevelInject.d.ts.map +1 -1
  415. package/dist/types/api/checkAllFirmwareRelease.d.ts +26 -4
  416. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  417. package/dist/types/api/detectDeviceConnectProtocol.d.ts +4 -0
  418. package/dist/types/api/detectDeviceConnectProtocol.d.ts.map +1 -0
  419. package/dist/types/api/deviceSettings.d.ts +11 -2
  420. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  421. package/dist/types/api/deviceUnlock.d.ts +1 -1
  422. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  423. package/dist/types/api/export.d.ts +3 -2
  424. package/dist/types/api/export.d.ts.map +1 -1
  425. package/dist/types/api/firmwareUpdate.d.ts +7 -1
  426. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  427. package/dist/types/api/getDeviceState.d.ts +12 -0
  428. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  429. package/dist/types/api/getFeatures.d.ts.map +1 -1
  430. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  431. package/dist/types/api/getPassphraseState.d.ts +2 -10
  432. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  433. package/dist/types/api/index.d.ts +23 -30
  434. package/dist/types/api/index.d.ts.map +1 -1
  435. package/dist/types/api/kaspaSignTransaction.d.ts +42 -4
  436. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  437. package/dist/types/api/openWalletSession.d.ts +35 -0
  438. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  439. package/dist/types/api/protocolV2.d.ts +18 -84
  440. package/dist/types/api/protocolV2.d.ts.map +1 -1
  441. package/dist/types/api/sessionCache.d.ts +13 -0
  442. package/dist/types/api/sessionCache.d.ts.map +1 -0
  443. package/dist/types/device.d.ts +132 -8
  444. package/dist/types/device.d.ts.map +1 -1
  445. package/dist/types/params.d.ts +1 -0
  446. package/dist/types/params.d.ts.map +1 -1
  447. package/dist/types/settings.d.ts +29 -14
  448. package/dist/types/settings.d.ts.map +1 -1
  449. package/dist/utils/assets.d.ts +2 -1
  450. package/dist/utils/assets.d.ts.map +1 -1
  451. package/dist/utils/deviceFeaturesCompat.d.ts +13 -0
  452. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  453. package/dist/utils/deviceFeaturesUtils.d.ts +8 -3
  454. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  455. package/dist/utils/deviceInfoUtils.d.ts +9 -9
  456. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  457. package/dist/utils/deviceSettings.d.ts +38 -7
  458. package/dist/utils/deviceSettings.d.ts.map +1 -1
  459. package/dist/utils/deviceVersionUtils.d.ts +7 -5
  460. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  461. package/dist/utils/homescreen.d.ts +4 -0
  462. package/dist/utils/homescreen.d.ts.map +1 -1
  463. package/dist/utils/index.d.ts +6 -3
  464. package/dist/utils/index.d.ts.map +1 -1
  465. package/dist/utils/networkUtils.d.ts +10 -1
  466. package/dist/utils/networkUtils.d.ts.map +1 -1
  467. package/dist/utils/patch.d.ts +1 -1
  468. package/dist/utils/patch.d.ts.map +1 -1
  469. package/dist/utils/pro2Nft.d.ts +31 -0
  470. package/dist/utils/pro2Nft.d.ts.map +1 -0
  471. package/dist/utils/pro2Wallpaper.d.ts +22 -0
  472. package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
  473. package/dist/utils/tracing.d.ts.map +1 -1
  474. package/dist/utils/uiProgressThrottle.d.ts +3 -0
  475. package/dist/utils/uiProgressThrottle.d.ts.map +1 -0
  476. package/package.json +4 -4
  477. package/src/api/BaseMethod.ts +53 -20
  478. package/src/api/CheckAllFirmwareRelease.ts +329 -1
  479. package/src/api/CheckBootloaderRelease.ts +1 -2
  480. package/src/api/CheckFirmwareRelease.ts +1 -2
  481. package/src/api/CipherKeyValue.ts +4 -0
  482. package/src/api/ClearSessionCache.ts +32 -0
  483. package/src/api/DetectDeviceConnectProtocol.ts +18 -0
  484. package/src/api/DirList.ts +9 -4
  485. package/src/api/DirMake.ts +7 -4
  486. package/src/api/DirRemove.ts +7 -4
  487. package/src/api/FileDelete.ts +7 -4
  488. package/src/api/FileRead.ts +15 -9
  489. package/src/api/FileWrite.ts +26 -181
  490. package/src/api/FirmwareUpdate.ts +17 -14
  491. package/src/api/FirmwareUpdateV2.ts +137 -54
  492. package/src/api/FirmwareUpdateV3.ts +9 -13
  493. package/src/api/FirmwareUpdateV4.ts +660 -580
  494. package/src/api/GetDeviceState.ts +59 -0
  495. package/src/api/GetFeatures.ts +6 -4
  496. package/src/api/GetOnekeyFeatures.ts +1 -75
  497. package/src/api/GetPassphraseState.ts +36 -21
  498. package/src/api/OpenWalletSession.ts +251 -0
  499. package/src/api/PathInfo.ts +9 -4
  500. package/src/api/PromptWebDeviceAccess.ts +2 -7
  501. package/src/api/SearchDevices.ts +31 -4
  502. package/src/api/UploadPortfolio.ts +40 -0
  503. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  504. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  505. package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
  506. package/src/api/algo/AlgoGetAddress.ts +4 -0
  507. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  508. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +41 -32
  509. package/src/api/aptos/AptosGetAddress.ts +4 -0
  510. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  511. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  512. package/src/api/aptos/AptosSignMessage.ts +4 -0
  513. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  514. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  515. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  516. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  517. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  518. package/src/api/btc/BTCGetAddress.ts +8 -1
  519. package/src/api/btc/BTCGetPublicKey.ts +9 -2
  520. package/src/api/btc/BTCSignMessage.ts +8 -1
  521. package/src/api/btc/BTCSignPsbt.ts +4 -0
  522. package/src/api/btc/BTCSignTransaction.ts +8 -1
  523. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  524. package/src/api/btc/helpers/versionLimit.ts +7 -4
  525. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  526. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  527. package/src/api/cardano/CardanoSignMessage.ts +5 -1
  528. package/src/api/cardano/CardanoSignTransaction.ts +5 -1
  529. package/src/api/conflux/ConfluxGetAddress.ts +6 -0
  530. package/src/api/conflux/ConfluxSignMessage.ts +6 -0
  531. package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
  532. package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
  533. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  534. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  535. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  536. package/src/api/device/DeviceCancel.ts +5 -0
  537. package/src/api/device/DeviceChangePin.ts +28 -0
  538. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  539. package/src/api/device/DeviceLock.ts +5 -0
  540. package/src/api/device/DeviceRebootToBoardloader.ts +5 -0
  541. package/src/api/device/DeviceRebootToBootloader.ts +5 -0
  542. package/src/api/device/DeviceSettings.ts +194 -1
  543. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  544. package/src/api/device/DeviceUnlock.ts +14 -1
  545. package/src/api/device/DeviceUpdateBootloader.ts +1 -2
  546. package/src/api/device/DeviceWipe.ts +25 -0
  547. package/src/api/device/PreInitialize.ts +4 -0
  548. package/src/api/dynex/DnxGetAddress.ts +0 -6
  549. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  550. package/src/api/evm/EVMGetAddress.ts +6 -2
  551. package/src/api/evm/EVMGetPublicKey.ts +6 -2
  552. package/src/api/evm/EVMSignMessage.ts +6 -2
  553. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  554. package/src/api/evm/EVMSignTransaction.ts +6 -2
  555. package/src/api/evm/EVMSignTypedData.ts +42 -50
  556. package/src/api/evm/EVMVerifyMessage.ts +6 -2
  557. package/src/api/evm/legacyV1/getAddress.ts +2 -2
  558. package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
  559. package/src/api/evm/legacyV1/signMessage.ts +2 -2
  560. package/src/api/evm/legacyV1/signTypedData.ts +2 -2
  561. package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
  562. package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
  563. package/src/api/evm/protocol.ts +6 -0
  564. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  565. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  566. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +18 -14
  567. package/src/api/firmware/getBinary.ts +8 -3
  568. package/src/api/firmware/uploadFirmware.ts +17 -4
  569. package/src/api/helpers/batchGetPublickeys.ts +2 -2
  570. package/src/api/helpers/filesystemValidation.ts +61 -0
  571. package/src/api/helpers/paramsValidator.ts +1 -1
  572. package/src/api/helpers/protocolV2FileWrite.ts +206 -0
  573. package/src/api/index.ts +10 -26
  574. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  575. package/src/api/kaspa/KaspaSignTransaction.ts +380 -29
  576. package/src/api/kaspa/helpers/TransferSerialize.ts +17 -7
  577. package/src/api/lightning/LnurlAuth.ts +0 -4
  578. package/src/api/near/NearGetAddress.ts +4 -0
  579. package/src/api/near/NearSignTransaction.ts +4 -0
  580. package/src/api/nem/NEMGetAddress.ts +4 -0
  581. package/src/api/nem/NEMSignTransaction.ts +4 -0
  582. package/src/api/neo/NeoGetAddress.ts +0 -4
  583. package/src/api/neo/NeoSignTransaction.ts +0 -4
  584. package/src/api/nervos/NervosGetAddress.ts +0 -4
  585. package/src/api/nervos/NervosSignTransaction.ts +2 -6
  586. package/src/api/nexa/NexaGetAddress.ts +0 -4
  587. package/src/api/nexa/NexaSignTransaction.ts +3 -5
  588. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  589. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  590. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  591. package/src/api/nostr/NostrSignEvent.ts +4 -0
  592. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  593. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  594. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  595. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
  596. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +5 -2
  597. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +8 -5
  598. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +10 -6
  599. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +21 -0
  600. package/src/api/protocol-v2/DeviceInfoGet.ts +8 -15
  601. package/src/api/protocol-v2/DeviceReboot.ts +7 -3
  602. package/src/api/protocol-v2/DeviceStatusGet.ts +19 -0
  603. package/src/api/protocol-v2/DeviceUploadNft.ts +189 -0
  604. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +134 -0
  605. package/src/api/protocol-v2/FilesystemFormat.ts +9 -3
  606. package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
  607. package/src/api/protocol-v2/Ping.ts +37 -3
  608. package/src/api/protocol-v2/ProtocolInfoRequest.ts +8 -3
  609. package/src/api/protocol-v2/helpers.ts +17 -17
  610. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  611. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  612. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  613. package/src/api/solana/SolGetAddress.ts +4 -0
  614. package/src/api/solana/SolSignMessage.ts +4 -0
  615. package/src/api/solana/SolSignOffchainMessage.ts +4 -0
  616. package/src/api/solana/SolSignTransaction.ts +4 -0
  617. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  618. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  619. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  620. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  621. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  622. package/src/api/stellar/StellarGetAddress.ts +1 -10
  623. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  624. package/src/api/sui/SuiGetAddress.ts +4 -0
  625. package/src/api/sui/SuiGetPublicKey.ts +4 -0
  626. package/src/api/sui/SuiSignMessage.ts +4 -0
  627. package/src/api/sui/SuiSignTransaction.ts +4 -0
  628. package/src/api/ton/TonGetAddress.ts +4 -0
  629. package/src/api/ton/TonSignData.ts +5 -1
  630. package/src/api/ton/TonSignMessage.ts +4 -0
  631. package/src/api/ton/TonSignProof.ts +4 -0
  632. package/src/api/tron/TronGetAddress.ts +4 -0
  633. package/src/api/tron/TronSignMessage.ts +18 -7
  634. package/src/api/tron/TronSignTransaction.ts +4 -0
  635. package/src/api/utils.ts +7 -3
  636. package/src/api/xrp/XrpGetAddress.ts +4 -0
  637. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  638. package/src/constants/index.ts +1 -4
  639. package/src/core/RequestQueue.ts +1 -0
  640. package/src/core/deviceEventRegistration.ts +27 -0
  641. package/src/core/index.ts +319 -124
  642. package/src/core/uiPromiseRegistry.ts +41 -0
  643. package/src/data/messages/messages-protocol-v2.json +1138 -441
  644. package/src/data/messages/messages.json +286 -1
  645. package/src/data-manager/DataManager.ts +42 -13
  646. package/src/data-manager/TransportManager.ts +1 -1
  647. package/src/data-manager/connectSettings.ts +4 -0
  648. package/src/device/Device.ts +878 -292
  649. package/src/device/DeviceCommands.ts +166 -158
  650. package/src/device/DeviceConnector.ts +10 -7
  651. package/src/device/DeviceFeaturesState.ts +25 -0
  652. package/src/device/DevicePool.ts +72 -17
  653. package/src/device/DeviceStateMapper.ts +374 -0
  654. package/src/device/DeviceStateProjector.ts +94 -0
  655. package/src/device/DeviceStateStore.ts +201 -0
  656. package/src/device/DeviceWalletSessionStore.ts +144 -0
  657. package/src/device/cloneDeviceState.ts +39 -0
  658. package/src/device/deviceIdentity.ts +18 -0
  659. package/src/deviceProfile/buildDeviceFeatures.ts +224 -190
  660. package/src/deviceProfile/index.ts +0 -1
  661. package/src/deviceProfile/protocolV2DeviceIdentity.ts +32 -0
  662. package/src/events/device.ts +22 -1
  663. package/src/events/logBlockEvent.ts +80 -2
  664. package/src/events/ui-promise.ts +4 -2
  665. package/src/events/ui-request.ts +61 -4
  666. package/src/events/ui-response.ts +12 -2
  667. package/src/inject.ts +73 -43
  668. package/src/lowLevelInject.ts +6 -3
  669. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  670. package/src/protocols/protocol-v2/features.ts +103 -32
  671. package/src/protocols/protocol-v2/firmware.ts +1 -1
  672. package/src/protocols/protocol-v2/index.ts +8 -1
  673. package/src/protocols/protocol-v2/resources.ts +359 -0
  674. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  675. package/src/protocols/protocol-v2/uiInteraction.ts +250 -0
  676. package/src/protocols/protocol-v2/unlockPolicy.ts +1 -0
  677. package/src/protocols/protocol-v2/unlockPolicyRunner.ts +124 -0
  678. package/src/protocols/protocol-v2/walletSession.ts +424 -0
  679. package/src/topLevelInject.ts +6 -3
  680. package/src/types/api/checkAllFirmwareRelease.ts +47 -4
  681. package/src/types/api/detectDeviceConnectProtocol.ts +7 -0
  682. package/src/types/api/deviceSettings.ts +26 -2
  683. package/src/types/api/deviceUnlock.ts +1 -1
  684. package/src/types/api/export.ts +8 -0
  685. package/src/types/api/firmwareUpdate.ts +26 -5
  686. package/src/types/api/getDeviceState.ts +19 -0
  687. package/src/types/api/getFeatures.ts +3 -0
  688. package/src/types/api/getOnekeyFeatures.ts +3 -0
  689. package/src/types/api/getPassphraseState.ts +9 -11
  690. package/src/types/api/index.ts +38 -64
  691. package/src/types/api/kaspaSignTransaction.ts +60 -4
  692. package/src/types/api/openWalletSession.ts +54 -0
  693. package/src/types/api/protocolV2.ts +33 -141
  694. package/src/types/api/sessionCache.ts +19 -0
  695. package/src/types/device.ts +185 -7
  696. package/src/types/params.ts +9 -2
  697. package/src/types/settings.ts +59 -16
  698. package/src/utils/assets.ts +4 -1
  699. package/src/utils/deviceFeaturesCompat.ts +180 -0
  700. package/src/utils/deviceFeaturesUtils.ts +56 -45
  701. package/src/utils/deviceInfoUtils.ts +27 -69
  702. package/src/utils/deviceSettings.ts +171 -39
  703. package/src/utils/deviceVersionUtils.ts +25 -44
  704. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  705. package/src/utils/homescreen.ts +36 -0
  706. package/src/utils/index.ts +27 -3
  707. package/src/utils/networkUtils.ts +274 -16
  708. package/src/utils/pro2Nft.ts +142 -0
  709. package/src/utils/pro2Wallpaper.ts +130 -0
  710. package/src/utils/tracing.ts +3 -1
  711. package/src/utils/uiProgressThrottle.ts +63 -0
  712. package/tsconfig.type-tests.json +12 -0
  713. package/dist/api/GetDeviceInfo.d.ts +0 -9
  714. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  715. package/dist/api/firmware/progressThrottle.d.ts +0 -3
  716. package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
  717. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +0 -13
  718. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +0 -1
  719. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
  720. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  721. package/dist/types/api/getDeviceInfo.d.ts +0 -87
  722. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  723. package/src/api/GetDeviceInfo.ts +0 -145
  724. package/src/api/firmware/progressThrottle.ts +0 -44
  725. package/src/api/protocol-v2/FilesystemDiskControl.ts +0 -50
  726. package/src/deviceProfile/buildDeviceProfile.ts +0 -352
  727. package/src/types/api/getDeviceInfo.ts +0 -101
@@ -1,8 +1,14 @@
1
- import { EDeviceType, type EFirmwareType } from '@onekeyfe/hd-shared';
1
+ import { EDeviceType, type EFirmwareType, type HardwareConnectProtocol } from '@onekeyfe/hd-shared';
2
2
 
3
3
  import type { IVersionArray } from './settings';
4
4
  import type { PROTO } from '../constants';
5
- import type { OneKeyDeviceCommType, ProtocolV2DeviceInfo } from '@onekeyfe/hd-transport';
5
+ import type {
6
+ Enum_SafetyCheckLevel,
7
+ OneKeyDeviceCommType,
8
+ ProtocolV2DeviceInfo,
9
+ DeviceStatus as ProtocolV2DeviceStatus,
10
+ ProtocolInfo as ProtocolV2ProtocolInfo,
11
+ } from '@onekeyfe/hd-transport';
6
12
 
7
13
  export type DeviceStatus = 'available' | 'occupied' | 'used';
8
14
 
@@ -23,6 +29,14 @@ export type UnavailableCapabilities = { [key: string]: UnavailableCapability };
23
29
 
24
30
  export type KnownDevice = {
25
31
  connectId: string | null;
32
+ /** Protocol family confirmed by the transport's active probe. */
33
+ connectProtocol?: HardwareConnectProtocol;
34
+ /**
35
+ * Stable physical-device identity. Current SDK responses always include this
36
+ * value; it remains optional in the type during the uuid compatibility window.
37
+ */
38
+ serialNo?: string;
39
+ /** @deprecated Use serialNo instead. */
26
40
  uuid: string;
27
41
  deviceId: string | null;
28
42
  deviceType: IDeviceType | null;
@@ -32,9 +46,12 @@ export type KnownDevice = {
32
46
  bleName: string | null;
33
47
  name: string;
34
48
  error?: typeof undefined;
49
+ /** Current SDK/transport usage state for connection indicators. */
50
+ status?: DeviceStatus;
35
51
  mode: EOneKeyDeviceMode;
36
- features?: Features;
37
- sessionId?: string | null;
52
+ features: Features;
53
+ /** Unified SDK device-state snapshot; features remains a legacy projection. */
54
+ state?: DeviceState;
38
55
  unavailableCapabilities: UnavailableCapabilities;
39
56
  bleFirmwareVersion: IVersionArray | null;
40
57
  firmwareVersion: IVersionArray | null;
@@ -47,6 +64,19 @@ export type KnownDevice = {
47
64
 
48
65
  export type SearchDevice = {
49
66
  connectId: string | null;
67
+ /** Protocol family confirmed by the transport's active probe. */
68
+ connectProtocol?: HardwareConnectProtocol;
69
+ /**
70
+ * Available after device initialization. BLE discovery does not connect to the
71
+ * device, so it returns null until a later initialized device response. Current
72
+ * SDK responses always include the field; it remains optional in the type during
73
+ * the uuid compatibility window.
74
+ */
75
+ serialNo?: string | null;
76
+ /**
77
+ * @deprecated Ambiguous legacy identifier. Use serialNo for hardware identity
78
+ * and connectId for transport routing.
79
+ */
50
80
  uuid: string;
51
81
  deviceId: string | null;
52
82
  deviceType: IDeviceType;
@@ -91,6 +121,7 @@ export type DeviceFeaturesProtocol = 'V1' | 'V2' | 'unknown';
91
121
  export type DeviceFeaturesMode =
92
122
  | 'normal'
93
123
  | 'bootloader'
124
+ | 'romloader'
94
125
  | 'notInitialized'
95
126
  | 'backupMode'
96
127
  | 'unknown';
@@ -98,6 +129,10 @@ export type DeviceFeaturesMode =
98
129
  export type DeviceFeaturesVerify = {
99
130
  firmwareBuildId?: string;
100
131
  firmwareHash?: string;
132
+ applicationP1BuildId?: string;
133
+ applicationP1Hash?: string;
134
+ applicationP2BuildId?: string;
135
+ applicationP2Hash?: string;
101
136
  bootloaderBuildId?: string;
102
137
  bootloaderHash?: string;
103
138
  boardBuildId?: string;
@@ -125,10 +160,139 @@ export type DeviceFeaturesVerify = {
125
160
  export type DeviceFeaturesRaw = {
126
161
  protocolV1Features?: PROTO.Features;
127
162
  protocolV1OneKeyFeatures?: OnekeyFeatures;
163
+ protocolV2ProtocolInfo?: ProtocolV2ProtocolInfo;
128
164
  protocolV2DeviceInfo?: ProtocolV2DeviceInfo;
165
+ protocolV2DeviceStatus?: ProtocolV2DeviceStatus;
129
166
  };
130
167
 
131
- export type Features = {
168
+ export type DeviceFeaturesRawPatch = {
169
+ [Key in keyof DeviceFeaturesRaw]?: DeviceFeaturesRaw[Key] | null;
170
+ };
171
+
172
+ export type DeviceStateProtocol = DeviceFeaturesProtocol;
173
+ export type DeviceStateMode = DeviceFeaturesMode;
174
+ export type DeviceStateSection = 'identity' | 'status' | 'settings' | 'versions' | 'verification';
175
+
176
+ export type DeviceStateUpdateSource =
177
+ | 'initialize'
178
+ | 'device-info'
179
+ | 'device-status'
180
+ | 'settings-read'
181
+ | 'settings-write'
182
+ | 'change-pin'
183
+ | 'lock'
184
+ | 'unlock'
185
+ | 'passphrase'
186
+ | 'session-clear'
187
+ | 'firmware-update'
188
+ | 'transport-reconnect'
189
+ | 'compatibility';
190
+
191
+ export type DeviceStateIdentity = {
192
+ deviceType: IDeviceType;
193
+ firmwareType: EFirmwareType;
194
+ model: string | null;
195
+ vendor: string | null;
196
+ deviceId: string | null;
197
+ serialNo: string;
198
+ label: string | null;
199
+ bleName: string | null;
200
+ };
201
+
202
+ export type DeviceStateStatus = {
203
+ mode: DeviceStateMode;
204
+ initialized: boolean | null;
205
+ unlocked: boolean | null;
206
+ firmwarePresent: boolean | null;
207
+ backupRequired: boolean | null;
208
+ noBackup: boolean | null;
209
+ unfinishedBackup: boolean | null;
210
+ recoveryMode: boolean | null;
211
+ passphraseProtection: boolean | null;
212
+ pinProtection: boolean | null;
213
+ attachToPinEnabled: boolean | null;
214
+ unlockedAttachPin: boolean | null;
215
+ };
216
+
217
+ export type DeviceStateSettings = {
218
+ language: string | null;
219
+ bleEnabled: boolean | null;
220
+ sdCardPresent: boolean | null;
221
+ sdProtection: boolean | null;
222
+ wipeCodeProtection: boolean | null;
223
+ passphraseAlwaysOnDevice: boolean | null;
224
+ safetyChecks: Enum_SafetyCheckLevel | null;
225
+ autoLockDelayMs: number | null;
226
+ autoShutdownDelayMs: number | null;
227
+ displayRotation: number | null;
228
+ experimentalFeatures: boolean | null;
229
+ wallpaperPath: string | null;
230
+ brightness: number | null;
231
+ animationEnabled: boolean | null;
232
+ tapToWake: boolean | null;
233
+ hapticFeedback: boolean | null;
234
+ deviceNameDisplayEnabled: boolean | null;
235
+ airgapMode: boolean | null;
236
+ fidoEnabled: boolean | null;
237
+ usbLockEnabled: boolean | null;
238
+ randomKeypad: boolean | null;
239
+ };
240
+
241
+ export type DeviceStateVersions = {
242
+ firmware: string | null;
243
+ applicationP1?: string | null;
244
+ applicationP2?: string | null;
245
+ bootloader: string | null;
246
+ board: string | null;
247
+ ble: string | null;
248
+ /** @deprecated Kept for legacy consumers; new code should read se01. */
249
+ se?: string | null;
250
+ se01?: string | null;
251
+ se02?: string | null;
252
+ se03?: string | null;
253
+ se04?: string | null;
254
+ se01Boot?: string | null;
255
+ se02Boot?: string | null;
256
+ se03Boot?: string | null;
257
+ se04Boot?: string | null;
258
+ };
259
+
260
+ export type DeviceState = {
261
+ schemaVersion: 1;
262
+ revision: number;
263
+ updatedAt: number;
264
+ protocol: DeviceStateProtocol;
265
+ /** Device-message protocol version, independent of the SDK V1/V2 protocol family. */
266
+ protocolVersion: number | null;
267
+ identity: DeviceStateIdentity;
268
+ status: DeviceStateStatus;
269
+ settings: DeviceStateSettings;
270
+ versions: DeviceStateVersions;
271
+ capabilities: Array<number | string>;
272
+ verification?: Partial<DeviceFeaturesVerify>;
273
+ };
274
+
275
+ export type DeviceStatePatch = {
276
+ protocol?: DeviceStateProtocol;
277
+ protocolVersion?: number | null;
278
+ identity?: Partial<DeviceStateIdentity>;
279
+ status?: Partial<DeviceStateStatus>;
280
+ settings?: Partial<DeviceStateSettings>;
281
+ versions?: Partial<DeviceStateVersions>;
282
+ capabilities?: Array<number | string>;
283
+ verification?: DeviceFeaturesVerify;
284
+ raw?: DeviceFeaturesRawPatch;
285
+ };
286
+
287
+ export type DeviceStateEvent = {
288
+ connectId: string | null;
289
+ state: DeviceState;
290
+ revision: number;
291
+ source: DeviceStateUpdateSource;
292
+ changedKeys: string[];
293
+ };
294
+
295
+ export type NormalizedFeatures = {
132
296
  protocol: DeviceFeaturesProtocol;
133
297
  protocolVersion?: number | null;
134
298
  deviceType: IDeviceType;
@@ -158,10 +322,21 @@ export type Features = {
158
322
  wipeCodeProtection: boolean | null;
159
323
  passphraseAlwaysOnDevice: boolean | null;
160
324
  attachToPinEnabled?: boolean | null;
161
- safetyChecks: string | null;
325
+ safetyChecks: Enum_SafetyCheckLevel | null;
162
326
  autoLockDelayMs: number | null;
327
+ autoShutdownDelayMs: number | null;
163
328
  displayRotation: number | null;
164
329
  experimentalFeatures: boolean | null;
330
+ wallpaperPath: string | null;
331
+ brightness: number | null;
332
+ animationEnabled: boolean | null;
333
+ tapToWake: boolean | null;
334
+ hapticFeedback: boolean | null;
335
+ deviceNameDisplayEnabled: boolean | null;
336
+ airgapMode: boolean | null;
337
+ fidoEnabled: boolean | null;
338
+ usbLockEnabled: boolean | null;
339
+ randomKeypad: boolean | null;
165
340
  firmwareVersion: string | null;
166
341
  bootloaderVersion: string | null;
167
342
  boardVersion: string | null;
@@ -182,6 +357,10 @@ export type Features = {
182
357
  raw?: DeviceFeaturesRaw;
183
358
  };
184
359
 
360
+ export type Features = NormalizedFeatures &
361
+ Partial<Omit<PROTO.Features, keyof NormalizedFeatures>> &
362
+ Partial<Omit<PROTO.OnekeyFeatures, keyof NormalizedFeatures | keyof PROTO.Features>>;
363
+
185
364
  export type OnekeyFeatures = PROTO.OnekeyFeatures;
186
365
 
187
366
  export type IDeviceType =
@@ -233,7 +412,6 @@ export type ITransportStatus = 'valid' | 'outdated';
233
412
  export type IVersionRange = {
234
413
  min: string;
235
414
  max?: string;
236
- unsupported?: boolean;
237
415
  };
238
416
 
239
417
  export type DeviceFirmwareRange = {
@@ -15,7 +15,7 @@ export interface CommonParams {
15
15
  */
16
16
  timeout?: number;
17
17
  /**
18
- * Protocol V2 初始化阶段 DeviceInfoGet 超时时间
18
+ * DeviceInfoGet timeout during Protocol V2 initialization.
19
19
  */
20
20
  protocolV2DeviceInfoTimeoutMs?: number;
21
21
  /**
@@ -60,9 +60,16 @@ export interface CommonParams {
60
60
  usePreInitialize?: boolean;
61
61
 
62
62
  /**
63
- * Expected transport protocol. If omitted, SDK probes Protocol V1 then Protocol V2.
63
+ * Strictly expected transport protocol. The SDK actively verifies this value and
64
+ * rejects a mismatch. After a successful probe, the cached protocol is also strict.
64
65
  */
65
66
  connectProtocol?: HardwareConnectProtocol;
67
+
68
+ /**
69
+ * Ignore a previously bound protocol for this call and actively detect the
70
+ * protocol again. Intended for the first verified connection or explicit recovery.
71
+ */
72
+ forceProtocolDetection?: boolean;
66
73
  }
67
74
 
68
75
  export type Params<T> = CommonParams & T & { bundle?: undefined };
@@ -49,32 +49,72 @@ export type IProtocolV2FirmwareComponentTarget =
49
49
  | 'SE01'
50
50
  | 'SE02'
51
51
  | 'SE03'
52
- | 'SE04'
53
- | 'CRATE';
52
+ | 'SE04';
54
53
 
55
54
  export type IProtocolV2FirmwareComponent = {
56
55
  target: IProtocolV2FirmwareComponentTarget;
57
56
  url: string;
57
+ /** SHA-256 of the complete okpkg, used after downloading the package. */
58
58
  fingerprint?: string;
59
+ /** OKPP payload hash, used to detect same-version package changes. */
60
+ payloadHash?: string;
59
61
  version?: IVersionArray;
60
- resourceManifest?: IProtocolV2ResourceManifest;
61
62
  };
62
63
 
63
- export type IProtocolV2ResourceManifestPackage = {
64
- name?: string;
65
- path: string;
66
- type?: string;
67
- version?: IVersionArray;
68
- sha256?: string;
69
- payloadHash?: string;
70
- headerHash?: string;
64
+ export type IProtocolV2ResourceType =
65
+ | 'images'
66
+ | 'animation'
67
+ | 'wallpaper'
68
+ | 'translations'
69
+ | 'roobert'
70
+ | 'noto';
71
+
72
+ /** Pro2 RES package descriptor. Hashes identify content without a human-managed version. */
73
+ export type IProtocolV2Resource = {
74
+ type: IProtocolV2ResourceType;
75
+ url: string;
76
+ /** Complete okpkg file size in bytes. */
77
+ size: number;
78
+ /** SHA-256 of the complete okpkg file. */
79
+ fileHash: string;
80
+ /** SHA3-512 header_hash from the signed okpkg header. */
81
+ headerHash: string;
82
+ };
83
+
84
+ /** Optional Pro2 startup-resource CRATE installed by the bootloader updater. */
85
+ export type IProtocolV2BootResources = {
86
+ required: false;
87
+ target: 'CRATE';
88
+ url: string;
89
+ /** Complete CRATE file size in bytes. */
90
+ size: number;
91
+ /** SHA-256 of the complete CRATE file. */
92
+ fileHash: string;
93
+ /** SHA3-512 payload_hash from the signed CRATE header. */
94
+ payloadHash: string;
95
+ /** SHA3-512 header_hash from the signed CRATE header. */
96
+ headerHash: string;
97
+ };
98
+
99
+ export type IProtocolV2Resources = {
100
+ stable: IProtocolV2Resource[];
101
+ boot?: IProtocolV2BootResources;
71
102
  };
72
103
 
73
- export type IProtocolV2ResourceManifest = {
74
- format?: 'okpkg-crate' | string;
75
- target?: 'CRATE' | string;
104
+ /** Pro2 RESC bundle okpkg descriptor for incremental FileWrite synchronization. */
105
+ export type IProtocolV2ResourceBundle = {
106
+ /** Bundle name, such as images, animation, translations, or fonts_roobert. */
107
+ name: string;
108
+ /** Download URL. */
109
+ url: string;
110
+ /** Device target path, such as vol0:/bundles/images/images.okpkg. */
111
+ devicePath: string;
112
+ /** okpkg payload_version used to skip matching content after FileRead. */
76
113
  version?: IVersionArray;
77
- packages: IProtocolV2ResourceManifestPackage[];
114
+ /** okpkg payload_hash used for SHA3-512 comparison after FileRead. */
115
+ payloadHash?: string;
116
+ /** okpkg header_hash used for SHA3-512 comparison after FileRead. */
117
+ headerHash?: string;
78
118
  };
79
119
 
80
120
  /** STM32 firmware config */
@@ -98,7 +138,8 @@ export type IFirmwareReleaseInfo = {
98
138
  upgradeType?: 'payload-package-set' | string;
99
139
  components?: Record<string, IProtocolV2FirmwareComponent>;
100
140
  installOrder?: string[];
101
- resourceManifest?: IProtocolV2ResourceManifest;
141
+ /** Pro2 RESC bundles for incremental direct FileWrite synchronization. */
142
+ resourceBundles?: IProtocolV2ResourceBundle[];
102
143
  bootloaderChangelog?: {
103
144
  [k in ILocale]: string;
104
145
  };
@@ -135,6 +176,8 @@ export type DeviceTypeMap = {
135
176
  'firmware-v8'?: IFirmwareReleaseInfo[];
136
177
  'firmware-btc-v8'?: IFirmwareReleaseInfo[];
137
178
  ble: IBLEFirmwareReleaseInfo[];
179
+ /** Independent Pro2 resource release configuration. */
180
+ resources?: IProtocolV2Resources;
138
181
  };
139
182
  };
140
183
 
@@ -1,5 +1,8 @@
1
1
  import { httpRequest as browserHttpRequest } from './networkUtils';
2
2
 
3
- export const httpRequest = (url: string, type: string): any => browserHttpRequest(url, type);
3
+ import type { HttpRequestOptions } from './networkUtils';
4
+
5
+ export const httpRequest = (url: string, type: string, options?: HttpRequestOptions): any =>
6
+ browserHttpRequest(url, type, options);
4
7
 
5
8
  export const getTimeStamp = () => new Date().getTime();
@@ -0,0 +1,180 @@
1
+ import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
2
+ import { Enum_Capability } from '@onekeyfe/hd-transport';
3
+
4
+ import type { PROTO } from '../constants';
5
+ import type { Features, IDeviceType } from '../types';
6
+
7
+ export type DeviceFeaturesInput = Features | PROTO.Features;
8
+
9
+ type CompatibleDeviceFeatures = Partial<Features> &
10
+ Partial<PROTO.Features> & {
11
+ onekey_serial?: string;
12
+ onekey_version?: string;
13
+ };
14
+
15
+ const asCompatibleFeatures = (features: DeviceFeaturesInput): CompatibleDeviceFeatures =>
16
+ features as CompatibleDeviceFeatures;
17
+
18
+ const firstNonEmptyString = (...values: Array<string | null | undefined>) =>
19
+ values.find(value => typeof value === 'string' && value.length > 0);
20
+
21
+ const firstMeaningfulVersion = (...versions: Array<string | null | undefined>) =>
22
+ versions.find(version => Boolean(version && version !== '0.0.0')) ?? null;
23
+
24
+ const versionFromParts = (major?: number | null, minor?: number | null, patch?: number | null) =>
25
+ [major, minor, patch].map(part => Number(part) || 0).join('.');
26
+
27
+ export const resolveDeviceSerialNo = (features?: DeviceFeaturesInput): string => {
28
+ if (!features) return '';
29
+ const compatible = asCompatibleFeatures(features);
30
+ return (
31
+ firstNonEmptyString(
32
+ compatible.serialNo,
33
+ compatible.onekey_serial_no,
34
+ compatible.onekey_serial,
35
+ compatible.serial_no
36
+ ) ?? ''
37
+ );
38
+ };
39
+
40
+ export const resolveDeviceType = (features?: DeviceFeaturesInput): IDeviceType => {
41
+ if (!features || typeof features !== 'object') {
42
+ return EDeviceType.Unknown;
43
+ }
44
+
45
+ const compatible = asCompatibleFeatures(features);
46
+ if (compatible.deviceType && compatible.deviceType !== EDeviceType.Unknown) {
47
+ return compatible.deviceType;
48
+ }
49
+
50
+ switch (compatible.onekey_device_type?.toString().toUpperCase()) {
51
+ case 'CLASSIC':
52
+ return EDeviceType.Classic;
53
+ case 'CLASSIC1S':
54
+ return EDeviceType.Classic1s;
55
+ case 'MINI':
56
+ return EDeviceType.Mini;
57
+ case 'TOUCH':
58
+ return EDeviceType.Touch;
59
+ case 'PRO':
60
+ return EDeviceType.Pro;
61
+ case 'PRO2':
62
+ return EDeviceType.Pro2;
63
+ case 'PURE':
64
+ return EDeviceType.ClassicPure;
65
+ default:
66
+ break;
67
+ }
68
+
69
+ if (compatible.model?.toString().toLowerCase() === EDeviceType.Pro2) {
70
+ return EDeviceType.Pro2;
71
+ }
72
+
73
+ const serialNo = resolveDeviceSerialNo(features);
74
+ const prefix = serialNo.slice(0, 2).toLowerCase();
75
+ if (prefix === 'bi' || prefix === 'cl') return EDeviceType.Classic;
76
+ if (prefix === 'cp') return EDeviceType.ClassicPure;
77
+ if (prefix === 'mi') return EDeviceType.Mini;
78
+ if (prefix === 'tc') return EDeviceType.Touch;
79
+ if (prefix === 'pr') return EDeviceType.Pro;
80
+ if (prefix === 'p2') return EDeviceType.Pro2;
81
+
82
+ const bootloaderMode = compatible.bootloaderMode ?? compatible.bootloader_mode;
83
+ if (!serialNo && bootloaderMode === true && compatible.model === '1') {
84
+ return EDeviceType.Classic;
85
+ }
86
+
87
+ return compatible.deviceType ?? EDeviceType.Unknown;
88
+ };
89
+
90
+ export const resolveDeviceFirmwareType = (features?: DeviceFeaturesInput): EFirmwareType => {
91
+ if (!features) {
92
+ return EFirmwareType.Universal;
93
+ }
94
+
95
+ const compatible = asCompatibleFeatures(features);
96
+ if (compatible.firmwareType) {
97
+ return compatible.firmwareType;
98
+ }
99
+ if (compatible.fw_vendor === 'OneKey Bitcoin-only') {
100
+ return EFirmwareType.BitcoinOnly;
101
+ }
102
+
103
+ const capabilities = compatible.capabilities as Array<number | string> | null | undefined;
104
+ const supportsBitcoinLike = capabilities?.some(
105
+ capability =>
106
+ capability === Enum_Capability.Capability_Bitcoin_like ||
107
+ capability === 'Capability_Bitcoin_like'
108
+ );
109
+ return capabilities?.length && !supportsBitcoinLike
110
+ ? EFirmwareType.BitcoinOnly
111
+ : EFirmwareType.Universal;
112
+ };
113
+
114
+ export const resolveDeviceBleName = (features?: DeviceFeaturesInput): string | null => {
115
+ if (!features) return null;
116
+ const compatible = asCompatibleFeatures(features);
117
+ return (
118
+ firstNonEmptyString(compatible.bleName, compatible.onekey_ble_name, compatible.ble_name) ?? null
119
+ );
120
+ };
121
+
122
+ export const resolveDeviceFirmwareVersion = (features?: DeviceFeaturesInput): string | null => {
123
+ if (!features) return null;
124
+ const compatible = asCompatibleFeatures(features);
125
+ const bootloaderMode = compatible.bootloaderMode ?? compatible.bootloader_mode;
126
+ return firstMeaningfulVersion(
127
+ compatible.firmwareVersion,
128
+ compatible.onekey_firmware_version,
129
+ compatible.onekey_version,
130
+ bootloaderMode
131
+ ? null
132
+ : versionFromParts(
133
+ compatible.major_version,
134
+ compatible.minor_version,
135
+ compatible.patch_version
136
+ )
137
+ );
138
+ };
139
+
140
+ export const resolveDeviceBootloaderVersion = (features?: DeviceFeaturesInput): string | null => {
141
+ if (!features) return null;
142
+ const compatible = asCompatibleFeatures(features);
143
+ const bootloaderMode = compatible.bootloaderMode ?? compatible.bootloader_mode;
144
+ return firstMeaningfulVersion(
145
+ compatible.bootloaderVersion,
146
+ compatible.onekey_boot_version,
147
+ compatible.bootloader_version,
148
+ compatible.onekey_bootloader_version,
149
+ bootloaderMode
150
+ ? versionFromParts(
151
+ compatible.major_version,
152
+ compatible.minor_version,
153
+ compatible.patch_version
154
+ )
155
+ : null
156
+ );
157
+ };
158
+
159
+ export const resolveDeviceBoardVersion = (features?: DeviceFeaturesInput): string | null => {
160
+ if (!features) return null;
161
+ const compatible = asCompatibleFeatures(features);
162
+ return firstMeaningfulVersion(
163
+ compatible.boardVersion,
164
+ compatible.onekey_board_version,
165
+ compatible.boardloader_version,
166
+ compatible.onekey_romloader_version,
167
+ compatible.romloader_version
168
+ );
169
+ };
170
+
171
+ export const resolveDeviceBleFirmwareVersion = (features?: DeviceFeaturesInput): string | null => {
172
+ if (!features) return null;
173
+ const compatible = asCompatibleFeatures(features);
174
+ return firstMeaningfulVersion(
175
+ compatible.bleVersion,
176
+ compatible.onekey_ble_version,
177
+ compatible.ble_ver,
178
+ compatible.onekey_coprocessor_version
179
+ );
180
+ };