@onekeyfe/hd-core 1.2.0-alpha.23 → 1.2.0-alpha.25

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 (445) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +2 -0
  2. package/__tests__/DeviceCommands.test.ts +35 -0
  3. package/__tests__/chain-params-onekey-compatibility.test.ts +229 -0
  4. package/__tests__/device-lifecycle-events.test.ts +59 -0
  5. package/__tests__/device-state-events.test.ts +124 -0
  6. package/__tests__/evmLedgerLegacySafety.test.ts +3 -1
  7. package/__tests__/firmware-update/check-all-firmware-release.test.ts +68 -27
  8. package/__tests__/firmware-update/firmware-update-plan.test.ts +28 -0
  9. package/__tests__/kaspa-public-types.type-test.ts +16 -0
  10. package/__tests__/kaspaSignTransaction.test.ts +4 -3
  11. package/__tests__/method-protocol-support.test.ts +113 -0
  12. package/__tests__/open-wallet-session.test.ts +192 -129
  13. package/__tests__/protocol-v2-ping.test.ts +28 -0
  14. package/__tests__/protocol-v2.test.ts +346 -230
  15. package/__tests__/public-device-state-api.test.ts +10 -8
  16. package/__tests__/public-pro2-api-boundary.test.ts +22 -0
  17. package/__tests__/tron-sign-message-init.test.ts +46 -0
  18. package/dist/api/BaseMethod.d.ts +6 -2
  19. package/dist/api/BaseMethod.d.ts.map +1 -1
  20. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  21. package/dist/api/CipherKeyValue.d.ts +1 -0
  22. package/dist/api/CipherKeyValue.d.ts.map +1 -1
  23. package/dist/api/DirList.d.ts +1 -0
  24. package/dist/api/DirList.d.ts.map +1 -1
  25. package/dist/api/DirMake.d.ts +1 -0
  26. package/dist/api/DirMake.d.ts.map +1 -1
  27. package/dist/api/DirRemove.d.ts +1 -0
  28. package/dist/api/DirRemove.d.ts.map +1 -1
  29. package/dist/api/FileDelete.d.ts +1 -0
  30. package/dist/api/FileDelete.d.ts.map +1 -1
  31. package/dist/api/FileRead.d.ts +1 -0
  32. package/dist/api/FileRead.d.ts.map +1 -1
  33. package/dist/api/FileWrite.d.ts +1 -0
  34. package/dist/api/FileWrite.d.ts.map +1 -1
  35. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  36. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  37. package/dist/api/FirmwareUpdateV4.d.ts +2 -0
  38. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  39. package/dist/api/GetDeviceState.d.ts +1 -0
  40. package/dist/api/GetDeviceState.d.ts.map +1 -1
  41. package/dist/api/GetFeatures.d.ts.map +1 -1
  42. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  43. package/dist/api/GetPassphraseState.d.ts +1 -0
  44. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  45. package/dist/api/OpenWalletSession.d.ts +2 -8
  46. package/dist/api/OpenWalletSession.d.ts.map +1 -1
  47. package/dist/api/PathInfo.d.ts +1 -0
  48. package/dist/api/PathInfo.d.ts.map +1 -1
  49. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  50. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  51. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  52. package/dist/api/algo/AlgoGetAddress.d.ts +1 -0
  53. package/dist/api/algo/AlgoGetAddress.d.ts.map +1 -1
  54. package/dist/api/algo/AlgoSignTransaction.d.ts +1 -0
  55. package/dist/api/algo/AlgoSignTransaction.d.ts.map +1 -1
  56. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts +1 -0
  57. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  58. package/dist/api/aptos/AptosGetAddress.d.ts +1 -0
  59. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  60. package/dist/api/aptos/AptosGetPublicKey.d.ts +1 -0
  61. package/dist/api/aptos/AptosGetPublicKey.d.ts.map +1 -1
  62. package/dist/api/aptos/AptosSignInMessage.d.ts +1 -0
  63. package/dist/api/aptos/AptosSignInMessage.d.ts.map +1 -1
  64. package/dist/api/aptos/AptosSignMessage.d.ts +1 -0
  65. package/dist/api/aptos/AptosSignMessage.d.ts.map +1 -1
  66. package/dist/api/aptos/AptosSignTransaction.d.ts +1 -0
  67. package/dist/api/aptos/AptosSignTransaction.d.ts.map +1 -1
  68. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  69. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  70. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  71. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  72. package/dist/api/btc/BTCGetAddress.d.ts +1 -0
  73. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  74. package/dist/api/btc/BTCGetPublicKey.d.ts +1 -0
  75. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  76. package/dist/api/btc/BTCSignMessage.d.ts +1 -0
  77. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  78. package/dist/api/btc/BTCSignPsbt.d.ts +1 -0
  79. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  80. package/dist/api/btc/BTCSignTransaction.d.ts +1 -0
  81. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  82. package/dist/api/btc/BTCVerifyMessage.d.ts +1 -0
  83. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  84. package/dist/api/btc/helpers/versionLimit.d.ts +2 -0
  85. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  86. package/dist/api/cardano/CardanoGetAddress.d.ts +1 -0
  87. package/dist/api/cardano/CardanoGetAddress.d.ts.map +1 -1
  88. package/dist/api/cardano/CardanoGetPublicKey.d.ts +1 -0
  89. package/dist/api/cardano/CardanoGetPublicKey.d.ts.map +1 -1
  90. package/dist/api/cardano/CardanoSignMessage.d.ts +1 -0
  91. package/dist/api/cardano/CardanoSignMessage.d.ts.map +1 -1
  92. package/dist/api/cardano/CardanoSignTransaction.d.ts +1 -0
  93. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  94. package/dist/api/conflux/ConfluxGetAddress.d.ts +1 -0
  95. package/dist/api/conflux/ConfluxGetAddress.d.ts.map +1 -1
  96. package/dist/api/conflux/ConfluxSignMessage.d.ts +1 -0
  97. package/dist/api/conflux/ConfluxSignMessage.d.ts.map +1 -1
  98. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts +1 -0
  99. package/dist/api/conflux/ConfluxSignMessageCIP23.d.ts.map +1 -1
  100. package/dist/api/conflux/ConfluxSignTransaction.d.ts +1 -0
  101. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  102. package/dist/api/cosmos/CosmosGetAddress.d.ts +1 -0
  103. package/dist/api/cosmos/CosmosGetAddress.d.ts.map +1 -1
  104. package/dist/api/cosmos/CosmosGetPublicKey.d.ts +1 -0
  105. package/dist/api/cosmos/CosmosGetPublicKey.d.ts.map +1 -1
  106. package/dist/api/cosmos/CosmosSignTransaction.d.ts +1 -0
  107. package/dist/api/cosmos/CosmosSignTransaction.d.ts.map +1 -1
  108. package/dist/api/device/DeviceCancel.d.ts +1 -0
  109. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  110. package/dist/api/device/DeviceChangePin.d.ts +1 -0
  111. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  112. package/dist/api/device/DeviceLock.d.ts +1 -0
  113. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  114. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -0
  115. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  116. package/dist/api/device/DeviceRebootToBootloader.d.ts +1 -0
  117. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  118. package/dist/api/device/DeviceSettings.d.ts +1 -0
  119. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  120. package/dist/api/device/DeviceSupportFeatures.d.ts +1 -0
  121. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  122. package/dist/api/device/DeviceUnlock.d.ts +1 -0
  123. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  124. package/dist/api/device/DeviceWipe.d.ts +1 -0
  125. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  126. package/dist/api/device/PreInitialize.d.ts +1 -0
  127. package/dist/api/device/PreInitialize.d.ts.map +1 -1
  128. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  129. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  130. package/dist/api/evm/EVMGetAddress.d.ts +1 -0
  131. package/dist/api/evm/EVMGetAddress.d.ts.map +1 -1
  132. package/dist/api/evm/EVMGetPublicKey.d.ts +1 -0
  133. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  134. package/dist/api/evm/EVMSignMessage.d.ts +1 -0
  135. package/dist/api/evm/EVMSignMessage.d.ts.map +1 -1
  136. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  137. package/dist/api/evm/EVMSignTransaction.d.ts +1 -0
  138. package/dist/api/evm/EVMSignTransaction.d.ts.map +1 -1
  139. package/dist/api/evm/EVMSignTypedData.d.ts +1 -0
  140. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  141. package/dist/api/evm/EVMVerifyMessage.d.ts +1 -0
  142. package/dist/api/evm/EVMVerifyMessage.d.ts.map +1 -1
  143. package/dist/api/filecoin/FilecoinGetAddress.d.ts +1 -0
  144. package/dist/api/filecoin/FilecoinGetAddress.d.ts.map +1 -1
  145. package/dist/api/filecoin/FilecoinSignTransaction.d.ts +1 -0
  146. package/dist/api/filecoin/FilecoinSignTransaction.d.ts.map +1 -1
  147. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -1
  148. package/dist/api/index.d.ts +1 -0
  149. package/dist/api/index.d.ts.map +1 -1
  150. package/dist/api/kaspa/KaspaGetAddress.d.ts +1 -0
  151. package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
  152. package/dist/api/kaspa/KaspaSignTransaction.d.ts +1 -0
  153. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  154. package/dist/api/kaspa/helpers/TransferSerialize.d.ts.map +1 -1
  155. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  156. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  157. package/dist/api/near/NearGetAddress.d.ts +1 -0
  158. package/dist/api/near/NearGetAddress.d.ts.map +1 -1
  159. package/dist/api/near/NearSignTransaction.d.ts +1 -0
  160. package/dist/api/near/NearSignTransaction.d.ts.map +1 -1
  161. package/dist/api/nem/NEMGetAddress.d.ts +1 -0
  162. package/dist/api/nem/NEMGetAddress.d.ts.map +1 -1
  163. package/dist/api/nem/NEMSignTransaction.d.ts +1 -0
  164. package/dist/api/nem/NEMSignTransaction.d.ts.map +1 -1
  165. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  166. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  167. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  168. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  169. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  170. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  171. package/dist/api/nostr/NostrDecryptMessage.d.ts +1 -0
  172. package/dist/api/nostr/NostrDecryptMessage.d.ts.map +1 -1
  173. package/dist/api/nostr/NostrEncryptMessage.d.ts +1 -0
  174. package/dist/api/nostr/NostrEncryptMessage.d.ts.map +1 -1
  175. package/dist/api/nostr/NostrGetPublicKey.d.ts +1 -0
  176. package/dist/api/nostr/NostrGetPublicKey.d.ts.map +1 -1
  177. package/dist/api/nostr/NostrSignEvent.d.ts +1 -0
  178. package/dist/api/nostr/NostrSignEvent.d.ts.map +1 -1
  179. package/dist/api/nostr/NostrSignSchnorr.d.ts +1 -0
  180. package/dist/api/nostr/NostrSignSchnorr.d.ts.map +1 -1
  181. package/dist/api/polkadot/PolkadotGetAddress.d.ts +1 -0
  182. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  183. package/dist/api/polkadot/PolkadotSignTransaction.d.ts +1 -0
  184. package/dist/api/polkadot/PolkadotSignTransaction.d.ts.map +1 -1
  185. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +1 -0
  186. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  187. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +1 -0
  188. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  189. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -0
  190. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  191. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +1 -0
  192. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  193. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +1 -0
  194. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +1 -1
  195. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +1 -0
  196. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -1
  197. package/dist/api/protocol-v2/DeviceReboot.d.ts +1 -0
  198. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +1 -1
  199. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +1 -0
  200. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -1
  201. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +1 -0
  202. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -1
  203. package/dist/api/protocol-v2/FilesystemFormat.d.ts +1 -0
  204. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  205. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +1 -0
  206. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -1
  207. package/dist/api/protocol-v2/Ping.d.ts +3 -0
  208. package/dist/api/protocol-v2/Ping.d.ts.map +1 -1
  209. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +1 -0
  210. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -1
  211. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  212. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  213. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  214. package/dist/api/solana/SolGetAddress.d.ts +1 -0
  215. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  216. package/dist/api/solana/SolSignMessage.d.ts +1 -0
  217. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  218. package/dist/api/solana/SolSignOffchainMessage.d.ts +1 -0
  219. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  220. package/dist/api/solana/SolSignTransaction.d.ts +1 -0
  221. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  222. package/dist/api/starcoin/StarcoinGetAddress.d.ts +1 -0
  223. package/dist/api/starcoin/StarcoinGetAddress.d.ts.map +1 -1
  224. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts +1 -0
  225. package/dist/api/starcoin/StarcoinGetPublicKey.d.ts.map +1 -1
  226. package/dist/api/starcoin/StarcoinSignMessage.d.ts +1 -0
  227. package/dist/api/starcoin/StarcoinSignMessage.d.ts.map +1 -1
  228. package/dist/api/starcoin/StarcoinSignTransaction.d.ts +1 -0
  229. package/dist/api/starcoin/StarcoinSignTransaction.d.ts.map +1 -1
  230. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts +1 -0
  231. package/dist/api/starcoin/StarcoinVerifyMessage.d.ts.map +1 -1
  232. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  233. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  234. package/dist/api/stellar/StellarSignTransaction.d.ts +1 -2
  235. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  236. package/dist/api/sui/SuiGetAddress.d.ts +1 -0
  237. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  238. package/dist/api/sui/SuiGetPublicKey.d.ts +1 -0
  239. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  240. package/dist/api/sui/SuiSignMessage.d.ts +1 -0
  241. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  242. package/dist/api/sui/SuiSignTransaction.d.ts +1 -0
  243. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  244. package/dist/api/ton/TonGetAddress.d.ts +1 -0
  245. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  246. package/dist/api/ton/TonSignData.d.ts +1 -0
  247. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  248. package/dist/api/ton/TonSignMessage.d.ts +1 -0
  249. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  250. package/dist/api/ton/TonSignProof.d.ts +1 -0
  251. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  252. package/dist/api/tron/TronGetAddress.d.ts +1 -0
  253. package/dist/api/tron/TronGetAddress.d.ts.map +1 -1
  254. package/dist/api/tron/TronSignMessage.d.ts +2 -0
  255. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  256. package/dist/api/tron/TronSignTransaction.d.ts +1 -0
  257. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  258. package/dist/api/xrp/XrpGetAddress.d.ts +1 -0
  259. package/dist/api/xrp/XrpGetAddress.d.ts.map +1 -1
  260. package/dist/api/xrp/XrpSignTransaction.d.ts +1 -0
  261. package/dist/api/xrp/XrpSignTransaction.d.ts.map +1 -1
  262. package/dist/core/index.d.ts.map +1 -1
  263. package/dist/device/Device.d.ts +3 -1
  264. package/dist/device/Device.d.ts.map +1 -1
  265. package/dist/device/DeviceCommands.d.ts.map +1 -1
  266. package/dist/index.d.ts +25 -25
  267. package/dist/index.js +669 -367
  268. package/dist/inject.d.ts.map +1 -1
  269. package/dist/protocols/protocol-v2/unlockRetry.d.ts +2 -3
  270. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +1 -1
  271. package/dist/protocols/protocol-v2/walletSession.d.ts +12 -0
  272. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -1
  273. package/dist/types/api/export.d.ts +1 -1
  274. package/dist/types/api/export.d.ts.map +1 -1
  275. package/dist/types/api/index.d.ts +3 -1
  276. package/dist/types/api/index.d.ts.map +1 -1
  277. package/dist/types/api/kaspaSignTransaction.d.ts +15 -2
  278. package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
  279. package/dist/types/api/openWalletSession.d.ts +0 -12
  280. package/dist/types/api/openWalletSession.d.ts.map +1 -1
  281. package/dist/types/api/protocolV2.d.ts +4 -0
  282. package/dist/types/api/protocolV2.d.ts.map +1 -1
  283. package/dist/types/device.d.ts +0 -1
  284. package/dist/types/device.d.ts.map +1 -1
  285. package/dist/utils/deviceInfoUtils.d.ts +0 -1
  286. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  287. package/dist/utils/deviceVersionUtils.d.ts +1 -0
  288. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  289. package/dist/utils/index.d.ts +1 -1
  290. package/dist/utils/index.d.ts.map +1 -1
  291. package/dist/utils/patch.d.ts +1 -1
  292. package/dist/utils/patch.d.ts.map +1 -1
  293. package/package.json +4 -4
  294. package/src/api/BaseMethod.ts +21 -18
  295. package/src/api/CheckAllFirmwareRelease.ts +23 -3
  296. package/src/api/CipherKeyValue.ts +4 -0
  297. package/src/api/DirList.ts +4 -1
  298. package/src/api/DirMake.ts +4 -1
  299. package/src/api/DirRemove.ts +4 -1
  300. package/src/api/FileDelete.ts +4 -1
  301. package/src/api/FileRead.ts +4 -1
  302. package/src/api/FileWrite.ts +4 -1
  303. package/src/api/FirmwareUpdate.ts +0 -8
  304. package/src/api/FirmwareUpdateV3.ts +0 -6
  305. package/src/api/FirmwareUpdateV4.ts +36 -18
  306. package/src/api/GetDeviceState.ts +4 -0
  307. package/src/api/GetFeatures.ts +1 -4
  308. package/src/api/GetOnekeyFeatures.ts +0 -5
  309. package/src/api/GetPassphraseState.ts +4 -0
  310. package/src/api/OpenWalletSession.ts +27 -86
  311. package/src/api/PathInfo.ts +4 -1
  312. package/src/api/alephium/AlephiumGetAddress.ts +0 -4
  313. package/src/api/alephium/AlephiumSignMessage.ts +0 -4
  314. package/src/api/alephium/AlephiumSignTransaction.ts +0 -4
  315. package/src/api/algo/AlgoGetAddress.ts +4 -0
  316. package/src/api/algo/AlgoSignTransaction.ts +4 -0
  317. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +5 -13
  318. package/src/api/aptos/AptosGetAddress.ts +4 -0
  319. package/src/api/aptos/AptosGetPublicKey.ts +4 -0
  320. package/src/api/aptos/AptosSignInMessage.ts +4 -0
  321. package/src/api/aptos/AptosSignMessage.ts +4 -0
  322. package/src/api/aptos/AptosSignTransaction.ts +4 -0
  323. package/src/api/benfen/BenfenGetAddress.ts +11 -7
  324. package/src/api/benfen/BenfenGetPublicKey.ts +0 -4
  325. package/src/api/benfen/BenfenSignMessage.ts +0 -4
  326. package/src/api/benfen/BenfenSignTransaction.ts +0 -4
  327. package/src/api/btc/BTCGetAddress.ts +8 -1
  328. package/src/api/btc/BTCGetPublicKey.ts +8 -1
  329. package/src/api/btc/BTCSignMessage.ts +8 -1
  330. package/src/api/btc/BTCSignPsbt.ts +4 -0
  331. package/src/api/btc/BTCSignTransaction.ts +8 -1
  332. package/src/api/btc/BTCVerifyMessage.ts +8 -1
  333. package/src/api/btc/helpers/versionLimit.ts +7 -4
  334. package/src/api/cardano/CardanoGetAddress.ts +4 -0
  335. package/src/api/cardano/CardanoGetPublicKey.ts +4 -0
  336. package/src/api/cardano/CardanoSignMessage.ts +4 -0
  337. package/src/api/cardano/CardanoSignTransaction.ts +4 -0
  338. package/src/api/conflux/ConfluxGetAddress.ts +4 -0
  339. package/src/api/conflux/ConfluxSignMessage.ts +4 -0
  340. package/src/api/conflux/ConfluxSignMessageCIP23.ts +4 -0
  341. package/src/api/conflux/ConfluxSignTransaction.ts +6 -5
  342. package/src/api/cosmos/CosmosGetAddress.ts +4 -0
  343. package/src/api/cosmos/CosmosGetPublicKey.ts +4 -0
  344. package/src/api/cosmos/CosmosSignTransaction.ts +4 -0
  345. package/src/api/device/DeviceCancel.ts +4 -0
  346. package/src/api/device/DeviceChangePin.ts +4 -0
  347. package/src/api/device/DeviceLock.ts +4 -0
  348. package/src/api/device/DeviceRebootToBoardloader.ts +4 -0
  349. package/src/api/device/DeviceRebootToBootloader.ts +4 -0
  350. package/src/api/device/DeviceSettings.ts +4 -0
  351. package/src/api/device/DeviceSupportFeatures.ts +4 -0
  352. package/src/api/device/DeviceUnlock.ts +4 -0
  353. package/src/api/device/DeviceWipe.ts +4 -0
  354. package/src/api/device/PreInitialize.ts +4 -0
  355. package/src/api/dynex/DnxGetAddress.ts +0 -6
  356. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  357. package/src/api/evm/EVMGetAddress.ts +4 -0
  358. package/src/api/evm/EVMGetPublicKey.ts +4 -0
  359. package/src/api/evm/EVMSignMessage.ts +4 -0
  360. package/src/api/evm/EVMSignMessageEIP712.ts +1 -11
  361. package/src/api/evm/EVMSignTransaction.ts +4 -0
  362. package/src/api/evm/EVMSignTypedData.ts +4 -0
  363. package/src/api/evm/EVMVerifyMessage.ts +4 -0
  364. package/src/api/filecoin/FilecoinGetAddress.ts +4 -0
  365. package/src/api/filecoin/FilecoinSignTransaction.ts +4 -0
  366. package/src/api/firmware/FirmwareUpdatePlan.ts +8 -1
  367. package/src/api/index.ts +1 -0
  368. package/src/api/kaspa/KaspaGetAddress.ts +4 -0
  369. package/src/api/kaspa/KaspaSignTransaction.ts +37 -15
  370. package/src/api/kaspa/helpers/TransferSerialize.ts +3 -7
  371. package/src/api/lightning/LnurlAuth.ts +0 -4
  372. package/src/api/near/NearGetAddress.ts +4 -0
  373. package/src/api/near/NearSignTransaction.ts +4 -0
  374. package/src/api/nem/NEMGetAddress.ts +4 -0
  375. package/src/api/nem/NEMSignTransaction.ts +4 -0
  376. package/src/api/neo/NeoGetAddress.ts +0 -4
  377. package/src/api/neo/NeoSignTransaction.ts +0 -4
  378. package/src/api/nervos/NervosGetAddress.ts +0 -4
  379. package/src/api/nervos/NervosSignTransaction.ts +0 -4
  380. package/src/api/nexa/NexaGetAddress.ts +0 -4
  381. package/src/api/nexa/NexaSignTransaction.ts +0 -4
  382. package/src/api/nostr/NostrDecryptMessage.ts +4 -0
  383. package/src/api/nostr/NostrEncryptMessage.ts +4 -0
  384. package/src/api/nostr/NostrGetPublicKey.ts +4 -0
  385. package/src/api/nostr/NostrSignEvent.ts +4 -0
  386. package/src/api/nostr/NostrSignSchnorr.ts +4 -0
  387. package/src/api/polkadot/PolkadotGetAddress.ts +4 -0
  388. package/src/api/polkadot/PolkadotSignTransaction.ts +4 -0
  389. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +4 -1
  390. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +4 -1
  391. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +4 -1
  392. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +4 -1
  393. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +4 -1
  394. package/src/api/protocol-v2/DeviceInfoGet.ts +4 -8
  395. package/src/api/protocol-v2/DeviceReboot.ts +4 -2
  396. package/src/api/protocol-v2/DeviceStatusGet.ts +4 -1
  397. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +4 -1
  398. package/src/api/protocol-v2/FilesystemFormat.ts +4 -1
  399. package/src/api/protocol-v2/FilesystemPermissionFix.ts +4 -1
  400. package/src/api/protocol-v2/Ping.ts +36 -2
  401. package/src/api/protocol-v2/ProtocolInfoRequest.ts +4 -1
  402. package/src/api/scdo/ScdoGetAddress.ts +0 -4
  403. package/src/api/scdo/ScdoSignMessage.ts +0 -4
  404. package/src/api/scdo/ScdoSignTransaction.ts +0 -4
  405. package/src/api/solana/SolGetAddress.ts +4 -0
  406. package/src/api/solana/SolSignMessage.ts +4 -0
  407. package/src/api/solana/SolSignOffchainMessage.ts +4 -0
  408. package/src/api/solana/SolSignTransaction.ts +4 -0
  409. package/src/api/starcoin/StarcoinGetAddress.ts +4 -0
  410. package/src/api/starcoin/StarcoinGetPublicKey.ts +4 -0
  411. package/src/api/starcoin/StarcoinSignMessage.ts +4 -0
  412. package/src/api/starcoin/StarcoinSignTransaction.ts +4 -0
  413. package/src/api/starcoin/StarcoinVerifyMessage.ts +4 -0
  414. package/src/api/stellar/StellarGetAddress.ts +1 -10
  415. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  416. package/src/api/sui/SuiGetAddress.ts +4 -0
  417. package/src/api/sui/SuiGetPublicKey.ts +4 -0
  418. package/src/api/sui/SuiSignMessage.ts +4 -0
  419. package/src/api/sui/SuiSignTransaction.ts +4 -0
  420. package/src/api/ton/TonGetAddress.ts +4 -0
  421. package/src/api/ton/TonSignData.ts +5 -1
  422. package/src/api/ton/TonSignMessage.ts +4 -0
  423. package/src/api/ton/TonSignProof.ts +4 -0
  424. package/src/api/tron/TronGetAddress.ts +4 -0
  425. package/src/api/tron/TronSignMessage.ts +15 -7
  426. package/src/api/tron/TronSignTransaction.ts +4 -0
  427. package/src/api/xrp/XrpGetAddress.ts +4 -0
  428. package/src/api/xrp/XrpSignTransaction.ts +5 -1
  429. package/src/core/index.ts +43 -24
  430. package/src/data/messages/messages-protocol-v2.json +33 -1
  431. package/src/device/Device.ts +60 -62
  432. package/src/device/DeviceCommands.ts +19 -0
  433. package/src/inject.ts +2 -0
  434. package/src/protocols/protocol-v2/unlockRetry.ts +20 -3
  435. package/src/protocols/protocol-v2/walletSession.ts +26 -8
  436. package/src/types/api/export.ts +2 -0
  437. package/src/types/api/index.ts +3 -0
  438. package/src/types/api/kaspaSignTransaction.ts +20 -2
  439. package/src/types/api/openWalletSession.ts +0 -19
  440. package/src/types/api/protocolV2.ts +10 -0
  441. package/src/types/device.ts +0 -1
  442. package/src/utils/deviceInfoUtils.ts +15 -6
  443. package/src/utils/deviceVersionUtils.ts +1 -1
  444. package/src/utils/index.ts +0 -1
  445. package/tsconfig.type-tests.json +8 -0
