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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (740) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +77 -0
  2. package/__tests__/DeviceCommands.test.ts +517 -0
  3. package/__tests__/DeviceEventRegistration.test.ts +43 -0
  4. package/__tests__/chain-params-onekey-compatibility.test.ts +229 -0
  5. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +282 -0
  6. package/__tests__/connectSettings.test.ts +61 -0
  7. package/__tests__/core-dispose.test.ts +34 -0
  8. package/__tests__/core-error-output.test.ts +39 -0
  9. package/__tests__/device-features-state.test.ts +78 -0
  10. package/__tests__/device-identity.test.ts +52 -0
  11. package/__tests__/device-initialize-timeout.test.ts +56 -0
  12. package/__tests__/device-lifecycle-events.test.ts +249 -0
  13. package/__tests__/device-pool-state.test.ts +144 -0
  14. package/__tests__/device-settings.test.ts +416 -0
  15. package/__tests__/device-state-contract.test.ts +27 -0
  16. package/__tests__/device-state-events.test.ts +286 -0
  17. package/__tests__/device-state-mapper.test.ts +261 -0
  18. package/__tests__/device-state-projector.test.ts +94 -0
  19. package/__tests__/device-state-store.test.ts +82 -0
  20. package/__tests__/device-utils.test.ts +107 -0
  21. package/__tests__/device-wallet-session-store.test.ts +478 -0
  22. package/__tests__/deviceFeaturesUtils.test.ts +39 -0
  23. package/__tests__/deviceSettings.test.ts +103 -0
  24. package/__tests__/evmLedgerLegacySafety.test.ts +12 -6
  25. package/__tests__/evmSignTransaction.test.ts +69 -0
  26. package/__tests__/evmSignTypedData.test.ts +80 -0
  27. package/__tests__/filesystemValidation.test.ts +53 -0
  28. package/__tests__/firmware-update/check-all-firmware-release.test.ts +175 -0
  29. package/__tests__/firmware-update/firmware-artifact-source.test.ts +119 -0
  30. package/__tests__/firmware-update/firmware-host-binding.test.ts +70 -0
  31. package/__tests__/firmware-update/firmware-preparation-error.test.ts +27 -0
  32. package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +200 -0
  33. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +13 -0
  34. package/__tests__/firmware-update/firmware-update-plan-bootloader-identity.test.ts +394 -0
  35. package/__tests__/firmware-update/firmware-update-plan.test.ts +593 -0
  36. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +213 -0
  37. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +430 -0
  38. package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +58 -0
  39. package/__tests__/firmware-update/firmware-upload-source.test.ts +70 -0
  40. package/__tests__/get-device-state.test.ts +458 -0
  41. package/__tests__/homescreen.test.ts +24 -0
  42. package/__tests__/kaspa-public-types.type-test.ts +16 -0
  43. package/__tests__/kaspa-use-tweak-pro2.test.ts +20 -0
  44. package/__tests__/kaspaSignTransaction.test.ts +601 -0
  45. package/__tests__/known-device-public-types.type-test.ts +3 -0
  46. package/__tests__/logBlockEvent.test.ts +128 -1
  47. package/__tests__/method-protocol-support.test.ts +113 -0
  48. package/__tests__/networkUtils.test.ts +406 -0
  49. package/__tests__/open-wallet-session-error-response.test.ts +43 -0
  50. package/__tests__/open-wallet-session.test.ts +1368 -0
  51. package/__tests__/pro2Wallpaper.test.ts +39 -0
  52. package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
  53. package/__tests__/protocol-v2-firmware-targets.test.ts +37 -0
  54. package/__tests__/protocol-v2-ping.test.ts +28 -0
  55. package/__tests__/protocol-v2-unlock-policy.test.ts +45 -0
  56. package/__tests__/protocol-v2.test.ts +6058 -2525
  57. package/__tests__/protocolV2FileWrite.test.ts +92 -0
  58. package/__tests__/protocolV2UiInteraction.test.ts +266 -0
  59. package/__tests__/public-device-state-api.test.ts +275 -0
  60. package/__tests__/public-pro2-api-boundary.test.ts +106 -0
  61. package/__tests__/refresh-device-state.test.ts +101 -0
  62. package/__tests__/request-context-logging.test.ts +16 -0
  63. package/__tests__/search-devices.test.ts +136 -0
  64. package/__tests__/tron-sign-message-init.test.ts +74 -0
  65. package/dist/api/BaseMethod.d.ts +14 -1
  66. package/dist/api/BaseMethod.d.ts.map +1 -1
  67. package/dist/api/CheckAllFirmwareRelease.d.ts +24 -1
  68. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  69. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  70. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  71. package/dist/api/CipherKeyValue.d.ts +1 -0
  72. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  73. package/dist/api/ClearSessionCache.d.ts +9 -0
  74. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  75. package/dist/api/DirList.d.ts +1 -0
  76. package/dist/api/DirList.d.ts.map +1 -1
  77. package/dist/api/DirMake.d.ts +1 -0
  78. package/dist/api/DirMake.d.ts.map +1 -1
  79. package/dist/api/DirRemove.d.ts +1 -0
  80. package/dist/api/DirRemove.d.ts.map +1 -1
  81. package/dist/api/FileDelete.d.ts +1 -0
  82. package/dist/api/FileDelete.d.ts.map +1 -1
  83. package/dist/api/FileRead.d.ts +1 -0
  84. package/dist/api/FileRead.d.ts.map +1 -1
  85. package/dist/api/FileWrite.d.ts +2 -0
  86. package/dist/api/FileWrite.d.ts.map +1 -1
  87. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  88. package/dist/api/FirmwareUpdateV2.d.ts +13 -2
  89. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  90. package/dist/api/FirmwareUpdateV3.d.ts +7 -3
  91. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  92. package/dist/api/FirmwareUpdateV4.d.ts +40 -16
  93. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  94. package/dist/api/GetDeviceState.d.ts +8 -0
  95. package/dist/api/GetDeviceState.d.ts.map +1 -0
  96. package/dist/api/GetFeatures.d.ts +1 -1
  97. package/dist/api/GetFeatures.d.ts.map +1 -1
  98. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  99. package/dist/api/GetPassphraseState.d.ts +2 -6
  100. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  101. package/dist/api/OpenWalletSession.d.ts +8 -0
  102. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  103. package/dist/api/PathInfo.d.ts +1 -0
  104. package/dist/api/PathInfo.d.ts.map +1 -1
  105. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  106. package/dist/api/SearchDevices.d.ts +3 -0
  107. package/dist/api/SearchDevices.d.ts.map +1 -1
  108. package/dist/api/UploadPortfolio.d.ts +17 -0
  109. package/dist/api/UploadPortfolio.d.ts.map +1 -0
  110. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  111. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  112. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  113. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  114. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  115. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  116. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  117. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  118. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  119. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  120. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  121. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  122. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  123. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  124. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  125. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  126. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  127. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  128. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  129. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  130. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  131. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  132. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  133. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  134. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  135. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  136. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  137. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  138. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  139. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  140. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  141. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  142. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  143. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  144. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  145. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  146. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  147. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  148. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  149. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  150. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  151. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  152. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  153. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  154. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  155. package/dist/api/conflux/ConfluxGetAddress.d.ts +2 -0
  156. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  157. package/dist/api/conflux/ConfluxSignMessage.d.ts +2 -0
  158. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  159. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +2 -0
  160. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  161. package/dist/api/conflux/ConfluxSignTransaction.d.ts +2 -0
  162. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  163. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  164. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  165. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  166. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  167. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  168. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  169. package/dist/api/device/DeviceCancel.d.ts +1 -0
  170. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  171. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  172. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  173. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  174. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  175. package/dist/api/device/DeviceLock.d.ts +1 -0
  176. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  177. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  178. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  179. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  180. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  181. package/dist/api/device/DeviceSettings.d.ts +1 -0
  182. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  183. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  184. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  185. package/dist/api/device/DeviceUnlock.d.ts +1 -0
  186. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  187. package/dist/api/device/DeviceUpdateBootloader.d.ts +5 -1
  188. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  189. package/dist/api/device/DeviceWipe.d.ts +1 -0
  190. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  191. package/dist/api/device/PreInitialize.d.ts +1 -0
  192. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  193. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  194. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  195. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  196. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  197. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  198. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  199. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  200. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  201. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  202. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  203. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  204. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  205. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  206. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  207. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  208. package/dist/api/evm/protocol.d.ts +3 -0
  209. package/dist/api/evm/protocol.d.ts.map +1 -0
  210. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  211. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  212. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  213. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  214. package/dist/api/firmware/FirmwareArtifactSource.d.ts +25 -0
  215. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +1 -0
  216. package/dist/api/firmware/FirmwareHostBinding.d.ts +6 -0
  217. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -0
  218. package/dist/api/firmware/FirmwarePreparationError.d.ts +3 -0
  219. package/dist/api/firmware/FirmwarePreparationError.d.ts.map +1 -0
  220. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +8 -0
  221. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  222. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +3 -0
  223. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +1 -0
  224. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +25 -0
  225. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -0
  226. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +32 -0
  227. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -0
  228. package/dist/api/firmware/getBinary.d.ts +15 -4
  229. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  230. package/dist/api/firmware/updateBootloader.d.ts +2 -0
  231. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  232. package/dist/api/firmware/uploadFirmware.d.ts +9 -1
  233. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  234. package/dist/api/helpers/filesystemValidation.d.ts +3 -0
  235. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -1
  236. package/dist/api/helpers/paramsValidator.d.ts +1 -0
  237. package/dist/api/helpers/paramsValidator.d.ts.map +1 -1
  238. package/dist/api/helpers/protocolV2FileWrite.d.ts +33 -0
  239. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
  240. package/dist/api/index.d.ts +7 -25
  241. package/dist/api/index.d.ts.map +1 -1
  242. package/dist/api/kaspa/KaspaGetAddress.d.ts +4 -0
  243. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  244. package/dist/api/kaspa/KaspaSignTransaction.d.ts +9 -1
  245. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  246. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  247. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  248. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  249. package/dist/api/near/NearGetAddress.d.ts +1 -0
  250. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  251. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  252. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  253. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  254. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  255. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  256. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  257. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  258. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  259. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  260. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  261. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  262. package/dist/api/nexa/NexaSignTransaction.d.ts +1 -0
  263. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  264. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  265. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  266. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  267. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  268. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  269. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  270. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  271. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  272. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  273. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  274. package/dist/api/polkadot/PolkadotGetAddress.d.ts +1 -0
  275. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  276. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  277. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  278. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  279. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  280. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  281. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  282. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -0
  283. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  284. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +1 -0
  285. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  286. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +7 -0
  287. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
  288. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +1 -1
  289. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  290. package/dist/api/protocol-v2/DeviceReboot.d.ts +1 -0
  291. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  292. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +7 -0
  293. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  294. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +27 -0
  295. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
  296. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  297. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  298. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  299. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  300. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  301. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  302. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  303. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  304. package/dist/api/protocol-v2/helpers.d.ts +1 -1
  305. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  306. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  307. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  308. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  309. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  310. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  311. package/dist/api/solana/SolSignMessage.d.ts +1 -0
  312. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  313. package/dist/api/solana/SolSignOffchainMessage.d.ts +1 -0
  314. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  315. package/dist/api/solana/SolSignTransaction.d.ts +1 -0
  316. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  317. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  318. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  319. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  320. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  321. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  322. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  323. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  324. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  325. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  326. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  327. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  328. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  329. package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
  330. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  331. package/dist/api/sui/SuiGetAddress.d.ts +1 -0
  332. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  333. package/dist/api/sui/SuiGetPublicKey.d.ts +1 -0
  334. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  335. package/dist/api/sui/SuiSignMessage.d.ts +1 -0
  336. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  337. package/dist/api/sui/SuiSignTransaction.d.ts +1 -0
  338. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  339. package/dist/api/ton/TonGetAddress.d.ts +1 -0
  340. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  341. package/dist/api/ton/TonSignData.d.ts +1 -0
  342. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  343. package/dist/api/ton/TonSignMessage.d.ts +1 -0
  344. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  345. package/dist/api/ton/TonSignProof.d.ts +1 -0
  346. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  347. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  348. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  349. package/dist/api/tron/TronSignMessage.d.ts +5 -0
  350. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  351. package/dist/api/tron/TronSignTransaction.d.ts +1 -0
  352. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  353. package/dist/api/utils.d.ts +2 -1
  354. package/dist/api/utils.d.ts.map +1 -1
  355. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  356. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  357. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  358. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  359. package/dist/constants/index.d.ts +1 -1
  360. package/dist/constants/index.d.ts.map +1 -1
  361. package/dist/core/RequestQueue.d.ts.map +1 -1
  362. package/dist/core/deviceEventRegistration.d.ts +11 -0
  363. package/dist/core/deviceEventRegistration.d.ts.map +1 -0
  364. package/dist/core/index.d.ts +3 -1
  365. package/dist/core/index.d.ts.map +1 -1
  366. package/dist/data-manager/DataManager.d.ts +1 -0
  367. package/dist/data-manager/DataManager.d.ts.map +1 -1
  368. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  369. package/dist/device/Device.d.ts +45 -14
  370. package/dist/device/Device.d.ts.map +1 -1
  371. package/dist/device/DeviceCommands.d.ts +8 -6
  372. package/dist/device/DeviceCommands.d.ts.map +1 -1
  373. package/dist/device/DeviceConnector.d.ts +1 -1
  374. package/dist/device/DeviceConnector.d.ts.map +1 -1
  375. package/dist/device/DeviceFeaturesState.d.ts +3 -0
  376. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  377. package/dist/device/DevicePool.d.ts +5 -2
  378. package/dist/device/DevicePool.d.ts.map +1 -1
  379. package/dist/device/DeviceStateMapper.d.ts +13 -0
  380. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  381. package/dist/device/DeviceStateProjector.d.ts +7 -0
  382. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  383. package/dist/device/DeviceStateStore.d.ts +21 -0
  384. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  385. package/dist/device/DeviceWalletSessionStore.d.ts +27 -0
  386. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  387. package/dist/device/cloneDeviceState.d.ts +2 -0
  388. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  389. package/dist/device/deviceIdentity.d.ts +5 -0
  390. package/dist/device/deviceIdentity.d.ts.map +1 -0
  391. package/dist/deviceProfile/buildDeviceFeatures.d.ts +9 -3
  392. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  393. package/dist/deviceProfile/index.d.ts +0 -1
  394. package/dist/deviceProfile/index.d.ts.map +1 -1
  395. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts +7 -0
  396. package/dist/deviceProfile/protocolV2DeviceIdentity.d.ts.map +1 -0
  397. package/dist/events/device.d.ts +12 -2
  398. package/dist/events/device.d.ts.map +1 -1
  399. package/dist/events/logBlockEvent.d.ts +2 -0
  400. package/dist/events/logBlockEvent.d.ts.map +1 -1
  401. package/dist/events/ui-request.d.ts +19 -2
  402. package/dist/events/ui-request.d.ts.map +1 -1
  403. package/dist/index.d.ts +1564 -739
  404. package/dist/index.d.ts.map +1 -1
  405. package/dist/index.js +9262 -3918
  406. package/dist/inject.d.ts.map +1 -1
  407. package/dist/lowLevelInject.d.ts.map +1 -1
  408. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  409. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  410. package/dist/protocols/protocol-v2/features.d.ts +25 -17
  411. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  412. package/dist/protocols/protocol-v2/index.d.ts +3 -2
  413. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  414. package/dist/protocols/protocol-v2/lockedError.d.ts +2 -0
  415. package/dist/protocols/protocol-v2/lockedError.d.ts.map +1 -0
  416. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +17 -0
  417. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  418. package/dist/protocols/protocol-v2/uiInteraction.d.ts +39 -0
  419. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
  420. package/dist/protocols/protocol-v2/unlockPolicy.d.ts +4 -0
  421. package/dist/protocols/protocol-v2/unlockPolicy.d.ts.map +1 -0
  422. package/dist/protocols/protocol-v2/unlockRetry.d.ts +10 -0
  423. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +1 -0
  424. package/dist/protocols/protocol-v2/walletSession.d.ts +22 -0
  425. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  426. package/dist/topLevelInject.d.ts.map +1 -1
  427. package/dist/types/api/checkAllFirmwareRelease.d.ts +29 -4
  428. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  429. package/dist/types/api/deviceSettings.d.ts +11 -2
  430. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  431. package/dist/types/api/deviceUnlock.d.ts +1 -1
  432. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  433. package/dist/types/api/deviceUpdateBootloader.d.ts +6 -0
  434. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  435. package/dist/types/api/export.d.ts +6 -2
  436. package/dist/types/api/export.d.ts.map +1 -1
  437. package/dist/types/api/firmwareUpdate.d.ts +75 -1
  438. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  439. package/dist/types/api/firmwareUpdateCapabilities.d.ts +9 -0
  440. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +1 -0
  441. package/dist/types/api/firmwareUpdatePlan.d.ts +28 -0
  442. package/dist/types/api/firmwareUpdatePlan.d.ts.map +1 -0
  443. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +42 -0
  444. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +1 -0
  445. package/dist/types/api/getDeviceState.d.ts +12 -0
  446. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  447. package/dist/types/api/getFeatures.d.ts.map +1 -1
  448. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  449. package/dist/types/api/getPassphraseState.d.ts +2 -10
  450. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  451. package/dist/types/api/index.d.ts +27 -31
  452. package/dist/types/api/index.d.ts.map +1 -1
  453. package/dist/types/api/kaspaSignTransaction.d.ts +42 -4
  454. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  455. package/dist/types/api/openWalletSession.d.ts +35 -0
  456. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  457. package/dist/types/api/protocolV2.d.ts +15 -84
  458. package/dist/types/api/protocolV2.d.ts.map +1 -1
  459. package/dist/types/api/sessionCache.d.ts +13 -0
  460. package/dist/types/api/sessionCache.d.ts.map +1 -0
  461. package/dist/types/device.d.ts +132 -8
  462. package/dist/types/device.d.ts.map +1 -1
  463. package/dist/types/params.d.ts.map +1 -1
  464. package/dist/types/settings.d.ts +20 -14
  465. package/dist/types/settings.d.ts.map +1 -1
  466. package/dist/utils/assets.d.ts +2 -1
  467. package/dist/utils/assets.d.ts.map +1 -1
  468. package/dist/utils/deviceFeaturesCompat.d.ts +14 -0
  469. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  470. package/dist/utils/deviceFeaturesUtils.d.ts +6 -3
  471. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  472. package/dist/utils/deviceInfoUtils.d.ts +9 -9
  473. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  474. package/dist/utils/deviceSettings.d.ts +38 -7
  475. package/dist/utils/deviceSettings.d.ts.map +1 -1
  476. package/dist/utils/deviceVersionUtils.d.ts +7 -5
  477. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  478. package/dist/utils/homescreen.d.ts.map +1 -1
  479. package/dist/utils/index.d.ts +5 -2
  480. package/dist/utils/index.d.ts.map +1 -1
  481. package/dist/utils/networkUtils.d.ts +10 -1
  482. package/dist/utils/networkUtils.d.ts.map +1 -1
  483. package/dist/utils/patch.d.ts +1 -1
  484. package/dist/utils/patch.d.ts.map +1 -1
  485. package/dist/utils/pro2Wallpaper.d.ts +12 -0
  486. package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
  487. package/dist/utils/tracing.d.ts.map +1 -1
  488. package/package.json +4 -4
  489. package/src/api/BaseMethod.ts +52 -17
  490. package/src/api/CheckAllFirmwareRelease.ts +344 -4
  491. package/src/api/CheckBootloaderRelease.ts +1 -2
  492. package/src/api/CheckFirmwareRelease.ts +1 -2
  493. package/src/api/CipherKeyValue.ts +4 -0
  494. package/src/api/ClearSessionCache.ts +32 -0
  495. package/src/api/DirList.ts +9 -4
  496. package/src/api/DirMake.ts +7 -4
  497. package/src/api/DirRemove.ts +7 -4
  498. package/src/api/FileDelete.ts +7 -4
  499. package/src/api/FileRead.ts +15 -9
  500. package/src/api/FileWrite.ts +26 -181
  501. package/src/api/FirmwareUpdate.ts +24 -13
  502. package/src/api/FirmwareUpdateV2.ts +386 -113
  503. package/src/api/FirmwareUpdateV3.ts +266 -68
  504. package/src/api/FirmwareUpdateV4.ts +1222 -635
  505. package/src/api/GetDeviceState.ts +59 -0
  506. package/src/api/GetFeatures.ts +6 -4
  507. package/src/api/GetOnekeyFeatures.ts +1 -75
  508. package/src/api/GetPassphraseState.ts +30 -21
  509. package/src/api/OpenWalletSession.ts +214 -0
  510. package/src/api/PathInfo.ts +9 -4
  511. package/src/api/PromptWebDeviceAccess.ts +2 -7
  512. package/src/api/SearchDevices.ts +29 -4
  513. package/src/api/UploadPortfolio.ts +40 -0
  514. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  515. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  516. package/src/api/alephium/AlephiumSignTransaction.ts +2 -6
  517. package/src/api/algo/AlgoGetAddress.ts +4 -0
  518. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  519. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +9 -21
  520. package/src/api/aptos/AptosGetAddress.ts +4 -0
  521. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  522. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  523. package/src/api/aptos/AptosSignMessage.ts +4 -0
  524. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  525. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  526. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  527. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  528. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  529. package/src/api/btc/BTCGetAddress.ts +8 -1
  530. package/src/api/btc/BTCGetPublicKey.ts +9 -2
  531. package/src/api/btc/BTCSignMessage.ts +8 -1
  532. package/src/api/btc/BTCSignPsbt.ts +4 -0
  533. package/src/api/btc/BTCSignTransaction.ts +8 -1
  534. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  535. package/src/api/btc/helpers/versionLimit.ts +7 -4
  536. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  537. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  538. package/src/api/cardano/CardanoSignMessage.ts +5 -1
  539. package/src/api/cardano/CardanoSignTransaction.ts +5 -1
  540. package/src/api/conflux/ConfluxGetAddress.ts +6 -0
  541. package/src/api/conflux/ConfluxSignMessage.ts +6 -0
  542. package/src/api/conflux/ConfluxSignMessageCIP23.ts +6 -0
  543. package/src/api/conflux/ConfluxSignTransaction.ts +8 -5
  544. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  545. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  546. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  547. package/src/api/device/DeviceCancel.ts +5 -0
  548. package/src/api/device/DeviceChangePin.ts +28 -0
  549. package/src/api/device/DeviceFullyUploadResource.ts +4 -5
  550. package/src/api/device/DeviceLock.ts +5 -0
  551. package/src/api/device/DeviceRebootToBoardloader.ts +5 -0
  552. package/src/api/device/DeviceRebootToBootloader.ts +5 -0
  553. package/src/api/device/DeviceSettings.ts +194 -1
  554. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  555. package/src/api/device/DeviceUnlock.ts +13 -0
  556. package/src/api/device/DeviceUpdateBootloader.ts +126 -8
  557. package/src/api/device/DeviceWipe.ts +25 -0
  558. package/src/api/device/PreInitialize.ts +4 -0
  559. package/src/api/dynex/DnxGetAddress.ts +0 -6
  560. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  561. package/src/api/evm/EVMGetAddress.ts +6 -2
  562. package/src/api/evm/EVMGetPublicKey.ts +6 -2
  563. package/src/api/evm/EVMSignMessage.ts +6 -2
  564. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  565. package/src/api/evm/EVMSignTransaction.ts +6 -2
  566. package/src/api/evm/EVMSignTypedData.ts +42 -50
  567. package/src/api/evm/EVMVerifyMessage.ts +6 -2
  568. package/src/api/evm/legacyV1/getAddress.ts +2 -2
  569. package/src/api/evm/legacyV1/getPublicKey.ts +2 -2
  570. package/src/api/evm/legacyV1/signMessage.ts +2 -2
  571. package/src/api/evm/legacyV1/signTypedData.ts +2 -2
  572. package/src/api/evm/legacyV1/signTypedHash.ts +2 -2
  573. package/src/api/evm/legacyV1/verifyMessage.ts +2 -2
  574. package/src/api/evm/protocol.ts +6 -0
  575. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  576. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  577. package/src/api/firmware/FirmwareArtifactSource.ts +278 -0
  578. package/src/api/firmware/FirmwareHostBinding.ts +100 -0
  579. package/src/api/firmware/FirmwarePreparationError.ts +12 -0
  580. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +75 -4
  581. package/src/api/firmware/FirmwareUpdateCapabilities.ts +9 -0
  582. package/src/api/firmware/FirmwareUpdatePlan.ts +772 -0
  583. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +449 -0
  584. package/src/api/firmware/getBinary.ts +8 -3
  585. package/src/api/firmware/updateBootloader.ts +19 -4
  586. package/src/api/firmware/uploadFirmware.ts +140 -22
  587. package/src/api/helpers/batchGetPublickeys.ts +2 -2
  588. package/src/api/helpers/filesystemValidation.ts +61 -0
  589. package/src/api/helpers/paramsValidator.ts +1 -1
  590. package/src/api/helpers/protocolV2FileWrite.ts +199 -0
  591. package/src/api/index.ts +8 -26
  592. package/src/api/kaspa/KaspaGetAddress.ts +7 -0
  593. package/src/api/kaspa/KaspaSignTransaction.ts +380 -29
  594. package/src/api/kaspa/helpers/TransferSerialize.ts +17 -7
  595. package/src/api/lightning/LnurlAuth.ts +0 -4
  596. package/src/api/near/NearGetAddress.ts +4 -0
  597. package/src/api/near/NearSignTransaction.ts +4 -0
  598. package/src/api/nem/NEMGetAddress.ts +4 -0
  599. package/src/api/nem/NEMSignTransaction.ts +4 -0
  600. package/src/api/neo/NeoGetAddress.ts +0 -4
  601. package/src/api/neo/NeoSignTransaction.ts +0 -4
  602. package/src/api/nervos/NervosGetAddress.ts +0 -4
  603. package/src/api/nervos/NervosSignTransaction.ts +2 -6
  604. package/src/api/nexa/NexaGetAddress.ts +0 -4
  605. package/src/api/nexa/NexaSignTransaction.ts +3 -5
  606. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  607. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  608. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  609. package/src/api/nostr/NostrSignEvent.ts +4 -0
  610. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  611. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  612. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  613. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +5 -2
  614. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +5 -2
  615. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +8 -5
  616. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +10 -6
  617. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +21 -0
  618. package/src/api/protocol-v2/DeviceInfoGet.ts +8 -15
  619. package/src/api/protocol-v2/DeviceReboot.ts +7 -3
  620. package/src/api/protocol-v2/DeviceStatusGet.ts +19 -0
  621. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +134 -0
  622. package/src/api/protocol-v2/FilesystemFormat.ts +9 -3
  623. package/src/api/protocol-v2/FilesystemPermissionFix.ts +5 -2
  624. package/src/api/protocol-v2/Ping.ts +37 -3
  625. package/src/api/protocol-v2/ProtocolInfoRequest.ts +5 -2
  626. package/src/api/protocol-v2/helpers.ts +17 -17
  627. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  628. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  629. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  630. package/src/api/solana/SolGetAddress.ts +4 -0
  631. package/src/api/solana/SolSignMessage.ts +4 -0
  632. package/src/api/solana/SolSignOffchainMessage.ts +4 -0
  633. package/src/api/solana/SolSignTransaction.ts +4 -0
  634. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  635. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  636. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  637. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  638. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  639. package/src/api/stellar/StellarGetAddress.ts +1 -10
  640. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  641. package/src/api/sui/SuiGetAddress.ts +4 -0
  642. package/src/api/sui/SuiGetPublicKey.ts +4 -0
  643. package/src/api/sui/SuiSignMessage.ts +4 -0
  644. package/src/api/sui/SuiSignTransaction.ts +4 -0
  645. package/src/api/ton/TonGetAddress.ts +4 -0
  646. package/src/api/ton/TonSignData.ts +5 -1
  647. package/src/api/ton/TonSignMessage.ts +4 -0
  648. package/src/api/ton/TonSignProof.ts +4 -0
  649. package/src/api/tron/TronGetAddress.ts +4 -0
  650. package/src/api/tron/TronSignMessage.ts +18 -7
  651. package/src/api/tron/TronSignTransaction.ts +4 -0
  652. package/src/api/utils.ts +7 -3
  653. package/src/api/xrp/XrpGetAddress.ts +4 -0
  654. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  655. package/src/constants/index.ts +1 -4
  656. package/src/core/RequestQueue.ts +1 -0
  657. package/src/core/deviceEventRegistration.ts +23 -0
  658. package/src/core/index.ts +164 -53
  659. package/src/data/messages/messages-protocol-v2.json +1155 -483
  660. package/src/data/messages/messages.json +286 -1
  661. package/src/data-manager/DataManager.ts +39 -39
  662. package/src/data-manager/TransportManager.ts +1 -1
  663. package/src/data-manager/connectSettings.ts +15 -0
  664. package/src/device/Device.ts +652 -281
  665. package/src/device/DeviceCommands.ts +166 -158
  666. package/src/device/DeviceConnector.ts +10 -7
  667. package/src/device/DeviceFeaturesState.ts +25 -0
  668. package/src/device/DevicePool.ts +66 -16
  669. package/src/device/DeviceStateMapper.ts +374 -0
  670. package/src/device/DeviceStateProjector.ts +94 -0
  671. package/src/device/DeviceStateStore.ts +201 -0
  672. package/src/device/DeviceWalletSessionStore.ts +144 -0
  673. package/src/device/cloneDeviceState.ts +39 -0
  674. package/src/device/deviceIdentity.ts +18 -0
  675. package/src/deviceProfile/buildDeviceFeatures.ts +224 -190
  676. package/src/deviceProfile/index.ts +0 -1
  677. package/src/deviceProfile/protocolV2DeviceIdentity.ts +32 -0
  678. package/src/events/device.ts +18 -1
  679. package/src/events/logBlockEvent.ts +79 -2
  680. package/src/events/ui-request.ts +25 -2
  681. package/src/index.ts +5 -0
  682. package/src/inject.ts +37 -43
  683. package/src/lowLevelInject.ts +5 -1
  684. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  685. package/src/protocols/protocol-v2/features.ts +96 -32
  686. package/src/protocols/protocol-v2/firmware.ts +1 -1
  687. package/src/protocols/protocol-v2/index.ts +8 -1
  688. package/src/protocols/protocol-v2/lockedError.ts +10 -0
  689. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +65 -0
  690. package/src/protocols/protocol-v2/uiInteraction.ts +210 -0
  691. package/src/protocols/protocol-v2/unlockPolicy.ts +105 -0
  692. package/src/protocols/protocol-v2/unlockRetry.ts +109 -0
  693. package/src/protocols/protocol-v2/walletSession.ts +285 -0
  694. package/src/topLevelInject.ts +5 -1
  695. package/src/types/api/checkAllFirmwareRelease.ts +50 -4
  696. package/src/types/api/deviceSettings.ts +26 -2
  697. package/src/types/api/deviceUnlock.ts +1 -1
  698. package/src/types/api/deviceUpdateBootloader.ts +6 -0
  699. package/src/types/api/export.ts +26 -0
  700. package/src/types/api/firmwareUpdate.ts +99 -5
  701. package/src/types/api/firmwareUpdateCapabilities.ts +9 -0
  702. package/src/types/api/firmwareUpdatePlan.ts +38 -0
  703. package/src/types/api/firmwareUpdatePreparedPlan.ts +53 -0
  704. package/src/types/api/getDeviceState.ts +19 -0
  705. package/src/types/api/getFeatures.ts +3 -0
  706. package/src/types/api/getOnekeyFeatures.ts +3 -0
  707. package/src/types/api/getPassphraseState.ts +9 -11
  708. package/src/types/api/index.ts +39 -64
  709. package/src/types/api/kaspaSignTransaction.ts +60 -4
  710. package/src/types/api/openWalletSession.ts +54 -0
  711. package/src/types/api/protocolV2.ts +24 -145
  712. package/src/types/api/sessionCache.ts +19 -0
  713. package/src/types/device.ts +185 -7
  714. package/src/types/params.ts +3 -2
  715. package/src/types/settings.ts +30 -16
  716. package/src/utils/assets.ts +4 -1
  717. package/src/utils/deviceFeaturesCompat.ts +186 -0
  718. package/src/utils/deviceFeaturesUtils.ts +52 -45
  719. package/src/utils/deviceInfoUtils.ts +27 -69
  720. package/src/utils/deviceSettings.ts +171 -39
  721. package/src/utils/deviceVersionUtils.ts +25 -44
  722. package/src/utils/findDefectiveBatchDevice.ts +3 -3
  723. package/src/utils/homescreen.ts +10 -0
  724. package/src/utils/index.ts +21 -2
  725. package/src/utils/networkUtils.ts +274 -16
  726. package/src/utils/pro2Wallpaper.ts +103 -0
  727. package/src/utils/tracing.ts +3 -1
  728. package/tsconfig.type-tests.json +12 -0
  729. package/dist/api/GetDeviceInfo.d.ts +0 -9
  730. package/dist/api/GetDeviceInfo.d.ts.map +0 -1
  731. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +0 -13
  732. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +0 -1
  733. package/dist/deviceProfile/buildDeviceProfile.d.ts +0 -21
  734. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +0 -1
  735. package/dist/types/api/getDeviceInfo.d.ts +0 -87
  736. package/dist/types/api/getDeviceInfo.d.ts.map +0 -1
  737. package/src/api/GetDeviceInfo.ts +0 -145
  738. package/src/api/protocol-v2/FilesystemDiskControl.ts +0 -50
  739. package/src/deviceProfile/buildDeviceProfile.ts +0 -352
  740. package/src/types/api/getDeviceInfo.ts +0 -101
