@onekeyfe/hd-core 1.1.34-alpha.2 → 1.1.34-alpha.3

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 (613) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +75 -0
  2. package/__tests__/DeviceCommands.test.ts +217 -0
  3. package/__tests__/RequestQueue.test.ts +140 -0
  4. package/__tests__/UploadPortfolio.test.ts +46 -0
  5. package/__tests__/connectSettings.test.ts +61 -0
  6. package/__tests__/device-lifecycle-events.test.ts +117 -0
  7. package/__tests__/device-pool-state.test.ts +132 -0
  8. package/__tests__/device-settings.test.ts +286 -0
  9. package/__tests__/device-state-mapper.test.ts +229 -0
  10. package/__tests__/device-utils.test.ts +106 -0
  11. package/__tests__/device-wallet-session-store.test.ts +191 -0
  12. package/__tests__/evmLedgerLegacySafety.test.ts +15 -4
  13. package/__tests__/evmSignTransaction.test.ts +1 -1
  14. package/__tests__/evmSignTypedData.test.ts +1 -1
  15. package/__tests__/filesystemValidation.test.ts +53 -0
  16. package/__tests__/firmware-update/firmware-artifact-source.test.ts +119 -0
  17. package/__tests__/firmware-update/firmware-checkpoint.test.ts +105 -0
  18. package/__tests__/firmware-update/firmware-host-binding.test.ts +73 -0
  19. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +17 -0
  20. package/__tests__/firmware-update/firmware-update-plan.test.ts +358 -0
  21. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +200 -0
  22. package/__tests__/firmware-update/firmware-update-recovery.test.ts +81 -0
  23. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +48 -31
  24. package/__tests__/firmware-update/firmware-upload-source.test.ts +70 -0
  25. package/__tests__/get-device-state.test.ts +403 -0
  26. package/__tests__/logBlockEvent.test.ts +61 -0
  27. package/__tests__/logger.test.ts +34 -0
  28. package/__tests__/open-wallet-session.test.ts +565 -0
  29. package/__tests__/preInitialize.test.ts +33 -0
  30. package/__tests__/pro2Wallpaper.test.ts +39 -0
  31. package/__tests__/protocol-v2-bootloader-mode.test.ts +37 -0
  32. package/__tests__/protocol-v2-firmware-targets.test.ts +19 -0
  33. package/__tests__/protocol-v2.test.ts +6008 -0
  34. package/__tests__/protocolV2FileWrite.test.ts +67 -0
  35. package/__tests__/public-pro2-api-boundary.test.ts +66 -0
  36. package/__tests__/search-devices.test.ts +136 -0
  37. package/dist/api/BaseMethod.d.ts +12 -0
  38. package/dist/api/BaseMethod.d.ts.map +1 -1
  39. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  40. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  41. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  42. package/dist/api/ClearSessionCache.d.ts +9 -0
  43. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  44. package/dist/api/DirList.d.ts +10 -0
  45. package/dist/api/DirList.d.ts.map +1 -0
  46. package/dist/api/DirMake.d.ts +9 -0
  47. package/dist/api/DirMake.d.ts.map +1 -0
  48. package/dist/api/DirRemove.d.ts +9 -0
  49. package/dist/api/DirRemove.d.ts.map +1 -0
  50. package/dist/api/FileDelete.d.ts +9 -0
  51. package/dist/api/FileDelete.d.ts.map +1 -0
  52. package/dist/api/FileRead.d.ts +19 -0
  53. package/dist/api/FileRead.d.ts.map +1 -0
  54. package/dist/api/FileWrite.d.ts +25 -0
  55. package/dist/api/FileWrite.d.ts.map +1 -0
  56. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  57. package/dist/api/FirmwareUpdateV2.d.ts +14 -3
  58. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  59. package/dist/api/FirmwareUpdateV3.d.ts +10 -3
  60. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  61. package/dist/api/FirmwareUpdateV4.d.ts +75 -0
  62. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -0
  63. package/dist/api/GetDeviceState.d.ts +7 -0
  64. package/dist/api/GetDeviceState.d.ts.map +1 -0
  65. package/dist/api/GetFeatures.d.ts +1 -1
  66. package/dist/api/GetFeatures.d.ts.map +1 -1
  67. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  68. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  69. package/dist/api/OpenWalletSession.d.ts +14 -0
  70. package/dist/api/OpenWalletSession.d.ts.map +1 -0
  71. package/dist/api/PathInfo.d.ts +10 -0
  72. package/dist/api/PathInfo.d.ts.map +1 -0
  73. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  74. package/dist/api/SearchDevices.d.ts +5 -1
  75. package/dist/api/SearchDevices.d.ts.map +1 -1
  76. package/dist/api/UploadPortfolio.d.ts +18 -0
  77. package/dist/api/UploadPortfolio.d.ts.map +1 -0
  78. package/dist/api/alephium/AlephiumGetAddress.d.ts +2 -6
  79. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  80. package/dist/api/alephium/AlephiumSignMessage.d.ts +2 -5
  81. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  82. package/dist/api/alephium/AlephiumSignTransaction.d.ts +5 -8
  83. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  84. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  85. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  86. package/dist/api/benfen/BenfenGetAddress.d.ts +2 -9
  87. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  88. package/dist/api/benfen/BenfenGetPublicKey.d.ts +2 -9
  89. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  90. package/dist/api/benfen/BenfenSignMessage.d.ts +2 -8
  91. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  92. package/dist/api/benfen/BenfenSignTransaction.d.ts +2 -8
  93. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  94. package/dist/api/btc/BTCGetAddress.d.ts +1 -11
  95. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  96. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -11
  97. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  98. package/dist/api/btc/BTCSignMessage.d.ts +1 -15
  99. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  100. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  101. package/dist/api/btc/BTCSignTransaction.d.ts +1 -11
  102. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  103. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -11
  104. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  105. package/dist/api/btc/helpers/versionLimit.d.ts +2 -11
  106. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  107. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  108. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  109. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  110. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  111. package/dist/api/device/DeviceFullyUploadResource.d.ts +1 -2
  112. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  113. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  114. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -1
  115. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  116. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  117. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  118. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  119. package/dist/api/device/DeviceUnlock.d.ts +1 -1
  120. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  121. package/dist/api/device/DeviceUpdateBootloader.d.ts +7 -1
  122. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  123. package/dist/api/device/DeviceUploadResource.d.ts.map +1 -1
  124. package/dist/api/device/DeviceVerify.d.ts.map +1 -1
  125. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  126. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  127. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  128. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  129. package/dist/api/evm/EVMSignMessageEIP712.d.ts +2 -8
  130. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  131. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  132. package/dist/api/evm/latest/signTypedData.d.ts +1 -1
  133. package/dist/api/evm/latest/signTypedData.d.ts.map +1 -1
  134. package/dist/api/evm/latest/signTypedHash.d.ts.map +1 -1
  135. package/dist/api/evm/legacyV1/getAddress.d.ts.map +1 -1
  136. package/dist/api/evm/legacyV1/getPublicKey.d.ts.map +1 -1
  137. package/dist/api/evm/legacyV1/signMessage.d.ts.map +1 -1
  138. package/dist/api/evm/legacyV1/signTypedData.d.ts +1 -1
  139. package/dist/api/evm/legacyV1/signTypedData.d.ts.map +1 -1
  140. package/dist/api/evm/legacyV1/signTypedHash.d.ts.map +1 -1
  141. package/dist/api/evm/legacyV1/verifyMessage.d.ts.map +1 -1
  142. package/dist/api/firmware/FirmwareArtifactSource.d.ts +26 -0
  143. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +1 -0
  144. package/dist/api/firmware/FirmwareCheckpoint.d.ts +15 -0
  145. package/dist/api/firmware/FirmwareCheckpoint.d.ts.map +1 -0
  146. package/dist/api/firmware/FirmwareHostBinding.d.ts +6 -0
  147. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -0
  148. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +10 -1
  149. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  150. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +3 -0
  151. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +1 -0
  152. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +29 -0
  153. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -0
  154. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +25 -0
  155. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -0
  156. package/dist/api/firmware/bootloaderHelper.d.ts.map +1 -1
  157. package/dist/api/firmware/getBinary.d.ts +11 -0
  158. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  159. package/dist/api/firmware/progressThrottle.d.ts +3 -0
  160. package/dist/api/firmware/progressThrottle.d.ts.map +1 -0
  161. package/dist/api/firmware/updateBootloader.d.ts +2 -0
  162. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  163. package/dist/api/firmware/uploadFirmware.d.ts +9 -1
  164. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  165. package/dist/api/helpers/batchGetPublickeys.d.ts +3 -0
  166. package/dist/api/helpers/batchGetPublickeys.d.ts.map +1 -1
  167. package/dist/api/helpers/filesystemValidation.d.ts +10 -0
  168. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -0
  169. package/dist/api/helpers/protocolV2FileWrite.d.ts +33 -0
  170. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -0
  171. package/dist/api/index.d.ts +29 -0
  172. package/dist/api/index.d.ts.map +1 -1
  173. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  174. package/dist/api/lightning/LnurlAuth.d.ts +4 -0
  175. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  176. package/dist/api/neo/NeoGetAddress.d.ts +2 -8
  177. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  178. package/dist/api/neo/NeoSignTransaction.d.ts +2 -8
  179. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  180. package/dist/api/nervos/NervosGetAddress.d.ts +2 -9
  181. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  182. package/dist/api/nervos/NervosSignTransaction.d.ts +9 -12
  183. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  184. package/dist/api/nexa/NexaGetAddress.d.ts +2 -8
  185. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  186. package/dist/api/nexa/NexaSignTransaction.d.ts +2 -9
  187. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  188. package/dist/api/polkadot/PolkadotGetAddress.d.ts +3 -0
  189. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  190. package/dist/api/polkadot/networks.d.ts +3 -0
  191. package/dist/api/polkadot/networks.d.ts.map +1 -1
  192. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +6 -0
  193. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -0
  194. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +7 -0
  195. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -0
  196. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +7 -0
  197. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -0
  198. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +7 -0
  199. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -0
  200. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +6 -0
  201. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
  202. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +28 -0
  203. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -0
  204. package/dist/api/protocol-v2/DeviceReboot.d.ts +7 -0
  205. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -0
  206. package/dist/api/protocol-v2/DeviceSessionOpen.d.ts +28 -0
  207. package/dist/api/protocol-v2/DeviceSessionOpen.d.ts.map +1 -0
  208. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts +6 -0
  209. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts.map +1 -0
  210. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts +16 -0
  211. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts.map +1 -0
  212. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts +12 -0
  213. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts.map +1 -0
  214. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +6 -0
  215. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  216. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +26 -0
  217. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
  218. package/dist/api/protocol-v2/FilesystemFormat.d.ts +6 -0
  219. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -0
  220. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +6 -0
  221. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -0
  222. package/dist/api/protocol-v2/Ping.d.ts +8 -0
  223. package/dist/api/protocol-v2/Ping.d.ts.map +1 -0
  224. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +6 -0
  225. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -0
  226. package/dist/api/protocol-v2/helpers.d.ts +42 -0
  227. package/dist/api/protocol-v2/helpers.d.ts.map +1 -0
  228. package/dist/api/scdo/ScdoGetAddress.d.ts +2 -6
  229. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  230. package/dist/api/scdo/ScdoSignMessage.d.ts +2 -5
  231. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  232. package/dist/api/scdo/ScdoSignTransaction.d.ts +2 -5
  233. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  234. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  235. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  236. package/dist/api/solana/SolSignMessage.d.ts +3 -0
  237. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  238. package/dist/api/solana/SolSignOffchainMessage.d.ts +3 -0
  239. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  240. package/dist/api/solana/SolSignTransaction.d.ts +6 -0
  241. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  242. package/dist/api/stellar/StellarGetAddress.d.ts +2 -1
  243. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  244. package/dist/api/stellar/StellarSignTransaction.d.ts +3 -2
  245. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  246. package/dist/api/sui/SuiGetAddress.d.ts +3 -0
  247. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  248. package/dist/api/sui/SuiGetPublicKey.d.ts +3 -0
  249. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  250. package/dist/api/sui/SuiSignMessage.d.ts +3 -0
  251. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  252. package/dist/api/sui/SuiSignTransaction.d.ts +5 -2
  253. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  254. package/dist/api/ton/TonGetAddress.d.ts +3 -0
  255. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  256. package/dist/api/ton/TonSignData.d.ts +1 -0
  257. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  258. package/dist/api/ton/TonSignMessage.d.ts +3 -0
  259. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  260. package/dist/api/ton/TonSignProof.d.ts +3 -0
  261. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  262. package/dist/api/tron/TronSignMessage.d.ts +3 -0
  263. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  264. package/dist/api/tron/TronSignTransaction.d.ts +3 -0
  265. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  266. package/dist/api/utils.d.ts +2 -1
  267. package/dist/api/utils.d.ts.map +1 -1
  268. package/dist/constants/index.d.ts +2 -1
  269. package/dist/constants/index.d.ts.map +1 -1
  270. package/dist/core/RequestQueue.d.ts +19 -1
  271. package/dist/core/RequestQueue.d.ts.map +1 -1
  272. package/dist/core/deviceEventRegistration.d.ts +11 -0
  273. package/dist/core/deviceEventRegistration.d.ts.map +1 -0
  274. package/dist/core/index.d.ts +4 -1
  275. package/dist/core/index.d.ts.map +1 -1
  276. package/dist/data-manager/DataManager.d.ts +9 -5
  277. package/dist/data-manager/DataManager.d.ts.map +1 -1
  278. package/dist/data-manager/MessagesConfig.d.ts +2 -2
  279. package/dist/data-manager/MessagesConfig.d.ts.map +1 -1
  280. package/dist/data-manager/TransportManager.d.ts +5 -4
  281. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  282. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  283. package/dist/device/Device.d.ts +60 -16
  284. package/dist/device/Device.d.ts.map +1 -1
  285. package/dist/device/DeviceCommands.d.ts +16 -14
  286. package/dist/device/DeviceCommands.d.ts.map +1 -1
  287. package/dist/device/DeviceConnector.d.ts +2 -1
  288. package/dist/device/DeviceConnector.d.ts.map +1 -1
  289. package/dist/device/DeviceFeaturesState.d.ts +4 -0
  290. package/dist/device/DeviceFeaturesState.d.ts.map +1 -0
  291. package/dist/device/DevicePool.d.ts +4 -2
  292. package/dist/device/DevicePool.d.ts.map +1 -1
  293. package/dist/device/DeviceStateMapper.d.ts +13 -0
  294. package/dist/device/DeviceStateMapper.d.ts.map +1 -0
  295. package/dist/device/DeviceStateProjector.d.ts +7 -0
  296. package/dist/device/DeviceStateProjector.d.ts.map +1 -0
  297. package/dist/device/DeviceStateStore.d.ts +21 -0
  298. package/dist/device/DeviceStateStore.d.ts.map +1 -0
  299. package/dist/device/DeviceWalletSessionStore.d.ts +15 -0
  300. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  301. package/dist/device/cloneDeviceState.d.ts +2 -0
  302. package/dist/device/cloneDeviceState.d.ts.map +1 -0
  303. package/dist/device/deviceIdentity.d.ts +5 -0
  304. package/dist/device/deviceIdentity.d.ts.map +1 -0
  305. package/dist/deviceProfile/buildDeviceFeatures.d.ts +12 -0
  306. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -0
  307. package/dist/deviceProfile/index.d.ts +2 -0
  308. package/dist/deviceProfile/index.d.ts.map +1 -0
  309. package/dist/events/call.d.ts +7 -0
  310. package/dist/events/call.d.ts.map +1 -1
  311. package/dist/events/core.d.ts +2 -2
  312. package/dist/events/core.d.ts.map +1 -1
  313. package/dist/events/device.d.ts +11 -2
  314. package/dist/events/device.d.ts.map +1 -1
  315. package/dist/events/iframe.d.ts +1 -0
  316. package/dist/events/iframe.d.ts.map +1 -1
  317. package/dist/events/logBlockEvent.d.ts +1 -0
  318. package/dist/events/logBlockEvent.d.ts.map +1 -1
  319. package/dist/events/ui-request.d.ts +26 -2
  320. package/dist/events/ui-request.d.ts.map +1 -1
  321. package/dist/index.d.ts +1797 -451
  322. package/dist/index.d.ts.map +1 -1
  323. package/dist/index.js +26905 -5611
  324. package/dist/inject.d.ts +3 -2
  325. package/dist/inject.d.ts.map +1 -1
  326. package/dist/lowLevelInject.d.ts +2 -1
  327. package/dist/lowLevelInject.d.ts.map +1 -1
  328. package/dist/protocols/protocol-v2/deviceSession.d.ts +7 -0
  329. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +1 -0
  330. package/dist/protocols/protocol-v2/features.d.ts +88 -0
  331. package/dist/protocols/protocol-v2/features.d.ts.map +1 -0
  332. package/dist/protocols/protocol-v2/firmware.d.ts +15 -0
  333. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -0
  334. package/dist/protocols/protocol-v2/index.d.ts +5 -0
  335. package/dist/protocols/protocol-v2/index.d.ts.map +1 -0
  336. package/dist/protocols/protocol-v2/lockedError.d.ts +2 -0
  337. package/dist/protocols/protocol-v2/lockedError.d.ts.map +1 -0
  338. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +16 -0
  339. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +1 -0
  340. package/dist/protocols/protocol-v2/uiInteraction.d.ts +39 -0
  341. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +1 -0
  342. package/dist/protocols/protocol-v2/unlockRetry.d.ts +11 -0
  343. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +1 -0
  344. package/dist/protocols/protocol-v2/walletSession.d.ts +21 -0
  345. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  346. package/dist/topLevelInject.d.ts.map +1 -1
  347. package/dist/types/api/checkAllFirmwareRelease.d.ts +4 -2
  348. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  349. package/dist/types/api/deviceSettings.d.ts +9 -0
  350. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  351. package/dist/types/api/deviceUnlock.d.ts +1 -1
  352. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  353. package/dist/types/api/deviceUpdateBootloader.d.ts +6 -1
  354. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  355. package/dist/types/api/export.d.ts +4 -1
  356. package/dist/types/api/export.d.ts.map +1 -1
  357. package/dist/types/api/firmwareUpdate.d.ts +114 -1
  358. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  359. package/dist/types/api/firmwareUpdateCapabilities.d.ts +13 -0
  360. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +1 -0
  361. package/dist/types/api/firmwareUpdatePlan.d.ts +35 -0
  362. package/dist/types/api/firmwareUpdatePlan.d.ts.map +1 -0
  363. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +43 -0
  364. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +1 -0
  365. package/dist/types/api/getDeviceState.d.ts +12 -0
  366. package/dist/types/api/getDeviceState.d.ts.map +1 -0
  367. package/dist/types/api/getFeatures.d.ts.map +1 -1
  368. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  369. package/dist/types/api/getPassphraseState.d.ts +2 -1
  370. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  371. package/dist/types/api/index.d.ts +48 -2
  372. package/dist/types/api/index.d.ts.map +1 -1
  373. package/dist/types/api/openWalletSession.d.ts +35 -0
  374. package/dist/types/api/openWalletSession.d.ts.map +1 -0
  375. package/dist/types/api/protocolV2.d.ts +113 -0
  376. package/dist/types/api/protocolV2.d.ts.map +1 -0
  377. package/dist/types/api/searchDevices.d.ts +2 -2
  378. package/dist/types/api/searchDevices.d.ts.map +1 -1
  379. package/dist/types/api/sessionCache.d.ts +10 -0
  380. package/dist/types/api/sessionCache.d.ts.map +1 -0
  381. package/dist/types/device.d.ts +207 -5
  382. package/dist/types/device.d.ts.map +1 -1
  383. package/dist/types/params.d.ts +3 -0
  384. package/dist/types/params.d.ts.map +1 -1
  385. package/dist/types/settings.d.ts +33 -0
  386. package/dist/types/settings.d.ts.map +1 -1
  387. package/dist/utils/capabilitieUtils.d.ts.map +1 -1
  388. package/dist/utils/deviceFeaturesCompat.d.ts +13 -0
  389. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -0
  390. package/dist/utils/deviceFeaturesUtils.d.ts +17 -9
  391. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  392. package/dist/utils/deviceInfoUtils.d.ts +10 -8
  393. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  394. package/dist/utils/deviceSettings.d.ts +2 -0
  395. package/dist/utils/deviceSettings.d.ts.map +1 -1
  396. package/dist/utils/deviceVersionUtils.d.ts +6 -5
  397. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  398. package/dist/utils/findDefectiveBatchDevice.d.ts +1 -1
  399. package/dist/utils/homescreen.d.ts.map +1 -1
  400. package/dist/utils/index.d.ts +3 -1
  401. package/dist/utils/index.d.ts.map +1 -1
  402. package/dist/utils/patch.d.ts +1 -1
  403. package/dist/utils/patch.d.ts.map +1 -1
  404. package/dist/utils/pro2Wallpaper.d.ts +12 -0
  405. package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
  406. package/dist/utils/tracing.d.ts.map +1 -1
  407. package/dist/utils/versionUtils.d.ts +1 -1
  408. package/package.json +4 -4
  409. package/src/api/BaseMethod.ts +60 -23
  410. package/src/api/CheckAllFirmwareRelease.ts +16 -3
  411. package/src/api/CheckBootloaderRelease.ts +1 -2
  412. package/src/api/CheckFirmwareRelease.ts +1 -2
  413. package/src/api/ClearSessionCache.ts +28 -0
  414. package/src/api/DirList.ts +33 -0
  415. package/src/api/DirMake.ts +23 -0
  416. package/src/api/DirRemove.ts +23 -0
  417. package/src/api/FileDelete.ts +23 -0
  418. package/src/api/FileRead.ts +183 -0
  419. package/src/api/FileWrite.ts +71 -0
  420. package/src/api/FirmwareUpdate.ts +15 -7
  421. package/src/api/FirmwareUpdateV2.ts +354 -148
  422. package/src/api/FirmwareUpdateV3.ts +376 -62
  423. package/src/api/FirmwareUpdateV4.ts +2279 -0
  424. package/src/api/GetDeviceState.ts +55 -0
  425. package/src/api/GetFeatures.ts +12 -4
  426. package/src/api/GetOnekeyFeatures.ts +15 -3
  427. package/src/api/GetPassphraseState.ts +9 -10
  428. package/src/api/OpenWalletSession.ts +211 -0
  429. package/src/api/PathInfo.ts +41 -0
  430. package/src/api/PromptWebDeviceAccess.ts +10 -1
  431. package/src/api/SearchDevices.ts +33 -3
  432. package/src/api/UploadPortfolio.ts +50 -0
  433. package/src/api/alephium/AlephiumGetAddress.ts +6 -2
  434. package/src/api/alephium/AlephiumSignMessage.ts +6 -1
  435. package/src/api/alephium/AlephiumSignTransaction.ts +15 -4
  436. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +25 -21
  437. package/src/api/aptos/AptosGetAddress.ts +2 -3
  438. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  439. package/src/api/benfen/BenfenGetPublicKey.ts +6 -2
  440. package/src/api/benfen/BenfenSignMessage.ts +6 -1
  441. package/src/api/benfen/BenfenSignTransaction.ts +6 -1
  442. package/src/api/btc/BTCGetPublicKey.ts +3 -2
  443. package/src/api/btc/BTCSignPsbt.ts +1 -2
  444. package/src/api/btc/helpers/versionLimit.ts +7 -1
  445. package/src/api/cardano/CardanoSignTransaction.ts +2 -4
  446. package/src/api/conflux/ConfluxSignTransaction.ts +5 -2
  447. package/src/api/device/DeviceCancel.ts +1 -0
  448. package/src/api/device/DeviceChangePin.ts +24 -0
  449. package/src/api/device/DeviceFullyUploadResource.ts +6 -7
  450. package/src/api/device/DeviceLock.ts +2 -3
  451. package/src/api/device/DeviceRebootToBoardloader.ts +11 -1
  452. package/src/api/device/DeviceRebootToBootloader.ts +11 -1
  453. package/src/api/device/DeviceSettings.ts +121 -0
  454. package/src/api/device/DeviceSupportFeatures.ts +2 -13
  455. package/src/api/device/DeviceUnlock.ts +9 -0
  456. package/src/api/device/DeviceUpdateBootloader.ts +175 -11
  457. package/src/api/device/DeviceUploadResource.ts +4 -5
  458. package/src/api/device/DeviceVerify.ts +1 -2
  459. package/src/api/device/DeviceWipe.ts +19 -0
  460. package/src/api/dynex/DnxGetAddress.ts +6 -0
  461. package/src/api/dynex/DnxSignTransaction.ts +6 -0
  462. package/src/api/evm/EVMGetAddress.ts +1 -1
  463. package/src/api/evm/EVMGetPublicKey.ts +3 -4
  464. package/src/api/evm/EVMSignMessage.ts +1 -1
  465. package/src/api/evm/EVMSignMessageEIP712.ts +14 -1
  466. package/src/api/evm/EVMSignTransaction.ts +1 -1
  467. package/src/api/evm/EVMSignTypedData.ts +30 -18
  468. package/src/api/evm/EVMVerifyMessage.ts +1 -1
  469. package/src/api/evm/latest/signTypedHash.ts +2 -4
  470. package/src/api/evm/legacyV1/getAddress.ts +5 -3
  471. package/src/api/evm/legacyV1/getPublicKey.ts +5 -3
  472. package/src/api/evm/legacyV1/signMessage.ts +5 -3
  473. package/src/api/evm/legacyV1/signTypedData.ts +9 -8
  474. package/src/api/evm/legacyV1/signTypedHash.ts +7 -7
  475. package/src/api/evm/legacyV1/verifyMessage.ts +5 -3
  476. package/src/api/firmware/FirmwareArtifactSource.ts +278 -0
  477. package/src/api/firmware/FirmwareCheckpoint.ts +188 -0
  478. package/src/api/firmware/FirmwareHostBinding.ts +108 -0
  479. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +83 -15
  480. package/src/api/firmware/FirmwareUpdateCapabilities.ts +13 -0
  481. package/src/api/firmware/FirmwareUpdatePlan.ts +729 -0
  482. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +403 -0
  483. package/src/api/firmware/bootloaderHelper.ts +3 -2
  484. package/src/api/firmware/getBinary.ts +1 -1
  485. package/src/api/firmware/progressThrottle.ts +44 -0
  486. package/src/api/firmware/releaseHelper.ts +3 -3
  487. package/src/api/firmware/updateBootloader.ts +19 -4
  488. package/src/api/firmware/uploadFirmware.ts +148 -34
  489. package/src/api/helpers/batchGetPublickeys.ts +51 -6
  490. package/src/api/helpers/filesystemValidation.ts +112 -0
  491. package/src/api/helpers/protocolV2FileWrite.ts +193 -0
  492. package/src/api/index.ts +32 -0
  493. package/src/api/kaspa/KaspaSignTransaction.ts +2 -3
  494. package/src/api/lightning/LnurlAuth.ts +4 -0
  495. package/src/api/neo/NeoGetAddress.ts +6 -1
  496. package/src/api/neo/NeoSignTransaction.ts +6 -1
  497. package/src/api/nervos/NervosGetAddress.ts +6 -2
  498. package/src/api/nervos/NervosSignTransaction.ts +14 -4
  499. package/src/api/nexa/NexaGetAddress.ts +6 -2
  500. package/src/api/nexa/NexaSignTransaction.ts +11 -12
  501. package/src/api/polkadot/networks.ts +9 -0
  502. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +20 -0
  503. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +32 -0
  504. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +61 -0
  505. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +55 -0
  506. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +18 -0
  507. package/src/api/protocol-v2/DeviceInfoGet.ts +145 -0
  508. package/src/api/protocol-v2/DeviceReboot.ts +26 -0
  509. package/src/api/protocol-v2/DeviceSessionOpen.ts +102 -0
  510. package/src/api/protocol-v2/DeviceSettingsGet.ts +18 -0
  511. package/src/api/protocol-v2/DeviceSettingsPageShow.ts +70 -0
  512. package/src/api/protocol-v2/DeviceSettingsSet.ts +44 -0
  513. package/src/api/protocol-v2/DeviceStatusGet.ts +16 -0
  514. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +131 -0
  515. package/src/api/protocol-v2/FilesystemFormat.ts +19 -0
  516. package/src/api/protocol-v2/FilesystemPermissionFix.ts +16 -0
  517. package/src/api/protocol-v2/Ping.ts +18 -0
  518. package/src/api/protocol-v2/ProtocolInfoRequest.ts +16 -0
  519. package/src/api/protocol-v2/helpers.ts +203 -0
  520. package/src/api/scdo/ScdoGetAddress.ts +6 -2
  521. package/src/api/scdo/ScdoSignMessage.ts +6 -1
  522. package/src/api/scdo/ScdoSignTransaction.ts +6 -2
  523. package/src/api/solana/SolGetAddress.ts +4 -0
  524. package/src/api/solana/SolSignMessage.ts +3 -0
  525. package/src/api/solana/SolSignOffchainMessage.ts +3 -0
  526. package/src/api/solana/SolSignTransaction.ts +6 -0
  527. package/src/api/stellar/StellarGetAddress.ts +10 -1
  528. package/src/api/stellar/StellarSignTransaction.ts +14 -1
  529. package/src/api/sui/SuiGetAddress.ts +5 -3
  530. package/src/api/sui/SuiGetPublicKey.ts +3 -0
  531. package/src/api/sui/SuiSignMessage.ts +3 -0
  532. package/src/api/sui/SuiSignTransaction.ts +14 -12
  533. package/src/api/ton/TonGetAddress.ts +3 -0
  534. package/src/api/ton/TonSignData.ts +6 -3
  535. package/src/api/ton/TonSignMessage.ts +6 -5
  536. package/src/api/ton/TonSignProof.ts +3 -0
  537. package/src/api/tron/TronSignMessage.ts +4 -1
  538. package/src/api/tron/TronSignTransaction.ts +3 -0
  539. package/src/api/utils.ts +7 -3
  540. package/src/api/xrp/XrpSignTransaction.ts +1 -1
  541. package/src/constants/index.ts +7 -1
  542. package/src/core/RequestQueue.ts +124 -4
  543. package/src/core/deviceEventRegistration.ts +23 -0
  544. package/src/core/index.ts +253 -125
  545. package/src/data/messages/messages-protocol-v2.json +13544 -0
  546. package/src/data-manager/DataManager.ts +61 -49
  547. package/src/data-manager/MessagesConfig.ts +14 -14
  548. package/src/data-manager/TransportManager.ts +38 -12
  549. package/src/data-manager/connectSettings.ts +15 -0
  550. package/src/device/Device.ts +759 -164
  551. package/src/device/DeviceCommands.ts +245 -36
  552. package/src/device/DeviceConnector.ts +29 -4
  553. package/src/device/DeviceFeaturesState.ts +34 -0
  554. package/src/device/DevicePool.ts +69 -21
  555. package/src/device/DeviceStateMapper.ts +348 -0
  556. package/src/device/DeviceStateProjector.ts +95 -0
  557. package/src/device/DeviceStateStore.ts +201 -0
  558. package/src/device/DeviceWalletSessionStore.ts +78 -0
  559. package/src/device/cloneDeviceState.ts +39 -0
  560. package/src/device/deviceIdentity.ts +18 -0
  561. package/src/deviceProfile/buildDeviceFeatures.ts +391 -0
  562. package/src/deviceProfile/index.ts +4 -0
  563. package/src/events/call.ts +6 -0
  564. package/src/events/core.ts +2 -0
  565. package/src/events/device.ts +17 -1
  566. package/src/events/iframe.ts +1 -0
  567. package/src/events/logBlockEvent.ts +30 -0
  568. package/src/events/ui-request.ts +32 -2
  569. package/src/index.ts +9 -0
  570. package/src/inject.ts +75 -3
  571. package/src/lowLevelInject.ts +8 -1
  572. package/src/protocols/protocol-v2/deviceSession.ts +24 -0
  573. package/src/protocols/protocol-v2/features.ts +163 -0
  574. package/src/protocols/protocol-v2/firmware.ts +21 -0
  575. package/src/protocols/protocol-v2/index.ts +18 -0
  576. package/src/protocols/protocol-v2/lockedError.ts +10 -0
  577. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +61 -0
  578. package/src/protocols/protocol-v2/uiInteraction.ts +210 -0
  579. package/src/protocols/protocol-v2/unlockRetry.ts +76 -0
  580. package/src/protocols/protocol-v2/walletSession.ts +202 -0
  581. package/src/topLevelInject.ts +7 -1
  582. package/src/types/api/checkAllFirmwareRelease.ts +4 -2
  583. package/src/types/api/deviceSettings.ts +9 -0
  584. package/src/types/api/deviceUnlock.ts +1 -1
  585. package/src/types/api/deviceUpdateBootloader.ts +10 -1
  586. package/src/types/api/export.ts +25 -0
  587. package/src/types/api/firmwareUpdate.ts +163 -1
  588. package/src/types/api/firmwareUpdateCapabilities.ts +13 -0
  589. package/src/types/api/firmwareUpdatePlan.ts +52 -0
  590. package/src/types/api/firmwareUpdatePreparedPlan.ts +55 -0
  591. package/src/types/api/getDeviceState.ts +19 -0
  592. package/src/types/api/getFeatures.ts +3 -0
  593. package/src/types/api/getOnekeyFeatures.ts +3 -0
  594. package/src/types/api/getPassphraseState.ts +10 -2
  595. package/src/types/api/index.ts +89 -2
  596. package/src/types/api/openWalletSession.ts +54 -0
  597. package/src/types/api/protocolV2.ts +244 -0
  598. package/src/types/api/searchDevices.ts +2 -2
  599. package/src/types/api/sessionCache.ts +14 -0
  600. package/src/types/device.ts +266 -5
  601. package/src/types/params.ts +11 -0
  602. package/src/types/settings.ts +54 -29
  603. package/src/utils/capabilitieUtils.ts +1 -2
  604. package/src/utils/deviceFeaturesCompat.ts +173 -0
  605. package/src/utils/deviceFeaturesUtils.ts +122 -84
  606. package/src/utils/deviceInfoUtils.ts +38 -87
  607. package/src/utils/deviceSettings.ts +48 -0
  608. package/src/utils/deviceVersionUtils.ts +25 -62
  609. package/src/utils/findDefectiveBatchDevice.ts +8 -8
  610. package/src/utils/homescreen.ts +10 -0
  611. package/src/utils/index.ts +4 -0
  612. package/src/utils/pro2Wallpaper.ts +109 -0
  613. package/src/utils/tracing.ts +3 -1
