@onekeyfe/hd-core 1.2.0-alpha.4 → 1.2.0-alpha.40

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 (693) 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 +282 -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 +249 -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 +187 -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 +113 -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 +1609 -0
  40. package/__tests__/pro2Nft.test.ts +108 -0
  41. package/__tests__/pro2Wallpaper.test.ts +39 -0
  42. package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
  43. package/__tests__/protocol-v2-firmware-targets.test.ts +37 -0
  44. package/__tests__/protocol-v2-ping.test.ts +28 -0
  45. package/__tests__/protocol-v2-ui-lifecycle.test.ts +56 -0
  46. package/__tests__/protocol-v2-unlock-policy.test.ts +96 -0
  47. package/__tests__/protocol-v2.test.ts +5748 -2387
  48. package/__tests__/protocolV2FileWrite.test.ts +92 -0
  49. package/__tests__/protocolV2UiInteraction.test.ts +266 -0
  50. package/__tests__/public-device-state-api.test.ts +275 -0
  51. package/__tests__/public-pro2-api-boundary.test.ts +107 -0
  52. package/__tests__/refresh-device-state.test.ts +101 -0
  53. package/__tests__/request-context-logging.test.ts +16 -0
  54. package/__tests__/search-devices.test.ts +136 -0
  55. package/__tests__/tron-sign-message-init.test.ts +74 -0
  56. package/__tests__/uiProgressThrottle.test.ts +74 -0
  57. package/dist/api/BaseMethod.d.ts +16 -1
  58. package/dist/api/BaseMethod.d.ts.map +1 -1
  59. package/dist/api/CheckAllFirmwareRelease.d.ts +24 -1
  60. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  61. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  62. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  63. package/dist/api/CipherKeyValue.d.ts +1 -0
  64. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  65. package/dist/api/ClearSessionCache.d.ts +9 -0
  66. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  67. package/dist/api/DirList.d.ts +1 -0
  68. package/dist/api/DirList.d.ts.map +1 -1
  69. package/dist/api/DirMake.d.ts +1 -0
  70. package/dist/api/DirMake.d.ts.map +1 -1
  71. package/dist/api/DirRemove.d.ts +1 -0
  72. package/dist/api/DirRemove.d.ts.map +1 -1
  73. package/dist/api/FileDelete.d.ts +1 -0
  74. package/dist/api/FileDelete.d.ts.map +1 -1
  75. package/dist/api/FileRead.d.ts +1 -0
  76. package/dist/api/FileRead.d.ts.map +1 -1
  77. package/dist/api/FileWrite.d.ts +2 -0
  78. package/dist/api/FileWrite.d.ts.map +1 -1
  79. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  80. package/dist/api/FirmwareUpdateV2.d.ts +2 -2
  81. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  82. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  83. package/dist/api/FirmwareUpdateV4.d.ts +23 -14
  84. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  85. package/dist/api/GetDeviceState.d.ts +8 -0
  86. package/dist/api/GetDeviceState.d.ts.map +1 -0
  87. package/dist/api/GetFeatures.d.ts +1 -1
  88. package/dist/api/GetFeatures.d.ts.map +1 -1
  89. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  90. package/dist/api/GetPassphraseState.d.ts +2 -6
  91. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  92. package/dist/api/OpenWalletSession.d.ts +8 -0
  93. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  94. package/dist/api/PathInfo.d.ts +1 -0
  95. package/dist/api/PathInfo.d.ts.map +1 -1
  96. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  97. package/dist/api/SearchDevices.d.ts +3 -0
  98. package/dist/api/SearchDevices.d.ts.map +1 -1
  99. package/dist/api/UploadPortfolio.d.ts +17 -0
  100. package/dist/api/UploadPortfolio.d.ts.map +1 -0
  101. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  102. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  103. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  104. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  105. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  106. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  107. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  108. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  109. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  110. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  111. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  112. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  113. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  114. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  115. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  116. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  117. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  118. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  119. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  120. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  121. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  122. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  123. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  124. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  125. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  126. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  127. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  128. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  129. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  130. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  131. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  132. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  133. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  134. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  135. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  136. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  137. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  138. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  139. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  140. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  141. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  142. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  143. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  144. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  145. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  146. package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
  147. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  148. package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
  149. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  150. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
  151. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  152. package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
  153. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  154. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  155. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  156. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  157. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  158. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  159. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  160. package/dist/api/device/DeviceCancel.d.ts +1 -0
  161. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  162. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  163. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  164. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  165. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  166. package/dist/api/device/DeviceLock.d.ts +1 -0
  167. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  168. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  169. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  170. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  171. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  172. package/dist/api/device/DeviceSettings.d.ts +1 -0
  173. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  174. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  175. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  176. package/dist/api/device/DeviceUnlock.d.ts +1 -0
  177. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  178. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  179. package/dist/api/device/DeviceWipe.d.ts +1 -0
  180. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  181. package/dist/api/device/PreInitialize.d.ts +1 -0
  182. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  183. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  184. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  185. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  186. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  187. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  188. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  189. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  190. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  191. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  192. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  193. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  194. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  195. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  196. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  197. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  198. package/dist/api/evm/protocol.d.ts +3 -0
  199. package/dist/api/evm/protocol.d.ts.map +1 -0
  200. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  201. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  202. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  203. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  204. package/dist/api/firmware/getBinary.d.ts +8 -4
  205. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  206. package/dist/api/helpers/filesystemValidation.d.ts +3 -0
  207. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
  208. package/dist/api/helpers/paramsValidator.d.ts +1 -0
  209. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  210. package/dist/api/helpers/protocolV2FileWrite.d.ts +35 -0
  211. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
  212. package/dist/api/index.d.ts +8 -25
  213. package/dist/api/index.d.ts.map +1 -1
  214. package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
  215. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  216. package/dist/api/kaspa/KaspaSignTransaction.d.ts +9 -1
  217. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  218. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  219. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  220. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  221. package/dist/api/near/NearGetAddress.d.ts +1 -0
  222. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  223. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  224. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  225. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  226. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  227. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  228. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  229. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  230. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  231. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  232. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  233. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  234. package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
  235. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  236. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  237. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  238. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  239. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  240. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  241. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  242. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  243. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  244. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  245. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  246. package/dist/api/polkadot/PolkadotGetAddress.d.ts +1 -0
  247. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  248. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  249. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  250. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  251. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  252. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  253. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  254. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -0
  255. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  256. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +4 -2
  257. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  258. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +7 -0
  259. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
  260. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +1 -1
  261. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  262. package/dist/api/protocol-v2/DeviceReboot.d.ts +1 -0
  263. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  264. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +7 -0
  265. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  266. package/dist/api/protocol-v2/DeviceUploadNft.d.ts +30 -0
  267. package/dist/api/protocol-v2/DeviceUploadNft.d.ts.map +1 -0
  268. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +27 -0
  269. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
  270. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  271. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  272. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  273. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  274. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  275. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  276. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  277. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  278. package/dist/api/protocol-v2/helpers.d.ts +4 -1
  279. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  280. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  281. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  282. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  283. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  284. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  285. package/dist/api/solana/SolSignMessage.d.ts +1 -0
  286. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  287. package/dist/api/solana/SolSignOffchainMessage.d.ts +1 -0
  288. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  289. package/dist/api/solana/SolSignTransaction.d.ts +1 -0
  290. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  291. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  292. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  293. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  294. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  295. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  296. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  297. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  298. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  299. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  300. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  301. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  302. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  303. package/dist/api/stellar/StellarSignTransaction.d.ts +1 -2
  304. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  305. package/dist/api/sui/SuiGetAddress.d.ts +1 -0
  306. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  307. package/dist/api/sui/SuiGetPublicKey.d.ts +1 -0
  308. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  309. package/dist/api/sui/SuiSignMessage.d.ts +1 -0
  310. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  311. package/dist/api/sui/SuiSignTransaction.d.ts +1 -0
  312. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  313. package/dist/api/ton/TonGetAddress.d.ts +1 -0
  314. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  315. package/dist/api/ton/TonSignData.d.ts +1 -0
  316. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  317. package/dist/api/ton/TonSignMessage.d.ts +1 -0
  318. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  319. package/dist/api/ton/TonSignProof.d.ts +1 -0
  320. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  321. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  322. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  323. package/dist/api/tron/TronSignMessage.d.ts +5 -0
  324. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  325. package/dist/api/tron/TronSignTransaction.d.ts +1 -0
  326. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  327. package/dist/api/utils.d.ts +2 -1
  328. package/dist/api/utils.d.ts.map +1 -1
  329. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  330. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  331. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  332. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  333. package/dist/constants/index.d.ts +1 -1
  334. package/dist/constants/index.d.ts.map +1 -1
  335. package/dist/core/RequestQueue.d.ts.map +1 -1
  336. package/dist/core/deviceEventRegistration.d.ts +13 -0
  337. package/dist/core/deviceEventRegistration.d.ts.map +1 -0
  338. package/dist/core/index.d.ts +3 -1
  339. package/dist/core/index.d.ts.map +1 -1
  340. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  341. package/dist/device/Device.d.ts +64 -16
  342. package/dist/device/Device.d.ts.map +1 -1
  343. package/dist/device/DeviceCommands.d.ts +8 -6
  344. package/dist/device/DeviceCommands.d.ts.map +1 -1
  345. package/dist/device/DeviceConnector.d.ts +1 -1
  346. package/dist/device/DeviceConnector.d.ts.map +1 -1
  347. package/dist/device/DeviceFeaturesState.d.ts +3 -0
  348. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  349. package/dist/device/DevicePool.d.ts +5 -2
  350. package/dist/device/DevicePool.d.ts.map +1 -1
  351. package/dist/device/DeviceStateMapper.d.ts +13 -0
  352. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  353. package/dist/device/DeviceStateProjector.d.ts +7 -0
  354. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  355. package/dist/device/DeviceStateStore.d.ts +21 -0
  356. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  357. package/dist/device/DeviceWalletSessionStore.d.ts +27 -0
  358. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  359. package/dist/device/cloneDeviceState.d.ts +2 -0
  360. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  361. package/dist/device/deviceIdentity.d.ts +5 -0
  362. package/dist/device/deviceIdentity.d.ts.map +1 -0
  363. package/dist/deviceProfile/buildDeviceFeatures.d.ts +9 -3
  364. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  365. package/dist/deviceProfile/index.d.ts +0 -1
  366. package/dist/deviceProfile/index.d.ts.map +1 -1
  367. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
  368. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
  369. package/dist/events/device.d.ts +16 -2
  370. package/dist/events/device.d.ts.map +1 -1
  371. package/dist/events/logBlockEvent.d.ts +2 -0
  372. package/dist/events/logBlockEvent.d.ts.map +1 -1
  373. package/dist/events/ui-request.d.ts +46 -4
  374. package/dist/events/ui-request.d.ts.map +1 -1
  375. package/dist/index.d.ts +1442 -712
  376. package/dist/index.js +7497 -3705
  377. package/dist/inject.d.ts.map +1 -1
  378. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  379. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  380. package/dist/protocols/protocol-v2/features.d.ts +25 -17
  381. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  382. package/dist/protocols/protocol-v2/firmware.d.ts +1 -0
  383. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
  384. package/dist/protocols/protocol-v2/index.d.ts +3 -2
  385. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  386. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
  387. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  388. package/dist/protocols/protocol-v2/uiInteraction.d.ts +39 -0
  389. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
  390. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +2 -0
  391. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
  392. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts +22 -0
  393. package/dist/protocols/protocol-v2/unlockPolicyRunner.d.ts.map +1 -0
  394. package/dist/protocols/protocol-v2/walletSession.d.ts +25 -0
  395. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  396. package/dist/types/api/checkAllFirmwareRelease.d.ts +25 -4
  397. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  398. package/dist/types/api/deviceSettings.d.ts +11 -2
  399. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  400. package/dist/types/api/deviceUnlock.d.ts +1 -1
  401. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  402. package/dist/types/api/export.d.ts +3 -2
  403. package/dist/types/api/export.d.ts.map +1 -1
  404. package/dist/types/api/firmwareUpdate.d.ts +6 -1
  405. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  406. package/dist/types/api/getDeviceState.d.ts +12 -0
  407. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  408. package/dist/types/api/getFeatures.d.ts.map +1 -1
  409. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  410. package/dist/types/api/getPassphraseState.d.ts +2 -10
  411. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  412. package/dist/types/api/index.d.ts +19 -30
  413. package/dist/types/api/index.d.ts.map +1 -1
  414. package/dist/types/api/kaspaSignTransaction.d.ts +42 -4
  415. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  416. package/dist/types/api/openWalletSession.d.ts +35 -0
  417. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  418. package/dist/types/api/protocolV2.d.ts +18 -84
  419. package/dist/types/api/protocolV2.d.ts.map +1 -1
  420. package/dist/types/api/sessionCache.d.ts +13 -0
  421. package/dist/types/api/sessionCache.d.ts.map +1 -0
  422. package/dist/types/device.d.ts +132 -8
  423. package/dist/types/device.d.ts.map +1 -1
  424. package/dist/types/params.d.ts.map +1 -1
  425. package/dist/types/settings.d.ts +7 -14
  426. package/dist/types/settings.d.ts.map +1 -1
  427. package/dist/utils/assets.d.ts +2 -1
  428. package/dist/utils/assets.d.ts.map +1 -1
  429. package/dist/utils/deviceFeaturesCompat.d.ts +13 -0
  430. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  431. package/dist/utils/deviceFeaturesUtils.d.ts +8 -3
  432. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  433. package/dist/utils/deviceInfoUtils.d.ts +9 -9
  434. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  435. package/dist/utils/deviceSettings.d.ts +38 -7
  436. package/dist/utils/deviceSettings.d.ts.map +1 -1
  437. package/dist/utils/deviceVersionUtils.d.ts +7 -5
  438. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  439. package/dist/utils/homescreen.d.ts +4 -0
  440. package/dist/utils/homescreen.d.ts.map +1 -1
  441. package/dist/utils/index.d.ts +6 -3
  442. package/dist/utils/index.d.ts.map +1 -1
  443. package/dist/utils/networkUtils.d.ts +10 -1
  444. package/dist/utils/networkUtils.d.ts.map +1 -1
  445. package/dist/utils/patch.d.ts +1 -1
  446. package/dist/utils/patch.d.ts.map +1 -1
  447. package/dist/utils/pro2Nft.d.ts +29 -0
  448. package/dist/utils/pro2Nft.d.ts.map +1 -0
  449. package/dist/utils/pro2Wallpaper.d.ts +22 -0
  450. package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
  451. package/dist/utils/tracing.d.ts.map +1 -1
  452. package/dist/utils/uiProgressThrottle.d.ts +3 -0
  453. package/dist/utils/uiProgressThrottle.d.ts.map +1 -0
  454. package/package.json +4 -4
  455. package/src/api/BaseMethod.ts +53 -20
  456. package/src/api/CheckAllFirmwareRelease.ts +296 -1
  457. package/src/api/CheckBootloaderRelease.ts +1 -2
  458. package/src/api/CheckFirmwareRelease.ts +1 -2
  459. package/src/api/CipherKeyValue.ts +4 -0
  460. package/src/api/ClearSessionCache.ts +32 -0
  461. package/src/api/DirList.ts +9 -4
  462. package/src/api/DirMake.ts +7 -4
  463. package/src/api/DirRemove.ts +7 -4
  464. package/src/api/FileDelete.ts +7 -4
  465. package/src/api/FileRead.ts +15 -9
  466. package/src/api/FileWrite.ts +26 -181
  467. package/src/api/FirmwareUpdate.ts +11 -12
  468. package/src/api/FirmwareUpdateV2.ts +132 -52
  469. package/src/api/FirmwareUpdateV3.ts +3 -11
  470. package/src/api/FirmwareUpdateV4.ts +693 -535
  471. package/src/api/GetDeviceState.ts +59 -0
  472. package/src/api/GetFeatures.ts +6 -4
  473. package/src/api/GetOnekeyFeatures.ts +1 -75
  474. package/src/api/GetPassphraseState.ts +36 -21
  475. package/src/api/OpenWalletSession.ts +251 -0
  476. package/src/api/PathInfo.ts +9 -4
  477. package/src/api/PromptWebDeviceAccess.ts +2 -7
  478. package/src/api/SearchDevices.ts +29 -4
  479. package/src/api/UploadPortfolio.ts +40 -0
  480. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  481. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  482. package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
  483. package/src/api/algo/AlgoGetAddress.ts +4 -0
  484. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  485. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +41 -32
  486. package/src/api/aptos/AptosGetAddress.ts +4 -0
  487. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  488. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  489. package/src/api/aptos/AptosSignMessage.ts +4 -0
  490. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  491. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  492. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  493. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  494. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  495. package/src/api/btc/BTCGetAddress.ts +8 -1
  496. package/src/api/btc/BTCGetPublicKey.ts +9 -2
  497. package/src/api/btc/BTCSignMessage.ts +8 -1
  498. package/src/api/btc/BTCSignPsbt.ts +4 -0
  499. package/src/api/btc/BTCSignTransaction.ts +8 -1
  500. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  501. package/src/api/btc/helpers/versionLimit.ts +7 -4
  502. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  503. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  504. package/src/api/cardano/CardanoSignMessage.ts +5 -1
  505. package/src/api/cardano/CardanoSignTransaction.ts +5 -1
  506. package/src/api/conflux/ConfluxGetAddress.ts +6 -0
  507. package/src/api/conflux/ConfluxSignMessage.ts +6 -0
  508. package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
  509. package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
  510. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  511. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  512. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  513. package/src/api/device/DeviceCancel.ts +5 -0
  514. package/src/api/device/DeviceChangePin.ts +28 -0
  515. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  516. package/src/api/device/DeviceLock.ts +5 -0
  517. package/src/api/device/DeviceRebootToBoardloader.ts +5 -0
  518. package/src/api/device/DeviceRebootToBootloader.ts +5 -0
  519. package/src/api/device/DeviceSettings.ts +194 -1
  520. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  521. package/src/api/device/DeviceUnlock.ts +14 -1
  522. package/src/api/device/DeviceUpdateBootloader.ts +1 -2
  523. package/src/api/device/DeviceWipe.ts +25 -0
  524. package/src/api/device/PreInitialize.ts +4 -0
  525. package/src/api/dynex/DnxGetAddress.ts +0 -6
  526. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  527. package/src/api/evm/EVMGetAddress.ts +6 -2
  528. package/src/api/evm/EVMGetPublicKey.ts +6 -2
  529. package/src/api/evm/EVMSignMessage.ts +6 -2
  530. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  531. package/src/api/evm/EVMSignTransaction.ts +6 -2
  532. package/src/api/evm/EVMSignTypedData.ts +42 -50
  533. package/src/api/evm/EVMVerifyMessage.ts +6 -2
  534. package/src/api/evm/legacyV1/getAddress.ts +2 -2
  535. package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
  536. package/src/api/evm/legacyV1/signMessage.ts +2 -2
  537. package/src/api/evm/legacyV1/signTypedData.ts +2 -2
  538. package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
  539. package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
  540. package/src/api/evm/protocol.ts +6 -0
  541. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  542. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  543. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +3 -3
  544. package/src/api/firmware/getBinary.ts +8 -3
  545. package/src/api/helpers/batchGetPublickeys.ts +2 -2
  546. package/src/api/helpers/filesystemValidation.ts +61 -0
  547. package/src/api/helpers/paramsValidator.ts +1 -1
  548. package/src/api/helpers/protocolV2FileWrite.ts +206 -0
  549. package/src/api/index.ts +9 -26
  550. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  551. package/src/api/kaspa/KaspaSignTransaction.ts +380 -29
  552. package/src/api/kaspa/helpers/TransferSerialize.ts +17 -7
  553. package/src/api/lightning/LnurlAuth.ts +0 -4
  554. package/src/api/near/NearGetAddress.ts +4 -0
  555. package/src/api/near/NearSignTransaction.ts +4 -0
  556. package/src/api/nem/NEMGetAddress.ts +4 -0
  557. package/src/api/nem/NEMSignTransaction.ts +4 -0
  558. package/src/api/neo/NeoGetAddress.ts +0 -4
  559. package/src/api/neo/NeoSignTransaction.ts +0 -4
  560. package/src/api/nervos/NervosGetAddress.ts +0 -4
  561. package/src/api/nervos/NervosSignTransaction.ts +2 -6
  562. package/src/api/nexa/NexaGetAddress.ts +0 -4
  563. package/src/api/nexa/NexaSignTransaction.ts +3 -5
  564. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  565. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  566. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  567. package/src/api/nostr/NostrSignEvent.ts +4 -0
  568. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  569. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  570. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  571. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
  572. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +5 -2
  573. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +8 -5
  574. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +43 -5
  575. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +21 -0
  576. package/src/api/protocol-v2/DeviceInfoGet.ts +8 -15
  577. package/src/api/protocol-v2/DeviceReboot.ts +7 -3
  578. package/src/api/protocol-v2/DeviceStatusGet.ts +19 -0
  579. package/src/api/protocol-v2/DeviceUploadNft.ts +166 -0
  580. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +134 -0
  581. package/src/api/protocol-v2/FilesystemFormat.ts +9 -3
  582. package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
  583. package/src/api/protocol-v2/Ping.ts +37 -3
  584. package/src/api/protocol-v2/ProtocolInfoRequest.ts +8 -3
  585. package/src/api/protocol-v2/helpers.ts +21 -16
  586. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  587. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  588. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  589. package/src/api/solana/SolGetAddress.ts +4 -0
  590. package/src/api/solana/SolSignMessage.ts +4 -0
  591. package/src/api/solana/SolSignOffchainMessage.ts +4 -0
  592. package/src/api/solana/SolSignTransaction.ts +4 -0
  593. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  594. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  595. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  596. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  597. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  598. package/src/api/stellar/StellarGetAddress.ts +1 -10
  599. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  600. package/src/api/sui/SuiGetAddress.ts +4 -0
  601. package/src/api/sui/SuiGetPublicKey.ts +4 -0
  602. package/src/api/sui/SuiSignMessage.ts +4 -0
  603. package/src/api/sui/SuiSignTransaction.ts +4 -0
  604. package/src/api/ton/TonGetAddress.ts +4 -0
  605. package/src/api/ton/TonSignData.ts +5 -1
  606. package/src/api/ton/TonSignMessage.ts +4 -0
  607. package/src/api/ton/TonSignProof.ts +4 -0
  608. package/src/api/tron/TronGetAddress.ts +4 -0
  609. package/src/api/tron/TronSignMessage.ts +18 -7
  610. package/src/api/tron/TronSignTransaction.ts +4 -0
  611. package/src/api/utils.ts +7 -3
  612. package/src/api/xrp/XrpGetAddress.ts +4 -0
  613. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  614. package/src/constants/index.ts +1 -4
  615. package/src/core/RequestQueue.ts +1 -0
  616. package/src/core/deviceEventRegistration.ts +27 -0
  617. package/src/core/index.ts +274 -120
  618. package/src/data/messages/messages-protocol-v2.json +1161 -477
  619. package/src/data/messages/messages.json +286 -1
  620. package/src/data-manager/DataManager.ts +6 -6
  621. package/src/data-manager/TransportManager.ts +1 -1
  622. package/src/data-manager/connectSettings.ts +4 -0
  623. package/src/device/Device.ts +820 -282
  624. package/src/device/DeviceCommands.ts +166 -158
  625. package/src/device/DeviceConnector.ts +10 -7
  626. package/src/device/DeviceFeaturesState.ts +25 -0
  627. package/src/device/DevicePool.ts +66 -16
  628. package/src/device/DeviceStateMapper.ts +374 -0
  629. package/src/device/DeviceStateProjector.ts +94 -0
  630. package/src/device/DeviceStateStore.ts +201 -0
  631. package/src/device/DeviceWalletSessionStore.ts +144 -0
  632. package/src/device/cloneDeviceState.ts +39 -0
  633. package/src/device/deviceIdentity.ts +18 -0
  634. package/src/deviceProfile/buildDeviceFeatures.ts +224 -190
  635. package/src/deviceProfile/index.ts +0 -1
  636. package/src/deviceProfile/protocolV2DeviceIdentity.ts +32 -0
  637. package/src/events/device.ts +22 -1
  638. package/src/events/logBlockEvent.ts +80 -2
  639. package/src/events/ui-request.ts +57 -4
  640. package/src/inject.ts +16 -41
  641. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  642. package/src/protocols/protocol-v2/features.ts +103 -32
  643. package/src/protocols/protocol-v2/firmware.ts +2 -1
  644. package/src/protocols/protocol-v2/index.ts +8 -1
  645. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  646. package/src/protocols/protocol-v2/uiInteraction.ts +236 -0
  647. package/src/protocols/protocol-v2/unlockPolicy.ts +1 -0
  648. package/src/protocols/protocol-v2/unlockPolicyRunner.ts +117 -0
  649. package/src/protocols/protocol-v2/walletSession.ts +360 -0
  650. package/src/types/api/checkAllFirmwareRelease.ts +46 -4
  651. package/src/types/api/deviceSettings.ts +26 -2
  652. package/src/types/api/deviceUnlock.ts +1 -1
  653. package/src/types/api/export.ts +8 -0
  654. package/src/types/api/firmwareUpdate.ts +23 -5
  655. package/src/types/api/getDeviceState.ts +19 -0
  656. package/src/types/api/getFeatures.ts +3 -0
  657. package/src/types/api/getOnekeyFeatures.ts +3 -0
  658. package/src/types/api/getPassphraseState.ts +9 -11
  659. package/src/types/api/index.ts +27 -64
  660. package/src/types/api/kaspaSignTransaction.ts +60 -4
  661. package/src/types/api/openWalletSession.ts +54 -0
  662. package/src/types/api/protocolV2.ts +33 -139
  663. package/src/types/api/sessionCache.ts +19 -0
  664. package/src/types/device.ts +185 -7
  665. package/src/types/params.ts +3 -2
  666. package/src/types/settings.ts +17 -16
  667. package/src/utils/assets.ts +4 -1
  668. package/src/utils/deviceFeaturesCompat.ts +180 -0
  669. package/src/utils/deviceFeaturesUtils.ts +56 -45
  670. package/src/utils/deviceInfoUtils.ts +27 -69
  671. package/src/utils/deviceSettings.ts +171 -39
  672. package/src/utils/deviceVersionUtils.ts +25 -44
  673. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  674. package/src/utils/homescreen.ts +36 -0
  675. package/src/utils/index.ts +27 -3
  676. package/src/utils/networkUtils.ts +274 -16
  677. package/src/utils/pro2Nft.ts +91 -0
  678. package/src/utils/pro2Wallpaper.ts +130 -0
  679. package/src/utils/tracing.ts +3 -1
  680. package/src/utils/uiProgressThrottle.ts +63 -0
  681. package/tsconfig.type-tests.json +12 -0
  682. package/dist/api/GetDeviceInfo.d.ts +0 -9
  683. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  684. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +0 -13
  685. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +0 -1
  686. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
  687. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  688. package/dist/types/api/getDeviceInfo.d.ts +0 -87
  689. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  690. package/src/api/GetDeviceInfo.ts +0 -145
  691. package/src/api/protocol-v2/FilesystemDiskControl.ts +0 -50
  692. package/src/deviceProfile/buildDeviceProfile.ts +0 -352
  693. package/src/types/api/getDeviceInfo.ts +0 -101
