@onekeyfe/hd-core 1.1.27 → 1.2.0-alpha.0

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 (377) hide show
  1. package/__tests__/evmLedgerLegacySafety.test.ts +15 -4
  2. package/__tests__/evmSignTransaction.test.ts +1 -1
  3. package/__tests__/evmSignTypedData.test.ts +1 -1
  4. package/__tests__/logBlockEvent.test.ts +37 -0
  5. package/__tests__/protocol-v2.test.ts +3025 -0
  6. package/dist/api/BaseMethod.d.ts +1 -0
  7. package/dist/api/BaseMethod.d.ts.map +1 -1
  8. package/dist/api/DirList.d.ts +10 -0
  9. package/dist/api/DirList.d.ts.map +1 -0
  10. package/dist/api/DirMake.d.ts +9 -0
  11. package/dist/api/DirMake.d.ts.map +1 -0
  12. package/dist/api/DirRemove.d.ts +9 -0
  13. package/dist/api/DirRemove.d.ts.map +1 -0
  14. package/dist/api/FileDelete.d.ts +9 -0
  15. package/dist/api/FileDelete.d.ts.map +1 -0
  16. package/dist/api/FileRead.d.ts +19 -0
  17. package/dist/api/FileRead.d.ts.map +1 -0
  18. package/dist/api/FileWrite.d.ts +24 -0
  19. package/dist/api/FileWrite.d.ts.map +1 -0
  20. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  21. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  22. package/dist/api/FirmwareUpdateV3.d.ts +1 -0
  23. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  24. package/dist/api/FirmwareUpdateV4.d.ts +35 -0
  25. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -0
  26. package/dist/api/GetDeviceInfo.d.ts +9 -0
  27. package/dist/api/GetDeviceInfo.d.ts.map +1 -0
  28. package/dist/api/GetFeatures.d.ts.map +1 -1
  29. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  30. package/dist/api/GetPassphraseState.d.ts +6 -1
  31. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  32. package/dist/api/PathInfo.d.ts +10 -0
  33. package/dist/api/PathInfo.d.ts.map +1 -0
  34. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  35. package/dist/api/SearchDevices.d.ts +2 -1
  36. package/dist/api/SearchDevices.d.ts.map +1 -1
  37. package/dist/api/alephium/AlephiumGetAddress.d.ts +2 -6
  38. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  39. package/dist/api/alephium/AlephiumSignMessage.d.ts +2 -5
  40. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  41. package/dist/api/alephium/AlephiumSignTransaction.d.ts +5 -8
  42. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  43. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  44. package/dist/api/benfen/BenfenGetAddress.d.ts +2 -9
  45. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  46. package/dist/api/benfen/BenfenGetPublicKey.d.ts +2 -9
  47. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  48. package/dist/api/benfen/BenfenSignMessage.d.ts +2 -8
  49. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  50. package/dist/api/benfen/BenfenSignTransaction.d.ts +2 -8
  51. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  52. package/dist/api/btc/BTCGetAddress.d.ts +1 -11
  53. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  54. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -11
  55. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  56. package/dist/api/btc/BTCSignMessage.d.ts +1 -15
  57. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  58. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  59. package/dist/api/btc/BTCSignTransaction.d.ts +1 -11
  60. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  61. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -11
  62. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  63. package/dist/api/btc/helpers/versionLimit.d.ts +2 -11
  64. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  65. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  66. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  67. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  68. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -1
  69. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  70. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  71. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  72. package/dist/api/device/DeviceUploadResource.d.ts.map +1 -1
  73. package/dist/api/device/DeviceVerify.d.ts.map +1 -1
  74. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  75. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  76. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  77. package/dist/api/evm/EVMSignMessageEIP712.d.ts +2 -8
  78. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  79. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  80. package/dist/api/evm/latest/signTypedData.d.ts +1 -1
  81. package/dist/api/evm/latest/signTypedData.d.ts.map +1 -1
  82. package/dist/api/evm/latest/signTypedHash.d.ts.map +1 -1
  83. package/dist/api/evm/legacyV1/getAddress.d.ts.map +1 -1
  84. package/dist/api/evm/legacyV1/getPublicKey.d.ts.map +1 -1
  85. package/dist/api/evm/legacyV1/signMessage.d.ts.map +1 -1
  86. package/dist/api/evm/legacyV1/signTypedData.d.ts +1 -1
  87. package/dist/api/evm/legacyV1/signTypedData.d.ts.map +1 -1
  88. package/dist/api/evm/legacyV1/signTypedHash.d.ts.map +1 -1
  89. package/dist/api/evm/legacyV1/verifyMessage.d.ts.map +1 -1
  90. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  91. package/dist/api/helpers/batchGetPublickeys.d.ts +3 -0
  92. package/dist/api/helpers/batchGetPublickeys.d.ts.map +1 -1
  93. package/dist/api/helpers/filesystemValidation.d.ts +7 -0
  94. package/dist/api/helpers/filesystemValidation.d.ts.map +1 -0
  95. package/dist/api/index.d.ts +32 -0
  96. package/dist/api/index.d.ts.map +1 -1
  97. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  98. package/dist/api/lightning/LnurlAuth.d.ts +4 -0
  99. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  100. package/dist/api/neo/NeoGetAddress.d.ts +2 -8
  101. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  102. package/dist/api/neo/NeoSignTransaction.d.ts +2 -8
  103. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  104. package/dist/api/nervos/NervosGetAddress.d.ts +2 -9
  105. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  106. package/dist/api/nervos/NervosSignTransaction.d.ts +9 -12
  107. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  108. package/dist/api/nexa/NexaGetAddress.d.ts +2 -8
  109. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  110. package/dist/api/nexa/NexaSignTransaction.d.ts +2 -9
  111. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  112. package/dist/api/polkadot/PolkadotGetAddress.d.ts +3 -0
  113. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  114. package/dist/api/polkadot/networks.d.ts +3 -0
  115. package/dist/api/polkadot/networks.d.ts.map +1 -1
  116. package/dist/api/protocol-v2/DevReboot.d.ts +7 -0
  117. package/dist/api/protocol-v2/DevReboot.d.ts.map +1 -0
  118. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +7 -0
  119. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -0
  120. package/dist/api/protocol-v2/DeviceGetDeviceInfo.d.ts +29 -0
  121. package/dist/api/protocol-v2/DeviceGetDeviceInfo.d.ts.map +1 -0
  122. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +6 -0
  123. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -0
  124. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +6 -0
  125. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -0
  126. package/dist/api/protocol-v2/DeviceReboot.d.ts +7 -0
  127. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -0
  128. package/dist/api/protocol-v2/FactoryDeviceInfoSettings.d.ts +7 -0
  129. package/dist/api/protocol-v2/FactoryDeviceInfoSettings.d.ts.map +1 -0
  130. package/dist/api/protocol-v2/FactoryGetDeviceInfo.d.ts +6 -0
  131. package/dist/api/protocol-v2/FactoryGetDeviceInfo.d.ts.map +1 -0
  132. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts +13 -0
  133. package/dist/api/protocol-v2/FilesystemDiskControl.d.ts.map +1 -0
  134. package/dist/api/protocol-v2/FilesystemFixPermission.d.ts +6 -0
  135. package/dist/api/protocol-v2/FilesystemFixPermission.d.ts.map +1 -0
  136. package/dist/api/protocol-v2/FilesystemFormat.d.ts +6 -0
  137. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -0
  138. package/dist/api/protocol-v2/GetProtoVersion.d.ts +6 -0
  139. package/dist/api/protocol-v2/GetProtoVersion.d.ts.map +1 -0
  140. package/dist/api/protocol-v2/Ping.d.ts +8 -0
  141. package/dist/api/protocol-v2/Ping.d.ts.map +1 -0
  142. package/dist/api/protocol-v2/helpers.d.ts +34 -0
  143. package/dist/api/protocol-v2/helpers.d.ts.map +1 -0
  144. package/dist/api/scdo/ScdoGetAddress.d.ts +2 -6
  145. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  146. package/dist/api/scdo/ScdoSignMessage.d.ts +2 -5
  147. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  148. package/dist/api/scdo/ScdoSignTransaction.d.ts +2 -5
  149. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  150. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  151. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  152. package/dist/api/solana/SolSignMessage.d.ts +3 -0
  153. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  154. package/dist/api/solana/SolSignOffchainMessage.d.ts +3 -0
  155. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  156. package/dist/api/solana/SolSignTransaction.d.ts +6 -0
  157. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  158. package/dist/api/stellar/StellarGetAddress.d.ts +2 -1
  159. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  160. package/dist/api/stellar/StellarSignTransaction.d.ts +3 -2
  161. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  162. package/dist/api/sui/SuiGetAddress.d.ts +3 -0
  163. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  164. package/dist/api/sui/SuiGetPublicKey.d.ts +3 -0
  165. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  166. package/dist/api/sui/SuiSignMessage.d.ts +3 -0
  167. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  168. package/dist/api/sui/SuiSignTransaction.d.ts +5 -2
  169. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  170. package/dist/api/ton/TonGetAddress.d.ts +3 -0
  171. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  172. package/dist/api/ton/TonSignData.d.ts +5 -0
  173. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  174. package/dist/api/ton/TonSignMessage.d.ts +3 -0
  175. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  176. package/dist/api/ton/TonSignProof.d.ts +3 -0
  177. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  178. package/dist/api/tron/TronSignMessage.d.ts +4 -0
  179. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  180. package/dist/api/tron/TronSignTransaction.d.ts +4 -0
  181. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  182. package/dist/core/index.d.ts.map +1 -1
  183. package/dist/data-manager/DataManager.d.ts +7 -4
  184. package/dist/data-manager/DataManager.d.ts.map +1 -1
  185. package/dist/data-manager/MessagesConfig.d.ts +2 -2
  186. package/dist/data-manager/MessagesConfig.d.ts.map +1 -1
  187. package/dist/data-manager/TransportManager.d.ts +5 -4
  188. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  189. package/dist/device/Device.d.ts +36 -10
  190. package/dist/device/Device.d.ts.map +1 -1
  191. package/dist/device/DeviceCommands.d.ts +9 -9
  192. package/dist/device/DeviceCommands.d.ts.map +1 -1
  193. package/dist/device/DeviceConnector.d.ts +2 -1
  194. package/dist/device/DeviceConnector.d.ts.map +1 -1
  195. package/dist/deviceProfile/buildDeviceProfile.d.ts +22 -0
  196. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +1 -0
  197. package/dist/deviceProfile/index.d.ts +3 -0
  198. package/dist/deviceProfile/index.d.ts.map +1 -0
  199. package/dist/deviceProfile/legacyFeaturesView.d.ts +5 -0
  200. package/dist/deviceProfile/legacyFeaturesView.d.ts.map +1 -0
  201. package/dist/events/logBlockEvent.d.ts +1 -0
  202. package/dist/events/logBlockEvent.d.ts.map +1 -1
  203. package/dist/events/ui-request.d.ts +8 -0
  204. package/dist/events/ui-request.d.ts.map +1 -1
  205. package/dist/index.d.ts +720 -382
  206. package/dist/index.js +17634 -1201
  207. package/dist/inject.d.ts.map +1 -1
  208. package/dist/protocols/protocol-v2/features.d.ts +93 -0
  209. package/dist/protocols/protocol-v2/features.d.ts.map +1 -0
  210. package/dist/protocols/protocol-v2/firmware.d.ts +13 -0
  211. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -0
  212. package/dist/protocols/protocol-v2/index.d.ts +4 -0
  213. package/dist/protocols/protocol-v2/index.d.ts.map +1 -0
  214. package/dist/types/api/export.d.ts +1 -1
  215. package/dist/types/api/export.d.ts.map +1 -1
  216. package/dist/types/api/firmwareUpdate.d.ts +27 -0
  217. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  218. package/dist/types/api/getDeviceInfo.d.ts +85 -0
  219. package/dist/types/api/getDeviceInfo.d.ts.map +1 -0
  220. package/dist/types/api/getPassphraseState.d.ts +10 -1
  221. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  222. package/dist/types/api/index.d.ts +37 -1
  223. package/dist/types/api/index.d.ts.map +1 -1
  224. package/dist/types/api/protocolV2.d.ts +103 -0
  225. package/dist/types/api/protocolV2.d.ts.map +1 -0
  226. package/dist/types/api/searchDevices.d.ts +2 -2
  227. package/dist/types/api/searchDevices.d.ts.map +1 -1
  228. package/dist/types/device.d.ts +10 -3
  229. package/dist/types/device.d.ts.map +1 -1
  230. package/dist/types/params.d.ts +2 -0
  231. package/dist/types/params.d.ts.map +1 -1
  232. package/dist/types/settings.d.ts +1 -1
  233. package/dist/types/settings.d.ts.map +1 -1
  234. package/dist/utils/deviceFeaturesUtils.d.ts +6 -8
  235. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  236. package/dist/utils/deviceInfoUtils.d.ts +1 -0
  237. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  238. package/dist/utils/index.d.ts +1 -1
  239. package/dist/utils/index.d.ts.map +1 -1
  240. package/dist/utils/patch.d.ts +1 -1
  241. package/dist/utils/patch.d.ts.map +1 -1
  242. package/package.json +4 -4
  243. package/src/api/BaseMethod.ts +26 -22
  244. package/src/api/DirList.ts +31 -0
  245. package/src/api/DirMake.ts +23 -0
  246. package/src/api/DirRemove.ts +23 -0
  247. package/src/api/FileDelete.ts +23 -0
  248. package/src/api/FileRead.ts +167 -0
  249. package/src/api/FileWrite.ts +216 -0
  250. package/src/api/FirmwareUpdate.ts +13 -5
  251. package/src/api/FirmwareUpdateV2.ts +21 -25
  252. package/src/api/FirmwareUpdateV3.ts +17 -4
  253. package/src/api/FirmwareUpdateV4.ts +827 -0
  254. package/src/api/GetDeviceInfo.ts +152 -0
  255. package/src/api/GetFeatures.ts +5 -2
  256. package/src/api/GetOnekeyFeatures.ts +95 -3
  257. package/src/api/GetPassphraseState.ts +16 -10
  258. package/src/api/PathInfo.ts +39 -0
  259. package/src/api/PromptWebDeviceAccess.ts +11 -1
  260. package/src/api/SearchDevices.ts +7 -2
  261. package/src/api/alephium/AlephiumGetAddress.ts +6 -2
  262. package/src/api/alephium/AlephiumSignMessage.ts +6 -1
  263. package/src/api/alephium/AlephiumSignTransaction.ts +15 -4
  264. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +21 -13
  265. package/src/api/aptos/AptosGetAddress.ts +2 -3
  266. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  267. package/src/api/benfen/BenfenGetPublicKey.ts +6 -2
  268. package/src/api/benfen/BenfenSignMessage.ts +6 -1
  269. package/src/api/benfen/BenfenSignTransaction.ts +6 -1
  270. package/src/api/btc/BTCGetPublicKey.ts +3 -2
  271. package/src/api/btc/BTCSignPsbt.ts +1 -2
  272. package/src/api/btc/helpers/versionLimit.ts +7 -1
  273. package/src/api/cardano/CardanoSignTransaction.ts +2 -4
  274. package/src/api/conflux/ConfluxSignTransaction.ts +5 -2
  275. package/src/api/device/DeviceFullyUploadResource.ts +3 -3
  276. package/src/api/device/DeviceLock.ts +1 -3
  277. package/src/api/device/DeviceRebootToBoardloader.ts +10 -1
  278. package/src/api/device/DeviceRebootToBootloader.ts +10 -1
  279. package/src/api/device/DeviceSupportFeatures.ts +2 -13
  280. package/src/api/device/DeviceUpdateBootloader.ts +4 -4
  281. package/src/api/device/DeviceUploadResource.ts +4 -5
  282. package/src/api/device/DeviceVerify.ts +1 -2
  283. package/src/api/dynex/DnxGetAddress.ts +6 -0
  284. package/src/api/dynex/DnxSignTransaction.ts +6 -0
  285. package/src/api/evm/EVMGetAddress.ts +1 -1
  286. package/src/api/evm/EVMGetPublicKey.ts +3 -4
  287. package/src/api/evm/EVMSignMessage.ts +1 -1
  288. package/src/api/evm/EVMSignMessageEIP712.ts +14 -1
  289. package/src/api/evm/EVMSignTransaction.ts +1 -1
  290. package/src/api/evm/EVMSignTypedData.ts +32 -18
  291. package/src/api/evm/EVMVerifyMessage.ts +1 -1
  292. package/src/api/evm/latest/signTypedHash.ts +2 -4
  293. package/src/api/evm/legacyV1/getAddress.ts +5 -3
  294. package/src/api/evm/legacyV1/getPublicKey.ts +5 -3
  295. package/src/api/evm/legacyV1/signMessage.ts +5 -3
  296. package/src/api/evm/legacyV1/signTypedData.ts +9 -8
  297. package/src/api/evm/legacyV1/signTypedHash.ts +7 -7
  298. package/src/api/evm/legacyV1/verifyMessage.ts +5 -3
  299. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +8 -8
  300. package/src/api/firmware/uploadFirmware.ts +3 -10
  301. package/src/api/helpers/batchGetPublickeys.ts +51 -6
  302. package/src/api/helpers/filesystemValidation.ts +51 -0
  303. package/src/api/index.ts +34 -0
  304. package/src/api/kaspa/KaspaSignTransaction.ts +4 -5
  305. package/src/api/lightning/LnurlAuth.ts +4 -0
  306. package/src/api/neo/NeoGetAddress.ts +6 -1
  307. package/src/api/neo/NeoSignTransaction.ts +6 -1
  308. package/src/api/nervos/NervosGetAddress.ts +6 -2
  309. package/src/api/nervos/NervosSignTransaction.ts +14 -4
  310. package/src/api/nexa/NexaGetAddress.ts +6 -2
  311. package/src/api/nexa/NexaSignTransaction.ts +11 -12
  312. package/src/api/polkadot/networks.ts +9 -0
  313. package/src/api/protocol-v2/DevReboot.ts +24 -0
  314. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +63 -0
  315. package/src/api/protocol-v2/DeviceGetDeviceInfo.ts +118 -0
  316. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +20 -0
  317. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +16 -0
  318. package/src/api/protocol-v2/DeviceReboot.ts +24 -0
  319. package/src/api/protocol-v2/FactoryDeviceInfoSettings.ts +29 -0
  320. package/src/api/protocol-v2/FactoryGetDeviceInfo.ts +20 -0
  321. package/src/api/protocol-v2/FilesystemDiskControl.ts +50 -0
  322. package/src/api/protocol-v2/FilesystemFixPermission.ts +16 -0
  323. package/src/api/protocol-v2/FilesystemFormat.ts +16 -0
  324. package/src/api/protocol-v2/GetProtoVersion.ts +16 -0
  325. package/src/api/protocol-v2/Ping.ts +18 -0
  326. package/src/api/protocol-v2/helpers.ts +207 -0
  327. package/src/api/scdo/ScdoGetAddress.ts +6 -2
  328. package/src/api/scdo/ScdoSignMessage.ts +6 -1
  329. package/src/api/scdo/ScdoSignTransaction.ts +6 -2
  330. package/src/api/solana/SolGetAddress.ts +4 -0
  331. package/src/api/solana/SolSignMessage.ts +3 -0
  332. package/src/api/solana/SolSignOffchainMessage.ts +3 -0
  333. package/src/api/solana/SolSignTransaction.ts +6 -0
  334. package/src/api/stellar/StellarGetAddress.ts +10 -1
  335. package/src/api/stellar/StellarSignTransaction.ts +14 -1
  336. package/src/api/sui/SuiGetAddress.ts +5 -3
  337. package/src/api/sui/SuiGetPublicKey.ts +3 -0
  338. package/src/api/sui/SuiSignMessage.ts +3 -0
  339. package/src/api/sui/SuiSignTransaction.ts +14 -12
  340. package/src/api/ton/TonGetAddress.ts +3 -0
  341. package/src/api/ton/TonSignData.ts +10 -3
  342. package/src/api/ton/TonSignMessage.ts +6 -5
  343. package/src/api/ton/TonSignProof.ts +3 -0
  344. package/src/api/tron/TronSignMessage.ts +5 -1
  345. package/src/api/tron/TronSignTransaction.ts +4 -0
  346. package/src/api/xrp/XrpSignTransaction.ts +1 -1
  347. package/src/core/index.ts +87 -55
  348. package/src/data/messages/messages-protocol-v2.json +13369 -0
  349. package/src/data-manager/DataManager.ts +12 -7
  350. package/src/data-manager/MessagesConfig.ts +14 -14
  351. package/src/data-manager/TransportManager.ts +38 -12
  352. package/src/device/Device.ts +538 -61
  353. package/src/device/DeviceCommands.ts +195 -29
  354. package/src/device/DeviceConnector.ts +29 -4
  355. package/src/device/DevicePool.ts +7 -7
  356. package/src/deviceProfile/buildDeviceProfile.ts +387 -0
  357. package/src/deviceProfile/index.ts +2 -0
  358. package/src/deviceProfile/legacyFeaturesView.ts +123 -0
  359. package/src/events/logBlockEvent.ts +23 -0
  360. package/src/events/ui-request.ts +8 -0
  361. package/src/inject.ts +52 -1
  362. package/src/protocols/protocol-v2/features.ts +180 -0
  363. package/src/protocols/protocol-v2/firmware.ts +43 -0
  364. package/src/protocols/protocol-v2/index.ts +16 -0
  365. package/src/types/api/export.ts +1 -0
  366. package/src/types/api/firmwareUpdate.ts +49 -0
  367. package/src/types/api/getDeviceInfo.ts +99 -0
  368. package/src/types/api/getPassphraseState.ts +13 -2
  369. package/src/types/api/index.ts +88 -1
  370. package/src/types/api/protocolV2.ts +201 -0
  371. package/src/types/api/searchDevices.ts +2 -2
  372. package/src/types/device.ts +37 -3
  373. package/src/types/params.ts +7 -0
  374. package/src/types/settings.ts +1 -1
  375. package/src/utils/deviceFeaturesUtils.ts +70 -70
  376. package/src/utils/deviceInfoUtils.ts +15 -8
  377. package/src/utils/index.ts +1 -0