@@ -1,10 +1,31 @@
1
1
  import { HardwareErrorCode, TypedError } from '@onekeyfe/hd-shared';
2
+ import { DeviceSettingsPage } from '@onekeyfe/hd-transport';
2
3
 
3
4
  import { BaseMethod } from '../BaseMethod';
5
+ import { invalidParameter } from '../helpers/filesystemValidation';
4
6
  import { validateParams } from '../helpers/paramsValidator';
7
+ import {
8
+ mapApplySettingsToState,
9
+ mapCommonSettingsToProtocolV2,
10
+ mapDeviceSettingsToState,
11
+ } from '../../device/DeviceStateMapper';
12
+ import { getProtocolV2SettingsBehavior } from '../../protocols/protocol-v2/settingsUnlockPolicy';
5
13
  import { LANGUAGE_LABELS } from '../../utils/deviceSettings';
6
14
 
7
15
  import type { ApplySettings } from '@onekeyfe/hd-transport';
16
+ import type { DeviceSettingsParams } from '../../types/api/deviceSettings';
17
+
18
+ const settingsPageForPayload = (
19
+ payload: DeviceSettingsParams
20
+ ): DeviceSettingsPage.DevicePassphrase | DeviceSettingsPage.DeviceAirgap | undefined => {
21
+ if (payload.usePassphrase !== undefined) {
22
+ return DeviceSettingsPage.DevicePassphrase;
23
+ }
24
+ if (payload.airgapMode !== undefined) {
25
+ return DeviceSettingsPage.DeviceAirgap;
26
+ }
27
+ return undefined;
28
+ };
8
29
 