@@ -5,7 +5,10 @@ import { getScriptType, isTaprootPath, serializedPath, validatePath } from '../h
5
5
  import { BaseMethod } from '../BaseMethod';
6
6
  import { validateParams, validateResult } from '../helpers/paramsValidator';
7
7
  import { getCoinInfo } from './helpers/btcParamsUtils';
8
- import { getBitcoinForkVersionRange } from './helpers/versionLimit';
8
+ import {
9
+ getBitcoinForkSupportedProtocols,
10
+ getBitcoinForkVersionRange,
11
+ } from './helpers/versionLimit';
9
12
  import { batchGetPublickeys } from '../helpers/batchGetPublickeys';
10
13
  import { createExtendedPublicKey, getVersionBytes } from './helpers/xpubUtils';
11
14
 
@@ -14,6 +17,10 @@ import type { BTCGetAddressParams } from '../../types/api/btcGetAddress';
14
17
  import type { GetPublicKey } from '@onekeyfe/hd-transport';
15
18
 
16
19
  export default class BTCGetPublicKey extends BaseMethod<GetPublicKey[]> {
20
+ getSupportedProtocols() {
21
+ return getBitcoinForkSupportedProtocols(this.params?.map(param => param.coin_name) ?? []);
22
+ }
23
+
17
24
  hasBundle = false;
18
25
 
19
26
  init() {
@@ -4,11 +4,18 @@ import { BaseMethod } from '../BaseMethod';
4
4
  import { validateParams } from '../helpers/paramsValidator';
5
5
  import { formatAnyHex } from '../helpers/hexUtils';
6
6
  import { getCoinAndScriptType } from './helpers/btcParamsUtils';
7
- import { getBitcoinForkVersionRange } from './helpers/versionLimit';
7
+ import {
8
+ getBitcoinForkSupportedProtocols,
9
+ getBitcoinForkVersionRange,
10
+ } from './helpers/versionLimit';
8
11
 
9
12
  import type { SignMessage } from '@onekeyfe/hd-transport';
10
13
 
11
14
  export default class BTCSignMessage extends BaseMethod<SignMessage> {
15
+ getSupportedProtocols() {
16
+ return getBitcoinForkSupportedProtocols([this.params?.coin_name]);
17
+ }
18
+
12
19
  init() {
13
20
  this.checkDeviceId = true;
14
21
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -9,6 +9,10 @@ import { getCoinInfo } from './helpers/btcParamsUtils';
9
9
  import type { SignPsbt } from '@onekeyfe/hd-transport';
10
10
 
11
11
  export default class BTCSignPsbt extends BaseMethod<SignPsbt> {
12
+ getSupportedProtocols() {
13
+ return ['V1', 'V2'] as const;
14
+ }
15
+
12
16
  init() {
13
17
  this.checkDeviceId = true;
14
18
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -7,7 +7,10 @@ import { validateParams } from '../helpers/paramsValidator';
7
7
  import signtx from './helpers/signtx';
8
8
  import signtxLegacy from './helpers/signtxLegacy';
9
9
  import { getCoinInfo } from './helpers/btcParamsUtils';
10
- import { getBitcoinForkVersionRange } from './helpers/versionLimit';
10
+ import {
11
+ getBitcoinForkSupportedProtocols,
12
+ getBitcoinForkVersionRange,
13
+ } from './helpers/versionLimit';
11
14
 
12
15
  import type {
13
16
  AccountAddresses,
@@ -26,6 +29,10 @@ type Params = {
26
29
  coinName: string;
27
30
  };
28
31
  export default class BTCSignTransaction extends BaseMethod<Params> {
32
+ getSupportedProtocols() {
33
+ return getBitcoinForkSupportedProtocols([this.params?.coinName]);
34
+ }
35
+
29
36
  init() {
30
37
  this.checkDeviceId = true;
31
38
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -3,11 +3,18 @@ import { BaseMethod } from '../BaseMethod';
3
3
  import { validateParams } from '../helpers/paramsValidator';
4
4
  import { formatAnyHex } from '../helpers/hexUtils';
5
5
  import { getCoinInfo } from './helpers/btcParamsUtils';
6
- import { getBitcoinForkVersionRange } from './helpers/versionLimit';
6
+ import {
7
+ getBitcoinForkSupportedProtocols,
8
+ getBitcoinForkVersionRange,
9
+ } from './helpers/versionLimit';
7
10
 
8
11
  import type { VerifyMessage } from '@onekeyfe/hd-transport';
9
12
 
10
13
  export default class BTCVerifyMessage extends BaseMethod<VerifyMessage> {
14
+ getSupportedProtocols() {
15
+ return getBitcoinForkSupportedProtocols([this.params?.coin_name]);
16
+ }
17
+
11
18
  init() {
12
19
  this.checkDeviceId = true;
13
20
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -1,4 +1,5 @@
1
1
  import type { DeviceFirmwareRange } from '../../../types';
2
+ import type { ProtocolType } from '@onekeyfe/hd-transport';
2
3
 
3
4
  function isCoinNameInList(coinName: string, coinNames: (string | undefined)[]) {
4
5
  for (let i = 0; i < coinNames.length; i++) {
@@ -13,10 +14,6 @@ function isCoinNameInList(coinName: string, coinNames: (string | undefined)[]) {
13
14
  export function getBitcoinForkVersionRange(params: (string | undefined)[]): DeviceFirmwareRange {
14
15
  if (isCoinNameInList('Neurai', params)) {
15
16
  return {
16
- pro2: {
17
- min: '0.0.0',
18
- unsupported: true,
19
- },
20
17
  model_mini: {
21
18
  min: '3.7.0',
22
19
  },
@@ -29,3 +26,9 @@ export function getBitcoinForkVersionRange(params: (string | undefined)[]): Devi
29
26
  // No version restrictions for other coins
30
27
  return {};
31
28
  }
29
+
30
+ export function getBitcoinForkSupportedProtocols(
31
+ params: (string | undefined)[]
32
+ ): readonly ProtocolType[] {
33
+ return isCoinNameInList('Neurai', params) ? ['V1'] : ['V1', 'V2'];
34
+ }
@@ -13,6 +13,10 @@ import type { CardanoAddress, CardanoGetAddressParams } from '../../types/api/ca
13
13
  import type { CardanoGetAddressMethodParams } from '../../types';
14
14
 
15
15
  export default class CardanoGetAddress extends BaseMethod<CardanoGetAddressParams[]> {
16
+ getSupportedProtocols() {
17
+ return ['V1', 'V2'] as const;
18
+ }
19
+
16
20
  hasBundle?: boolean;
17
21
 
18
22
  isCheck?: boolean;
@@ -7,6 +7,10 @@ import { serializedPath, validatePath } from '../helpers/pathUtils';
7
7
  import type { CardanoPublicKey, CardanoPublicKeyParams } from '../../types/api/cardanoGetPublicKey';
8
8
 
9
9
  export default class CardanoGetPublicKey extends BaseMethod<CardanoPublicKeyParams[]> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  hasBundle?: boolean;
11
15
 
12
16
  init() {
@@ -7,6 +7,10 @@ import { validatePath } from '../helpers/pathUtils';
7
7
  import type { CardanoSignMessageParams } from '../../types/api/cardanoSignMessage';
8
8
 
9
9
  export default class CardanoSignMessage extends BaseMethod<CardanoSignMessageParams> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  hasBundle?: boolean;
11
15
 
12
16
  isCheck?: boolean;
@@ -32,6 +32,10 @@ import type {
32
32
  } from '../../types/api/cardano';
33
33
 
34
34
  export default class CardanoSignTransaction extends BaseMethod<any> {
35
+ getSupportedProtocols() {
36
+ return ['V1', 'V2'] as const;
37
+ }
38
+
35
39
  hasBundle?: boolean;
36
40
 
37
41
  getVersionRange() {
@@ -7,6 +7,10 @@ import type { ConfluxGetAddress as HardwareConfluxGetAddress } from '@onekeyfe/h
7
7
  import type { ConfluxAddress, ConfluxGetAddressParams } from '../../types/api/confluxGetAddress';
8
8
 
9
9
  export default class ConfluxGetAddress extends BaseMethod<HardwareConfluxGetAddress[]> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  checkDeviceId = true;
11
15
 
12
16
  hasBundle = false;
@@ -7,6 +7,10 @@ import { formatAnyHex } from '../helpers/hexUtils';
7
7
  import type { ConfluxSignMessage as HardwareConfluxSignMessage } from '@onekeyfe/hd-transport';
8
8
 
9
9
  export default class ConfluxSignMessage extends BaseMethod<HardwareConfluxSignMessage> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  checkDeviceId = true;
11
15
 
12
16
  init() {
@@ -7,6 +7,10 @@ import { formatAnyHex } from '../helpers/hexUtils';
7
7
  import type { ConfluxSignMessageCIP23 as HardwareConfluxSignMessageCIP23 } from '@onekeyfe/hd-transport';
8
8
 
9
9
  export default class ConfluxSignMessageCIP23 extends BaseMethod<HardwareConfluxSignMessageCIP23> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  checkDeviceId = true;
11
15
 
12
16
  init() {
@@ -16,6 +16,10 @@ import type {
16
16
  import type { ConfluxSignTx, ConfluxTxRequest } from '@onekeyfe/hd-transport';
17
17
 
18
18
  export default class ConfluxSignTransaction extends BaseMethod {
19
+ getSupportedProtocols() {
20
+ return ['V1', 'V2'] as const;
21
+ }
22
+
19
23
  checkDeviceId = true;
20
24
 
21
25
  addressN: number[] = [];
@@ -37,7 +41,7 @@ export default class ConfluxSignTransaction extends BaseMethod {
37
41
 
38
42
  // check if transaction is valid
39
43
  const schema: SchemaParam[] = [
40
- { name: 'to', type: 'string', required: true },
44
+ { name: 'to', type: 'hexString', required: true },
41
45
  { name: 'value', type: 'hexString', required: true },
42
46
  { name: 'gasLimit', type: 'hexString', required: true },
43
47
  { name: 'gasPrice', type: 'hexString', required: true },
@@ -50,10 +54,7 @@ export default class ConfluxSignTransaction extends BaseMethod {
50
54
 
51
55
  validateParams(tx, schema);
52
56
 
53
- this.formattedTx = {
54
- ...formatAnyHex(tx),
55
- to: tx.to,
56
- };
57
+ this.formattedTx = formatAnyHex(tx);
57
58
  }
58
59
 
59
60
  processTxRequest = async (request: ConfluxTxRequest, data: string): Promise<ConfluxSignedTx> => {
@@ -6,6 +6,10 @@ import type { CosmosGetAddress as HardwareCosmosGetAddress } from '@onekeyfe/hd-
6
6
  import type { CosmosAddress, CosmosGetAddressParams } from '../../types';
7
7
 
8
8
  export default class CosmosGetAddress extends BaseMethod<HardwareCosmosGetAddress[]> {
9
+ getSupportedProtocols() {
10
+ return ['V1', 'V2'] as const;
11
+ }
12
+
9
13
  hasBundle = false;
10
14
 
11
15
  init() {
@@ -7,6 +7,10 @@ import { batchGetPublickeys } from '../helpers/batchGetPublickeys';
7
7
  import type { CosmosAddress, CosmosGetPublicKeyParams } from '../../types';
8
8
 
9
9
  export default class CosmosGetPublicKey extends BaseMethod<any> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  hasBundle = false;
11
15
 
12
16
  init() {
@@ -9,6 +9,10 @@ import type { CosmosSignTx as HardwareCosmosSignTx } from '@onekeyfe/hd-transpor
9
9
  import type { CosmosSignTransactionParams } from '../../types';
10
10
 
11
11
  export default class CosmosSignTransaction extends BaseMethod<HardwareCosmosSignTx> {
12
+ getSupportedProtocols() {
13
+ return ['V1', 'V2'] as const;
14
+ }
15
+
12
16
  hasBundle = false;
13
17
 
14
18
  init() {
@@ -3,6 +3,10 @@ import { BaseMethod } from '../BaseMethod';
3
3
  import type { Cancel } from '@onekeyfe/hd-transport';
4
4
 
5
5
  export default class DeviceCancel extends BaseMethod<Cancel> {
6
+ getSupportedProtocols() {
7
+ return ['V1', 'V2'] as const;
8
+ }
9
+
6
10
  init() {
7
11
  this.useDevicePassphraseState = false;
8
12
  this.unlockPolicy = 'none';
@@ -7,6 +7,10 @@ import { invalidParameter } from '../helpers/filesystemValidation';
7
7
  import type { ChangePin } from '@onekeyfe/hd-transport';
8
8
 
9
9
  export default class DeviceChangePin extends BaseMethod<ChangePin> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  init() {
11
15
  this.unlockPolicy = 'unlock-before-run';
12
16
  this.useDevicePassphraseState = false;
@@ -3,6 +3,10 @@ import { BaseMethod } from '../BaseMethod';
3
3
  import type { LockDevice } from '@onekeyfe/hd-transport';
4
4
 
5
5
  export default class DeviceLock extends BaseMethod<LockDevice> {
6
+ getSupportedProtocols() {
7
+ return ['V1', 'V2'] as const;
8
+ }
9
+
6
10
  init() {
7
11
  this.useDevicePassphraseState = false;
8
12
  this.unlockPolicy = 'none';
@@ -6,6 +6,10 @@ import type { RebootToBoardloaderParams } from '../../types/api/deviceRebootToBo
6
6
 
7
7
  // Reboot BoardLoader
8
8
  export default class DeviceRebootToBoardloader extends BaseMethod<RebootToBoardloaderParams> {
9
+ getSupportedProtocols() {
10
+ return ['V1', 'V2'] as const;
11
+ }
12
+
9
13
  init() {
10
14
  this.useDevicePassphraseState = false;
11
15
  this.skipForceUpdateCheck = true;
@@ -6,6 +6,10 @@ import type { RebootToBootloader } from '@onekeyfe/hd-transport';
6
6
 
7
7
  // Reboot BootLoader
8
8
  export default class DeviceRebootToBootloader extends BaseMethod<RebootToBootloader> {
9
+ getSupportedProtocols() {
10
+ return ['V1', 'V2'] as const;
11
+ }
12
+
9
13
  init() {
10
14
  this.useDevicePassphraseState = false;
11
15
  this.skipForceUpdateCheck = true;
@@ -73,6 +73,10 @@ const settingsPageForPayload = (
73
73
  };
74
74
 
75
75
  export default class DeviceSettings extends BaseMethod<ApplySettings> {
76
+ getSupportedProtocols() {
77
+ return ['V1', 'V2'] as const;
78
+ }
79
+
76
80
  init() {
77
81
  this.useDevicePassphraseState = false;
78
82
 
@@ -1,6 +1,10 @@
1
1
  import { BaseMethod } from '../BaseMethod';
2
2
 
3
3
  export default class DeviceSupportFeatures extends BaseMethod {
4
+ getSupportedProtocols() {
5
+ return ['V1', 'V2'] as const;
6
+ }
7
+
4
8
  init() {
5
9
  this.useDevicePassphraseState = false;
6
10
  this.skipForceUpdateCheck = true;
@@ -3,6 +3,10 @@ import { BaseMethod } from '../BaseMethod';
3
3
  import type { LockDevice } from '@onekeyfe/hd-transport';
4
4
 
5
5
  export default class DeviceUnlock extends BaseMethod<LockDevice> {
6
+ getSupportedProtocols() {
7
+ return ['V1', 'V2'] as const;
8
+ }
9
+
6
10
  init() {
7
11
  this.useDevicePassphraseState = false;
8
12
  this.unlockPolicy = 'none';
@@ -5,6 +5,10 @@ import { BaseMethod } from '../BaseMethod';
5
5
  import type { WipeDevice } from '@onekeyfe/hd-transport';
6
6
 
7
7
  export default class DeviceWipe extends BaseMethod<WipeDevice> {
8
+ getSupportedProtocols() {
9
+ return ['V1', 'V2'] as const;
10
+ }
11
+
8
12
  init() {
9
13
  this.unlockPolicy = 'unlock-before-run';
10
14
  this.useDevicePassphraseState = false;
@@ -18,6 +18,10 @@ const parseInitOptions = (payload?: {
18
18
  });
19
19
 
20
20
  export default class PreInitialize extends BaseMethod {
21
+ getSupportedProtocols() {
22
+ return ['V1', 'V2'] as const;
23
+ }
24
+
21
25
  init() {
22
26
  this.skipForceUpdateCheck = true;
23
27
  this.useDevicePassphraseState = false;
@@ -1,5 +1,3 @@
1
- import { createDeviceNotSupportMethodError } from '@onekeyfe/hd-shared';
2
-
3
1
  import { UI_REQUEST } from '../../constants/ui-request';
4
2
  import { serializedPath, validatePath } from '../helpers/pathUtils';
5
3
  import { BaseMethod } from '../BaseMethod';
@@ -49,10 +47,6 @@ export default class DnxGetAddress extends BaseMethod<HardwareDnxGetAddress[]> {
49
47
  }
50
48
 
51
49
  async run() {
52
- if (this.device.isProtocolV2()) {
53
- throw createDeviceNotSupportMethodError(this.name, this.device.getCurrentFirmwareType());
54
- }
55
-
56
50
  const responses: DnxAddress[] = [];
57
51
 
58
52
  for (let i = 0; i < this.params.length; i++) {
@@ -1,5 +1,3 @@
1
- import { createDeviceNotSupportMethodError } from '@onekeyfe/hd-shared';
2
-
3
1
  import { UI_REQUEST } from '../../constants/ui-request';
4
2
  import { serializedPath, validatePath } from '../helpers/pathUtils';
5
3
  import { BaseMethod } from '../BaseMethod';
@@ -118,10 +116,6 @@ export default class DnxSignTransaction extends BaseMethod<DnxSignTx> {
118
116
  }
119
117
 
120
118
  async run() {
121
- if (this.device.isProtocolV2()) {
122
- throw createDeviceNotSupportMethodError(this.name, this.device.getCurrentFirmwareType());
123
- }
124
-
125
119
  const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
126
120
 
127
121
  const res = await this.device.commands.typedCall('DnxSignTx', 'DnxInputRequest', {
@@ -10,6 +10,10 @@ import type { EVMAddress, EVMGetAddressParams } from '../../types';
10
10
  import type { EthereumGetAddressOneKey } from '@onekeyfe/hd-transport';
11
11
 
12
12
  export default class EvmGetAddress extends BaseMethod<EthereumGetAddressOneKey[]> {
13
+ getSupportedProtocols() {
14
+ return ['V1', 'V2'] as const;
15
+ }
16
+
13
17
  hasBundle = false;
14
18
 
15
19
  init() {
@@ -11,6 +11,10 @@ import type { EVMGetPublicKeyParams, EVMPublicKey } from '../../types';
11
11
  import type { EthereumGetPublicKey, EthereumGetPublicKeyOneKey } from '@onekeyfe/hd-transport';
12
12
 
13
13
  export default class EVMGetPublicKey extends BaseMethod<EthereumGetPublicKeyOneKey[]> {
14
+ getSupportedProtocols() {
15
+ return ['V1', 'V2'] as const;
16
+ }
17
+
14
18
  hasBundle = false;
15
19
 
16
20
  confirmShowOnOneKey = false;
@@ -10,6 +10,10 @@ import signMessageLegacyV1 from './legacyV1/signMessage';
10
10
  import type { EthereumSignMessageOneKey } from '@onekeyfe/hd-transport';
11
11
 
12
12
  export default class EVMSignMessage extends BaseMethod<EthereumSignMessageOneKey> {
13
+ getSupportedProtocols() {
14
+ return ['V1', 'V2'] as const;
15
+ }
16
+
13
17
  init() {
14
18
  this.checkDeviceId = true;
15
19
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -35,10 +35,6 @@ export default class EVMSignMessageEIP712 extends BaseMethod<EthereumSignMessage
35
35
 
36
36
  getVersionRange(): DeviceFirmwareRange {
37
37
  return {
38
- pro2: {
39
- min: '0.0.0',
40
- unsupported: true,
41
- },
42
38
  model_mini: {
43
39
  min: '2.1.9',
44
40
  },
@@ -49,13 +45,7 @@ export default class EVMSignMessageEIP712 extends BaseMethod<EthereumSignMessage
49
45
  }
50
46
 
51
47
  async run() {
52
- this.checkFeatureVersionLimit(
53
- () => true,
54
- () => this.getVersionRange(),
55
- {
56
- strictCheckDeviceSupport: true,
57
- }
58
- );
48
+ this.assertProtocolSupported(this.device.getProtocol(), this.device.getCurrentFirmwareType());
59
49
 
60
50
  const res = await this.device.commands.typedCall(
61
51
  'EthereumSignMessageEIP712',
@@ -18,6 +18,10 @@ import type {
18
18
  import type { SchemaParam } from '../helpers/paramsValidator';
19
19
 
20
20
  export default class EVMSignTransaction extends BaseMethod {
21
+ getSupportedProtocols() {
22
+ return ['V1', 'V2'] as const;
23
+ }
24
+
21
25
  addressN: number[] = [];
22
26
 
23
27
  isEIP1559 = false;
@@ -56,6 +56,10 @@ const MINI_MAX_ARRAY_TYPE_FIELDS = 24;
56
56
  const MINI_MAX_ARRAY_ELEMENTS = 24;
57
57
 
58
58
  export default class EVMSignTypedData extends BaseMethod<EVMSignTypedDataParams> {
59
+ getSupportedProtocols() {
60
+ return ['V1', 'V2'] as const;
61
+ }
62
+
59
63
  init() {
60
64
  this.checkDeviceId = true;
61
65
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -9,6 +9,10 @@ import verifyMessage from './latest/verifyMessage';
9
9
  import type { EthereumVerifyMessageOneKey } from '@onekeyfe/hd-transport';
10
10
 
11
11
  export default class EVMSignMessage extends BaseMethod<EthereumVerifyMessageOneKey> {
12
+ getSupportedProtocols() {
13
+ return ['V1', 'V2'] as const;
14
+ }
15
+
12
16
  init() {
13
17
  this.checkDeviceId = true;
14
18
  this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.NOT_INITIALIZE];
@@ -7,6 +7,10 @@ import type { FilecoinGetAddress as HardwareFilecoinGetAddress } from '@onekeyfe
7
7
  import type { FilecoinAddress, FilecoinGetAddressParams } from '../../types';
8
8
 
9
9
  export default class FilecoinGetAddress extends BaseMethod<HardwareFilecoinGetAddress[]> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  hasBundle = false;
11
15
 
12
16
  init() {
@@ -7,6 +7,10 @@ import type { FilecoinSignTransactionParams } from '../../types';
7
7
  import type { FilecoinSignTx as HardwareFilecoinSignTx } from '@onekeyfe/hd-transport';
8
8
 
9
9
  export default class FilecoinSignTransaction extends BaseMethod<HardwareFilecoinSignTx> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  hasBundle = false;
11
15
 
12
16
  init() {
@@ -111,7 +111,14 @@ const assertArtifactUrl = (value: unknown, label: string): string => {
111
111
  { firmwareUpdateCode: 'FirmwarePlanInvalid' }
112
112
  );
113
113
  }
114
- const parsed = new URL(raw);
114
+ let parsed: URL;
115
+ try {
116
+ parsed = new URL(raw);
117
+ } catch {
118
+ throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, `${label} URL is invalid`, {
119
+ firmwareUpdateCode: 'FirmwarePlanInvalid',
120
+ });
121
+ }
115
122
  if (
116
123
  parsed.protocol !== 'https:' ||
117
124
  parsed.port !== '' ||
package/src/api/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { default as testInitializeDeviceDuration } from './test/TestInitializeDeviceDuration';
2
+ export { default as testProtocolV2Ping } from './protocol-v2/Ping';
2
3
  export { default as preInitialize } from './device/PreInitialize';
3
4
 
4
5
  export { default as searchDevices } from './SearchDevices';
@@ -7,6 +7,10 @@ import type { KaspaGetAddress as HardwareKaspaGetAddress } from '@onekeyfe/hd-tr
7
7
  import type { KaspaAddress, KaspaGetAddressParams } from '../../types';
8
8
 
9
9
  export default class KaspaGetAddress extends BaseMethod<HardwareKaspaGetAddress[]> {
10
+ getSupportedProtocols() {
11
+ return ['V1', 'V2'] as const;
12
+ }
13
+
10
14
  hasBundle = false;
11
15
 
12
16
  init() {