@@ -45,10 +45,6 @@ export default class NexaGetAddress extends BaseMethod<HardwareNexaGetAddress[]>
45
45
 
46
46
  getVersionRange(): DeviceFirmwareRange {
47
47
  return {
48
- pro2: {
49
- min: '0.0.0',
50
- unsupported: true,
51
- },
52
48
  model_mini: {
53
49
  min: '3.2.0',
54
50
  },
@@ -9,6 +9,8 @@ import type { TypedCall } from '@onekeyfe/hd-transport';
9
9
  import type { DeviceFirmwareRange, NexaSignTransactionParams, NexaSignature } from '../../types';
10
10
 
11
11
  export default class NexaSignTransaction extends BaseMethod<NexaSignTransactionParams> {
12
+ checkDeviceId = true;
13
+
12
14
  hasBundle = false;
13
15
 
14
16
  init() {
@@ -29,10 +31,6 @@ export default class NexaSignTransaction extends BaseMethod<NexaSignTransactionP
29
31
 
30
32
  getVersionRange(): DeviceFirmwareRange {
31
33
  return {
32
- pro2: {
33
- min: '0.0.0',
34
- unsupported: true,
35
- },
36
34
  model_mini: {
37
35
  min: '3.2.0',
38
36
  },
@@ -73,7 +71,7 @@ export default class NexaSignTransaction extends BaseMethod<NexaSignTransactionP
73
71
  const nextIndex = res.message.request_index;
74
72
  const input = this.params.inputs[nextIndex];
75
73
  const response = await typedCall('NexaTxInputAck', ['NexaTxInputRequest', 'NexaSignedTx'], {
76
- // path 为字符串形式,归一为 address_n 数组(与 run() 中首个 input 的处理一致)
74
+ // Normalize a string path to address_n, matching the first input handled by run().
77
75
  address_n: validatePath(input.path, 3),
78
76
  raw_message: input.message,
79
77
  });
@@ -6,6 +6,10 @@ import { validateParams } from '../helpers/paramsValidator';
6
6
  import type { NostrDecryptMessage as DecryptMessage } from '@onekeyfe/hd-transport';
7
7
 
8
8
  export default class NostrDecryptMessage extends BaseMethod<DecryptMessage> {
9
+ getSupportedProtocols() {
10
+ return ['V1', 'V2'] as const;
11
+ }
12
+
9
13
  hasBundle = false;
10
14
 
11
15
  init() {
@@ -6,6 +6,10 @@ import { validateParams } from '../helpers/paramsValidator';
6
6
  import type { NostrEncryptMessage as EncryptMessage } from '@onekeyfe/hd-transport';
7
7
 
8
8
  export default class NostrEncryptMessage extends BaseMethod<EncryptMessage> {
9
+ getSupportedProtocols() {
10
+ return ['V1', 'V2'] as const;
11
+ }
12
+
9
13
  hasBundle = false;
10
14
 
11
15
  init() {
@@ -8,6 +8,10 @@ import type { BTCGetAddressParams } from '../../types/api/btcGetAddress';
8
8
  import type { NostrPublicKey } from '../../types/api/nostrGetPublicKey';
9
9
 
10
10
  export default class NostrGetPublicKey extends BaseMethod<GetPublicKey[]> {
11
+ getSupportedProtocols() {
12
+ return ['V1', 'V2'] as const;
13
+ }
14
+
11
15
  hasBundle = false;
12
16
 
13
17
  init() {
@@ -10,6 +10,10 @@ import { bytesToHex, hexToBytes } from '../helpers/hexUtils';
10
10
  import type { NostrSignEvent as SignEvent } from '@onekeyfe/hd-transport';
11
11
 
12
12
  export default class NostrSignEvent extends BaseMethod<SignEvent> {
13
+ getSupportedProtocols() {
14
+ return ['V1', 'V2'] as const;
15
+ }
16
+
13
17
  hasBundle = false;
14
18
 
15
19
  init() {
@@ -6,6 +6,10 @@ import { validateParams } from '../helpers/paramsValidator';
6
6
  import type { NostrSignSchnorr as SignSchnorr } from '@onekeyfe/hd-transport';
7
7
 
8
8
  export default class NostrSignSchnorr extends BaseMethod<SignSchnorr> {
9
+ getSupportedProtocols() {
10
+ return ['V1', 'V2'] as const;
11
+ }
12
+
9
13
  hasBundle = false;
10
14
 
11
15
  init() {
@@ -7,6 +7,10 @@ import type { PolkadotGetAddress as HardwarePolkadotGetAddress } from '@onekeyfe
7
7
  import type { PolkadotAddress, PolkadotGetAddressParams } from '../../types';
8
8
 
9
9
  export default class PolkadotGetAddress extends BaseMethod<HardwarePolkadotGetAddress[]> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  hasBundle = false;
11
15
 
12
16
  init() {
@@ -8,6 +8,10 @@ import type { PolkadotSignTransactionParams } from '../../types';
8
8
  import type { PolkadotSignTx as HardwarePolkadotSignTx } from '@onekeyfe/hd-transport';
9
9
 
10
10
  export default class PolkadotSignTransaction extends BaseMethod<HardwarePolkadotSignTx> {
11
+ getSupportedProtocols() {
12
+ return ['V1', 'V2'] as const;
13
+ }
14
+
11
15
  hasBundle = false;
12
16
 
13
17
  init() {
@@ -1,9 +1,12 @@
1
1
  import { BaseMethod } from '../BaseMethod';
2
2
 
3
3
  export default class DeviceFactoryInfoGet extends BaseMethod {
4
+ getSupportedProtocols() {
5
+ return ['V2'] as const;
6
+ }
7
+
4
8
  init() {
5
- // Protocol V2 (Pro2) 专属方法,core 调度层统一做非 V2 设备守卫
6
- this.requireProtocolV2 = true;
9
+ // Protocol V2 (Pro2) only; Core rejects non-V2 devices.
7
10
  this.skipForceUpdateCheck = true;
8
11
  this.useDevicePassphraseState = false;
9
12
  this.params = undefined;
@@ -3,9 +3,12 @@ import { BaseMethod } from '../BaseMethod';
3
3
  import type { DeviceFactoryInfoSetParams } from './helpers';
4
4
 
5
5
  export default class DeviceFactoryInfoSet extends BaseMethod<DeviceFactoryInfoSetParams> {
6
+ getSupportedProtocols() {
7
+ return ['V2'] as const;
8
+ }
9
+
6
10
  init() {
7
- // Protocol V2 (Pro2) 专属方法,core 调度层统一做非 V2 设备守卫
8
- this.requireProtocolV2 = true;
11
+ // Protocol V2 (Pro2) only; Core rejects non-V2 devices.
9
12
  this.skipForceUpdateCheck = true;
10
13
  this.useDevicePassphraseState = false;
11
14
  this.params = {
@@ -12,9 +12,12 @@ import type { MessageFromOneKey } from '@onekeyfe/hd-transport';
12
12
  import type { DeviceFirmwareUpdateParams } from './helpers';
13
13
 
14
14
  export default class DeviceFirmwareUpdate extends BaseMethod<DeviceFirmwareUpdateParams> {
15
+ getSupportedProtocols() {
16
+ return ['V2'] as const;
17
+ }
18
+
15
19
  init() {
16
- // Protocol V2 (Pro2) 专属方法,core 调度层统一做非 V2 设备守卫
17
- this.requireProtocolV2 = true;
20
+ // Protocol V2 (Pro2) only; Core rejects non-V2 devices.
18
21
  this.skipForceUpdateCheck = true;
19
22
  this.useDevicePassphraseState = false;
20
23
  this.params = {
@@ -48,12 +51,12 @@ export default class DeviceFirmwareUpdate extends BaseMethod<DeviceFirmwareUpdat
48
51
  },
49
52
  }
50
53
  );
51
- return Promise.resolve(res.message);
54
+ return res.message;
52
55
  } catch (error) {
53
56
  if (isProtocolV2DeviceDisconnectedError(error)) {
54
- return Promise.resolve({
57
+ return {
55
58
  message: 'Device firmware update started',
56
- });
59
+ };
57
60
  }
58
61
  throw error;
59
62
  }
@@ -24,19 +24,23 @@ function normalizeStatusFields(
24
24
  const normalized: DeviceFirmwareUpdateRecordFields = {};
25
25
  for (const field of DEVICE_FIRMWARE_UPDATE_STATUS_FIELDS) {
26
26
  const value = fields[field];
27
- if (value === undefined) continue;
28
- if (typeof value !== 'boolean') {
29
- throw invalidParameter(`Parameter [fields.${field}] must be a boolean.`);
27
+ if (value !== undefined) {
28
+ if (typeof value !== 'boolean') {
29
+ throw invalidParameter(`Parameter [fields.${field}] must be a boolean.`);
30
+ }
31
+ normalized[field] = value;
30
32
  }
31
- normalized[field] = value;
32
33
  }
33
34
  return normalized;
34
35
  }
35
36
 
36
37
  export default class DeviceGetFirmwareUpdateStatus extends BaseMethod<DeviceFirmwareUpdateStatusGetParams> {
38
+ getSupportedProtocols() {
39
+ return ['V2'] as const;
40
+ }
41
+
37
42
  init() {
38
- // Protocol V2 (Pro2) 专属方法,core 调度层统一做非 V2 设备守卫
39
- this.requireProtocolV2 = true;
43
+ // Protocol V2 (Pro2) only; Core rejects non-V2 devices.
40
44
  this.skipForceUpdateCheck = true;
41
45
  this.useDevicePassphraseState = false;
42
46
  const fields = normalizeStatusFields(this.payload.fields);
@@ -0,0 +1,21 @@
1
+ import { BaseMethod } from '../BaseMethod';
2
+
3
+ export default class DeviceGetOnboardingStatus extends BaseMethod {
4
+ getSupportedProtocols() {
5
+ return ['V2'] as const;
6
+ }
7
+
8
+ init() {
9
+ this.skipForceUpdateCheck = true;
10
+ this.useDevicePassphraseState = false;
11
+ }
12
+
13
+ async run() {
14
+ const { message } = await this.device.commands.typedCall(
15
+ 'OnboardingStatusGet',
16
+ 'OnboardingStatus',
17
+ {}
18
+ );
19
+ return message;
20
+ }
21
+ }
@@ -1,5 +1,3 @@
1
- import { createDeviceNotSupportMethodError } from '@onekeyfe/hd-shared';
2
-
3
1
  import { UI_REQUEST } from '../../constants/ui-request';
4
2
  import { PROTOCOL_V2_DEVICE_INFO_TIMEOUT_MS } from '../../protocols/protocol-v2';
5
3
  import { BaseMethod } from '../BaseMethod';
@@ -13,7 +11,6 @@ export type DeviceInfoGetTargets = {
13
11
  se2?: boolean;
14
12
  se3?: boolean;
15
13
  se4?: boolean;
16
- status?: boolean;
17
14
  };
18
15
 
19
16
  export type DeviceInfoGetTypes = {
@@ -36,7 +33,6 @@ const TARGET_KEYS: (keyof DeviceInfoGetTargets)[] = [
36
33
  'se2',
37
34
  'se3',
38
35
  'se4',
39
- 'status',
40
36
  ];
41
37
 
42
38
  const TYPE_KEYS: (keyof DeviceInfoGetTypes)[] = ['version', 'build_id', 'hash', 'specific'];
@@ -45,7 +41,6 @@ const DEFAULT_TARGETS: DeviceInfoGetTargets = {
45
41
  hw: true,
46
42
  fw: true,
47
43
  coprocessor: true,
48
- status: true,
49
44
  };
50
45
 
51
46
  const DEFAULT_TYPES: DeviceInfoGetTypes = {
@@ -103,19 +98,21 @@ function normalizeTypes(value: unknown): DeviceInfoGetTypes | undefined {
103
98
  }
104
99
 
105
100
  /**
106
- * 原生 DeviceInfoGetProtocol V2 only)。
101
+ * Raw DeviceInfoGet command for Protocol V2 only.
107
102
  *
108
- * getDeviceInfo 不同:不构建 DeviceProfile、不更新设备缓存,
109
- * 按调用方给定的 targets/types 原样请求并返回未加工的 DeviceInfo 消息,
110
- * 用于调试固件字段上报。
103
+ * The SDK builds targets/types on demand and returns the raw DeviceInfo message.
104
+ * This command is internal; integrations should use getDeviceState.
111
105
  */
112
106
  export default class DeviceInfoGet extends BaseMethod<{
113
107
  targets: DeviceInfoGetTargets;
114
108
  types: DeviceInfoGetTypes;
115
109
  }> {
110
+ getSupportedProtocols() {
111
+ return ['V2'] as const;
112
+ }
113
+
116
114
  init() {
117
- // Protocol V2 (Pro2) 专属方法,core 调度层统一做非 V2 设备守卫
118
- this.requireProtocolV2 = true;
115
+ this.unlockPolicy = 'none';
119
116
  this.allowDeviceMode = [
120
117
  ...this.allowDeviceMode,
121
118
  UI_REQUEST.NOT_INITIALIZE,
@@ -130,10 +127,6 @@ export default class DeviceInfoGet extends BaseMethod<{
130
127
  }
131
128
 
132
129
  async run() {
133
- if (!this.device.isProtocolV2()) {
134
- throw createDeviceNotSupportMethodError(this.name, this.device.getCurrentFirmwareType());
135
- }
136
-
137
130
  const res = await this.device.commands.typedCall(
138
131
  'DeviceInfoGet',
139
132
  'DeviceInfo',
@@ -4,9 +4,11 @@ import { normalizeRebootType } from './helpers';
4
4
  import type { DeviceRebootParams } from './helpers';
5
5
 
6
6
  export default class DeviceReboot extends BaseMethod<DeviceRebootParams> {
7
+ getSupportedProtocols() {
8
+ return ['V2'] as const;
9
+ }
10
+
7
11
  init() {
8
- // Protocol V2 (Pro2) 专属方法,core 调度层统一做非 V2 设备守卫
9
- this.requireProtocolV2 = true;
10
12
  this.skipForceUpdateCheck = true;
11
13
  this.useDevicePassphraseState = false;
12
14
  this.params = {
@@ -16,9 +18,11 @@ export default class DeviceReboot extends BaseMethod<DeviceRebootParams> {
16
18
  }
17
19
 
18
20
  async run() {
21
+ const rebootType = normalizeRebootType(this.params.reboot_type ?? this.params.rebootType);
19
22
  const res = await this.device.commands.typedCall('DeviceReboot', 'Success', {
20
- reboot_type: normalizeRebootType(this.params.reboot_type ?? this.params.rebootType),
23
+ reboot_type: rebootType,
21
24
  });
25
+ this.device.markProtocolV2Reboot(rebootType);
22
26
  return Promise.resolve(res.message);
23
27
  }
24
28
  }
@@ -0,0 +1,19 @@
1
+ import { BaseMethod } from '../BaseMethod';
2
+
3
+ export default class DeviceStatusGet extends BaseMethod {
4
+ getSupportedProtocols() {
5
+ return ['V2'] as const;
6
+ }
7
+
8
+ init() {
9
+ this.unlockPolicy = 'none';
10
+ this.useDevicePassphraseState = false;
11
+ this.skipForceUpdateCheck = true;
12
+ }
13
+
14
+ async run() {
15
+ const { message } = await this.device.commands.typedCall('DeviceStatusGet', 'DeviceStatus', {});
16
+ this.device.updateProtocolV2Status(message);
17
+ return message;
18
+ }
19
+ }
@@ -0,0 +1,134 @@
1
+ import { blake2s } from '@noble/hashes/blake2s';
2
+ import { bytesToHex } from '@noble/hashes/utils';
3
+
4
+ import { BaseMethod } from '../BaseMethod';
5
+ import { invalidParameter } from '../helpers/filesystemValidation';
6
+ import { writeProtocolV2File } from '../helpers/protocolV2FileWrite';
7
+ import { UI_REQUEST, createUiMessage } from '../../events/ui-request';
8
+ import {
9
+ PRO2_WALLPAPER_HEIGHT,
10
+ PRO2_WALLPAPER_WIDTH,
11
+ type Pro2WallpaperColorFormat,
12
+ encodePro2Wallpaper,
13
+ } from '../../utils/pro2Wallpaper';
14
+
15
+ export type DeviceUploadWallpaperParams = {
16
+ width: number;
17
+ height: number;
18
+ rgba: Uint8Array | ArrayBuffer;
19
+ fileName?: string;
20
+ chunkSize?: number;
21
+ };
22
+
23
+ export type DeviceUploadWallpaperResponse = {
24
+ path: string;
25
+ size: number;
26
+ colorFormat: Pro2WallpaperColorFormat;
27
+ message?: string;
28
+ };
29
+
30
+ const WALLPAPER_DIRECTORY = 'vol1:/wallpapers';
31
+ const SAFE_FILE_NAME = /^[A-Za-z0-9_-]+(?:\.bin)?$/;
32
+
33
+ function normalizeFileName(fileName: string | undefined, data: Uint8Array): string {
34
+ if (fileName !== undefined && (!fileName || !SAFE_FILE_NAME.test(fileName))) {
35
+ throw invalidParameter(
36
+ 'Parameter [fileName] may only contain letters, numbers, underscores, hyphens and an optional .bin suffix.'
37
+ );
38
+ }
39
+ const baseName = fileName ?? `wallpaper-${bytesToHex(blake2s(data)).slice(0, 12)}`;
40
+ return baseName.endsWith('.bin') ? baseName : `${baseName}.bin`;
41
+ }
42
+
43
+ export default class DeviceUploadWallpaper extends BaseMethod<DeviceUploadWallpaperParams> {
44
+ getSupportedProtocols() {
45
+ return ['V2'] as const;
46
+ }
47
+
48
+ private encoded?: { data: Uint8Array; colorFormat: Pro2WallpaperColorFormat };
49
+
50
+ private directoryReady = false;
51
+
52
+ private uploaded = false;
53
+
54
+ private path = '';
55
+
56
+ init() {
57
+ const { width, height, rgba, fileName, chunkSize } = this.payload;
58
+ if (width !== PRO2_WALLPAPER_WIDTH || height !== PRO2_WALLPAPER_HEIGHT) {
59
+ throw invalidParameter(
60
+ `Pro2 wallpaper dimensions must be ${PRO2_WALLPAPER_WIDTH}x${PRO2_WALLPAPER_HEIGHT}.`
61
+ );
62
+ }
63
+ if (!(rgba instanceof ArrayBuffer) && !ArrayBuffer.isView(rgba)) {
64
+ throw invalidParameter('Parameter [rgba] must be an ArrayBuffer or Uint8Array.');
65
+ }
66
+ if (chunkSize !== undefined && (!Number.isInteger(chunkSize) || chunkSize <= 0)) {
67
+ throw invalidParameter('Parameter [chunkSize] must be a positive integer.');
68
+ }
69
+
70
+ const rgbaBytes =
71
+ rgba instanceof ArrayBuffer
72
+ ? rgba
73
+ : new Uint8Array(rgba.buffer, rgba.byteOffset, rgba.byteLength);
74
+ this.encoded = encodePro2Wallpaper({ width, height, rgba: rgbaBytes });
75
+ this.path = `${WALLPAPER_DIRECTORY}/${normalizeFileName(fileName, this.encoded.data)}`;
76
+ this.params = { width, height, rgba: rgbaBytes, fileName, chunkSize };
77
+ this.unlockPolicy = 'none';
78
+ this.skipForceUpdateCheck = true;
79
+ this.useDevicePassphraseState = false;
80
+ }
81
+
82
+ private async ensureDirectory() {
83
+ if (this.directoryReady) return;
84
+ try {
85
+ await this.device.commands.typedCall('FilesystemDirMake', 'Success', {
86
+ path: WALLPAPER_DIRECTORY,
87
+ });
88
+ } catch (error) {
89
+ const message = error instanceof Error ? error.message : String(error);
90
+ if (!/exist/i.test(message)) throw error;
91
+ }
92
+ this.directoryReady = true;
93
+ }
94
+
95
+ private async upload() {
96
+ if (this.uploaded) return;
97
+ const { encoded } = this;
98
+ if (!encoded) throw invalidParameter('Wallpaper data has not been initialized.');
99
+
100
+ await writeProtocolV2File({
101
+ commands: this.device.commands,
102
+ path: this.path,
103
+ data: encoded.data,
104
+ totalSize: encoded.data.byteLength,
105
+ chunkSize: this.params.chunkSize,
106
+ maxChunkRetries: 3,
107
+ overwrite: true,
108
+ append: false,
109
+ throwIfAborted: () => this.throwIfAborted(),
110
+ onProgress: payload => {
111
+ if (typeof this.postMessage === 'function') {
112
+ this.postMessage(createUiMessage(UI_REQUEST.DEVICE_PROGRESS, payload));
113
+ }
114
+ },
115
+ });
116
+ this.uploaded = true;
117
+ }
118
+
119
+ async run(): Promise<DeviceUploadWallpaperResponse> {
120
+ const { encoded } = this;
121
+ if (!encoded) throw invalidParameter('Wallpaper data has not been initialized.');
122
+ await this.ensureDirectory();
123
+ await this.upload();
124
+ const response = await this.device.commands.typedCall('DeviceSettingsSet', 'Success', {
125
+ settings: { wallpaper_path: this.path },
126
+ });
127
+ return {
128
+ path: this.path,
129
+ size: encoded.data.byteLength,
130
+ colorFormat: encoded.colorFormat,
131
+ message: response.message?.message,
132
+ };
133
+ }
134
+ }
@@ -1,16 +1,22 @@
1
1
  import { BaseMethod } from '../BaseMethod';
2
2
 
3
3
  export default class FilesystemFormat extends BaseMethod {
4
+ getSupportedProtocols() {
5
+ return ['V2'] as const;
6
+ }
7
+
4
8
  init() {
5
- // Protocol V2 (Pro2) 专属方法,core 调度层统一做非 V2 设备守卫
6
- this.requireProtocolV2 = true;
9
+ // Protocol V2 (Pro2) only; Core rejects non-V2 devices.
7
10
  this.skipForceUpdateCheck = true;
8
11
  this.useDevicePassphraseState = false;
9
12
  this.params = undefined;
10
13
  }
11
14
 
12
15
  async run() {
13
- const res = await this.device.commands.typedCall('FilesystemFormat', 'Success', {});
16
+ const res = await this.device.commands.typedCall('FilesystemFormat', 'Success', {
17
+ data: true,
18
+ user: true,
19
+ });
14
20
  return Promise.resolve(res.message);
15
21
  }
16
22
  }
@@ -1,9 +1,12 @@
1
1
  import { BaseMethod } from '../BaseMethod';
2
2
 
3
3
  export default class FilesystemPermissionFix extends BaseMethod {
4
+ getSupportedProtocols() {
5
+ return ['V2'] as const;
6
+ }
7
+
4
8
  init() {
5
- // Protocol V2 (Pro2) 专属方法,core 调度层统一做非 V2 设备守卫
6
- this.requireProtocolV2 = true;
9
+ // Protocol V2 (Pro2) only; Core rejects non-V2 devices.
7
10
  this.skipForceUpdateCheck = true;
8
11
  this.useDevicePassphraseState = false;
9
12
  this.params = undefined;
@@ -1,12 +1,46 @@
1
+ import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
2
+
1
3
  import { BaseMethod } from '../BaseMethod';
2
4
 
5
+ // nanopb max_size:64 includes the terminating NUL for string fields.
6
+ export const PROTOCOL_V2_PING_MAX_MESSAGE_BYTES = 63;
7
+
8
+ const getUtf8ByteLength = (value: string) =>
9
+ Array.from(value).reduce((length, character) => {
10
+ const codePoint = character.codePointAt(0) ?? 0;
11
+ if (codePoint <= 0x7f) return length + 1;
12
+ if (codePoint <= 0x7ff) return length + 2;
13
+ if (codePoint <= 0xffff) return length + 3;
14
+ return length + 4;
15
+ }, 0);
16
+
17
+ export function validateProtocolV2PingMessage(value: unknown): string {
18
+ if (value !== undefined && typeof value !== 'string') {
19
+ throw ERRORS.TypedError(
20
+ HardwareErrorCode.CallMethodInvalidParameter,
21
+ 'Protocol V2 Ping message must be a string.'
22
+ );
23
+ }
24
+ const message = value ?? '';
25
+ if (getUtf8ByteLength(message) > PROTOCOL_V2_PING_MAX_MESSAGE_BYTES) {
26
+ throw ERRORS.TypedError(
27
+ HardwareErrorCode.CallMethodInvalidParameter,
28
+ `Protocol V2 Ping message must not exceed ${PROTOCOL_V2_PING_MAX_MESSAGE_BYTES} UTF-8 bytes.`
29
+ );
30
+ }
31
+ return message;
32
+ }
33
+
3
34
  export default class Ping extends BaseMethod<{ message?: string }> {
35
+ getSupportedProtocols() {
36
+ return ['V2'] as const;
37
+ }
38
+
4
39
  init() {
5
- // Protocol V2 (Pro2) 专属方法,core 调度层统一做非 V2 设备守卫
6
- this.requireProtocolV2 = true;
40
+ // Protocol V2 (Pro2) only; Core rejects non-V2 devices.
7
41
  this.skipForceUpdateCheck = true;
8
42
  this.useDevicePassphraseState = false;
9
- this.params = { message: this.payload.message };
43
+ this.params = { message: validateProtocolV2PingMessage(this.payload.message) };
10
44
  }
11
45
 
12
46
  async run() {
@@ -1,9 +1,12 @@
1
1
  import { BaseMethod } from '../BaseMethod';
2
2
 
3
3
  export default class ProtocolInfoRequest extends BaseMethod {
4
+ getSupportedProtocols() {
5
+ return ['V2'] as const;
6
+ }
7
+
4
8
  init() {
5
- // Protocol V2 (Pro2) 专属方法,core 调度层统一做非 V2 设备守卫
6
- this.requireProtocolV2 = true;
9
+ // Protocol V2 (Pro2) only; Core rejects non-V2 devices.
7
10
  this.skipForceUpdateCheck = true;
8
11
  this.useDevicePassphraseState = false;
9
12
  this.params = undefined;
@@ -5,8 +5,8 @@ import { ProtocolV2FirmwareTargetType } from '../../protocols/protocol-v2/firmwa
5
5
 
6
6
  import type {
7
7
  DeviceFirmwareTarget,
8
- DeviceFirmwareUpdateRecordFields,
9
8
  DeviceFirmwareTargetType,
9
+ DeviceFirmwareUpdateRecordFields,
10
10
  TransportCallOptions,
11
11
  } from '@onekeyfe/hd-transport';
12
12
 
@@ -118,9 +118,6 @@ export const isProtocolV2DeviceDisconnectedError = (error: unknown) => {
118
118
  message.includes('connection has timed out unexpectedly') ||
119
119
  message.includes('connection error has occured') ||
120
120
  message.includes('connection error has occurred') ||
121
- message.includes('transferIn') ||
122
- message.includes('transferin') ||
123
- message.includes('usbdevice') ||
124
121
  message.includes('multiplatformbleadapter') ||
125
122
  message.includes('multipalformebleadapter') ||
126
123
  compactMessage.includes('rxerrorerror6') ||
@@ -138,16 +135,21 @@ export function normalizeRebootType(value: RebootTypeInput | undefined): DeviceR
138
135
  return DeviceRebootType.Normal;
139
136
  }
140
137
 
141
- // 当前 firmware-pro2 子模块的 DeviceFirmwareTargetType 合法值从生成 enum 派生,
142
- // 避免协议枚举增减时这里继续保留过期手写编号。
143
- const VALID_FIRMWARE_TARGET_IDS = new Set<number>(
144
- Object.values(ProtocolV2FirmwareTargetType).filter(value => typeof value === 'number') as number[]
145
- );
138
+ // firmware-pro2 proto_target_to_firmware_target 安装白名单保持一致。
139
+ const INSTALLABLE_FIRMWARE_TARGET_IDS = new Set<number>([
140
+ ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_CRATE,
141
+ ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_BOOTLOADER,
142
+ ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_APPLICATION_P1,
143
+ ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_APPLICATION_P2,
144
+ ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_COPROCESSOR,
145
+ ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_SE01,
146
+ ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_SE02,
147
+ ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_SE03,
148
+ ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_SE04,
149
+ ]);
146
150
  const FIRMWARE_TARGET_ID_BY_NAME = new Map<string, DeviceFirmwareTargetType>(
147
151
  Object.entries(ProtocolV2FirmwareTargetType).flatMap(([key, value]) =>
148
- VALID_FIRMWARE_TARGET_IDS.has(value)
149
- ? [[key, value as DeviceFirmwareTargetType]]
150
- : []
152
+ INSTALLABLE_FIRMWARE_TARGET_IDS.has(value) ? [[key, value as DeviceFirmwareTargetType]] : []
151
153
  )
152
154
  );
153
155
 
@@ -160,14 +162,12 @@ function normalizeTargetId(
160
162
  }
161
163
  const named = typeof value === 'string' ? FIRMWARE_TARGET_ID_BY_NAME.get(value) : undefined;
162
164
  const numeric = named ?? (typeof value === 'number' ? value : Number(value));
163
- // 校验值域:仅接受 DeviceFirmwareTargetType 中定义的 target id,
164
- // 不再放行任意非负整数。
165
- if (Number.isSafeInteger(numeric) && VALID_FIRMWARE_TARGET_IDS.has(numeric)) {
165
+ if (Number.isSafeInteger(numeric) && INSTALLABLE_FIRMWARE_TARGET_IDS.has(numeric)) {
166
166
  return numeric as DeviceFirmwareTargetType;
167
167
  }
168
168
  throw invalidParameter(
169
- `Parameter [${name}] must be a valid firmware target id (one of ${[
170
- ...VALID_FIRMWARE_TARGET_IDS,
169
+ `Parameter [${name}] must be an installable firmware target id (one of ${[
170
+ ...INSTALLABLE_FIRMWARE_TARGET_IDS,
171
171
  ].join(', ')}).`
172
172
  );
173
173
  }