9
30
  export default class DeviceSettings extends BaseMethod<ApplySettings> {
10
31
  init() {
@@ -24,7 +45,16 @@ export default class DeviceSettings extends BaseMethod<ApplySettings> {
24
45
  { name: 'experimentalFeatures', type: 'boolean' },
25
46
  { name: 'autoShutdownDelayMs', type: 'number' },
26
47
  { name: 'changeBrightness', type: 'boolean' },
48
+ { name: 'brightness', type: 'number' },
27
49
  { name: 'hapticFeedback', type: 'boolean' },
50
+ { name: 'bluetoothEnabled', type: 'boolean' },
51
+ { name: 'airgapMode', type: 'boolean' },
52
+ { name: 'animationEnabled', type: 'boolean' },
53
+ { name: 'tapToWake', type: 'boolean' },
54
+ { name: 'deviceNameDisplayEnabled', type: 'boolean' },
55
+ { name: 'fidoEnabled', type: 'boolean' },
56
+ { name: 'usbLockEnabled', type: 'boolean' },
57
+ { name: 'randomKeypad', type: 'boolean' },
28
58
  ]);
29
59
 
30
60
  // init params
@@ -45,6 +75,28 @@ export default class DeviceSettings extends BaseMethod<ApplySettings> {
45
75
  : undefined),
46
76
  haptic_feedback: this.payload.hapticFeedback,
47
77
  };