@@ -4,7 +4,7 @@ import { serializedPath, validatePath } from '../helpers/pathUtils';
4
4
  import { UI_REQUEST } from '../../constants/ui-request';
5
5
  import { batchGetPublickeys } from '../helpers/batchGetPublickeys';
6
6
 
7
- import type { BenfenGetPublicKeyParams, BenfenPublicKey } from '../../types';
7
+ import type { BenfenGetPublicKeyParams, BenfenPublicKey, DeviceFirmwareRange } from '../../types';
8
8
 
9
9
  export default class BenfenGetPublicKey extends BaseMethod<any> {
10
10
  hasBundle = false;
@@ -38,8 +38,12 @@ export default class BenfenGetPublicKey extends BaseMethod<any> {
38
38
  });
39
39
  }
40
40
 
41
- getVersionRange() {
41
+ getVersionRange(): DeviceFirmwareRange {
42
42
  return {
43
+ pro2: {
44
+ min: '0.0.0',
45
+ unsupported: true,
46
+ },
43
47
  pro: {
44
48
  min: '4.12.0',
45
49
  },
@@ -5,6 +5,7 @@ import { validateParams } from '../helpers/paramsValidator';
5
5
  import { stripHexPrefix } from '../helpers/hexUtils';
6
6
 
7
7
  import type { BenfenSignMessage as HardwareBenfenSignMessage } from '@onekeyfe/hd-transport';
8
+ import type { DeviceFirmwareRange } from '../../types';
8
9
 
9
10
  export default class BenfenSignMessage extends BaseMethod<HardwareBenfenSignMessage> {
10
11
  init() {
@@ -26,8 +27,12 @@ export default class BenfenSignMessage extends BaseMethod<HardwareBenfenSignMess
26
27
  };
27
28
  }
28
29
 
29
- getVersionRange() {
30
+ getVersionRange(): DeviceFirmwareRange {
30
31
  return {
32
+ pro2: {
33
+ min: '0.0.0',
34
+ unsupported: true,
35
+ },
31
36
  pro: {
32
37
  min: '4.12.0',
33
38
  },
@@ -8,6 +8,7 @@ import { formatAnyHex } from '../helpers/hexUtils';
8
8
 
9
9
  import type { BenfenSignTx, BenfenSignedTx, MessageType, TypedCall } from '@onekeyfe/hd-transport';
10
10
  import type { TypedResponseMessage } from '../../device/DeviceCommands';
11
+ import type { DeviceFirmwareRange } from '../../types';
11
12
 
12
13
  export default class BenfenSignTransaction extends BaseMethod<BenfenSignTx> {
13
14
  init() {
@@ -33,8 +34,12 @@ export default class BenfenSignTransaction extends BaseMethod<BenfenSignTx> {
33
34
  };
34
35
  }
35
36
 
36
- getVersionRange() {
37
+ getVersionRange(): DeviceFirmwareRange {
37
38
  return {
39
+ pro2: {
40
+ min: '0.0.0',
41
+ unsupported: true,
42
+ },
38
43
  pro: {
39
44
  min: '4.12.0',
40
45
  },
@@ -78,7 +78,8 @@ export default class BTCGetPublicKey extends BaseMethod<GetPublicKey[]> {
78
78
  }
79
79
 
80
80
  for (const param of this.params) {
81
- const versionBytes = getVersionBytes(param.coin_name, param.script_type);
81
+ // init() 必然设置 coin_name;生成类型里该字段为 optional,这里兜底空串
82
+ const versionBytes = getVersionBytes(param.coin_name ?? '', param.script_type);
82
83
  if (!versionBytes) {
83
84
  throw new Error(
84
85
  `Invalid coinName, not support generate xpub for scriptType: ${param.script_type}`
@@ -101,7 +102,7 @@ export default class BTCGetPublicKey extends BaseMethod<GetPublicKey[]> {
101
102
 
102
103
  const path = serializedPath(param.address_n);
103
104
 
104
- const xpub = createExtendedPublicKey(node, param.coin_name, param.script_type);
105
+ const xpub = createExtendedPublicKey(node, param.coin_name ?? '', param.script_type);
105
106
 
106
107
  const rootFingerprint = res.root_fingerprint;
107
108
 
@@ -5,7 +5,6 @@ import { BaseMethod } from '../BaseMethod';
5
5
  import { validateParams } from '../helpers/paramsValidator';
6
6
  import { formatAnyHex } from '../helpers/hexUtils';
7
7
  import { getCoinInfo } from './helpers/btcParamsUtils';
8
- import { getDeviceType } from '../../utils';
9
8
 
10
9
  import type { SignPsbt } from '@onekeyfe/hd-transport';
11
10
 
@@ -50,7 +49,7 @@ export default class BTCSignPsbt extends BaseMethod<SignPsbt> {
50
49
  } catch (error) {
51
50
  const { message } = error;
52
51
 
53
- const deviceType = getDeviceType(this.device.features);
52
+ const deviceType = this.device.getCurrentDeviceType();
54
53
  if (
55
54
  message.includes('PSBT parse failed') &&
56
55
  (deviceType === EDeviceType.Classic1s || deviceType === EDeviceType.ClassicPure)
@@ -1,3 +1,5 @@
1
+ import type { DeviceFirmwareRange } from '../../../types';
2
+
1
3
  function isCoinNameInList(coinName: string, coinNames: (string | undefined)[]) {
2
4
  for (let i = 0; i < coinNames.length; i++) {
3
5
  const coin_name = coinNames[i];
@@ -8,9 +10,13 @@ function isCoinNameInList(coinName: string, coinNames: (string | undefined)[]) {
8
10
  return false;
9
11
  }
10
12
 
11
- export function getBitcoinForkVersionRange(params: (string | undefined)[]) {
13
+ export function getBitcoinForkVersionRange(params: (string | undefined)[]): DeviceFirmwareRange {
12
14
  if (isCoinNameInList('Neurai', params)) {
13
15
  return {
16
+ pro2: {
17
+ min: '0.0.0',
18
+ unsupported: true,
19
+ },
14
20
  model_mini: {
15
21
  min: '3.7.0',
16
22
  },
@@ -19,7 +19,6 @@ import {
19
19
  } from './helper/auxiliaryData';
20
20
  import { gatherWitnessPaths } from './helper/witnesses';
21
21
  import { validatePath } from '../helpers/pathUtils';
22
- import { getDeviceFirmwareVersion, getMethodVersionRange } from '../../utils';
23
22
 
24
23
  import type { DeviceFirmwareRange } from '../../types';
25
24
  import type { CollateralInputWithPath, Path } from './helper/cardanoInputs';
@@ -240,10 +239,9 @@ export default class CardanoSignTransaction extends BaseMethod<any> {
240
239
  return;
241
240
  }
242
241
 
243
- const firmwareVersion = getDeviceFirmwareVersion(this.device.features)?.join('.');
242
+ const firmwareVersion = this.device.getCurrentFirmwareVersionString() ?? '0.0.0';
244
243
 
245
- const versionRange = getMethodVersionRange(
246
- this.device.features,
244
+ const versionRange = this.device.getCurrentMethodVersionRange(
247
245
  type => this.supportConwayVersionRange()[type]
248
246
  );
249
247
 
@@ -35,7 +35,7 @@ export default class ConfluxSignTransaction extends BaseMethod {
35
35
 
36
36
  // check if transaction is valid
37
37
  const schema: SchemaParam[] = [
38
- { name: 'to', type: 'hexString', required: true },
38
+ { name: 'to', type: 'string', required: true },
39
39
  { name: 'value', type: 'hexString', required: true },
40
40
  { name: 'gasLimit', type: 'hexString', required: true },
41
41
  { name: 'gasPrice', type: 'hexString', required: true },
@@ -48,7 +48,10 @@ export default class ConfluxSignTransaction extends BaseMethod {
48
48
 
49
49
  validateParams(tx, schema);
50
50
 
51
- this.formattedTx = formatAnyHex(tx);
51
+ this.formattedTx = {
52
+ ...formatAnyHex(tx),
53
+ to: tx.to,
54
+ };
52
55
  }
53
56
 
54
57
  processTxRequest = async (request: ConfluxTxRequest, data: string): Promise<ConfluxSignedTx> => {
@@ -5,7 +5,7 @@ import { UI_REQUEST } from '../../constants/ui-request';
5
5
  import { BaseMethod } from '../BaseMethod';
6
6
  import { getSysResourceBinary } from '../firmware/getBinary';
7
7
  import { updateResources } from '../firmware/uploadFirmware';
8
- import { getDeviceFirmwareVersion, getDeviceType, getFirmwareType } from '../../utils';
8
+ import { getDeviceFirmwareVersion, getFirmwareType } from '../../utils';
9
9
  import { createUiMessage } from '../../events/ui-request';
10
10
  import { DataManager } from '../../data-manager';
11
11
 
@@ -36,7 +36,7 @@ export default class DeviceFullyUploadResource extends BaseMethod {
36
36
  isSupportResourceUpdate(features: Features, updateType: string) {
37
37
  if (updateType !== 'firmware') return false;
38
38
 
39
- const deviceType = getDeviceType(features);
39
+ const deviceType = this.device.getCurrentDeviceType();
40
40
  const isTouchMode = deviceType === EDeviceType.Touch || deviceType === EDeviceType.Pro;
41
41
  const currentVersion = getDeviceFirmwareVersion(features).join('.');
42
42
 
@@ -52,7 +52,7 @@ export default class DeviceFullyUploadResource extends BaseMethod {
52
52
  const deviceFirmwareType = getFirmwareType(features);
53
53
  const firmwareType = payload.firmwareType ?? deviceFirmwareType;
54
54
 
55
- if (!features?.bootloader_mode && features) {
55
+ if (!device.isBootloader() && features) {
56
56
  // check & upgrade firmware resource
57
57
  if (features) {
58
58
  let { binary } = this.payload;
@@ -8,8 +8,6 @@ export default class DeviceLock extends BaseMethod<LockDevice> {
8
8
  }
9
9
 
10
10
  async run() {
11
- const res = await this.device.commands.typedCall('LockDevice', 'Success');
12
-
13
- return Promise.resolve(res.message);
11
+ return this.device.lockDevice();
14
12
  }
15
13
  }
@@ -1,3 +1,5 @@
1
+ import { DevRebootType } from '@onekeyfe/hd-transport';
2
+
1
3
  import { BaseMethod } from '../BaseMethod';
2
4
 
3
5
  import type { RebootToBoardloaderParams } from '../../types/api/deviceRebootToBoardloader';
@@ -21,10 +23,17 @@ export default class DeviceRebootToBoardloader extends BaseMethod<RebootToBoardl
21
23
  }
22
24
 
23
25
  async run() {
26
+ // Protocol V2 submodule firmware uses DevReboot with reboot_type enum.
27
+ if (this.device.isProtocolV2()) {
28
+ const res = await this.device.commands.typedCall('DevReboot', 'Success', {
29
+ reboot_type: DevRebootType.Boardloader,
30
+ });
31
+ return Promise.resolve(res.message);
32
+ }
33
+
24
34
  // On Touch devices, messsage code 904 is RebootToBoardloader
25
35
  // so BininOutMessageSE message code 904 is used here
26
36
  const res = await this.device.commands.typedCall('BixinOutMessageSE', 'Success');
27
-
28
37
  return Promise.resolve(res.message);
29
38
  }
30
39
  }
@@ -1,3 +1,5 @@
1
+ import { DevRebootType } from '@onekeyfe/hd-transport';
2
+
1
3
  import { BaseMethod } from '../BaseMethod';
2
4
 
3
5
  import type { RebootToBootloader } from '@onekeyfe/hd-transport';
@@ -21,8 +23,15 @@ export default class DeviceRebootToBootloader extends BaseMethod<RebootToBootloa
21
23
  }
22
24
 
23
25
  async run() {
24
- const res = await this.device.commands.typedCall('RebootToBootloader', 'Success');
26
+ // Protocol V2 submodule firmware uses DevReboot with reboot_type enum.
27
+ if (this.device.isProtocolV2()) {
28
+ const res = await this.device.commands.typedCall('DevReboot', 'Success', {
29
+ reboot_type: DevRebootType.Bootloader,
30
+ });
31
+ return Promise.resolve(res.message);
32
+ }
25
33
 
34
+ const res = await this.device.commands.typedCall('RebootToBootloader', 'Success');
26
35
  return Promise.resolve(res.message);
27
36
  }
28
37
  }
@@ -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,
@@ -9,7 +9,7 @@ import { updateBootloader } from '../firmware/uploadFirmware';
9
9
  import { DeviceModelToTypes } from '../../types';
10
10
  import { DataManager } from '../../data-manager';
11
11
  import { checkBootloaderLength } from '../firmware/updateBootloader';
12
- import { getDeviceType, getFirmwareType } from '../../utils';
12
+ import { getFirmwareType } from '../../utils';
13
13
 
14
14
  import type { DeviceUpdateBootloaderParams } from '../../types/api/deviceUpdateBootloader';
15
15
  import type { EFirmwareType } from '@onekeyfe/hd-shared';
@@ -74,13 +74,13 @@ export default class DeviceUpdateBootloader extends FirmwareUpdateBaseMethod<any
74
74
  }
75
75
 
76
76
  // Check if device is in bootloader mode
77
- if (features && features.bootloader_mode) {
77
+ if (features && device.isBootloader()) {
78
78
  // Use emmcFileWrite + reboot logic for bootloader mode
79
79
  this.postTipMessage(FirmwareUpdateTipMessage.UpdateBootloader);
80
80
  return this.updateBootloaderWithEmmcFileWrite(device, binary);
81
81
  }
82
82
 
83
- if (features && !features.bootloader_mode) {
83
+ if (features && !device.isBootloader()) {
84
84
  // Use original updateBootloader logic for normal mode
85
85
  await updateBootloader(
86
86
  this.device.getCommands().typedCall.bind(this.device.getCommands()),
@@ -98,7 +98,7 @@ export default class DeviceUpdateBootloader extends FirmwareUpdateBaseMethod<any
98
98
 
99
99
  const payload = this.payload as DeviceUpdateBootloaderParams;
100
100
 
101
- const deviceType = getDeviceType(features);
101
+ const deviceType = device.getCurrentDeviceType();
102
102
  const deviceFirmwareType = getFirmwareType(features);
103
103
  const firmwareType = payload.firmwareType ?? deviceFirmwareType;
104
104
 
@@ -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,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,