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

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__/DeviceCommands.test.ts +0 -217
  2. package/__tests__/evmLedgerLegacySafety.test.ts +4 -15
  3. package/__tests__/evmSignTransaction.test.ts +1 -1
  4. package/__tests__/evmSignTypedData.test.ts +1 -1
  5. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +31 -48
  6. package/__tests__/preInitialize.test.ts +0 -33
  7. package/dist/api/BaseMethod.d.ts +0 -12
  8. package/dist/api/BaseMethod.d.ts.map +1 -1
  9. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  10. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  11. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  12. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  13. package/dist/api/FirmwareUpdateV2.d.ts +3 -14
  14. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  15. package/dist/api/FirmwareUpdateV3.d.ts +3 -10
  16. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  17. package/dist/api/GetFeatures.d.ts +1 -1
  18. package/dist/api/GetFeatures.d.ts.map +1 -1
  19. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  20. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  21. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  22. package/dist/api/SearchDevices.d.ts +1 -5
  23. package/dist/api/SearchDevices.d.ts.map +1 -1
  24. package/dist/api/alephium/AlephiumGetAddress.d.ts +6 -2
  25. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  26. package/dist/api/alephium/AlephiumSignMessage.d.ts +5 -2
  27. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  28. package/dist/api/alephium/AlephiumSignTransaction.d.ts +8 -5
  29. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  30. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  31. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  32. package/dist/api/benfen/BenfenGetAddress.d.ts +9 -2
  33. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  34. package/dist/api/benfen/BenfenGetPublicKey.d.ts +9 -2
  35. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  36. package/dist/api/benfen/BenfenSignMessage.d.ts +8 -2
  37. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  38. package/dist/api/benfen/BenfenSignTransaction.d.ts +8 -2
  39. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  40. package/dist/api/btc/BTCGetAddress.d.ts +11 -1
  41. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  42. package/dist/api/btc/BTCGetPublicKey.d.ts +11 -1
  43. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  44. package/dist/api/btc/BTCSignMessage.d.ts +15 -1
  45. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  46. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  47. package/dist/api/btc/BTCSignTransaction.d.ts +11 -1
  48. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  49. package/dist/api/btc/BTCVerifyMessage.d.ts +11 -1
  50. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  51. package/dist/api/btc/helpers/versionLimit.d.ts +11 -2
  52. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  53. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  54. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  55. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  56. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  57. package/dist/api/device/DeviceFullyUploadResource.d.ts +2 -1
  58. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  59. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  60. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -1
  61. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  62. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  63. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  64. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  65. package/dist/api/device/DeviceUnlock.d.ts +1 -1
  66. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  67. package/dist/api/device/DeviceUpdateBootloader.d.ts +1 -7
  68. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  69. package/dist/api/device/DeviceUploadResource.d.ts.map +1 -1
  70. package/dist/api/device/DeviceVerify.d.ts.map +1 -1
  71. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  72. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  73. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  74. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  75. package/dist/api/evm/EVMSignMessageEIP712.d.ts +8 -2
  76. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  77. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  78. package/dist/api/evm/latest/signTypedData.d.ts +1 -1
  79. package/dist/api/evm/latest/signTypedData.d.ts.map +1 -1
  80. package/dist/api/evm/latest/signTypedHash.d.ts.map +1 -1
  81. package/dist/api/evm/legacyV1/getAddress.d.ts.map +1 -1
  82. package/dist/api/evm/legacyV1/getPublicKey.d.ts.map +1 -1
  83. package/dist/api/evm/legacyV1/signMessage.d.ts.map +1 -1
  84. package/dist/api/evm/legacyV1/signTypedData.d.ts +1 -1
  85. package/dist/api/evm/legacyV1/signTypedData.d.ts.map +1 -1
  86. package/dist/api/evm/legacyV1/signTypedHash.d.ts.map +1 -1
  87. package/dist/api/evm/legacyV1/verifyMessage.d.ts.map +1 -1
  88. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +1 -10
  89. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  90. package/dist/api/firmware/bootloaderHelper.d.ts.map +1 -1
  91. package/dist/api/firmware/getBinary.d.ts +0 -11
  92. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  93. package/dist/api/firmware/updateBootloader.d.ts +0 -2
  94. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  95. package/dist/api/firmware/uploadFirmware.d.ts +1 -9
  96. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  97. package/dist/api/helpers/batchGetPublickeys.d.ts +0 -3
  98. package/dist/api/helpers/batchGetPublickeys.d.ts.map +1 -1
  99. package/dist/api/index.d.ts +0 -29
  100. package/dist/api/index.d.ts.map +1 -1
  101. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  102. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  103. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  104. package/dist/api/neo/NeoGetAddress.d.ts +8 -2
  105. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  106. package/dist/api/neo/NeoSignTransaction.d.ts +8 -2
  107. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  108. package/dist/api/nervos/NervosGetAddress.d.ts +9 -2
  109. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  110. package/dist/api/nervos/NervosSignTransaction.d.ts +12 -9
  111. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  112. package/dist/api/nexa/NexaGetAddress.d.ts +8 -2
  113. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  114. package/dist/api/nexa/NexaSignTransaction.d.ts +9 -2
  115. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  116. package/dist/api/polkadot/PolkadotGetAddress.d.ts +0 -3
  117. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  118. package/dist/api/polkadot/networks.d.ts +0 -3
  119. package/dist/api/polkadot/networks.d.ts.map +1 -1
  120. package/dist/api/scdo/ScdoGetAddress.d.ts +6 -2
  121. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  122. package/dist/api/scdo/ScdoSignMessage.d.ts +5 -2
  123. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  124. package/dist/api/scdo/ScdoSignTransaction.d.ts +5 -2
  125. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  126. package/dist/api/solana/SolGetAddress.d.ts +0 -1
  127. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  128. package/dist/api/solana/SolSignMessage.d.ts +0 -3
  129. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  130. package/dist/api/solana/SolSignOffchainMessage.d.ts +0 -3
  131. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  132. package/dist/api/solana/SolSignTransaction.d.ts +0 -6
  133. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  134. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  135. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  136. package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
  137. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  138. package/dist/api/sui/SuiGetAddress.d.ts +0 -3
  139. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  140. package/dist/api/sui/SuiGetPublicKey.d.ts +0 -3
  141. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  142. package/dist/api/sui/SuiSignMessage.d.ts +0 -3
  143. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  144. package/dist/api/sui/SuiSignTransaction.d.ts +2 -5
  145. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  146. package/dist/api/ton/TonGetAddress.d.ts +0 -3
  147. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  148. package/dist/api/ton/TonSignData.d.ts +0 -1
  149. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  150. package/dist/api/ton/TonSignMessage.d.ts +0 -3
  151. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  152. package/dist/api/ton/TonSignProof.d.ts +0 -3
  153. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  154. package/dist/api/tron/TronSignMessage.d.ts +0 -3
  155. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  156. package/dist/api/tron/TronSignTransaction.d.ts +0 -3
  157. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  158. package/dist/api/utils.d.ts +1 -2
  159. package/dist/api/utils.d.ts.map +1 -1
  160. package/dist/constants/index.d.ts +1 -2
  161. package/dist/constants/index.d.ts.map +1 -1
  162. package/dist/core/RequestQueue.d.ts +1 -19
  163. package/dist/core/RequestQueue.d.ts.map +1 -1
  164. package/dist/core/index.d.ts +1 -4
  165. package/dist/core/index.d.ts.map +1 -1
  166. package/dist/data-manager/DataManager.d.ts +5 -9
  167. package/dist/data-manager/DataManager.d.ts.map +1 -1
  168. package/dist/data-manager/MessagesConfig.d.ts +2 -2
  169. package/dist/data-manager/MessagesConfig.d.ts.map +1 -1
  170. package/dist/data-manager/TransportManager.d.ts +4 -5
  171. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  172. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  173. package/dist/device/Device.d.ts +16 -60
  174. package/dist/device/Device.d.ts.map +1 -1
  175. package/dist/device/DeviceCommands.d.ts +14 -16
  176. package/dist/device/DeviceCommands.d.ts.map +1 -1
  177. package/dist/device/DeviceConnector.d.ts +1 -2
  178. package/dist/device/DeviceConnector.d.ts.map +1 -1
  179. package/dist/device/DevicePool.d.ts +2 -4
  180. package/dist/device/DevicePool.d.ts.map +1 -1
  181. package/dist/events/call.d.ts +0 -7
  182. package/dist/events/call.d.ts.map +1 -1
  183. package/dist/events/core.d.ts +2 -2
  184. package/dist/events/core.d.ts.map +1 -1
  185. package/dist/events/device.d.ts +2 -11
  186. package/dist/events/device.d.ts.map +1 -1
  187. package/dist/events/iframe.d.ts +0 -1
  188. package/dist/events/iframe.d.ts.map +1 -1
  189. package/dist/events/logBlockEvent.d.ts +0 -1
  190. package/dist/events/logBlockEvent.d.ts.map +1 -1
  191. package/dist/events/ui-request.d.ts +2 -26
  192. package/dist/events/ui-request.d.ts.map +1 -1
  193. package/dist/index.d.ts +451 -1797
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +5556 -26855
  196. package/dist/inject.d.ts +2 -3
  197. package/dist/inject.d.ts.map +1 -1
  198. package/dist/lowLevelInject.d.ts +1 -2
  199. package/dist/lowLevelInject.d.ts.map +1 -1
  200. package/dist/topLevelInject.d.ts.map +1 -1
  201. package/dist/types/api/checkAllFirmwareRelease.d.ts +2 -4
  202. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  203. package/dist/types/api/deviceSettings.d.ts +0 -9
  204. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  205. package/dist/types/api/deviceUnlock.d.ts +1 -1
  206. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  207. package/dist/types/api/deviceUpdateBootloader.d.ts +1 -6
  208. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  209. package/dist/types/api/export.d.ts +1 -4
  210. package/dist/types/api/export.d.ts.map +1 -1
  211. package/dist/types/api/firmwareUpdate.d.ts +1 -114
  212. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  213. package/dist/types/api/getFeatures.d.ts.map +1 -1
  214. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  215. package/dist/types/api/getPassphraseState.d.ts +1 -2
  216. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  217. package/dist/types/api/index.d.ts +2 -48
  218. package/dist/types/api/index.d.ts.map +1 -1
  219. package/dist/types/api/searchDevices.d.ts +2 -2
  220. package/dist/types/api/searchDevices.d.ts.map +1 -1
  221. package/dist/types/device.d.ts +5 -207
  222. package/dist/types/device.d.ts.map +1 -1
  223. package/dist/types/params.d.ts +0 -3
  224. package/dist/types/params.d.ts.map +1 -1
  225. package/dist/types/settings.d.ts +0 -33
  226. package/dist/types/settings.d.ts.map +1 -1
  227. package/dist/utils/capabilitieUtils.d.ts.map +1 -1
  228. package/dist/utils/deviceFeaturesUtils.d.ts +9 -17
  229. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  230. package/dist/utils/deviceInfoUtils.d.ts +8 -10
  231. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  232. package/dist/utils/deviceSettings.d.ts +0 -2
  233. package/dist/utils/deviceSettings.d.ts.map +1 -1
  234. package/dist/utils/deviceVersionUtils.d.ts +5 -6
  235. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  236. package/dist/utils/findDefectiveBatchDevice.d.ts +1 -1
  237. package/dist/utils/homescreen.d.ts.map +1 -1
  238. package/dist/utils/index.d.ts +1 -3
  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/dist/utils/tracing.d.ts.map +1 -1
  243. package/dist/utils/versionUtils.d.ts +1 -1
  244. package/package.json +4 -4
  245. package/src/api/BaseMethod.ts +23 -60
  246. package/src/api/CheckAllFirmwareRelease.ts +3 -16
  247. package/src/api/CheckBootloaderRelease.ts +2 -1
  248. package/src/api/CheckFirmwareRelease.ts +2 -1
  249. package/src/api/FirmwareUpdate.ts +7 -15
  250. package/src/api/FirmwareUpdateV2.ts +148 -354
  251. package/src/api/FirmwareUpdateV3.ts +62 -376
  252. package/src/api/GetFeatures.ts +4 -12
  253. package/src/api/GetOnekeyFeatures.ts +3 -15
  254. package/src/api/GetPassphraseState.ts +10 -9
  255. package/src/api/PromptWebDeviceAccess.ts +1 -10
  256. package/src/api/SearchDevices.ts +3 -33
  257. package/src/api/alephium/AlephiumGetAddress.ts +2 -6
  258. package/src/api/alephium/AlephiumSignMessage.ts +1 -6
  259. package/src/api/alephium/AlephiumSignTransaction.ts +4 -15
  260. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +21 -25
  261. package/src/api/aptos/AptosGetAddress.ts +3 -2
  262. package/src/api/benfen/BenfenGetAddress.ts +7 -11
  263. package/src/api/benfen/BenfenGetPublicKey.ts +2 -6
  264. package/src/api/benfen/BenfenSignMessage.ts +1 -6
  265. package/src/api/benfen/BenfenSignTransaction.ts +1 -6
  266. package/src/api/btc/BTCGetPublicKey.ts +2 -3
  267. package/src/api/btc/BTCSignPsbt.ts +2 -1
  268. package/src/api/btc/helpers/versionLimit.ts +1 -7
  269. package/src/api/cardano/CardanoSignTransaction.ts +4 -2
  270. package/src/api/conflux/ConfluxSignTransaction.ts +2 -5
  271. package/src/api/device/DeviceCancel.ts +0 -1
  272. package/src/api/device/DeviceChangePin.ts +0 -24
  273. package/src/api/device/DeviceFullyUploadResource.ts +7 -6
  274. package/src/api/device/DeviceLock.ts +3 -2
  275. package/src/api/device/DeviceRebootToBoardloader.ts +1 -11
  276. package/src/api/device/DeviceRebootToBootloader.ts +1 -11
  277. package/src/api/device/DeviceSettings.ts +0 -121
  278. package/src/api/device/DeviceSupportFeatures.ts +13 -2
  279. package/src/api/device/DeviceUnlock.ts +0 -9
  280. package/src/api/device/DeviceUpdateBootloader.ts +11 -175
  281. package/src/api/device/DeviceUploadResource.ts +5 -4
  282. package/src/api/device/DeviceVerify.ts +2 -1
  283. package/src/api/device/DeviceWipe.ts +0 -19
  284. package/src/api/dynex/DnxGetAddress.ts +0 -6
  285. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  286. package/src/api/evm/EVMGetAddress.ts +1 -1
  287. package/src/api/evm/EVMGetPublicKey.ts +4 -3
  288. package/src/api/evm/EVMSignMessage.ts +1 -1
  289. package/src/api/evm/EVMSignMessageEIP712.ts +1 -14
  290. package/src/api/evm/EVMSignTransaction.ts +1 -1
  291. package/src/api/evm/EVMSignTypedData.ts +18 -30
  292. package/src/api/evm/EVMVerifyMessage.ts +1 -1
  293. package/src/api/evm/latest/signTypedHash.ts +4 -2
  294. package/src/api/evm/legacyV1/getAddress.ts +3 -5
  295. package/src/api/evm/legacyV1/getPublicKey.ts +3 -5
  296. package/src/api/evm/legacyV1/signMessage.ts +3 -5
  297. package/src/api/evm/legacyV1/signTypedData.ts +8 -9
  298. package/src/api/evm/legacyV1/signTypedHash.ts +7 -7
  299. package/src/api/evm/legacyV1/verifyMessage.ts +3 -5
  300. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +15 -83
  301. package/src/api/firmware/bootloaderHelper.ts +2 -3
  302. package/src/api/firmware/getBinary.ts +1 -1
  303. package/src/api/firmware/releaseHelper.ts +3 -3
  304. package/src/api/firmware/updateBootloader.ts +4 -19
  305. package/src/api/firmware/uploadFirmware.ts +34 -148
  306. package/src/api/helpers/batchGetPublickeys.ts +6 -51
  307. package/src/api/index.ts +0 -32
  308. package/src/api/kaspa/KaspaSignTransaction.ts +3 -2
  309. package/src/api/lightning/LnurlAuth.ts +0 -4
  310. package/src/api/neo/NeoGetAddress.ts +1 -6
  311. package/src/api/neo/NeoSignTransaction.ts +1 -6
  312. package/src/api/nervos/NervosGetAddress.ts +2 -6
  313. package/src/api/nervos/NervosSignTransaction.ts +4 -14
  314. package/src/api/nexa/NexaGetAddress.ts +2 -6
  315. package/src/api/nexa/NexaSignTransaction.ts +12 -11
  316. package/src/api/polkadot/networks.ts +0 -9
  317. package/src/api/scdo/ScdoGetAddress.ts +2 -6
  318. package/src/api/scdo/ScdoSignMessage.ts +1 -6
  319. package/src/api/scdo/ScdoSignTransaction.ts +2 -6
  320. package/src/api/solana/SolGetAddress.ts +0 -4
  321. package/src/api/solana/SolSignMessage.ts +0 -3
  322. package/src/api/solana/SolSignOffchainMessage.ts +0 -3
  323. package/src/api/solana/SolSignTransaction.ts +0 -6
  324. package/src/api/stellar/StellarGetAddress.ts +1 -10
  325. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  326. package/src/api/sui/SuiGetAddress.ts +3 -5
  327. package/src/api/sui/SuiGetPublicKey.ts +0 -3
  328. package/src/api/sui/SuiSignMessage.ts +0 -3
  329. package/src/api/sui/SuiSignTransaction.ts +12 -14
  330. package/src/api/ton/TonGetAddress.ts +0 -3
  331. package/src/api/ton/TonSignData.ts +3 -6
  332. package/src/api/ton/TonSignMessage.ts +5 -6
  333. package/src/api/ton/TonSignProof.ts +0 -3
  334. package/src/api/tron/TronSignMessage.ts +1 -4
  335. package/src/api/tron/TronSignTransaction.ts +0 -3
  336. package/src/api/utils.ts +3 -7
  337. package/src/api/xrp/XrpSignTransaction.ts +1 -1
  338. package/src/constants/index.ts +1 -7
  339. package/src/core/RequestQueue.ts +4 -124
  340. package/src/core/index.ts +116 -255
  341. package/src/data-manager/DataManager.ts +49 -61
  342. package/src/data-manager/MessagesConfig.ts +14 -14
  343. package/src/data-manager/TransportManager.ts +12 -38
  344. package/src/data-manager/connectSettings.ts +0 -15
  345. package/src/device/Device.ts +164 -759
  346. package/src/device/DeviceCommands.ts +36 -245
  347. package/src/device/DeviceConnector.ts +4 -29
  348. package/src/device/DevicePool.ts +21 -69
  349. package/src/events/call.ts +0 -6
  350. package/src/events/core.ts +0 -2
  351. package/src/events/device.ts +1 -17
  352. package/src/events/iframe.ts +0 -1
  353. package/src/events/logBlockEvent.ts +0 -30
  354. package/src/events/ui-request.ts +2 -32
  355. package/src/index.ts +0 -9
  356. package/src/inject.ts +3 -75
  357. package/src/lowLevelInject.ts +1 -8
  358. package/src/topLevelInject.ts +1 -7
  359. package/src/types/api/checkAllFirmwareRelease.ts +2 -4
  360. package/src/types/api/deviceSettings.ts +0 -9
  361. package/src/types/api/deviceUnlock.ts +1 -1
  362. package/src/types/api/deviceUpdateBootloader.ts +1 -10
  363. package/src/types/api/export.ts +0 -25
  364. package/src/types/api/firmwareUpdate.ts +1 -163
  365. package/src/types/api/getFeatures.ts +0 -3
  366. package/src/types/api/getOnekeyFeatures.ts +0 -3
  367. package/src/types/api/getPassphraseState.ts +2 -10
  368. package/src/types/api/index.ts +2 -89
  369. package/src/types/api/searchDevices.ts +2 -2
  370. package/src/types/device.ts +5 -266
  371. package/src/types/params.ts +0 -11
  372. package/src/types/settings.ts +29 -54
  373. package/src/utils/capabilitieUtils.ts +2 -1
  374. package/src/utils/deviceFeaturesUtils.ts +84 -122
  375. package/src/utils/deviceInfoUtils.ts +87 -38
  376. package/src/utils/deviceSettings.ts +0 -48
  377. package/src/utils/deviceVersionUtils.ts +62 -25
  378. package/src/utils/findDefectiveBatchDevice.ts +8 -8
  379. package/src/utils/homescreen.ts +0 -10
  380. package/src/utils/index.ts +0 -4
  381. package/src/utils/tracing.ts +1 -3
  382. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +0 -75
  383. package/__tests__/RequestQueue.test.ts +0 -140
  384. package/__tests__/UploadPortfolio.test.ts +0 -46
  385. package/__tests__/connectSettings.test.ts +0 -61
  386. package/__tests__/device-lifecycle-events.test.ts +0 -117
  387. package/__tests__/device-pool-state.test.ts +0 -132
  388. package/__tests__/device-settings.test.ts +0 -286
  389. package/__tests__/device-state-mapper.test.ts +0 -229
  390. package/__tests__/device-utils.test.ts +0 -106
  391. package/__tests__/device-wallet-session-store.test.ts +0 -191
  392. package/__tests__/filesystemValidation.test.ts +0 -53
  393. package/__tests__/firmware-update/firmware-artifact-source.test.ts +0 -119
  394. package/__tests__/firmware-update/firmware-checkpoint.test.ts +0 -105
  395. package/__tests__/firmware-update/firmware-host-binding.test.ts +0 -73
  396. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +0 -17
  397. package/__tests__/firmware-update/firmware-update-plan.test.ts +0 -358
  398. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +0 -200
  399. package/__tests__/firmware-update/firmware-update-recovery.test.ts +0 -81
  400. package/__tests__/firmware-update/firmware-upload-source.test.ts +0 -70
  401. package/__tests__/get-device-state.test.ts +0 -403
  402. package/__tests__/logBlockEvent.test.ts +0 -61
  403. package/__tests__/logger.test.ts +0 -34
  404. package/__tests__/open-wallet-session.test.ts +0 -565
  405. package/__tests__/pro2Wallpaper.test.ts +0 -39
  406. package/__tests__/protocol-v2-bootloader-mode.test.ts +0 -37
  407. package/__tests__/protocol-v2-firmware-targets.test.ts +0 -19
  408. package/__tests__/protocol-v2.test.ts +0 -6008
  409. package/__tests__/protocolV2FileWrite.test.ts +0 -67
  410. package/__tests__/public-pro2-api-boundary.test.ts +0 -66
  411. package/__tests__/search-devices.test.ts +0 -136
  412. package/dist/api/ClearSessionCache.d.ts +0 -9
  413. package/dist/api/ClearSessionCache.d.ts.map +0 -1
  414. package/dist/api/DirList.d.ts +0 -10
  415. package/dist/api/DirList.d.ts.map +0 -1
  416. package/dist/api/DirMake.d.ts +0 -9
  417. package/dist/api/DirMake.d.ts.map +0 -1
  418. package/dist/api/DirRemove.d.ts +0 -9
  419. package/dist/api/DirRemove.d.ts.map +0 -1
  420. package/dist/api/FileDelete.d.ts +0 -9
  421. package/dist/api/FileDelete.d.ts.map +0 -1
  422. package/dist/api/FileRead.d.ts +0 -19
  423. package/dist/api/FileRead.d.ts.map +0 -1
  424. package/dist/api/FileWrite.d.ts +0 -25
  425. package/dist/api/FileWrite.d.ts.map +0 -1
  426. package/dist/api/FirmwareUpdateV4.d.ts +0 -75
  427. package/dist/api/FirmwareUpdateV4.d.ts.map +0 -1
  428. package/dist/api/GetDeviceState.d.ts +0 -7
  429. package/dist/api/GetDeviceState.d.ts.map +0 -1
  430. package/dist/api/OpenWalletSession.d.ts +0 -14
  431. package/dist/api/OpenWalletSession.d.ts.map +0 -1
  432. package/dist/api/PathInfo.d.ts +0 -10
  433. package/dist/api/PathInfo.d.ts.map +0 -1
  434. package/dist/api/UploadPortfolio.d.ts +0 -18
  435. package/dist/api/UploadPortfolio.d.ts.map +0 -1
  436. package/dist/api/firmware/FirmwareArtifactSource.d.ts +0 -26
  437. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +0 -1
  438. package/dist/api/firmware/FirmwareCheckpoint.d.ts +0 -15
  439. package/dist/api/firmware/FirmwareCheckpoint.d.ts.map +0 -1
  440. package/dist/api/firmware/FirmwareHostBinding.d.ts +0 -6
  441. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +0 -1
  442. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +0 -3
  443. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +0 -1
  444. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +0 -29
  445. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +0 -1
  446. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +0 -25
  447. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +0 -1
  448. package/dist/api/firmware/progressThrottle.d.ts +0 -3
  449. package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
  450. package/dist/api/helpers/filesystemValidation.d.ts +0 -10
  451. package/dist/api/helpers/filesystemValidation.d.ts.map +0 -1
  452. package/dist/api/helpers/protocolV2FileWrite.d.ts +0 -33
  453. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +0 -1
  454. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +0 -6
  455. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +0 -1
  456. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +0 -7
  457. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +0 -1
  458. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +0 -7
  459. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +0 -1
  460. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +0 -7
  461. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +0 -1
  462. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +0 -6
  463. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +0 -1
  464. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +0 -28
  465. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +0 -1
  466. package/dist/api/protocol-v2/DeviceReboot.d.ts +0 -7
  467. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +0 -1
  468. package/dist/api/protocol-v2/DeviceSessionOpen.d.ts +0 -28
  469. package/dist/api/protocol-v2/DeviceSessionOpen.d.ts.map +0 -1
  470. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts +0 -6
  471. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts.map +0 -1
  472. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts +0 -16
  473. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts.map +0 -1
  474. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts +0 -12
  475. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts.map +0 -1
  476. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +0 -6
  477. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +0 -1
  478. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +0 -26
  479. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +0 -1
  480. package/dist/api/protocol-v2/FilesystemFormat.d.ts +0 -6
  481. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +0 -1
  482. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +0 -6
  483. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +0 -1
  484. package/dist/api/protocol-v2/Ping.d.ts +0 -8
  485. package/dist/api/protocol-v2/Ping.d.ts.map +0 -1
  486. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +0 -6
  487. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +0 -1
  488. package/dist/api/protocol-v2/helpers.d.ts +0 -42
  489. package/dist/api/protocol-v2/helpers.d.ts.map +0 -1
  490. package/dist/core/deviceEventRegistration.d.ts +0 -11
  491. package/dist/core/deviceEventRegistration.d.ts.map +0 -1
  492. package/dist/device/DeviceFeaturesState.d.ts +0 -4
  493. package/dist/device/DeviceFeaturesState.d.ts.map +0 -1
  494. package/dist/device/DeviceStateMapper.d.ts +0 -13
  495. package/dist/device/DeviceStateMapper.d.ts.map +0 -1
  496. package/dist/device/DeviceStateProjector.d.ts +0 -7
  497. package/dist/device/DeviceStateProjector.d.ts.map +0 -1
  498. package/dist/device/DeviceStateStore.d.ts +0 -21
  499. package/dist/device/DeviceStateStore.d.ts.map +0 -1
  500. package/dist/device/DeviceWalletSessionStore.d.ts +0 -15
  501. package/dist/device/DeviceWalletSessionStore.d.ts.map +0 -1
  502. package/dist/device/cloneDeviceState.d.ts +0 -2
  503. package/dist/device/cloneDeviceState.d.ts.map +0 -1
  504. package/dist/device/deviceIdentity.d.ts +0 -5
  505. package/dist/device/deviceIdentity.d.ts.map +0 -1
  506. package/dist/deviceProfile/buildDeviceFeatures.d.ts +0 -12
  507. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +0 -1
  508. package/dist/deviceProfile/index.d.ts +0 -2
  509. package/dist/deviceProfile/index.d.ts.map +0 -1
  510. package/dist/protocols/protocol-v2/deviceSession.d.ts +0 -7
  511. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +0 -1
  512. package/dist/protocols/protocol-v2/features.d.ts +0 -88
  513. package/dist/protocols/protocol-v2/features.d.ts.map +0 -1
  514. package/dist/protocols/protocol-v2/firmware.d.ts +0 -15
  515. package/dist/protocols/protocol-v2/firmware.d.ts.map +0 -1
  516. package/dist/protocols/protocol-v2/index.d.ts +0 -5
  517. package/dist/protocols/protocol-v2/index.d.ts.map +0 -1
  518. package/dist/protocols/protocol-v2/lockedError.d.ts +0 -2
  519. package/dist/protocols/protocol-v2/lockedError.d.ts.map +0 -1
  520. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +0 -16
  521. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +0 -1
  522. package/dist/protocols/protocol-v2/uiInteraction.d.ts +0 -39
  523. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +0 -1
  524. package/dist/protocols/protocol-v2/unlockRetry.d.ts +0 -11
  525. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +0 -1
  526. package/dist/protocols/protocol-v2/walletSession.d.ts +0 -21
  527. package/dist/protocols/protocol-v2/walletSession.d.ts.map +0 -1
  528. package/dist/types/api/firmwareUpdateCapabilities.d.ts +0 -13
  529. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +0 -1
  530. package/dist/types/api/firmwareUpdatePlan.d.ts +0 -35
  531. package/dist/types/api/firmwareUpdatePlan.d.ts.map +0 -1
  532. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +0 -43
  533. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +0 -1
  534. package/dist/types/api/getDeviceState.d.ts +0 -12
  535. package/dist/types/api/getDeviceState.d.ts.map +0 -1
  536. package/dist/types/api/openWalletSession.d.ts +0 -35
  537. package/dist/types/api/openWalletSession.d.ts.map +0 -1
  538. package/dist/types/api/protocolV2.d.ts +0 -113
  539. package/dist/types/api/protocolV2.d.ts.map +0 -1
  540. package/dist/types/api/sessionCache.d.ts +0 -10
  541. package/dist/types/api/sessionCache.d.ts.map +0 -1
  542. package/dist/utils/deviceFeaturesCompat.d.ts +0 -13
  543. package/dist/utils/deviceFeaturesCompat.d.ts.map +0 -1
  544. package/dist/utils/pro2Wallpaper.d.ts +0 -12
  545. package/dist/utils/pro2Wallpaper.d.ts.map +0 -1
  546. package/src/api/ClearSessionCache.ts +0 -28
  547. package/src/api/DirList.ts +0 -33
  548. package/src/api/DirMake.ts +0 -23
  549. package/src/api/DirRemove.ts +0 -23
  550. package/src/api/FileDelete.ts +0 -23
  551. package/src/api/FileRead.ts +0 -183
  552. package/src/api/FileWrite.ts +0 -71
  553. package/src/api/FirmwareUpdateV4.ts +0 -2279
  554. package/src/api/GetDeviceState.ts +0 -55
  555. package/src/api/OpenWalletSession.ts +0 -211
  556. package/src/api/PathInfo.ts +0 -41
  557. package/src/api/UploadPortfolio.ts +0 -50
  558. package/src/api/firmware/FirmwareArtifactSource.ts +0 -278
  559. package/src/api/firmware/FirmwareCheckpoint.ts +0 -188
  560. package/src/api/firmware/FirmwareHostBinding.ts +0 -108
  561. package/src/api/firmware/FirmwareUpdateCapabilities.ts +0 -13
  562. package/src/api/firmware/FirmwareUpdatePlan.ts +0 -729
  563. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +0 -403
  564. package/src/api/firmware/progressThrottle.ts +0 -44
  565. package/src/api/helpers/filesystemValidation.ts +0 -112
  566. package/src/api/helpers/protocolV2FileWrite.ts +0 -193
  567. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +0 -20
  568. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +0 -32
  569. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +0 -61
  570. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +0 -55
  571. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +0 -18
  572. package/src/api/protocol-v2/DeviceInfoGet.ts +0 -145
  573. package/src/api/protocol-v2/DeviceReboot.ts +0 -26
  574. package/src/api/protocol-v2/DeviceSessionOpen.ts +0 -102
  575. package/src/api/protocol-v2/DeviceSettingsGet.ts +0 -18
  576. package/src/api/protocol-v2/DeviceSettingsPageShow.ts +0 -70
  577. package/src/api/protocol-v2/DeviceSettingsSet.ts +0 -44
  578. package/src/api/protocol-v2/DeviceStatusGet.ts +0 -16
  579. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +0 -131
  580. package/src/api/protocol-v2/FilesystemFormat.ts +0 -19
  581. package/src/api/protocol-v2/FilesystemPermissionFix.ts +0 -16
  582. package/src/api/protocol-v2/Ping.ts +0 -18
  583. package/src/api/protocol-v2/ProtocolInfoRequest.ts +0 -16
  584. package/src/api/protocol-v2/helpers.ts +0 -203
  585. package/src/core/deviceEventRegistration.ts +0 -23
  586. package/src/data/messages/messages-protocol-v2.json +0 -13544
  587. package/src/device/DeviceFeaturesState.ts +0 -34
  588. package/src/device/DeviceStateMapper.ts +0 -348
  589. package/src/device/DeviceStateProjector.ts +0 -95
  590. package/src/device/DeviceStateStore.ts +0 -201
  591. package/src/device/DeviceWalletSessionStore.ts +0 -78
  592. package/src/device/cloneDeviceState.ts +0 -39
  593. package/src/device/deviceIdentity.ts +0 -18
  594. package/src/deviceProfile/buildDeviceFeatures.ts +0 -391
  595. package/src/deviceProfile/index.ts +0 -4
  596. package/src/protocols/protocol-v2/deviceSession.ts +0 -24
  597. package/src/protocols/protocol-v2/features.ts +0 -163
  598. package/src/protocols/protocol-v2/firmware.ts +0 -21
  599. package/src/protocols/protocol-v2/index.ts +0 -18
  600. package/src/protocols/protocol-v2/lockedError.ts +0 -10
  601. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +0 -61
  602. package/src/protocols/protocol-v2/uiInteraction.ts +0 -210
  603. package/src/protocols/protocol-v2/unlockRetry.ts +0 -76
  604. package/src/protocols/protocol-v2/walletSession.ts +0 -202
  605. package/src/types/api/firmwareUpdateCapabilities.ts +0 -13
  606. package/src/types/api/firmwareUpdatePlan.ts +0 -52
  607. package/src/types/api/firmwareUpdatePreparedPlan.ts +0 -55
  608. package/src/types/api/getDeviceState.ts +0 -19
  609. package/src/types/api/openWalletSession.ts +0 -54
  610. package/src/types/api/protocolV2.ts +0 -244
  611. package/src/types/api/sessionCache.ts +0 -14
  612. package/src/utils/deviceFeaturesCompat.ts +0 -173
  613. package/src/utils/pro2Wallpaper.ts +0 -109