@@ -1,11 +1,68 @@
1
+ import { UI_REQUEST } from './ui-request';
1
2
  import { UI_RESPONSE } from './ui-response';
2
3
 
3
4
  export const LogBlockEvent: Set<string> = new Set([
5
+ UI_REQUEST.REQUEST_PASSPHRASE,
6
+ UI_REQUEST.REQUEST_PASSPHRASE_ON_DEVICE,
4
7
  UI_RESPONSE.RECEIVE_PIN,
5
8
  UI_RESPONSE.RECEIVE_PASSPHRASE,
6
9
  ]);
7
10
 
8
- const LogBlockMethod: Set<string> = new Set(['evmSignTypedData']);
11
+ const LogLabelMethod: Set<string> = new Set([
12
+ 'openWalletSession',
13
+ 'deviceUploadNft',
14
+ 'deviceUploadWallpaper',
15
+ 'uploadPortfolio',
16
+ 'fileWrite',
17
+ 'fileRead',
18
+ ]);
19
+
20
+ const SensitiveLogKeys: Set<string> = new Set([
21
+ 'devicestate',
22
+ 'entropy',
23
+ 'expectedpassphrasestate',
24
+ 'mnemonic',
25
+ 'passphrase',
26
+ 'passphrasestate',
27
+ 'password',
28
+ 'pin',
29
+ 'privatekey',
30
+ 'seed',
31
+ 'session',
32
+ 'sessionid',
33
+ 'walletsessionid',
34
+ 'xprv',
35
+ ]);
36
+
37
+ const normalizeLogKey = (key: string) => key.replace(/[_-]/g, '').toLowerCase();
38
+
39
+ const isSigningMethod = (methodName: string) => /sign/i.test(methodName);
40
+
41
+ const redactLogValue = (value: unknown, seen: WeakSet<object>): unknown => {
42
+ if (ArrayBuffer.isView(value)) {
43
+ return `[BINARY:${value.byteLength}]`;
44
+ }
45
+ if (value instanceof ArrayBuffer) {
46
+ return `[BINARY:${value.byteLength}]`;
47
+ }
48
+ if (Array.isArray(value)) {
49
+ return value.map(item => redactLogValue(item, seen));
50
+ }
51
+ if (!value || typeof value !== 'object') return value;
52
+ if (seen.has(value)) return '[CIRCULAR]';
53
+
54
+ seen.add(value);
55
+ const redacted = Object.fromEntries(
56
+ Object.entries(value as Record<string, unknown>).map(([key, item]) => [
57
+ key,
58
+ SensitiveLogKeys.has(normalizeLogKey(key)) && item !== null && item !== undefined
59
+ ? '[REDACTED]'
60
+ : redactLogValue(item, seen),
61
+ ])
62
+ );
63
+ seen.delete(value);
64
+ return redacted;
65
+ };
9
66
 