78
+ const page = settingsPageForPayload(this.payload);
79
+ const directSettings = mapCommonSettingsToProtocolV2(this.payload);
80
+ const hasConflictingPages =
81
+ this.payload.usePassphrase !== undefined && this.payload.airgapMode !== undefined;
82
+ const combinesPageWithDirectSettings =
83
+ page !== undefined && Object.keys(directSettings).length > 0;
84
+ if (hasConflictingPages || combinesPageWithDirectSettings) {
85
+ // V1 may still accept passphrase plus direct settings. Suppress only the
86
+ // Protocol V2 pre-run interaction; run() returns the protocol-specific error.
87
+ this.unlockPolicy = 'none';
88
+ this.protocolV2UiInteraction = undefined;
89
+ return;
90
+ }
91
+ const behavior =
92
+ page === undefined
93
+ ? getProtocolV2SettingsBehavior({
94
+ kind: 'direct',
95
+ settings: directSettings,
96
+ })
97
+ : getProtocolV2SettingsBehavior({ kind: 'page', page });
98
+ this.unlockPolicy = behavior.unlockPolicy;
99
+ this.protocolV2UiInteraction = behavior.uiInteraction;
48
100
  }
49
101
 
50
102
  getVersionRange() {
@@ -60,9 +112,78 @@ export default class DeviceSettings extends BaseMethod<ApplySettings> {
60
112
 
61
113
  async run() {
62
114
  try {
115
+ if (this.device.isProtocolV2()) {
116
+ const settings = mapCommonSettingsToProtocolV2(this.payload);
117
+ const requestedPassphrase = this.payload.usePassphrase;
118
+ const requestedAirgap = this.payload.airgapMode;
119
+ const hasPassphrasePage = requestedPassphrase !== undefined;
120
+ const hasAirgapPage = requestedAirgap !== undefined;
121
+
122
+ if (hasPassphrasePage && hasAirgapPage) {
123
+ throw invalidParameter(
124
+ 'Protocol V2 passphrase and air-gap settings must be changed in separate calls.'
125
+ );
126
+ }
127
+ if ((hasPassphrasePage || hasAirgapPage) && Object.keys(settings).length > 0) {
128
+ throw invalidParameter(
129
+ 'Protocol V2 on-device settings must not be combined with direct settings.'
130
+ );
131
+ }
132
+ if (requestedPassphrase !== undefined) {
133
+ const current = await this.device.getDeviceState({ refreshSections: ['status'] });
134
+ if (current.status.passphraseProtection === requestedPassphrase) {
135
+ return { message: 'Settings already match requested value.' };
136
+ }
137
+
138
+ const res = await this.device.commands.typedCall('DeviceSettingsPageShow', 'Success', {
139
+ page: DeviceSettingsPage.DevicePassphrase,
140
+ });
141
+ const updated = await this.device.getDeviceState({ refreshSections: ['status'] });
142
+ if (updated.status.passphraseProtection !== requestedPassphrase) {
143
+ throw TypedError(
144
+ HardwareErrorCode.RuntimeError,
145
+ 'Protocol V2 passphrase setting did not reach the requested value.'
146
+ );
147
+ }
148
+ return res.message;
149
+ }
150
+ if (requestedAirgap !== undefined) {
151
+ const current = await this.device.getDeviceState({ refreshSections: ['settings'] });
152
+ if (current.settings.airgapMode === requestedAirgap) {
153
+ return { message: 'Settings already match requested value.' };
154
+ }
155
+
156
+ const res = await this.device.commands.typedCall('DeviceSettingsPageShow', 'Success', {
157
+ page: DeviceSettingsPage.DeviceAirgap,
158
+ });
159
+ const updated = await this.device.getDeviceState({ refreshSections: ['settings'] });
160
+ if (updated.settings.airgapMode !== requestedAirgap) {
161
+ throw TypedError(
162
+ HardwareErrorCode.RuntimeError,
163
+ 'Protocol V2 air-gap setting did not reach the requested value.'
164
+ );
165
+ }
166
+ return res.message;
167
+ }
168
+ if (Object.keys(settings).length === 0) {
169
+ throw invalidParameter('No Protocol V2 compatible setting provided.');
170
+ }
171
+
172
+ const res = await this.device.commands.typedCall('DeviceSettingsSet', 'Success', {
173
+ settings,
174
+ });
175
+ this.device.updateState(mapDeviceSettingsToState(settings), 'apply-settings');
176
+ return res.message;
177
+ }
178
+
179
+ if (this.payload.airgapMode !== undefined) {
180
+ throw invalidParameter('Air-gap settings are not supported by Protocol V1.');
181
+ }
182
+
63
183
  const res = await this.device.commands.typedCall('ApplySettings', 'Success', {
64
184
  ...this.params,
65
185
  });
186
+ this.device.updateState(mapApplySettingsToState(this.params), 'apply-settings');
66
187
  return res.message;
67
188
  } catch (error) {
68
189
  if (error.message?.toLowerCase().includes('no setting provided')) {
@@ -1,9 +1,3 @@
1
- import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
2
-
3
- import {
4
- supportInputPinOnSoftware,
5
- supportModifyHomescreen,
6
- } from '../../utils/deviceFeaturesUtils';
7
1
  import { BaseMethod } from '../BaseMethod';
8
2
 
9
3
  export default class DeviceSupportFeatures extends BaseMethod {
@@ -13,13 +7,8 @@ export default class DeviceSupportFeatures extends BaseMethod {
13
7
  }
14
8
 
15
9
  run() {
16
- if (!this.device.features)
17
- return Promise.reject(
18
- ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'Device not initialized')
19
- );
20
-
21
- const inputPinOnSoftware = supportInputPinOnSoftware(this.device.features);
22
- const modifyHomescreen = supportModifyHomescreen(this.device.features);
10
+ const inputPinOnSoftware = this.device.supportInputPinOnSoftware();
11
+ const modifyHomescreen = this.device.supportModifyHomescreen();
23
12
  return Promise.resolve({
24
13
  inputPinOnSoftware,
25
14
  modifyHomescreen,
@@ -5,6 +5,15 @@ import type { LockDevice } from '@onekeyfe/hd-transport';
5
5
  export default class DeviceUnlock extends BaseMethod<LockDevice> {
6
6
  init() {
7
7
  this.useDevicePassphraseState = false;
8
+ this.unlockPolicy = 'none';
9
+ this.protocolV2UiInteraction = {
10
+ request: 'pin',
11
+ source: 'method-lifecycle',
12
+ reason: 'device-unlock',
13
+ completion: 'operation-completed',
14
+ deviceOnly: true,
15
+ operation: 'unlock-device',
16
+ };
8
17
  }
9
18
 
10
19
  async run() {
@@ -5,16 +5,20 @@ import { UI_REQUEST } from '../../constants/ui-request';
5
5
  import { FirmwareUpdateTipMessage } from '../../events/ui-request';
6
6
  import { FirmwareUpdateBaseMethod } from '../firmware/FirmwareUpdateBaseMethod';
7
7
  import { getSysResourceBinary } from '../firmware/getBinary';
8
- import { updateBootloader } from '../firmware/uploadFirmware';
8
+ import { updateBootloader, updateBootloaderFromSource } from '../firmware/uploadFirmware';
9
9
  import { DeviceModelToTypes } from '../../types';
10
10
  import { DataManager } from '../../data-manager';
11
- import { checkBootloaderLength } from '../firmware/updateBootloader';
12
- import { getDeviceType, getFirmwareType } from '../../utils';
11
+ import { checkBootloaderLength, checkBootloaderSourceLength } from '../firmware/updateBootloader';
12
+ import { openFirmwareByteSource } from '../firmware/FirmwareArtifactSource';
13
+ import { FirmwareCheckpointWriter } from '../firmware/FirmwareCheckpoint';
14
+ import { resolveFirmwareUpdateHostBinding } from '../firmware/FirmwareHostBinding';
15
+ import { assertFirmwareUpdatePreparedPlanBinding } from '../firmware/FirmwareUpdatePreparedPlan';
13
16
 
14
17
  import type { DeviceUpdateBootloaderParams } from '../../types/api/deviceUpdateBootloader';
15
18
  import type { EFirmwareType } from '@onekeyfe/hd-shared';
16
19
  import type { Device } from '../../device/Device';
17
20
  import type { Features } from '../../types';
21
+ import type { FirmwareByteSource } from '../firmware/FirmwareArtifactSource';
18
22
 
19
23
  export default class DeviceUpdateBootloader extends FirmwareUpdateBaseMethod<any> {
20
24
  init() {
@@ -44,17 +48,94 @@ export default class DeviceUpdateBootloader extends FirmwareUpdateBaseMethod<any
44
48
  return true;
45
49
  }
46
50
 
51
+ async updateBootloaderWithEmmcFileWriteFromSource(_device: Device, source: FirmwareByteSource) {
52
+ const filePath = '0:boot/bootloader.bin';
53
+
54
+ this.postTipMessage(FirmwareUpdateTipMessage.StartTransferData);
55
+ await this.emmcCommonUpdateProcessFromSource({
56
+ source,
57
+ filePath,
58
+ });
59
+ this.postTipMessage(FirmwareUpdateTipMessage.ConfirmOnDevice);
60
+ await this.reboot(RebootType.Normal);
61
+ this.postTipMessage(FirmwareUpdateTipMessage.UpdateBootloaderSuccess);
62
+ return true;
63
+ }
64
+
47
65
  async updateTouchBootloader({
48
66
  device,
49
67
  features,
50
68
  firmwareType,
69
+ binary: preparedBinary,
70
+ source: preparedSource,
71
+ checkpointWriter,
51
72
  }: {
52
73
  device: Device;
53
74
  features?: Features;
54
75
  firmwareType: EFirmwareType;
76
+ binary?: ArrayBuffer;
77
+ source?: FirmwareByteSource;
78
+ checkpointWriter: FirmwareCheckpointWriter;
55
79
  }) {
56
- let { binary } = this.payload;
80
+ if (preparedSource) {
81
+ if (!(await checkBootloaderSourceLength(preparedSource))) {
82
+ throw ERRORS.TypedError(HardwareErrorCode.CheckDownloadFileError);
83
+ }
84
+ if (features && device.isBootloader()) {
85
+ this.postTipMessage(FirmwareUpdateTipMessage.UpdateBootloader);
86
+ await checkpointWriter.commit({
87
+ stage: 'FILE_TRANSFER_STARTED',
88
+ target: 'bootloader',
89
+ });
90
+ const result = await this.updateBootloaderWithEmmcFileWriteFromSource(
91
+ device,
92
+ preparedSource
93
+ );
94
+ await checkpointWriter.commit({
95
+ stage: 'FILE_TRANSFER_COMPLETED',
96
+ target: 'bootloader',
97
+ });
98
+ await checkpointWriter.commit({
99
+ stage: 'FINAL_VERIFIED',
100
+ target: 'bootloader',
101
+ });
102
+ return result;
103
+ }
104
+ if (features && !device.isBootloader()) {
105
+ await checkpointWriter.commit({
106
+ stage: 'FILE_TRANSFER_STARTED',
107
+ target: 'bootloader',
108
+ });
109
+ await updateBootloaderFromSource(
110
+ this.device.getCommands().typedCall.bind(this.device.getCommands()),
111
+ this.postMessage,
112
+ device,
113
+ preparedSource
114
+ );
115
+ await checkpointWriter.commit({
116
+ stage: 'FILE_TRANSFER_COMPLETED',
117
+ target: 'bootloader',
118
+ });
119
+ await checkpointWriter.commit({
120
+ stage: 'FINAL_VERIFIED',
121
+ target: 'bootloader',
122
+ });
123
+ return true;
124
+ }
125
+ }
126
+
127
+ let binary = preparedBinary;
57
128
  if (!binary) {
129
+ if (DataManager.getSettings('firmwareManifestMode') === 'external-only') {
130
+ throw ERRORS.TypedError(
131
+ HardwareErrorCode.RuntimeError,
132
+ 'Bootloader must be prepared by the external firmware host',
133
+ {
134
+ firmwareUpdateCode: 'FirmwareArtifactsNotPrepared',
135
+ artifactName: 'bootloader',
136
+ }
137
+ );
138
+ }
58
139
  this.postTipMessage(FirmwareUpdateTipMessage.CheckLatestUiResource);
59
140
  const resourceUrl = features
60
141
  ? DataManager.getBootloaderResource(features, firmwareType)
@@ -69,25 +150,50 @@ export default class DeviceUpdateBootloader extends FirmwareUpdateBaseMethod<any
69
150
  }
70
151
  }
71
152
 
72
- if (!checkBootloaderLength(binary)) {
153
+ if (!binary || !checkBootloaderLength(binary)) {
73
154
  throw ERRORS.TypedError(HardwareErrorCode.CheckDownloadFileError);
74
155
  }
75
156
 
76
157
  // Check if device is in bootloader mode
77
- if (features && features.bootloader_mode) {
158
+ if (features && device.isBootloader()) {
78
159
  // Use emmcFileWrite + reboot logic for bootloader mode
79
160
  this.postTipMessage(FirmwareUpdateTipMessage.UpdateBootloader);
80
- return this.updateBootloaderWithEmmcFileWrite(device, binary);
161
+ await checkpointWriter.commit({
162
+ stage: 'FILE_TRANSFER_STARTED',
163
+ target: 'bootloader',
164
+ });
165
+ const result = await this.updateBootloaderWithEmmcFileWrite(device, binary);
166
+ await checkpointWriter.commit({
167
+ stage: 'FILE_TRANSFER_COMPLETED',
168
+ target: 'bootloader',
169
+ });
170
+ await checkpointWriter.commit({
171
+ stage: 'FINAL_VERIFIED',
172
+ target: 'bootloader',
173
+ });
174
+ return result;
81
175
  }
82
176
 
83
- if (features && !features.bootloader_mode) {
177
+ if (features && !device.isBootloader()) {
84
178
  // Use original updateBootloader logic for normal mode
179
+ await checkpointWriter.commit({
180
+ stage: 'FILE_TRANSFER_STARTED',
181
+ target: 'bootloader',
182
+ });
85
183
  await updateBootloader(
86
184
  this.device.getCommands().typedCall.bind(this.device.getCommands()),
87
185
  this.postMessage,
88
186
  device,
89
187
  binary
90
188
  );
189
+ await checkpointWriter.commit({
190
+ stage: 'FILE_TRANSFER_COMPLETED',
191
+ target: 'bootloader',
192
+ });
193
+ await checkpointWriter.commit({
194
+ stage: 'FINAL_VERIFIED',
195
+ target: 'bootloader',
196
+ });
91
197
  return Promise.resolve(true);
92
198
  }
93
199
  }
@@ -97,13 +203,71 @@ export default class DeviceUpdateBootloader extends FirmwareUpdateBaseMethod<any
97
203
  const { features } = device;
98
204
 
99
205
  const payload = this.payload as DeviceUpdateBootloaderParams;
206
+ const hostBinding = payload.artifact
207
+ ? resolveFirmwareUpdateHostBinding(payload.hostBindingGeneration)
208
+ : undefined;
209
+ const executionParams = {
210
+ ...payload,
211
+ artifactReader: hostBinding?.artifactReader ?? payload.artifactReader,
212
+ checkpointSink: hostBinding?.checkpointSink ?? payload.checkpointSink,
213
+ };
214
+ const checkpointWriter = new FirmwareCheckpointWriter(executionParams, {
215
+ required: !!hostBinding,
216
+ });
217
+ if (payload.artifact) {
218
+ assertFirmwareUpdatePreparedPlanBinding({
219
+ preparedPlan: payload.preparedPlan,
220
+ executor: 'v2',
221
+ scopeTargets: ['bootloader'],
222
+ bindings: [
223
+ {
224
+ target: 'bootloader',
225
+ artifact: payload.artifact,
226
+ },
227
+ ],
228
+ });
229
+ const source = await openFirmwareByteSource({
230
+ artifact: payload.artifact,
231
+ reader: executionParams.artifactReader,
232
+ });
233
+ if (!source) {
234
+ throw ERRORS.TypedError(
235
+ HardwareErrorCode.RuntimeError,
236
+ 'Bootloader artifact is not prepared'
237
+ );
238
+ }
239
+ try {
240
+ const deviceType = device.getCurrentDeviceType();
241
+ const deviceFirmwareType = device.getCurrentFirmwareType();
242
+ const firmwareType = payload.firmwareType ?? deviceFirmwareType;
243
+ if (DeviceModelToTypes.model_touch.includes(deviceType)) {
244
+ return await this.updateTouchBootloader({
245
+ device,
246
+ features,
247
+ firmwareType,
248
+ source,
249
+ checkpointWriter,
250
+ });
251
+ }
252
+ return true;
253
+ } finally {
254
+ await source.close();
255
+ }
256
+ }
100
257
 
101
- const deviceType = getDeviceType(features);
102
- const deviceFirmwareType = getFirmwareType(features);
258
+ const { binary } = payload;
259
+ const deviceType = device.getCurrentDeviceType();
260
+ const deviceFirmwareType = device.getCurrentFirmwareType();
103
261
  const firmwareType = payload.firmwareType ?? deviceFirmwareType;
104
262
 
105
263
  if (DeviceModelToTypes.model_touch.includes(deviceType)) {
106
- return this.updateTouchBootloader({ device, features, firmwareType });
264
+ return this.updateTouchBootloader({
265
+ device,
266
+ features,
267
+ firmwareType,
268
+ binary,
269
+ checkpointWriter,
270
+ });
107
271
  }
108
272
 
109
273
  return Promise.resolve(true);
@@ -8,7 +8,6 @@ import { DeviceModelToTypes } from '../../types';
8
8
  import { BaseMethod } from '../BaseMethod';
9
9
  import { validateParams } from '../helpers/paramsValidator';
10
10
  import { hexToBytes } from '../helpers/hexUtils';
11
- import { getDeviceFirmwareVersion, getDeviceType } from '../../utils';
12
11
  import { PROTO } from '../../constants';
13
12
 
14
13
  import type { DeviceUploadResourceParams, DeviceUploadResourceResponse } from '../../types';
@@ -37,8 +36,8 @@ export default class DeviceUploadResource extends BaseMethod<ResourceUpload> {
37
36
  }
38
37
 
39
38
  checkUploadNFTSupport() {
40
- const deviceType = getDeviceType(this.device.features);
41
- const currentVersion = getDeviceFirmwareVersion(this.device.features).join('.');
39
+ const deviceType = this.device.getCurrentDeviceType();
40
+ const currentVersion = this.device.getCurrentFirmwareVersionString() ?? '0.0.0';
42
41
  if (!DeviceModelToTypes.model_touch.includes(deviceType)) {
43
42
  throw ERRORS.TypedError(HardwareErrorCode.CallMethodError, 'Device Not Support Upload NFT');
44
43
  }
@@ -138,8 +137,8 @@ export default class DeviceUploadResource extends BaseMethod<ResourceUpload> {
138
137
  };
139
138
  response.applyScreen = true;
140
139
 
141
- const firmwareVersion = getDeviceFirmwareVersion(this.device.features).join('.');
142
- const deviceType = getDeviceType(this.device.features);
140
+ const firmwareVersion = this.device.getCurrentFirmwareVersionString() ?? '0.0.0';
141
+ const deviceType = this.device.getCurrentDeviceType();
143
142
  if (deviceType === EDeviceType.Pro && semver.gte(firmwareVersion, '4.17.0')) {
144
143
  response.applyScreen = false;
145
144
  }
@@ -5,7 +5,6 @@ import { bytesToHex } from '@noble/hashes/utils';
5
5
  import { formatAnyHex } from '../helpers/hexUtils';
6
6
  import { BaseMethod } from '../BaseMethod';
7
7
  import { validateParams, validateResult } from '../helpers/paramsValidator';
8
- import { getDeviceType } from '../../utils';
9
8
  import { DeviceModelToTypes } from '../../types';
10
9
 
11
10
  import type { BixinVerifyDeviceRequest } from '@onekeyfe/hd-transport';
@@ -26,7 +25,7 @@ export default class DeviceVerify extends BaseMethod<BixinVerifyDeviceRequest> {
26
25
 
27
26
  async run() {
28
27
  // For Classic、Mini device we use EthereumSignTypedData
29
- const deviceType = getDeviceType(this.device.features);
28
+ const deviceType = this.device.getCurrentDeviceType();
30
29
  let response: DeviceVerifySignature | undefined;
31
30
 
32
31
  if (DeviceModelToTypes.model_classic.includes(deviceType)) {
@@ -1,13 +1,32 @@
1
+ import { DeviceSettingsPage } from '@onekeyfe/hd-transport';
2
+
1
3
  import { BaseMethod } from '../BaseMethod';
2
4
 
3
5
  import type { WipeDevice } from '@onekeyfe/hd-transport';
4
6
 
5
7
  export default class DeviceWipe extends BaseMethod<WipeDevice> {
6
8
  init() {
9
+ this.unlockPolicy = 'retry-on-locked';
7
10
  this.useDevicePassphraseState = false;
11
+ this.protocolV2UiInteraction = {
12
+ request: 'button',
13
+ source: 'method-lifecycle',
14
+ reason: 'device-management',
15
+ completion: 'operation-completed',
16
+ deviceOnly: true,
17
+ page: DeviceSettingsPage.DeviceReset,
18
+ operation: 'wipe-device',
19
+ };
8
20
  }
9
21
 
10
22
  async run() {
23
+ if (this.device.isProtocolV2()) {
24
+ const res = await this.device.commands.typedCall('DeviceSettingsPageShow', 'Success', {
25
+ page: DeviceSettingsPage.DeviceReset,
26
+ });
27
+ return Promise.resolve(res.message);
28
+ }
29
+
11
30
  const res = await this.device.commands.typedCall('WipeDevice', 'Success');
12
31
 
13
32
  return Promise.resolve(res.message);
@@ -1,3 +1,5 @@
1
+ import { createDeviceNotSupportMethodError } from '@onekeyfe/hd-shared';
2
+
1
3
  import { UI_REQUEST } from '../../constants/ui-request';
2
4
  import { serializedPath, validatePath } from '../helpers/pathUtils';
3
5
  import { BaseMethod } from '../BaseMethod';
@@ -47,6 +49,10 @@ export default class DnxGetAddress extends BaseMethod<HardwareDnxGetAddress[]> {
47
49
  }
48
50
 
49
51
  async run() {
52
+ if (this.device.isProtocolV2()) {
53
+ throw createDeviceNotSupportMethodError(this.name, this.device.getCurrentFirmwareType());
54
+ }
55
+
50
56
  const responses: DnxAddress[] = [];
51
57
 
52
58
  for (let i = 0; i < this.params.length; i++) {
@@ -1,3 +1,5 @@
1
+ import { createDeviceNotSupportMethodError } from '@onekeyfe/hd-shared';
2
+
1
3
  import { UI_REQUEST } from '../../constants/ui-request';
2
4
  import { serializedPath, validatePath } from '../helpers/pathUtils';
3
5
  import { BaseMethod } from '../BaseMethod';
@@ -116,6 +118,10 @@ export default class DnxSignTransaction extends BaseMethod<DnxSignTx> {
116
118
  }
117
119
 
118
120
  async run() {
121
+ if (this.device.isProtocolV2()) {
122
+ throw createDeviceNotSupportMethodError(this.name, this.device.getCurrentFirmwareType());
123
+ }
124
+
119
125
  const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
120
126
 
121
127
  const res = await this.device.commands.typedCall('DnxSignTx', 'DnxInputRequest', {
@@ -44,7 +44,7 @@ export default class EvmGetAddress extends BaseMethod<EthereumGetAddressOneKey[]
44
44
  }
45
45
 
46
46
  async getEvmAddress(param: EthereumGetAddressOneKey) {
47
- if (TransportManager.getMessageVersion() === 'v1') {
47
+ if (TransportManager.getProtocolV1MessageSchema() === 'v1LegacySchema') {
48
48
  return getAddressLegacyV1({
49
49
  typedCall: this.device.commands.typedCall.bind(this.device.commands),
50
50
  param,
@@ -2,11 +2,10 @@ import { UI_REQUEST } from '../../constants/ui-request';
2
2
  import { serializedPath, validatePath } from '../helpers/pathUtils';
3
3
  import { BaseMethod } from '../BaseMethod';
4
4
  import { validateParams, validateResult } from '../helpers/paramsValidator';
5
- import { supportBatchPublicKey } from '../../utils/deviceFeaturesUtils';
6
5
  import TransportManager from '../../data-manager/TransportManager';
7
6
  import getPublicKey from './latest/getPublicKey';
8
7
  import getPublicKeyLegacyV1 from './legacyV1/getPublicKey';
9
- import { batchGetPublickeys } from '../helpers/batchGetPublickeys';
8
+ import { batchGetPublickeys, supportBatchPublicKeyByDevice } from '../helpers/batchGetPublickeys';
10
9
 
11
10
  import type { EVMGetPublicKeyParams, EVMPublicKey } from '../../types';
12
11
  import type { EthereumGetPublicKey, EthereumGetPublicKeyOneKey } from '@onekeyfe/hd-transport';
@@ -57,7 +56,7 @@ export default class EVMGetPublicKey extends BaseMethod<EthereumGetPublicKeyOneK
57
56
  }
58
57
 
59
58
  getEvmPublicKey(param: EthereumGetPublicKey) {
60
- if (TransportManager.getMessageVersion() === 'v1') {
59
+ if (TransportManager.getProtocolV1MessageSchema() === 'v1LegacySchema') {
61
60
  return getPublicKeyLegacyV1({
62
61
  typedCall: this.device.commands.typedCall.bind(this.device.commands),
63
62
  param,
@@ -73,7 +72,7 @@ export default class EVMGetPublicKey extends BaseMethod<EthereumGetPublicKeyOneK
73
72
  async run() {
74
73
  const responses: EVMPublicKey[] = [];
75
74
 
76
- if (this.useBatch && supportBatchPublicKey(this.device?.features)) {
75
+ if (this.useBatch && supportBatchPublicKeyByDevice(this.device)) {
77
76
  try {
78
77
  const res = await batchGetPublickeys(this.device, this.params, 'secp256k1', 60, {
79
78
  includeNode: false,
@@ -36,7 +36,7 @@ export default class EVMSignMessage extends BaseMethod<EthereumSignMessageOneKey
36
36
  }
37
37
 
38
38
  async run() {
39
- if (TransportManager.getMessageVersion() === 'v1') {
39
+ if (TransportManager.getProtocolV1MessageSchema() === 'v1LegacySchema') {
40
40
  return signMessageLegacyV1({
41
41
  typedCall: this.device.commands.typedCall.bind(this.device.commands),
42
42
  params: this.params,
@@ -5,6 +5,7 @@ import { validateParams } from '../helpers/paramsValidator';
5
5
  import { formatAnyHex } from '../helpers/hexUtils';
6
6
 
7
7
  import type { EthereumSignMessageEIP712 } from '@onekeyfe/hd-transport';
8
+ import type { DeviceFirmwareRange } from '../../types';
8
9
 
9
10
  /**
10
11
  * @deprecated Use EVMSignTypedData instead.
@@ -32,8 +33,12 @@ export default class EVMSignMessageEIP712 extends BaseMethod<EthereumSignMessage
32
33
  };
33
34
  }
34
35
 
35
- getVersionRange() {
36
+ getVersionRange(): DeviceFirmwareRange {
36
37
  return {
38
+ pro2: {
39
+ min: '0.0.0',
40
+ unsupported: true,
41
+ },
37
42
  model_mini: {
38
43
  min: '2.1.9',
39
44
  },
@@ -44,6 +49,14 @@ export default class EVMSignMessageEIP712 extends BaseMethod<EthereumSignMessage
44
49
  }
45
50
 
46
51
  async run() {
52
+ this.checkFeatureVersionLimit(
53
+ () => true,
54
+ () => this.getVersionRange(),
55
+ {
56
+ strictCheckDeviceSupport: true,
57
+ }
58
+ );
59
+
47
60
  const res = await this.device.commands.typedCall(
48
61
  'EthereumSignMessageEIP712',
49
62
  'EthereumMessageSignature',
@@ -122,7 +122,7 @@ export default class EVMSignTransaction extends BaseMethod {
122
122
 
123
123
  if (formattedTx == null) throw ERRORS.TypedError('Runtime', 'formattedTx is not set');
124
124
 
125
- if (TransportManager.getMessageVersion() === 'v1') {
125
+ if (TransportManager.getProtocolV1MessageSchema() === 'v1LegacySchema') {
126
126
  return signTransactionLegacyV1({
127
127
  typedCall: this.device.commands.typedCall.bind(this.device.commands),
128
128
  addressN,