@@ -44,7 +44,7 @@ export default class EvmGetAddress extends BaseMethod<EthereumGetAddressOneKey[]
44
44
  }
45
45
 
46
46
  async getEvmAddress(param: EthereumGetAddressOneKey) {
47
- if (TransportManager.getProtocolV1MessageSchema() === 'v1LegacySchema') {
47
+ if (TransportManager.getMessageVersion() === 'v1') {
48
48
  return getAddressLegacyV1({
49
49
  typedCall: this.device.commands.typedCall.bind(this.device.commands),
50
50
  param,
@@ -2,10 +2,11 @@ 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';
5
6
  import TransportManager from '../../data-manager/TransportManager';
6
7
  import getPublicKey from './latest/getPublicKey';
7
8
  import getPublicKeyLegacyV1 from './legacyV1/getPublicKey';
8
- import { batchGetPublickeys, supportBatchPublicKeyByDevice } from '../helpers/batchGetPublickeys';
9
+ import { batchGetPublickeys } from '../helpers/batchGetPublickeys';
9
10
 
10
11
  import type { EVMGetPublicKeyParams, EVMPublicKey } from '../../types';
11
12
  import type { EthereumGetPublicKey, EthereumGetPublicKeyOneKey } from '@onekeyfe/hd-transport';
@@ -56,7 +57,7 @@ export default class EVMGetPublicKey extends BaseMethod<EthereumGetPublicKeyOneK
56
57
  }
57
58
 
58
59
  getEvmPublicKey(param: EthereumGetPublicKey) {
59
- if (TransportManager.getProtocolV1MessageSchema() === 'v1LegacySchema') {
60
+ if (TransportManager.getMessageVersion() === 'v1') {
60
61
  return getPublicKeyLegacyV1({
61
62
  typedCall: this.device.commands.typedCall.bind(this.device.commands),
62
63
  param,
@@ -72,7 +73,7 @@ export default class EVMGetPublicKey extends BaseMethod<EthereumGetPublicKeyOneK
72
73
  async run() {
73
74
  const responses: EVMPublicKey[] = [];
74
75
 
75
- if (this.useBatch && supportBatchPublicKeyByDevice(this.device)) {
76
+ if (this.useBatch && supportBatchPublicKey(this.device?.features)) {
76
77
  try {
77
78
  const res = await batchGetPublickeys(this.device, this.params, 'secp256k1', 60, {
78
79
  includeNode: false,
@@ -36,7 +36,7 @@ export default class EVMSignMessage extends BaseMethod<EthereumSignMessageOneKey
36
36
  }
37
37
 
38
38
  async run() {
39
- if (TransportManager.getProtocolV1MessageSchema() === 'v1LegacySchema') {
39
+ if (TransportManager.getMessageVersion() === 'v1') {
40
40
  return signMessageLegacyV1({
41
41
  typedCall: this.device.commands.typedCall.bind(this.device.commands),
42
42
  params: this.params,
@@ -5,7 +5,6 @@ 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';
9
8
 
10
9
  /**
11
10
  * @deprecated Use EVMSignTypedData instead.
@@ -33,12 +32,8 @@ export default class EVMSignMessageEIP712 extends BaseMethod<EthereumSignMessage
33
32
  };
34
33
  }
35
34
 
36
- getVersionRange(): DeviceFirmwareRange {
35
+ getVersionRange() {
37
36
  return {
38
- pro2: {
39
- min: '0.0.0',
40
- unsupported: true,
41
- },
42
37
  model_mini: {
43
38
  min: '2.1.9',
44
39
  },
@@ -49,14 +44,6 @@ export default class EVMSignMessageEIP712 extends BaseMethod<EthereumSignMessage
49
44
  }
50
45
 
51
46
  async run() {
52
- this.checkFeatureVersionLimit(
53
- () => true,
54
- () => this.getVersionRange(),
55
- {
56
- strictCheckDeviceSupport: true,
57
- }
58
- );
59
-
60
47
  const res = await this.device.commands.typedCall(
61
48
  'EthereumSignMessageEIP712',
62
49
  '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.getProtocolV1MessageSchema() === 'v1LegacySchema') {
125
+ if (TransportManager.getMessageVersion() === 'v1') {
126
126
  return signTransactionLegacyV1({
127
127
  typedCall: this.device.commands.typedCall.bind(this.device.commands),
128
128
  addressN,
@@ -9,6 +9,7 @@ import { validatePath } from '../helpers/pathUtils';
9
9
  import { BaseMethod } from '../BaseMethod';
10
10
  import { validateParams } from '../helpers/paramsValidator';
11
11
  import { formatAnyHex, parseChainId, stripHexStartZeroes } from '../helpers/hexUtils';
12
+ import { getDeviceFirmwareVersion, getDeviceType } from '../../utils';
12
13
  import { existCapability } from '../../utils/capabilitieUtils';
13
14
  import {
14
15
  DeviceModelToTypes,
@@ -25,19 +26,11 @@ import { encodeData, getFieldType, parseArrayType } from '../helpers/typeNameUti
25
26
  import type {
26
27
  EthereumTypedDataSignature,
27
28
  EthereumTypedDataStructAck,
28
- EthereumTypedDataStructAckOneKey,
29
29
  MessageKey,
30
30
  MessageResponse,
31
31
  TypedCall,
32
32
  } from '@onekeyfe/hd-transport';
33
33
 
34
- /**
35
- * EthereumTypedDataStructAckOneKey and EthereumTypedDataStructAck have identical
36
- * fields and enum values. This zero-cost nominal conversion avoids scattered `any`.
37
- */
38
- const toOneKeyStructAck = (ack: EthereumTypedDataStructAck): EthereumTypedDataStructAckOneKey =>
39
- ack as unknown as EthereumTypedDataStructAckOneKey;
40
-
41
34
  export type EVMSignTypedDataParams = {
42
35
  addressN: number[];
43
36
  metamaskV4Compat: boolean;
@@ -137,6 +130,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
137
130
  if (supportTrezor) {
138
131
  response = await typedCall(
139
132
  'EthereumTypedDataStructAck',
133
+ // @ts-ignore
140
134
  [
141
135
  'EthereumTypedDataStructRequest',
142
136
  'EthereumTypedDataValueRequest',
@@ -147,12 +141,13 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
147
141
  } else {
148
142
  response = await typedCall(
149
143
  'EthereumTypedDataStructAckOneKey',
144
+ // @ts-ignore
150
145
  [
151
146
  'EthereumTypedDataStructRequestOneKey',
152
147
  'EthereumTypedDataValueRequestOneKey',
153
148
  'EthereumTypedDataSignatureOneKey',
154
149
  ],
155
- toOneKeyStructAck(dataStruckAck)
150
+ dataStruckAck
156
151
  );
157
152
  }
158
153
  }
@@ -188,7 +183,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
188
183
  } else if (typeof memberData === 'object' && memberData !== null) {
189
184
  const memberTypeDefinition = types[memberTypeName][index];
190
185
  memberTypeName = memberTypeDefinition.type;
191
- memberData = (memberData as Record<string, unknown>)[memberTypeDefinition.name];
186
+ memberData = memberData[memberTypeDefinition.name];
192
187
  } else {
193
188
  // TODO
194
189
  }
@@ -225,14 +220,6 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
225
220
 
226
221
  if (response.type === 'EthereumGnosisSafeTxRequest') {
227
222
  const { data } = this.params;
228
- const verifyingContract = data.domain?.verifyingContract;
229
- // verifyingContract is required by proto and essential to a Gnosis Safe signature.
230
- if (!verifyingContract) {
231
- throw ERRORS.TypedError(
232
- HardwareErrorCode.CallMethodInvalidParameter,
233
- 'EIP712Domain.verifyingContract is required for Gnosis Safe transaction'
234
- );
235
- }
236
223
  const param = {
237
224
  to: data.message.to,
238
225
  value: formatAnyHex(new BigNumber(data.message.value).toString(16)),
@@ -245,10 +232,11 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
245
232
  refundReceiver: data.message.refundReceiver,
246
233
  nonce: formatAnyHex(new BigNumber(data.message.nonce).toString(16)),
247
234
  chain_id: parseChainId(data.domain.chainId),
248
- verifyingContract,
235
+ verifyingContract: data.domain.verifyingContract,
249
236
  };
250
237
  response = await typedCall(
251
238
  'EthereumGnosisSafeTxAck',
239
+ // @ts-ignore
252
240
  ['EthereumTypedDataSignature', 'EthereumTypedDataSignatureOneKey'],
253
241
  param
254
242
  );
@@ -274,8 +262,8 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
274
262
 
275
263
  let supportTrezor = false;
276
264
  let response: MessageResponse<MessageKey>;
277
- switch (TransportManager.getProtocolV1MessageSchema()) {
278
- case 'v1LegacySchema':
265
+ switch (TransportManager.getMessageVersion()) {
266
+ case 'v1':
279
267
  supportTrezor = true;
280
268
  response = await signTypedDataLegacyV1({
281
269
  typedCall: this.device.commands.typedCall.bind(this.device.commands),
@@ -286,7 +274,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
286
274
  });
287
275
  break;
288
276
 
289
- case 'v1CurrentSchema':
277
+ case 'latest':
290
278
  default:
291
279
  supportTrezor = false;
292
280
  response = await signTypedData({
@@ -322,8 +310,8 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
322
310
  }) {
323
311
  if (!domainHash) throw ERRORS.TypedError('Runtime', 'domainHash is required');
324
312
 
325
- switch (TransportManager.getProtocolV1MessageSchema()) {
326
- case 'v1LegacySchema':
313
+ switch (TransportManager.getMessageVersion()) {
314
+ case 'v1':
327
315
  return signTypedHashLegacyV1({
328
316
  typedCall,
329
317
  addressN,
@@ -333,7 +321,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
333
321
  device: this.device,
334
322
  });
335
323
 
336
- case 'v1CurrentSchema':
324
+ case 'latest':
337
325
  default:
338
326
  return signTypedHash({
339
327
  typedCall,
@@ -360,8 +348,8 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
360
348
 
361
349
  let biggerLimit = 1024; // 1k
362
350
 
363
- const currentVersion = this.device.getCurrentFirmwareVersionString() ?? '0.0.0';
364
- const currentDeviceType = this.device.getCurrentDeviceType();
351
+ const currentVersion = getDeviceFirmwareVersion(this.device.features).join('.');
352
+ const currentDeviceType = getDeviceType(this.device.features);
365
353
  const supportBiggerDataVersion = '4.4.0';
366
354
 
367
355
  const supportBiggerData =
@@ -544,9 +532,9 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
544
532
  }
545
533
 
546
534
  supportSignTyped() {
547
- const deviceType = this.device.getCurrentDeviceType();
535
+ const deviceType = getDeviceType(this.device.features);
548
536
  if (DeviceModelToTypes.model_mini.includes(deviceType)) {
549
- const currentVersion = this.device.getCurrentFirmwareVersionString() ?? '0.0.0';
537
+ const currentVersion = getDeviceFirmwareVersion(this.device.features).join('.');
550
538
  const supportSignTypedVersion = '2.2.0';
551
539
 
552
540
  if (semver.lt(currentVersion, supportSignTypedVersion)) {
@@ -576,7 +564,7 @@ export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams>
576
564
  // For Classic / Mini:
577
565
  // - If parsed typed-data capability is missing, keep using blind-sign.
578
566
  // - For Mini with parsed capability, add extra format checks before parsed signing.
579
- const deviceType = this.device.getCurrentDeviceType();
567
+ const deviceType = getDeviceType(this.device.features);
580
568
  if (
581
569
  DeviceModelToTypes.model_mini.includes(deviceType) &&
582
570
  (!supportEip712OnClassic || this.hasClassicFamilyTypedDataFormatViolations(this.params.data))
@@ -31,7 +31,7 @@ export default class EVMSignMessage extends BaseMethod<EthereumVerifyMessageOneK
31
31
  }
32
32
 
33
33
  async run() {
34
- if (TransportManager.getProtocolV1MessageSchema() === 'v1LegacySchema') {
34
+ if (TransportManager.getMessageVersion() === 'v1') {
35
35
  return verifyMessageLegacyV1({
36
36
  typedCall: this.device.commands.typedCall.bind(this.device.commands),
37
37
  params: this.params,
@@ -1,6 +1,8 @@
1
1
  import semver from 'semver';
2
2
  import { EDeviceType, ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
3
3
 
4
+ import { getDeviceFirmwareVersion, getDeviceType } from '../../../utils';
5
+
4
6
  import type { Device } from '../../../device/Device';
5
7
  import type { MessageResponse, TypedCall } from '@onekeyfe/hd-transport';
6
8
 
@@ -19,10 +21,10 @@ export const signTypedHash = async ({
19
21
  domainHash: string;
20
22
  messageHash: string | undefined;
21
23
  }): Promise<MessageResponse<'EthereumTypedDataSignatureOneKey'>> => {
22
- const deviceType = device.getCurrentDeviceType();
24
+ const deviceType = getDeviceType(device.features);
23
25
  if (deviceType === EDeviceType.Touch || deviceType === EDeviceType.Pro) {
24
26
  // Touch Pro Sign NestedArrays
25
- const currentVersion = device.getCurrentFirmwareVersionString() ?? '0.0.0';
27
+ const currentVersion = getDeviceFirmwareVersion(device.features).join('.');
26
28
  const supportNestedArraysSignVersion = '4.2.0';
27
29
 
28
30
  // 4.2.0 is the first version that supports nested arrays in signTypedData
@@ -7,12 +7,10 @@ export default async function ({
7
7
  typedCall: TypedCall;
8
8
  param: EthereumGetAddressOneKey;
9
9
  }): Promise<MessageResponse<'EthereumAddress'>> {
10
- // The generated legacy type omits chain_id, but old firmware accepts the OneKey
11
- // extension. A non-fresh object preserves that runtime field without a type cast.
12
- const message = {
10
+ return typedCall('EthereumGetAddress', 'EthereumAddress', {
13
11
  address_n: param.address_n,
14
12
  show_display: param.show_display,
13
+ // @ts-ignore
15
14
  chain_id: param.chain_id,
16
- };
17
- return typedCall('EthereumGetAddress', 'EthereumAddress', message);
15
+ });
18
16
  }
@@ -11,12 +11,10 @@ export default async function ({
11
11
  typedCall: TypedCall;
12
12
  param: EthereumGetPublicKeyOneKey;
13
13
  }): Promise<MessageResponse<'EthereumPublicKey'>> {
14
- // The generated legacy type omits chain_id, but old firmware accepts the OneKey
15
- // extension. A non-fresh object preserves that runtime field without a type cast.
16
- const message = {
14
+ return typedCall('EthereumGetPublicKey', 'EthereumPublicKey', {
17
15
  address_n: param.address_n,
18
16
  show_display: param.show_display,
17
+ // @ts-ignore
19
18
  chain_id: param.chain_id,
20
- };
21
- return typedCall('EthereumGetPublicKey', 'EthereumPublicKey', message);
19
+ });
22
20
  }
@@ -11,14 +11,12 @@ export default async function ({
11
11
  typedCall: TypedCall;
12
12
  params: EthereumSignMessageOneKey;
13
13
  }): Promise<EthereumMessageSignature> {
14
- // The generated legacy type omits chain_id, but old firmware accepts the OneKey
15
- // extension. A non-fresh object preserves that runtime field without a type cast.
16
- const message = {
14
+ const res = await typedCall('EthereumSignMessage', 'EthereumMessageSignature', {
17
15
  address_n: params.address_n,
18
16
  message: params.message,
17
+ // @ts-ignore
19
18
  chain_id: params.chain_id,
20
- };
21
- const res = await typedCall('EthereumSignMessage', 'EthereumMessageSignature', message);
19
+ });
22
20
 
23
21
  return Promise.resolve(res.message);
24
22
  }
@@ -16,23 +16,22 @@ export const signTypedData = async ({
16
16
  }) => {
17
17
  const { primaryType }: EthereumSignTypedDataMessage<EthereumSignTypedDataTypes> = data;
18
18
 
19
- // The generated legacy type omits chain_id, but old firmware accepts the OneKey
20
- // extension. A non-fresh object preserves that runtime field without a type cast.
21
- const message = {
22
- address_n: addressN,
23
- primary_type: primaryType as string,
24
- metamask_v4_compat: metamaskV4Compat,
25
- chain_id: chainId,
26
- };
27
19
  const response = await typedCall(
28
20
  'EthereumSignTypedData',
21
+ // @ts-ignore
29
22
  [
30
23
  'EthereumTypedDataStructRequest',
31
24
  'EthereumTypedDataValueRequest',
32
25
  'EthereumTypedDataSignature',
33
26
  'EthereumGnosisSafeTxRequest',
34
27
  ],
35
- message
28
+ {
29
+ address_n: addressN,
30
+ primary_type: primaryType as string,
31
+ metamask_v4_compat: metamaskV4Compat,
32
+ // @ts-ignore
33
+ chain_id: chainId,
34
+ }
36
35
  );
37
36
  return response;
38
37
  };
@@ -1,6 +1,8 @@
1
1
  import semver from 'semver';
2
2
  import { EDeviceType, ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
3
3
 
4
+ import { getDeviceFirmwareVersion, getDeviceType } from '../../../utils';
5
+
4
6
  import type { Device } from '../../../device/Device';
5
7
  import type { MessageResponse, TypedCall } from '@onekeyfe/hd-transport';
6
8
 
@@ -22,10 +24,10 @@ export const signTypedHash = async ({
22
24
  | MessageResponse<'EthereumTypedDataSignature'>
23
25
  | MessageResponse<'EthereumTypedDataSignatureOneKey'>
24
26
  > => {
25
- const deviceType = device.getCurrentDeviceType();
27
+ const deviceType = getDeviceType(device.features);
26
28
  if (deviceType === EDeviceType.Touch || deviceType === EDeviceType.Pro) {
27
29
  // Touch Pro Sign NestedArrays
28
- const currentVersion = device.getCurrentFirmwareVersionString() ?? '0.0.0';
30
+ const currentVersion = getDeviceFirmwareVersion(device.features).join('.');
29
31
  const supportNestedArraysSignVersion = '4.2.0';
30
32
 
31
33
  // 4.2.0 is the first version that supports nested arrays in signTypedData
@@ -38,13 +40,11 @@ export const signTypedHash = async ({
38
40
  }
39
41
  }
40
42
 
41
- // The generated legacy type omits chain_id, but old firmware accepts the OneKey
42
- // extension. A non-fresh object preserves that runtime field without a type cast.
43
- const message = {
43
+ return typedCall('EthereumSignTypedHash', 'EthereumTypedDataSignature', {
44
44
  address_n: addressN,
45
45
  domain_separator_hash: domainHash ?? '',
46
46
  message_hash: messageHash,
47
+ // @ts-ignore
47
48
  chain_id: chainId,
48
- };
49
- return typedCall('EthereumSignTypedHash', 'EthereumTypedDataSignature', message);
49
+ });
50
50
  };
@@ -7,15 +7,13 @@ export default async function ({
7
7
  typedCall: TypedCall;
8
8
  params: EthereumVerifyMessageOneKey;
9
9
  }): Promise<Success> {
10
- // The generated legacy type omits chain_id, but old firmware accepts the OneKey
11
- // extension. A non-fresh object preserves that runtime field without a type cast.
12
- const message = {
10
+ const res = await typedCall('EthereumVerifyMessage', 'Success', {
13
11
  signature: params.signature,
14
12
  message: params.message,
15
13
  address: params.address,
14
+ // @ts-ignore
16
15
  chain_id: params.chain_id,
17
- };
18
- const res = await typedCall('EthereumVerifyMessage', 'Success', message);
16
+ });
19
17
 
20
18
  return Promise.resolve(res.message);
21
19
  }
@@ -8,15 +8,12 @@ import {
8
8
 
9
9
  import { FirmwareUpdateTipMessage, UI_REQUEST, createUiMessage } from '../../events/ui-request';
10
10
  import { DevicePool } from '../../device/DevicePool';
11
- import { LoggerNames, getLogger, wait } from '../../utils';
11
+ import { LoggerNames, getDeviceType, getDeviceUUID, getLogger, wait } from '../../utils';
12
12
  import { DeviceModelToTypes } from '../../types';
13
13
  import { DataManager } from '../../data-manager';
14
14
  import { BaseMethod } from '../BaseMethod';
15
15
  import { DEVICE } from '../../events';
16
- import { createFirmwareProgressThrottle } from './progressThrottle';
17
- import { writeFirmwareByteSource } from './FirmwareArtifactSource';
18
16
 
19
- import type { FirmwareCheckpointWriter } from './FirmwareCheckpoint';
20
17
  import type {
21
18
  IFirmwareUpdateProgressType,
22
19
  IFirmwareUpdateTipMessage,
@@ -26,7 +23,6 @@ import type { RebootType } from '@onekeyfe/hd-transport';
26
23
  import type { Deferred } from '@onekeyfe/hd-shared';
27
24
  import type { KnownDevice } from '../../types';
28
25
  import type { TypedResponseMessage } from '../../device/DeviceCommands';
29
- import type { FirmwareByteSource } from './FirmwareArtifactSource';
30
26
 
31
27
  const Log = getLogger(LoggerNames.Method);
32
28
  const SESSION_ERROR = 'session not found';
@@ -44,8 +40,6 @@ const isDeviceDisconnectedError = (error: unknown) => {
44
40
  export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
45
41
  checkPromise: Deferred<any> | null = null;
46
42
 
47
- private shouldPostFirmwareProgress = createFirmwareProgressThrottle();
48
-
49
43
  init(): void {}
50
44
 
51
45
  run(): Promise<any> {
@@ -89,10 +83,6 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
89
83
  * @param progress Post the percentage of the progress
90
84
  */
91
85
  postProgressMessage = (progress: number, progressType: IFirmwareUpdateProgressType) => {
92
- if (!this.shouldPostFirmwareProgress(progress, progressType)) {
93
- return;
94
- }
95
-
96
86
  this.postMessage(
97
87
  createUiMessage(UI_REQUEST.FIRMWARE_PROGRESS, {
98
88
  device: this.device.toMessageObject() as KnownDevice,
@@ -148,14 +138,12 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
148
138
  // check device goto bootloader mode
149
139
  let isFirstCheck = true;
150
140
  let checkCount = 0;
151
- let hasPromptedWebDevice = false;
152
- let isPromptingWebDevice = false;
153
141
  // eslint-disable-next-line prefer-const
154
142
  let timeoutTimer: ReturnType<typeof setTimeout> | undefined;
155
143
 
156
144
  const isTouchOrProDevice =
157
- this?.device?.getCurrentDeviceType() === EDeviceType.Touch ||
158
- this?.device?.getCurrentDeviceType() === EDeviceType.Pro;
145
+ getDeviceType(this?.device?.features) === EDeviceType.Touch ||
146
+ getDeviceType(this?.device?.features) === EDeviceType.Pro;
159
147
 
160
148
  const intervalTimer: ReturnType<typeof setInterval> | undefined = setInterval(
161
149
  async () => {
@@ -170,28 +158,23 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
170
158
  if (
171
159
  checkCount > 4 &&
172
160
  DataManager.isBrowserWebUsb(DataManager.getSettings('env')) &&
173
- !this.payload.skipWebDevicePrompt &&
174
- !hasPromptedWebDevice &&
175
- !isPromptingWebDevice
161
+ !this.payload.skipWebDevicePrompt
176
162
  ) {
177
- isPromptingWebDevice = true;
163
+ clearInterval(intervalTimer);
164
+ clearTimeout(timeoutTimer);
165
+
178
166
  try {
179
167
  this.postTipMessage(FirmwareUpdateTipMessage.SelectDeviceInBootloaderForWebDevice);
180
168
  const confirmed = await this._promptDeviceInBootloaderForWebDevice();
181
- hasPromptedWebDevice = true;
182
169
  if (confirmed) {
183
170
  await this._checkDeviceInBootloaderMode(connectId, intervalTimer, timeoutTimer);
184
171
  }
185
172
  } catch (e) {
186
- clearInterval(intervalTimer);
187
- clearTimeout(timeoutTimer);
188
173
  Log.log(
189
174
  'FirmwareUpdateBaseMethod [checkDeviceToBootloader] _promptDeviceInBootloaderForWebDevice failed: ',
190
175
  e
191
176
  );
192
177
  this.checkPromise?.reject(e);
193
- } finally {
194
- isPromptingWebDevice = false;
195
178
  }
196
179
  return;
197
180
  }
@@ -204,7 +187,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
204
187
  true
205
188
  );
206
189
  await this.device.initialize();
207
- if (this.device.isBootloader()) {
190
+ if (this.device.features?.bootloader_mode) {
208
191
  clearInterval(intervalTimer);
209
192
  this.checkPromise?.resolve(true);
210
193
  }
@@ -237,7 +220,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
237
220
  const devicesDescriptor = deviceDiff?.descriptors ?? [];
238
221
  const { deviceList } = await DevicePool.getDevices(devicesDescriptor, connectId);
239
222
 
240
- if (deviceList.length === 1 && deviceList[0]?.isBootloader()) {
223
+ if (deviceList.length === 1 && deviceList[0]?.features?.bootloader_mode) {
241
224
  // should update current device from cache
242
225
  // because device was reboot and had some new requests
243
226
  this.device.updateFromCache(deviceList[0]);
@@ -251,17 +234,14 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
251
234
  return false;
252
235
  }
253
236
 
254
- async enterBootloaderMode(checkpointWriter?: FirmwareCheckpointWriter) {
237
+ async enterBootloaderMode() {
255
238
  const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
256
- if (this.device.features && !this.device.isBootloader()) {
257
- const serialNo = this.device.getCurrentSerialNo();
258
- const deviceType = this.device.getCurrentDeviceType();
239
+ if (this.device.features && !this.device.features.bootloader_mode) {
240
+ const uuid = getDeviceUUID(this.device.features);
241
+ const deviceType = getDeviceType(this.device.features);
259
242
  // auto go to bootloader mode
260
243
  try {
261
244
  this.postTipMessage(FirmwareUpdateTipMessage.AutoRebootToBootloader);
262
- await checkpointWriter?.commit({
263
- stage: 'BEFORE_DEVICE_MODE_CHANGE',
264
- });
265
245
  const bootRes = await typedCall('DeviceBackToBoot', 'Success');
266
246
  // @ts-expect-error
267
247
  if (bootRes.type === 'CallMethodError') {
@@ -272,7 +252,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
272
252
 
273
253
  // force clean classic device cache so that the device can initialize again
274
254
  if (DeviceModelToTypes.model_classic.includes(deviceType)) {
275
- DevicePool.clearDeviceCache(serialNo);
255
+ DevicePool.clearDeviceCache(uuid);
276
256
  }
277
257
  delete DevicePool.devicesCache[''];
278
258
  await this.checkPromise?.promise;
@@ -393,54 +373,6 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
393
373
  return totalSize !== undefined ? (processedSize ?? 0) + payload.byteLength : 0;
394
374
  }
395
375
 
396
- async emmcCommonUpdateProcessFromSource({
397
- source,
398
- filePath,
399
- processedSize,
400
- totalSize,
401
- }: {
402
- source: FirmwareByteSource;
403
- filePath: string;
404
- processedSize?: number;
405
- totalSize?: number;
406
- }) {
407
- if (!filePath.startsWith('0:')) {
408
- throw new Error('filePath must start with 0:');
409
- }
410
- const env = DataManager.getSettings('env');
411
- const chunkSize = 1024 * (DataManager.isBleConnect(env) ? 16 : 128);
412
-
413
- await writeFirmwareByteSource({
414
- source,
415
- chunkSize,
416
- write: async ({ data, sourceOffset, length, first }) => {
417
- const progress =
418
- totalSize !== undefined && processedSize !== undefined
419
- ? Math.min(Math.ceil(((processedSize + sourceOffset + length) / totalSize) * 100), 99)
420
- : Math.min(Math.ceil(((sourceOffset + length) / source.size) * 100), 99);
421
- const writeRes = await this.emmcFileWriteWithRetry(
422
- filePath,
423
- length,
424
- sourceOffset,
425
- data,
426
- first,
427
- progress
428
- );
429
- if (!writeRes) {
430
- throw ERRORS.TypedError(
431
- HardwareErrorCode.EmmcFileWriteFirmwareError,
432
- 'transfer data error'
433
- );
434
- }
435
- const processedBytes = Number(writeRes.message.processed_byte);
436
- this.postProgressMessage(progress, 'transferData');
437
- return Number.isFinite(processedBytes) ? processedBytes : length;
438
- },
439
- });
440
-
441
- return totalSize !== undefined ? (processedSize ?? 0) + source.size : 0;
442
- }
443
-
444
376
  async emmcFileWriteWithRetry(
445
377
  filePath: string,
446
378
  chunkLength: number,
@@ -504,7 +436,7 @@ export class FirmwareUpdateBaseMethod<Params> extends BaseMethod<Params> {
504
436
  const deviceDiff = await this.device.deviceConnector?.enumerate();
505
437
  const devicesDescriptor = deviceDiff?.descriptors ?? [];
506
438
  const { deviceList } = await DevicePool.getDevices(devicesDescriptor, undefined);
507
- if (deviceList.length === 1 && deviceList[0]?.isBootloader()) {
439
+ if (deviceList.length === 1 && deviceList[0]?.features?.bootloader_mode) {
508
440
  this.device.updateFromCache(deviceList[0]);
509
441
  await this.device.acquire();
510
442
  this.device.getCommands().mainId = this.device.mainId ?? '';
@@ -1,7 +1,7 @@
1
1
  import semver from 'semver';
2
2
  import { EDeviceType } from '@onekeyfe/hd-shared';
3
3
 
4
- import { getDeviceBootloaderVersion, getDeviceType } from '../../utils';
4
+ import { getDeviceType } from '../../utils';
5
5
 
6
6
  import type { Features, IVersionArray } from '../../types';
7
7
 
@@ -38,10 +38,9 @@ export function shouldUpdateBootloaderForClassicAndMini({
38
38
  export function isEnteredManuallyBoot(features: Features, updateType: string) {
39
39
  const deviceType = getDeviceType(features);
40
40
  const isMini = deviceType === EDeviceType.Mini;
41
- const bootloaderVersion = getDeviceBootloaderVersion(features).join('.');
42
41
  const isBoot183ClassicUpBle =
43
42
  updateType === 'firmware' &&
44
43
  deviceType === EDeviceType.Classic &&
45
- bootloaderVersion === '1.8.3';
44
+ features.bootloader_version === '1.8.3';
46
45
  return isMini || isBoot183ClassicUpBle;
47
46
  }