10
67
  export function getLogBlockLabel(message: unknown): string | undefined {
11
68
  if (!message || typeof message !== 'object') return undefined;
@@ -21,9 +78,30 @@ export function getLogBlockLabel(message: unknown): string | undefined {
21
78
  }
22
79
 
23
80
  const methodName = method ?? payload?.method;
24
- if (methodName && LogBlockMethod.has(methodName)) {
81
+ if (methodName && (LogLabelMethod.has(methodName) || isSigningMethod(methodName))) {
25
82
  return methodName;
26
83
  }
27
84
 
28
85
  return undefined;
29
86
  }
87
+
88
+ export function getSafeLogPayload(value: unknown, blockLabel?: string): unknown {
89
+ if (blockLabel && (LogBlockEvent.has(blockLabel) || isSigningMethod(blockLabel))) {
90
+ return { method: blockLabel, payload: '[REDACTED]' };
91
+ }
92
+
93
+ const redactedValue = redactLogValue(value, new WeakSet());
94
+ if (
95
+ blockLabel &&
96
+ redactedValue &&
97
+ typeof redactedValue === 'object' &&
98
+ !Array.isArray(redactedValue)
99
+ ) {
100
+ return { ...redactedValue, method: blockLabel };
101
+ }
102
+ return redactedValue;
103
+ }
104
+
105
+ export function formatLogMethodLabel(label: string, methodName?: string): string {
106
+ return methodName ? `${label} [${methodName}]` : label;
107
+ }
@@ -49,10 +49,54 @@ export const UI_REQUEST = {
49
49
  NOT_USE_ONEKEY_DEVICE: 'ui-device_please_use_onekey_device',
50
50
  } as const;
51
51
 
52
+ export type ProtocolV2UiEventSource =
53
+ | 'unlock-coordinator'
54
+ | 'wallet-session-coordinator'
55
+ | 'method-lifecycle';
56
+
57
+ export type ProtocolV2UiCompletion = 'page-accepted' | 'operation-completed';
58
+
59
+ export type HardwareUiInteractionMeta = {
60
+ interactionId: string;
61
+ phaseId: string;
62
+ sequence: number;
63
+ phase: 'pin' | 'passphrase' | 'passphrase-on-device' | 'button' | 'processing';
64
+ transition: 'start' | 'complete' | 'finish';
65
+ outcome?: 'submitted' | 'succeeded' | 'failed' | 'cancelled' | 'disconnected';
66
+ protocol: 'V2';
67
+ };
68
+
69
+ export type ProtocolV2UiEventMetadata = {
70
+ source?: ProtocolV2UiEventSource;
71
+ reason?: string;
72
+ deviceOnly?: boolean;
73
+ completion?: ProtocolV2UiCompletion;
74
+ method?: string;
75
+ page?: string | number;
76
+ operation?: string;
77
+ interaction?: HardwareUiInteractionMeta;
78
+ };
79
+
80
+ export type UiRequestWindowClose =
81
+ | {
82
+ type: typeof UI_REQUEST.CLOSE_UI_WINDOW;
83
+ payload: HardwareUiInteractionMeta;
84
+ }
85
+ | {
86
+ type: typeof UI_REQUEST.CLOSE_UI_PIN_WINDOW;
87
+ payload: HardwareUiInteractionMeta;
88
+ }
89
+ | {
90
+ type: typeof UI_REQUEST.CLOSE_UI_WINDOW;
91
+ payload?: undefined;
92
+ }
93
+ | {
94
+ type: typeof UI_REQUEST.CLOSE_UI_PIN_WINDOW;
95
+ payload?: undefined;
96
+ };
97
+
52
98
  export interface UiRequestWithoutPayload {
53
99
  type:
54
- | typeof UI_REQUEST.CLOSE_UI_WINDOW
55
- | typeof UI_REQUEST.CLOSE_UI_PIN_WINDOW
56
100
  | typeof UI_REQUEST.BLUETOOTH_PERMISSION
57
101
  | typeof UI_REQUEST.BLUETOOTH_UNSUPPORTED
58
102
  | typeof UI_REQUEST.BLUETOOTH_POWERED_OFF
@@ -73,7 +117,7 @@ export interface UiRequestFirmwareProgressing {
73
117
 
74
118
  export type UiRequestDeviceAction = {
75
119
  type: typeof UI_REQUEST.REQUEST_PIN;
76
- payload: {
120
+ payload: ProtocolV2UiEventMetadata & {
77
121
  device: Device;
78
122
  type?: PROTO.PinMatrixRequestType | 'ButtonRequest_PinEntry' | 'ButtonRequest_AttachPin';
79
123
  };
@@ -81,7 +125,7 @@ export type UiRequestDeviceAction = {
81
125
 
82
126
  export interface UiRequestButton {
83
127
  type: typeof UI_REQUEST.REQUEST_BUTTON;
84
- payload: DeviceButtonRequest['payload'];
128
+ payload: DeviceButtonRequest['payload'] & ProtocolV2UiEventMetadata;
85
129
  }
86
130
 
87
131
  export interface UiRequestPassphrase {
@@ -90,6 +134,11 @@ export interface UiRequestPassphrase {
90
134
  device: Device;
91
135
  passphraseState?: string;
92
136
  existsAttachPinUser?: boolean;
137
+ deviceOnly?: boolean;
138
+ source?: 'wallet-session-coordinator';
139
+ reason?: 'open-wallet' | 'session-recovery';
140
+ expectedPassphraseState?: string;
141
+ interaction?: HardwareUiInteractionMeta;
93
142
  };
94
143
  }
95
144
 
@@ -98,6 +147,9 @@ export interface UiRequestPassphraseOnDevice {
98
147
  payload: {
99
148
  device: Device;
100
149
  passphraseState?: string;
150
+ source?: 'wallet-session-coordinator';
151
+ reason?: 'open-wallet' | 'session-recovery';
152
+ interaction?: HardwareUiInteractionMeta;
101
153
  };
102
154
  }
103
155
 
@@ -168,6 +220,7 @@ export interface PreviousAddressResult {
168
220
 
169
221
  export type UiEvent =
170
222
  | UiRequestWithoutPayload
223
+ | UiRequestWindowClose
171
224
  | UiRequestDeviceAction
172
225
  | UiRequestButton
173
226
  | UiRequestPassphraseOnDevice
package/src/inject.ts CHANGED
@@ -100,6 +100,7 @@ export const createCoreApi = (
100
100
  | 'switchTransport'
101
101
  > => ({
102
102
  getLogs: () => call({ method: 'getLogs' }),
103
+ clearSessionCache: params => call({ ...params, method: 'clearSessionCache' }),
103
104
  /**
104
105
  * 搜索设备
105
106
  */
@@ -109,7 +110,10 @@ export const createCoreApi = (
109
110
  * 获取设备信息
110
111
  */
111
112
  getFeatures: (connectId, params) => call({ ...params, connectId, method: 'getFeatures' }),
112
- getDeviceInfo: (connectId, params) => call({ ...params, connectId, method: 'getDeviceInfo' }),
113
+ getDeviceState: (connectId, params) => {
114
+ const { refresh: _refresh, includeRaw: _includeRaw, ...commonParams } = (params ?? {}) as any;
115
+ return call({ ...commonParams, connectId, method: 'getDeviceState' });
116
+ },
113
117
  getOnekeyFeatures: (connectId, params) =>
114
118
  call({ ...params, connectId, method: 'getOnekeyFeatures' }),
115
119
 
@@ -143,6 +147,8 @@ export const createCoreApi = (
143
147
 
144
148
  testInitializeDeviceDuration: (connectId, params) =>
145
149
  call({ ...params, connectId, method: 'testInitializeDeviceDuration' }),
150
+ testProtocolV2Ping: (connectId, params) =>
151
+ call({ ...params, connectId, method: 'testProtocolV2Ping' }),
146
152
  preInitialize: (connectId, params) => call({ ...params, connectId, method: 'preInitialize' }),
147
153
  deviceBackup: connectId => call({ connectId, method: 'deviceBackup' }),
148
154
  deviceChangePin: (connectId, params) => call({ ...params, connectId, method: 'deviceChangePin' }),
@@ -150,47 +156,14 @@ export const createCoreApi = (
150
156
  deviceRebootToBoardloader: connectId => call({ connectId, method: 'deviceRebootToBoardloader' }),
151
157
  deviceRebootToBootloader: connectId => call({ connectId, method: 'deviceRebootToBootloader' }),
152
158
 
153
- // File system & device control API (Protocol V2 only)
154
- protocolInfoRequest: (connectId, params) =>
155
- call({ ...params, connectId, method: 'protocolInfoRequest' }),
156
- ping: (connectId, params) => call({ ...params, connectId, method: 'ping' }),
159
+ // Pro2 business API
157
160
  deviceReboot: (connectId, params) => call({ ...params, connectId, method: 'deviceReboot' }),
158
- deviceInfoGet: (connectId, params) =>
159
- call({ ...params, connectId, method: 'deviceInfoGet' }),
160
- deviceFirmwareUpdate: (connectId, params) =>
161
- call({ ...params, connectId, method: 'deviceFirmwareUpdate' }),
162
- deviceGetFirmwareUpdateStatus: (connectId, params) =>
163
- call({ ...params, connectId, method: 'deviceGetFirmwareUpdateStatus' }),
164
- deviceFactoryInfoSet: (connectId, params) =>
165
- call({ ...params, connectId, method: 'deviceFactoryInfoSet' }),
166
- deviceFactoryInfoGet: (connectId, params) =>
167
- call({ ...params, connectId, method: 'deviceFactoryInfoGet' }),
168
- filesystemPermissionFix: (connectId, params) =>
169
- call({ ...params, connectId, method: 'filesystemPermissionFix' }),
170
- fileRead: (connectId, params) => call({ ...params, connectId, method: 'fileRead' }),
171
- fileWrite: (connectId, params) => call({ ...params, connectId, method: 'fileWrite' }),
172
- fileDelete: (connectId, params) => call({ ...params, connectId, method: 'fileDelete' }),
173
- dirList: (connectId, params) => call({ ...params, connectId, method: 'dirList' }),
174
- dirMake: (connectId, params) => call({ ...params, connectId, method: 'dirMake' }),
175
- dirRemove: (connectId, params) => call({ ...params, connectId, method: 'dirRemove' }),
176
- pathInfo: (connectId, params) => call({ ...params, connectId, method: 'pathInfo' }),
177
- filesystemFileRead: (connectId, params) =>
178
- call({ ...params, connectId, method: 'filesystemFileRead' }),
179
- filesystemFileWrite: (connectId, params) =>
180
- call({ ...params, connectId, method: 'filesystemFileWrite' }),
181
- filesystemFileDelete: (connectId, params) =>
182
- call({ ...params, connectId, method: 'filesystemFileDelete' }),
183
- filesystemDirList: (connectId, params) =>
184
- call({ ...params, connectId, method: 'filesystemDirList' }),
185
- filesystemDirMake: (connectId, params) =>
186
- call({ ...params, connectId, method: 'filesystemDirMake' }),
187
- filesystemDirRemove: (connectId, params) =>
188
- call({ ...params, connectId, method: 'filesystemDirRemove' }),
189
- filesystemPathInfoQuery: (connectId, params) =>
190
- call({ ...params, connectId, method: 'filesystemPathInfoQuery' }),
191
- filesystemFormat: connectId => call({ connectId, method: 'filesystemFormat' }),
192
- filesystemDiskControl: (connectId, params) =>
193
- call({ ...params, connectId, method: 'filesystemDiskControl' }),
161
+ deviceGetOnboardingStatus: (connectId, params) =>
162
+ call({ ...params, connectId, method: 'deviceGetOnboardingStatus' }),
163
+ deviceUploadWallpaper: (connectId, params) =>
164
+ call({ ...params, connectId, method: 'deviceUploadWallpaper' }),
165
+ deviceUploadNft: (connectId, params) => call({ ...params, connectId, method: 'deviceUploadNft' }),
166
+ uploadPortfolio: (connectId, params) => call({ ...params, connectId, method: 'uploadPortfolio' }),
194
167
  deviceRecovery: (connectId, params) => call({ ...params, connectId, method: 'deviceRecovery' }),
195
168
  deviceReset: (connectId, params) => call({ ...params, connectId, method: 'deviceReset' }),
196
169
  deviceSettings: (connectId, params) => call({ ...params, connectId, method: 'deviceSettings' }),
@@ -206,6 +179,8 @@ export const createCoreApi = (
206
179
  call({ ...params, connectId, method: 'deviceUpdateBootloader' }),
207
180
  getPassphraseState: (connectId, params) =>
208
181
  call({ ...params, connectId, method: 'getPassphraseState' }),
182
+ openWalletSession: (connectId, params) =>
183
+ call({ ...params, connectId, method: 'openWalletSession' }),
209
184
  deviceCancel: (connectId, params) => call({ ...params, connectId, method: 'deviceCancel' }),
210
185
  deviceLock: (connectId, params) => call({ ...params, connectId, method: 'deviceLock' }),
211
186
  deviceUnlock: (connectId, params) =>
@@ -0,0 +1,24 @@
1
+ import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
2
+
3
+ import type { DeviceSession } from '@onekeyfe/hd-transport';
4
+
5
+ export type CompleteDeviceSession = DeviceSession & {
6
+ session_id: string;
7
+ btc_test_address: string;
8
+ };
9
+
10
+ export function assertCompleteDeviceSession(
11
+ message: DeviceSession
12
+ ): asserts message is CompleteDeviceSession {
13
+ if (
14
+ typeof message.session_id !== 'string' ||
15
+ !message.session_id ||
16
+ typeof message.btc_test_address !== 'string' ||
17
+ !message.btc_test_address
18
+ ) {
19
+ throw ERRORS.TypedError(
20
+ HardwareErrorCode.RuntimeError,
21
+ 'Device returned an incomplete DeviceSession response.'
22
+ );
23
+ }
24
+ }
@@ -1,10 +1,15 @@
1
1
  import { DeviceSEState, DeviceSeType } from '@onekeyfe/hd-transport';
2
2
 
3
- import type { DeviceInfoGet, DeviceSEInfo, ProtocolV2DeviceInfo } from '@onekeyfe/hd-transport';
3
+ import type {
4
+ DeviceInfoGet,
5
+ DeviceSEInfo,
6
+ DeviceStatus,
7
+ ProtocolInfo,
8
+ ProtocolV2DeviceInfo,
9
+ } from '@onekeyfe/hd-transport';
4
10
  import type { DeviceCommands } from '../../device/DeviceCommands';
5
11
 
6
- // 单源类型:直接使用 hd-transport 生成的 ProtocolV2DeviceInfo / DeviceSEInfo /
7
- // DeviceFirmwareImageInfo(与 firmware-pro2 proto 一致),不再维护手写副本。
12
+ // Use hd-transport generated Protocol V2 types as the single source of truth.
8
13
  export type { ProtocolV2DeviceInfo };
9
14
  export type { DeviceFirmwareImageInfo as ProtocolV2FirmwareImageInfo } from '@onekeyfe/hd-transport';
10
15
  export type { DeviceSEInfo as ProtocolV2SEInfo } from '@onekeyfe/hd-transport';
@@ -12,8 +17,8 @@ export type { DeviceSEInfo as ProtocolV2SEInfo } from '@onekeyfe/hd-transport';
12
17
  export type ProtocolV2SeStateLabel = 'BOOT' | 'APP_FACTORY' | 'APP';
13
18
 
14
19
  /**
15
- * 传输层沿用历史 decode 语义:单值 proto enum 输出为名称字符串。
16
- * 这里按 SDK decode 后的字符串语义处理,同时接受数字枚举,便于低层调用复用。
20
+ * The transport historically decodes scalar proto enums as name strings.
21
+ * Accept both that SDK representation and numeric enums for low-level callers.
17
22
  */
18
23
  const normalizeEnumValue = <T extends Record<string | number, string | number>>(
19
24
  enumObject: T,
@@ -26,8 +31,8 @@ const normalizeEnumValue = <T extends Record<string | number, string | number>>(
26
31
  };
27
32
 
28
33
  /**
29
- * DeviceSEInfo.state 可读标签。SDK 内唯一的 SE 状态映射实现,
30
- * DeviceProfile 与标准 Features 构建都从这里取。
34
+ * Map DeviceSEInfo.state to a readable label. This is the SDK's canonical mapping
35
+ * used by DeviceState and the legacy Features projection.
31
36
  */
32
37
  export const getProtocolV2SeState = (se?: DeviceSEInfo): ProtocolV2SeStateLabel | null => {
33
38
  const label = normalizeEnumValue(DeviceSEState, se?.state);
@@ -44,21 +49,68 @@ export const getProtocolV2SeState = (se?: DeviceSEInfo): ProtocolV2SeStateLabel
44
49
  };
45
50
 
46
51
  /**
47
- * DeviceSEInfo.type 可读标签(如 'THD89')。DeviceProfile / Features
48
- * 的 SE 类型归一化从这里取。
52
+ * Map DeviceSEInfo.type to a readable label such as `THD89`.
49
53
  */
50
54
  export const getProtocolV2SeType = (se?: DeviceSEInfo): string | null =>
51
55
  normalizeEnumValue(DeviceSeType, se?.type);
52
56
 
53
- export const isProtocolV2BootloaderDeviceInfo = (deviceInfo?: ProtocolV2DeviceInfo | null) =>
54
- !!deviceInfo && deviceInfo.status == null;
57
+ export type ProtocolV2RuntimeMode = 'normal' | 'bootloader' | 'romloader';
58
+
59
+ /**
60
+ * Protocol V2 fingerprints use:
61
+ * <binary>__<version>__<commit>__<PROD|DEV>__<DEBUG|RELEASE>
62
+ */
63
+ export type ProtocolV2BuildFingerprint = {
64
+ binary: 'application' | 'bootloader' | 'romloader';
65
+ version: string;
66
+ commit: string;
67
+ environment: 'PROD' | 'DEV';
68
+ buildType: 'DEBUG' | 'RELEASE';
69
+ };
70
+
71
+ export const parseProtocolV2BuildFingerprint = (
72
+ buildFingerprint: string | null | undefined
73
+ ): ProtocolV2BuildFingerprint | null => {
74
+ if (!buildFingerprint) return null;
75
+ const [binary, version, commit, environment, buildType, ...extra] = buildFingerprint.split('__');
76
+ if (
77
+ extra.length > 0 ||
78
+ (binary !== 'application' && binary !== 'bootloader' && binary !== 'romloader') ||
79
+ !version ||
80
+ !commit ||
81
+ (environment !== 'PROD' && environment !== 'DEV') ||
82
+ (buildType !== 'DEBUG' && buildType !== 'RELEASE')
83
+ ) {
84
+ return null;
85
+ }
86
+ return { binary, version, commit, environment, buildType };
87
+ };
88
+
89
+ export const getProtocolV2RuntimeMode = (
90
+ protocolInfo: ProtocolInfo
91
+ ): ProtocolV2RuntimeMode | undefined => {
92
+ const binary = parseProtocolV2BuildFingerprint(protocolInfo.build_fingerprint)?.binary;
93
+ if (binary === 'application') return 'normal';
94
+ return binary;
95
+ };
96
+
97
+ // MessageType_DeviceStatusGet in the Protocol V2 protobuf registry.
98
+ export const PROTOCOL_V2_DEVICE_STATUS_GET_MESSAGE_TYPE = 60602;
99
+
100
+ export const supportsProtocolV2Message = (
101
+ protocolInfo: ProtocolInfo,
102
+ messageType: number
103
+ ): boolean => protocolInfo.supported_messages.includes(messageType);
55
104
 
56
105
  export const PROTOCOL_V2_FEATURES_DEVICE_INFO_REQUEST = {
57
106
  targets: {
58
107
  hw: true,
59
108
  fw: true,
60
109
  coprocessor: true,
61
- status: true,
110
+ se1: true,
111
+ se2: true,
112
+ se3: true,
113
+ se4: true,
62
114
  },
63
115
  types: {
64
116
  version: true,
@@ -67,23 +119,9 @@ export const PROTOCOL_V2_FEATURES_DEVICE_INFO_REQUEST = {
67
119
  };
68
120
 
69
121
  /**
70
- * 轻量状态刷新请求(每次 run 前使用)。
71
- *
72
- * status 提供 init_states / passphrase_enabled 等会在设备端变化的字段;
73
- * hw / coprocessor 提供 serialNo / bleName 等身份字段;不含 fw/SE targets,单帧请求开销很小。
122
+ * Version probe used after firmware update completion.
123
+ * It reads hardware and firmware component data without requesting DeviceStatus.
74
124
  */
75
- export const PROTOCOL_V2_STATUS_DEVICE_INFO_REQUEST = {
76
- targets: {
77
- hw: true,
78
- coprocessor: true,
79
- status: true,
80
- },
81
- types: {
82
- version: true,
83
- specific: true,
84
- },
85
- };
86
-
87
125
  export const PROTOCOL_V2_VERSIONS_DEVICE_INFO_REQUEST = {
88
126
  targets: {
89
127
  hw: true,
@@ -93,7 +131,6 @@ export const PROTOCOL_V2_VERSIONS_DEVICE_INFO_REQUEST = {
93
131
  se2: true,
94
132
  se3: true,
95
133
  se4: true,
96
- status: true,
97
134
  },
98
135
  types: {
99
136
  version: true,
@@ -110,7 +147,6 @@ export const PROTOCOL_V2_FULL_DEVICE_INFO_REQUEST = {
110
147
  se2: true,
111
148
  se3: true,
112
149
  se4: true,
113
- status: true,
114
150
  },
115
151
  types: {
116
152
  version: true,
@@ -123,6 +159,27 @@ export const PROTOCOL_V2_FULL_DEVICE_INFO_REQUEST = {
123
159
  export const PROTOCOL_V2_DEVICE_INFO_REQUEST = PROTOCOL_V2_FULL_DEVICE_INFO_REQUEST;
124
160
  export const PROTOCOL_V2_DEVICE_INFO_TIMEOUT_MS = 10 * 1000;
125
161
 
162
+ export async function requestProtocolV2ProtocolInfo({
163
+ commands,
164
+ timeoutMs,
165
+ }: {
166
+ commands: DeviceCommands;
167
+ timeoutMs?: number;
168
+ }): Promise<ProtocolInfo> {
169
+ const response =
170
+ timeoutMs === undefined
171
+ ? await commands.typedCall('ProtocolInfoRequest', 'ProtocolInfo', {
172
+ eventless_wallet_session: true,
173
+ })
174
+ : await commands.typedCall(
175
+ 'ProtocolInfoRequest',
176
+ 'ProtocolInfo',
177
+ { eventless_wallet_session: true },
178
+ { timeoutMs }
179
+ );
180
+ return response.message;
181
+ }
182
+
126
183
  export async function requestProtocolV2DeviceInfo({
127
184
  commands,
128
185
  timeoutMs = PROTOCOL_V2_DEVICE_INFO_TIMEOUT_MS,
@@ -135,7 +192,21 @@ export async function requestProtocolV2DeviceInfo({
135
192
  const { message } = await commands.typedCall('DeviceInfoGet', 'DeviceInfo', request, {
136
193
  timeoutMs,
137
194
  });
138
- // 'DeviceInfo' 在生成类型里是 V1 DeviceInfo | ProtocolV2DeviceInfo 的合并;
139
- // DeviceInfoGet 是 V2-only 消息,这里收窄到 V2 形态。
195
+ // Generated DeviceInfo is a V1/V2 union; DeviceInfoGet narrows it to the V2 shape.
140
196
  return message as ProtocolV2DeviceInfo;
141
197
  }
198
+
199
+ export async function requestProtocolV2DeviceStatus({
200
+ commands,
201
+ timeoutMs,
202
+ }: {
203
+ commands: DeviceCommands;
204
+ timeoutMs?: number;
205
+ }): Promise<DeviceStatus> {
206
+ const response =
207
+ timeoutMs === undefined
208
+ ? await commands.typedCall('DeviceStatusGet', 'DeviceStatus', {})
209
+ : await commands.typedCall('DeviceStatusGet', 'DeviceStatus', {}, { timeoutMs });
210
+ const { message } = response;
211
+ return message;
212
+ }
@@ -1,7 +1,8 @@
1
1
  /**
2
- * 当前 firmware-pro2 子模块的 DeviceFirmwareTargetType。
2
+ * DeviceFirmwareTargetType from the current firmware-pro2 submodule.
3
3
  */
4
4
  export const ProtocolV2FirmwareTargetType = {
5
+ FW_MGMT_TARGET_INVALID: 0,
5
6
  FW_MGMT_TARGET_CRATE: 1,
6
7
  FW_MGMT_TARGET_ROMLOADER: 2,
7
8
  FW_MGMT_TARGET_BOOTLOADER: 3,
@@ -1,16 +1,23 @@
1
1
  export {
2
2
  PROTOCOL_V2_DEVICE_INFO_REQUEST,
3
3
  PROTOCOL_V2_DEVICE_INFO_TIMEOUT_MS,
4
+ PROTOCOL_V2_DEVICE_STATUS_GET_MESSAGE_TYPE,
4
5
  PROTOCOL_V2_FEATURES_DEVICE_INFO_REQUEST,
5
- PROTOCOL_V2_STATUS_DEVICE_INFO_REQUEST,
6
6
  PROTOCOL_V2_VERSIONS_DEVICE_INFO_REQUEST,
7
+ getProtocolV2RuntimeMode,
7
8
  getProtocolV2SeState,
8
9
  getProtocolV2SeType,
10
+ parseProtocolV2BuildFingerprint,
11
+ requestProtocolV2ProtocolInfo,
12
+ supportsProtocolV2Message,
9
13
  } from './features';
10
14
  export type {
15
+ ProtocolV2BuildFingerprint,
11
16
  ProtocolV2DeviceInfo,
12
17
  ProtocolV2FirmwareImageInfo,
13
18
  ProtocolV2SEInfo,
14
19
  ProtocolV2SeStateLabel,
20
+ ProtocolV2RuntimeMode,
15
21
  } from './features';
16
22
  export * from './firmware';
23
+ export * from './walletSession';
@@ -0,0 +1,65 @@
1
+ import type { DeviceSettings, DeviceSettingsPage } from '@onekeyfe/hd-transport';
2
+ import type { UnlockPolicy } from '../../api/BaseMethod';
3
+ import type { ProtocolV2InteractionDescriptor } from './uiInteraction';
4
+
5
+ export const PROTOCOL_V2_LOCK_FREE_DEVICE_SETTINGS = [
6
+ 'language',
7
+ 'brightness',
8
+ 'animation_enable',
9
+ 'tap_to_wake',
10
+ 'haptic_feedback',
11
+ 'device_name_display_enabled',
12
+ ] as const satisfies readonly (keyof DeviceSettings)[];
13
+
14
+ const lockFreeDeviceSettings = new Set<keyof DeviceSettings>(PROTOCOL_V2_LOCK_FREE_DEVICE_SETTINGS);
15
+
16
+ export const getProtocolV2SettingsUnlockPolicy = (settings: DeviceSettings): UnlockPolicy =>
17
+ Object.keys(settings).every(key => lockFreeDeviceSettings.has(key as keyof DeviceSettings))
18
+ ? 'none'
19
+ : 'unlock-before-run';
20
+
21
+ export type ProtocolV2SettingsOperation =
22
+ | {
23
+ kind: 'direct';
24
+ settings: DeviceSettings;
25
+ }
26
+ | {
27
+ kind: 'page';
28
+ page: DeviceSettingsPage;
29
+ };
30
+
31
+ export const getProtocolV2SettingsBehavior = (
32
+ operation: ProtocolV2SettingsOperation
33
+ ): {
34
+ unlockPolicy: UnlockPolicy;
35
+ uiInteraction?: ProtocolV2InteractionDescriptor;
36
+ } => {
37
+ if (operation.kind === 'page') {
38
+ return {
39
+ unlockPolicy: 'unlock-before-run',
40
+ uiInteraction: {
41
+ request: 'button',
42
+ source: 'method-lifecycle',
43
+ reason: 'settings-page',
44
+ completion: 'operation-completed',
45
+ deviceOnly: true,
46
+ page: operation.page,
47
+ },
48
+ };
49
+ }
50
+
51
+ return {
52
+ unlockPolicy: getProtocolV2SettingsUnlockPolicy(operation.settings),
53
+ uiInteraction:
54
+ typeof operation.settings.label === 'string'
55
+ ? {
56
+ request: 'button',
57
+ source: 'method-lifecycle',
58
+ reason: 'device-management',
59
+ completion: 'operation-completed',
60
+ deviceOnly: true,
61
+ operation: 'change-label',
62
+ }
63
+ : undefined,
64
+ };
65
+ };