@onekeyfe/hd-core 1.2.0-alpha.57 → 1.2.0-alpha.58

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 (596) hide show
  1. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +84 -2
  2. package/__tests__/DeviceCommands.test.ts +17 -6
  3. package/__tests__/core-initialization.test.ts +23 -0
  4. package/__tests__/device-connector-protocol.test.ts +81 -0
  5. package/__tests__/device-settings.test.ts +39 -18
  6. package/__tests__/protocol-v2-resources.test.ts +24 -0
  7. package/__tests__/protocol-v2.test.ts +49 -126
  8. package/__tests__/protocolV2FileWrite.test.ts +113 -0
  9. package/__tests__/public-pro2-api-boundary.test.ts +2 -98
  10. package/dist/api/FirmwareUpdateV4.d.ts +0 -1
  11. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  12. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  13. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  14. package/dist/api/device/DeviceVerify.d.ts.map +1 -1
  15. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +4 -2
  16. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  17. package/dist/api/helpers/protocolV2FileWrite.d.ts +7 -0
  18. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +1 -1
  19. package/dist/api/index.d.ts +0 -3
  20. package/dist/api/index.d.ts.map +1 -1
  21. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -1
  22. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -1
  23. package/dist/api/protocol-v2/helpers.d.ts +5 -15
  24. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  25. package/dist/api/stellar/StellarSignTransaction.d.ts +1 -1
  26. package/dist/api/utils.d.ts +1 -6
  27. package/dist/api/utils.d.ts.map +1 -1
  28. package/dist/core/index.d.ts +4 -10
  29. package/dist/core/index.d.ts.map +1 -1
  30. package/dist/data-manager/DataManager.d.ts +1 -0
  31. package/dist/data-manager/DataManager.d.ts.map +1 -1
  32. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  33. package/dist/device/DeviceCommands.d.ts.map +1 -1
  34. package/dist/device/DeviceConnector.d.ts +2 -1
  35. package/dist/device/DeviceConnector.d.ts.map +1 -1
  36. package/dist/index.d.ts +44 -723
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +499 -2953
  39. package/dist/inject.d.ts +2 -6
  40. package/dist/inject.d.ts.map +1 -1
  41. package/dist/types/api/index.d.ts +3 -176
  42. package/dist/types/api/index.d.ts.map +1 -1
  43. package/dist/types/api/protocolV2.d.ts +2 -8
  44. package/dist/types/api/protocolV2.d.ts.map +1 -1
  45. package/dist/utils/patch.d.ts +1 -1
  46. package/dist/utils/patch.d.ts.map +1 -1
  47. package/package.json +4 -4
  48. package/src/api/FirmwareUpdateV4.ts +39 -69
  49. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +3 -1
  50. package/src/api/device/DeviceSettings.ts +5 -4
  51. package/src/api/device/DeviceVerify.ts +0 -2
  52. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +12 -1
  53. package/src/api/helpers/protocolV2FileWrite.ts +192 -73
  54. package/src/api/index.ts +0 -3
  55. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +0 -3
  56. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +7 -6
  57. package/src/api/protocol-v2/helpers.ts +5 -152
  58. package/src/api/utils.ts +1 -46
  59. package/src/core/index.ts +16 -28
  60. package/src/data-manager/DataManager.ts +25 -4
  61. package/src/data-manager/TransportManager.ts +6 -0
  62. package/src/device/DeviceCommands.ts +20 -2
  63. package/src/device/DeviceConnector.ts +33 -13
  64. package/src/index.ts +0 -5
  65. package/src/inject.ts +7 -209
  66. package/src/types/api/index.ts +2 -288
  67. package/src/types/api/protocolV2.ts +2 -43
  68. package/__tests__/public-test-api-boundary.test.ts +0 -167
  69. package/dist/api/BixinBackupDevice.d.ts +0 -7
  70. package/dist/api/BixinBackupDevice.d.ts.map +0 -1
  71. package/dist/api/BixinLoadDevice.d.ts +0 -7
  72. package/dist/api/BixinLoadDevice.d.ts.map +0 -1
  73. package/dist/api/BixinMessageSE.d.ts +0 -8
  74. package/dist/api/BixinMessageSE.d.ts.map +0 -1
  75. package/dist/api/BixinVerifyDeviceRequest.d.ts +0 -8
  76. package/dist/api/BixinVerifyDeviceRequest.d.ts.map +0 -1
  77. package/dist/api/WebAuthnAddResidentCredential.d.ts +0 -8
  78. package/dist/api/WebAuthnAddResidentCredential.d.ts.map +0 -1
  79. package/dist/api/WebAuthnListResidentCredentials.d.ts +0 -8
  80. package/dist/api/WebAuthnListResidentCredentials.d.ts.map +0 -1
  81. package/dist/api/WebAuthnRemoveResidentCredential.d.ts +0 -8
  82. package/dist/api/WebAuthnRemoveResidentCredential.d.ts.map +0 -1
  83. package/dist/api/binance/BinanceGetAddress.d.ts +0 -8
  84. package/dist/api/binance/BinanceGetAddress.d.ts.map +0 -1
  85. package/dist/api/binance/BinanceGetPublicKey.d.ts +0 -8
  86. package/dist/api/binance/BinanceGetPublicKey.d.ts.map +0 -1
  87. package/dist/api/binance/BinanceSignTx.d.ts +0 -7
  88. package/dist/api/binance/BinanceSignTx.d.ts.map +0 -1
  89. package/dist/api/btc/BTCAuthorizeCoinJoin.d.ts +0 -7
  90. package/dist/api/btc/BTCAuthorizeCoinJoin.d.ts.map +0 -1
  91. package/dist/api/btc/BTCGetOwnershipId.d.ts +0 -7
  92. package/dist/api/btc/BTCGetOwnershipId.d.ts.map +0 -1
  93. package/dist/api/btc/BTCGetOwnershipProof.d.ts +0 -7
  94. package/dist/api/btc/BTCGetOwnershipProof.d.ts.map +0 -1
  95. package/dist/api/crypto/CryptoBatchGetPublickeys.d.ts +0 -8
  96. package/dist/api/crypto/CryptoBatchGetPublickeys.d.ts.map +0 -1
  97. package/dist/api/crypto/CryptoCipherKeyValue.d.ts +0 -8
  98. package/dist/api/crypto/CryptoCipherKeyValue.d.ts.map +0 -1
  99. package/dist/api/crypto/CryptoCosiCommit.d.ts +0 -8
  100. package/dist/api/crypto/CryptoCosiCommit.d.ts.map +0 -1
  101. package/dist/api/crypto/CryptoCosiSign.d.ts +0 -8
  102. package/dist/api/crypto/CryptoCosiSign.d.ts.map +0 -1
  103. package/dist/api/crypto/CryptoGetECDHSessionKey.d.ts +0 -8
  104. package/dist/api/crypto/CryptoGetECDHSessionKey.d.ts.map +0 -1
  105. package/dist/api/crypto/CryptoSignIdentity.d.ts +0 -8
  106. package/dist/api/crypto/CryptoSignIdentity.d.ts.map +0 -1
  107. package/dist/api/debug/DebugLinkDecision.d.ts +0 -7
  108. package/dist/api/debug/DebugLinkDecision.d.ts.map +0 -1
  109. package/dist/api/debug/DebugLinkEraseSdCard.d.ts +0 -7
  110. package/dist/api/debug/DebugLinkEraseSdCard.d.ts.map +0 -1
  111. package/dist/api/debug/DebugLinkFlashErase.d.ts +0 -7
  112. package/dist/api/debug/DebugLinkFlashErase.d.ts.map +0 -1
  113. package/dist/api/debug/DebugLinkGetState.d.ts +0 -7
  114. package/dist/api/debug/DebugLinkGetState.d.ts.map +0 -1
  115. package/dist/api/debug/DebugLinkMemoryRead.d.ts +0 -7
  116. package/dist/api/debug/DebugLinkMemoryRead.d.ts.map +0 -1
  117. package/dist/api/debug/DebugLinkMemoryWrite.d.ts +0 -7
  118. package/dist/api/debug/DebugLinkMemoryWrite.d.ts.map +0 -1
  119. package/dist/api/debug/DebugLinkRecordScreen.d.ts +0 -7
  120. package/dist/api/debug/DebugLinkRecordScreen.d.ts.map +0 -1
  121. package/dist/api/debug/DebugLinkReseedRandom.d.ts +0 -7
  122. package/dist/api/debug/DebugLinkReseedRandom.d.ts.map +0 -1
  123. package/dist/api/debug/DebugLinkStop.d.ts +0 -7
  124. package/dist/api/debug/DebugLinkStop.d.ts.map +0 -1
  125. package/dist/api/debug/DebugLinkWatchLayout.d.ts +0 -7
  126. package/dist/api/debug/DebugLinkWatchLayout.d.ts.map +0 -1
  127. package/dist/api/emmc/EmmcDirList.d.ts +0 -7
  128. package/dist/api/emmc/EmmcDirList.d.ts.map +0 -1
  129. package/dist/api/emmc/EmmcDirMake.d.ts +0 -7
  130. package/dist/api/emmc/EmmcDirMake.d.ts.map +0 -1
  131. package/dist/api/emmc/EmmcDirRemove.d.ts +0 -7
  132. package/dist/api/emmc/EmmcDirRemove.d.ts.map +0 -1
  133. package/dist/api/emmc/EmmcFileDelete.d.ts +0 -7
  134. package/dist/api/emmc/EmmcFileDelete.d.ts.map +0 -1
  135. package/dist/api/emmc/EmmcFileRead.d.ts +0 -7
  136. package/dist/api/emmc/EmmcFileRead.d.ts.map +0 -1
  137. package/dist/api/emmc/EmmcFileWrite.d.ts +0 -7
  138. package/dist/api/emmc/EmmcFileWrite.d.ts.map +0 -1
  139. package/dist/api/emmc/EmmcFixPermission.d.ts +0 -7
  140. package/dist/api/emmc/EmmcFixPermission.d.ts.map +0 -1
  141. package/dist/api/emmc/EmmcPathInfo.d.ts +0 -7
  142. package/dist/api/emmc/EmmcPathInfo.d.ts.map +0 -1
  143. package/dist/api/eos/EosGetPublicKey.d.ts +0 -8
  144. package/dist/api/eos/EosGetPublicKey.d.ts.map +0 -1
  145. package/dist/api/eos/EosSignTx.d.ts +0 -12
  146. package/dist/api/eos/EosSignTx.d.ts.map +0 -1
  147. package/dist/api/evmTrezor/EVMGetAddress.d.ts +0 -10
  148. package/dist/api/evmTrezor/EVMGetAddress.d.ts.map +0 -1
  149. package/dist/api/evmTrezor/EVMGetPublicKey.d.ts +0 -16
  150. package/dist/api/evmTrezor/EVMGetPublicKey.d.ts.map +0 -1
  151. package/dist/api/evmTrezor/EVMSignMessage.d.ts +0 -7
  152. package/dist/api/evmTrezor/EVMSignMessage.d.ts.map +0 -1
  153. package/dist/api/evmTrezor/EVMSignTransaction.d.ts +0 -15
  154. package/dist/api/evmTrezor/EVMSignTransaction.d.ts.map +0 -1
  155. package/dist/api/evmTrezor/EVMSignTypedData.d.ts +0 -43
  156. package/dist/api/evmTrezor/EVMSignTypedData.d.ts.map +0 -1
  157. package/dist/api/evmTrezor/EVMVerifyMessage.d.ts +0 -7
  158. package/dist/api/evmTrezor/EVMVerifyMessage.d.ts.map +0 -1
  159. package/dist/api/evmTrezor/legacyV1/getAddress.d.ts +0 -6
  160. package/dist/api/evmTrezor/legacyV1/getAddress.d.ts.map +0 -1
  161. package/dist/api/evmTrezor/legacyV1/getPublicKey.d.ts +0 -6
  162. package/dist/api/evmTrezor/legacyV1/getPublicKey.d.ts.map +0 -1
  163. package/dist/api/evmTrezor/legacyV1/signMessage.d.ts +0 -6
  164. package/dist/api/evmTrezor/legacyV1/signMessage.d.ts.map +0 -1
  165. package/dist/api/evmTrezor/legacyV1/signTransaction.d.ts +0 -9
  166. package/dist/api/evmTrezor/legacyV1/signTransaction.d.ts.map +0 -1
  167. package/dist/api/evmTrezor/legacyV1/signTypedData.d.ts +0 -10
  168. package/dist/api/evmTrezor/legacyV1/signTypedData.d.ts.map +0 -1
  169. package/dist/api/evmTrezor/legacyV1/signTypedHash.d.ts +0 -11
  170. package/dist/api/evmTrezor/legacyV1/signTypedHash.d.ts.map +0 -1
  171. package/dist/api/evmTrezor/legacyV1/verifyMessage.d.ts +0 -6
  172. package/dist/api/evmTrezor/legacyV1/verifyMessage.d.ts.map +0 -1
  173. package/dist/api/extensionMethodNames.d.ts +0 -3
  174. package/dist/api/extensionMethodNames.d.ts.map +0 -1
  175. package/dist/api/factoryMethods.d.ts +0 -3
  176. package/dist/api/factoryMethods.d.ts.map +0 -1
  177. package/dist/api/firmware/FirmwareErase.d.ts +0 -12
  178. package/dist/api/firmware/FirmwareErase.d.ts.map +0 -1
  179. package/dist/api/firmware/FirmwareEraseEx.d.ts +0 -12
  180. package/dist/api/firmware/FirmwareEraseEx.d.ts.map +0 -1
  181. package/dist/api/firmware/FirmwareUpdateEmmcTest.d.ts +0 -7
  182. package/dist/api/firmware/FirmwareUpdateEmmcTest.d.ts.map +0 -1
  183. package/dist/api/firmware/FirmwareUploadTest.d.ts +0 -7
  184. package/dist/api/firmware/FirmwareUploadTest.d.ts.map +0 -1
  185. package/dist/api/firmware/Reboot.d.ts +0 -7
  186. package/dist/api/firmware/Reboot.d.ts.map +0 -1
  187. package/dist/api/firmware/SelfTest.d.ts +0 -7
  188. package/dist/api/firmware/SelfTest.d.ts.map +0 -1
  189. package/dist/api/manager/DeviceCancelAuthorization.d.ts +0 -7
  190. package/dist/api/manager/DeviceCancelAuthorization.d.ts.map +0 -1
  191. package/dist/api/manager/DeviceChangeWipeCode.d.ts +0 -7
  192. package/dist/api/manager/DeviceChangeWipeCode.d.ts.map +0 -1
  193. package/dist/api/manager/DeviceDoPreauthorized.d.ts +0 -7
  194. package/dist/api/manager/DeviceDoPreauthorized.d.ts.map +0 -1
  195. package/dist/api/manager/DeviceEndSession.d.ts +0 -7
  196. package/dist/api/manager/DeviceEndSession.d.ts.map +0 -1
  197. package/dist/api/manager/DeviceGetEntropy.d.ts +0 -7
  198. package/dist/api/manager/DeviceGetEntropy.d.ts.map +0 -1
  199. package/dist/api/manager/DeviceGetFirmwareHash.d.ts +0 -7
  200. package/dist/api/manager/DeviceGetFirmwareHash.d.ts.map +0 -1
  201. package/dist/api/manager/DeviceInfoSettings.d.ts +0 -7
  202. package/dist/api/manager/DeviceInfoSettings.d.ts.map +0 -1
  203. package/dist/api/manager/DeviceLoad.d.ts +0 -7
  204. package/dist/api/manager/DeviceLoad.d.ts.map +0 -1
  205. package/dist/api/manager/DevicePing.d.ts +0 -7
  206. package/dist/api/manager/DevicePing.d.ts.map +0 -1
  207. package/dist/api/manager/DeviceReadSEPublicCert.d.ts +0 -7
  208. package/dist/api/manager/DeviceReadSEPublicCert.d.ts.map +0 -1
  209. package/dist/api/manager/DeviceSESignMessage.d.ts +0 -7
  210. package/dist/api/manager/DeviceSESignMessage.d.ts.map +0 -1
  211. package/dist/api/manager/DeviceSdProtect.d.ts +0 -7
  212. package/dist/api/manager/DeviceSdProtect.d.ts.map +0 -1
  213. package/dist/api/manager/DeviceSpiFlashRead.d.ts +0 -7
  214. package/dist/api/manager/DeviceSpiFlashRead.d.ts.map +0 -1
  215. package/dist/api/manager/DeviceSpiFlashWrite.d.ts +0 -7
  216. package/dist/api/manager/DeviceSpiFlashWrite.d.ts.map +0 -1
  217. package/dist/api/manager/DeviceUnlockPath.d.ts +0 -7
  218. package/dist/api/manager/DeviceUnlockPath.d.ts.map +0 -1
  219. package/dist/api/manager/DeviceWriteSEPrivateKey.d.ts +0 -7
  220. package/dist/api/manager/DeviceWriteSEPrivateKey.d.ts.map +0 -1
  221. package/dist/api/manager/DeviceWriteSEPublicCert.d.ts +0 -7
  222. package/dist/api/manager/DeviceWriteSEPublicCert.d.ts.map +0 -1
  223. package/dist/api/manager/GetDeviceInfoSettings.d.ts +0 -7
  224. package/dist/api/manager/GetDeviceInfoSettings.d.ts.map +0 -1
  225. package/dist/api/manager/GetPublicKeyMultiple.d.ts +0 -7
  226. package/dist/api/manager/GetPublicKeyMultiple.d.ts.map +0 -1
  227. package/dist/api/manager/ListResDir.d.ts +0 -7
  228. package/dist/api/manager/ListResDir.d.ts.map +0 -1
  229. package/dist/api/manager/NFTWriteData.d.ts +0 -7
  230. package/dist/api/manager/NFTWriteData.d.ts.map +0 -1
  231. package/dist/api/manager/NFTWriteInfo.d.ts +0 -7
  232. package/dist/api/manager/NFTWriteInfo.d.ts.map +0 -1
  233. package/dist/api/manager/ReadSEPublicKey.d.ts +0 -7
  234. package/dist/api/manager/ReadSEPublicKey.d.ts.map +0 -1
  235. package/dist/api/manager/ResourceUpdate.d.ts +0 -6
  236. package/dist/api/manager/ResourceUpdate.d.ts.map +0 -1
  237. package/dist/api/methodExtension.d.ts +0 -13
  238. package/dist/api/methodExtension.d.ts.map +0 -1
  239. package/dist/api/monero/MoneroGetAddress.d.ts +0 -9
  240. package/dist/api/monero/MoneroGetAddress.d.ts.map +0 -1
  241. package/dist/api/monero/MoneroGetWatchKey.d.ts +0 -8
  242. package/dist/api/monero/MoneroGetWatchKey.d.ts.map +0 -1
  243. package/dist/api/nem/NEMDecryptMessage.d.ts +0 -8
  244. package/dist/api/nem/NEMDecryptMessage.d.ts.map +0 -1
  245. package/dist/api/protocol-v2/DeviceFactoryCertificateRead.d.ts +0 -7
  246. package/dist/api/protocol-v2/DeviceFactoryCertificateRead.d.ts.map +0 -1
  247. package/dist/api/protocol-v2/DeviceFactoryCertificateWrite.d.ts +0 -8
  248. package/dist/api/protocol-v2/DeviceFactoryCertificateWrite.d.ts.map +0 -1
  249. package/dist/api/protocol-v2/DeviceFactoryChallengeSign.d.ts +0 -8
  250. package/dist/api/protocol-v2/DeviceFactoryChallengeSign.d.ts.map +0 -1
  251. package/dist/api/testMethods.d.ts +0 -82
  252. package/dist/api/testMethods.d.ts.map +0 -1
  253. package/dist/api/tezos/TezosGetAddress.d.ts +0 -9
  254. package/dist/api/tezos/TezosGetAddress.d.ts.map +0 -1
  255. package/dist/api/tezos/TezosGetPublicKey.d.ts +0 -8
  256. package/dist/api/tezos/TezosGetPublicKey.d.ts.map +0 -1
  257. package/dist/api/tezos/TezosSignTx.d.ts +0 -12
  258. package/dist/api/tezos/TezosSignTx.d.ts.map +0 -1
  259. package/dist/types/api/binanceGetAddress.d.ts +0 -11
  260. package/dist/types/api/binanceGetAddress.d.ts.map +0 -1
  261. package/dist/types/api/binanceGetPublicKey.d.ts +0 -11
  262. package/dist/types/api/binanceGetPublicKey.d.ts.map +0 -1
  263. package/dist/types/api/binanceSignTx.d.ts +0 -7
  264. package/dist/types/api/binanceSignTx.d.ts.map +0 -1
  265. package/dist/types/api/bixinBackupDevice.d.ts +0 -4
  266. package/dist/types/api/bixinBackupDevice.d.ts.map +0 -1
  267. package/dist/types/api/bixinLoadDevice.d.ts +0 -4
  268. package/dist/types/api/bixinLoadDevice.d.ts.map +0 -1
  269. package/dist/types/api/bixinMessageSE.d.ts +0 -4
  270. package/dist/types/api/bixinMessageSE.d.ts.map +0 -1
  271. package/dist/types/api/bixinVerifyDeviceRequest.d.ts +0 -4
  272. package/dist/types/api/bixinVerifyDeviceRequest.d.ts.map +0 -1
  273. package/dist/types/api/btcAuthorizeCoinJoin.d.ts +0 -13
  274. package/dist/types/api/btcAuthorizeCoinJoin.d.ts.map +0 -1
  275. package/dist/types/api/btcGetOwnershipId.d.ts +0 -10
  276. package/dist/types/api/btcGetOwnershipId.d.ts.map +0 -1
  277. package/dist/types/api/btcGetOwnershipProof.d.ts +0 -13
  278. package/dist/types/api/btcGetOwnershipProof.d.ts.map +0 -1
  279. package/dist/types/api/cryptoBatchGetPublickeys.d.ts +0 -12
  280. package/dist/types/api/cryptoBatchGetPublickeys.d.ts.map +0 -1
  281. package/dist/types/api/cryptoCipherKeyValue.d.ts +0 -13
  282. package/dist/types/api/cryptoCipherKeyValue.d.ts.map +0 -1
  283. package/dist/types/api/cryptoCosiCommit.d.ts +0 -8
  284. package/dist/types/api/cryptoCosiCommit.d.ts.map +0 -1
  285. package/dist/types/api/cryptoCosiSign.d.ts +0 -10
  286. package/dist/types/api/cryptoCosiSign.d.ts.map +0 -1
  287. package/dist/types/api/cryptoGetECDHSessionKey.d.ts +0 -4
  288. package/dist/types/api/cryptoGetECDHSessionKey.d.ts.map +0 -1
  289. package/dist/types/api/cryptoSignIdentity.d.ts +0 -4
  290. package/dist/types/api/cryptoSignIdentity.d.ts.map +0 -1
  291. package/dist/types/api/debugLinkDecision.d.ts +0 -4
  292. package/dist/types/api/debugLinkDecision.d.ts.map +0 -1
  293. package/dist/types/api/debugLinkEraseSdCard.d.ts +0 -4
  294. package/dist/types/api/debugLinkEraseSdCard.d.ts.map +0 -1
  295. package/dist/types/api/debugLinkFlashErase.d.ts +0 -4
  296. package/dist/types/api/debugLinkFlashErase.d.ts.map +0 -1
  297. package/dist/types/api/debugLinkGetState.d.ts +0 -4
  298. package/dist/types/api/debugLinkGetState.d.ts.map +0 -1
  299. package/dist/types/api/debugLinkMemoryRead.d.ts +0 -4
  300. package/dist/types/api/debugLinkMemoryRead.d.ts.map +0 -1
  301. package/dist/types/api/debugLinkMemoryWrite.d.ts +0 -4
  302. package/dist/types/api/debugLinkMemoryWrite.d.ts.map +0 -1
  303. package/dist/types/api/debugLinkRecordScreen.d.ts +0 -4
  304. package/dist/types/api/debugLinkRecordScreen.d.ts.map +0 -1
  305. package/dist/types/api/debugLinkReseedRandom.d.ts +0 -4
  306. package/dist/types/api/debugLinkReseedRandom.d.ts.map +0 -1
  307. package/dist/types/api/debugLinkStop.d.ts +0 -4
  308. package/dist/types/api/debugLinkStop.d.ts.map +0 -1
  309. package/dist/types/api/debugLinkWatchLayout.d.ts +0 -4
  310. package/dist/types/api/debugLinkWatchLayout.d.ts.map +0 -1
  311. package/dist/types/api/deviceCancelAuthorization.d.ts +0 -4
  312. package/dist/types/api/deviceCancelAuthorization.d.ts.map +0 -1
  313. package/dist/types/api/deviceChangeWipeCode.d.ts +0 -4
  314. package/dist/types/api/deviceChangeWipeCode.d.ts.map +0 -1
  315. package/dist/types/api/deviceDoPreauthorized.d.ts +0 -4
  316. package/dist/types/api/deviceDoPreauthorized.d.ts.map +0 -1
  317. package/dist/types/api/deviceEndSession.d.ts +0 -4
  318. package/dist/types/api/deviceEndSession.d.ts.map +0 -1
  319. package/dist/types/api/deviceGetEntropy.d.ts +0 -4
  320. package/dist/types/api/deviceGetEntropy.d.ts.map +0 -1
  321. package/dist/types/api/deviceGetFirmwareHash.d.ts +0 -4
  322. package/dist/types/api/deviceGetFirmwareHash.d.ts.map +0 -1
  323. package/dist/types/api/deviceGetInfo.d.ts +0 -4
  324. package/dist/types/api/deviceGetInfo.d.ts.map +0 -1
  325. package/dist/types/api/deviceInfoSettings.d.ts +0 -4
  326. package/dist/types/api/deviceInfoSettings.d.ts.map +0 -1
  327. package/dist/types/api/deviceLoad.d.ts +0 -16
  328. package/dist/types/api/deviceLoad.d.ts.map +0 -1
  329. package/dist/types/api/devicePing.d.ts +0 -4
  330. package/dist/types/api/devicePing.d.ts.map +0 -1
  331. package/dist/types/api/deviceReadSEPublicCert.d.ts +0 -4
  332. package/dist/types/api/deviceReadSEPublicCert.d.ts.map +0 -1
  333. package/dist/types/api/deviceSESignMessage.d.ts +0 -4
  334. package/dist/types/api/deviceSESignMessage.d.ts.map +0 -1
  335. package/dist/types/api/deviceSdProtect.d.ts +0 -4
  336. package/dist/types/api/deviceSdProtect.d.ts.map +0 -1
  337. package/dist/types/api/deviceSpiFlashRead.d.ts +0 -4
  338. package/dist/types/api/deviceSpiFlashRead.d.ts.map +0 -1
  339. package/dist/types/api/deviceSpiFlashWrite.d.ts +0 -4
  340. package/dist/types/api/deviceSpiFlashWrite.d.ts.map +0 -1
  341. package/dist/types/api/deviceUnlockPath.d.ts +0 -11
  342. package/dist/types/api/deviceUnlockPath.d.ts.map +0 -1
  343. package/dist/types/api/deviceWriteSEPrivateKey.d.ts +0 -4
  344. package/dist/types/api/deviceWriteSEPrivateKey.d.ts.map +0 -1
  345. package/dist/types/api/deviceWriteSEPublicCert.d.ts +0 -4
  346. package/dist/types/api/deviceWriteSEPublicCert.d.ts.map +0 -1
  347. package/dist/types/api/emmcDirList.d.ts +0 -4
  348. package/dist/types/api/emmcDirList.d.ts.map +0 -1
  349. package/dist/types/api/emmcDirMake.d.ts +0 -4
  350. package/dist/types/api/emmcDirMake.d.ts.map +0 -1
  351. package/dist/types/api/emmcDirRemove.d.ts +0 -4
  352. package/dist/types/api/emmcDirRemove.d.ts.map +0 -1
  353. package/dist/types/api/emmcFileDelete.d.ts +0 -4
  354. package/dist/types/api/emmcFileDelete.d.ts.map +0 -1
  355. package/dist/types/api/emmcFileRead.d.ts +0 -4
  356. package/dist/types/api/emmcFileRead.d.ts.map +0 -1
  357. package/dist/types/api/emmcFileWrite.d.ts +0 -4
  358. package/dist/types/api/emmcFileWrite.d.ts.map +0 -1
  359. package/dist/types/api/emmcFixPermission.d.ts +0 -4
  360. package/dist/types/api/emmcFixPermission.d.ts.map +0 -1
  361. package/dist/types/api/emmcPathInfo.d.ts +0 -4
  362. package/dist/types/api/emmcPathInfo.d.ts.map +0 -1
  363. package/dist/types/api/eosGetPublicKey.d.ts +0 -8
  364. package/dist/types/api/eosGetPublicKey.d.ts.map +0 -1
  365. package/dist/types/api/eosSignTx.d.ts +0 -7
  366. package/dist/types/api/eosSignTx.d.ts.map +0 -1
  367. package/dist/types/api/evmGetAddressTrezor.d.ts +0 -15
  368. package/dist/types/api/evmGetAddressTrezor.d.ts.map +0 -1
  369. package/dist/types/api/evmGetPublicKeyTrezor.d.ts +0 -20
  370. package/dist/types/api/evmGetPublicKeyTrezor.d.ts.map +0 -1
  371. package/dist/types/api/evmSignMessageTrezor.d.ts +0 -9
  372. package/dist/types/api/evmSignMessageTrezor.d.ts.map +0 -1
  373. package/dist/types/api/evmSignTransactionTrezor.d.ts +0 -40
  374. package/dist/types/api/evmSignTransactionTrezor.d.ts.map +0 -1
  375. package/dist/types/api/evmSignTypedDataTrezor.d.ts +0 -34
  376. package/dist/types/api/evmSignTypedDataTrezor.d.ts.map +0 -1
  377. package/dist/types/api/evmVerifyMessageTrezor.d.ts +0 -10
  378. package/dist/types/api/evmVerifyMessageTrezor.d.ts.map +0 -1
  379. package/dist/types/api/firmwareErase.d.ts +0 -4
  380. package/dist/types/api/firmwareErase.d.ts.map +0 -1
  381. package/dist/types/api/firmwareEraseEx.d.ts +0 -4
  382. package/dist/types/api/firmwareEraseEx.d.ts.map +0 -1
  383. package/dist/types/api/firmwareUpdateEmmcTest.d.ts +0 -4
  384. package/dist/types/api/firmwareUpdateEmmcTest.d.ts.map +0 -1
  385. package/dist/types/api/firmwareUploadTest.d.ts +0 -4
  386. package/dist/types/api/firmwareUploadTest.d.ts.map +0 -1
  387. package/dist/types/api/getPublicKeyMultiple.d.ts +0 -4
  388. package/dist/types/api/getPublicKeyMultiple.d.ts.map +0 -1
  389. package/dist/types/api/listResDir.d.ts +0 -4
  390. package/dist/types/api/listResDir.d.ts.map +0 -1
  391. package/dist/types/api/moneroGetAddress.d.ts +0 -14
  392. package/dist/types/api/moneroGetAddress.d.ts.map +0 -1
  393. package/dist/types/api/moneroGetWatchKey.d.ts +0 -14
  394. package/dist/types/api/moneroGetWatchKey.d.ts.map +0 -1
  395. package/dist/types/api/nemDecryptMessage.d.ts +0 -10
  396. package/dist/types/api/nemDecryptMessage.d.ts.map +0 -1
  397. package/dist/types/api/nftWriteData.d.ts +0 -4
  398. package/dist/types/api/nftWriteData.d.ts.map +0 -1
  399. package/dist/types/api/nftWriteInfo.d.ts +0 -4
  400. package/dist/types/api/nftWriteInfo.d.ts.map +0 -1
  401. package/dist/types/api/readSEPublicKey.d.ts +0 -4
  402. package/dist/types/api/readSEPublicKey.d.ts.map +0 -1
  403. package/dist/types/api/reboot.d.ts +0 -4
  404. package/dist/types/api/reboot.d.ts.map +0 -1
  405. package/dist/types/api/resourceUpdate.d.ts +0 -7
  406. package/dist/types/api/resourceUpdate.d.ts.map +0 -1
  407. package/dist/types/api/selfTest.d.ts +0 -4
  408. package/dist/types/api/selfTest.d.ts.map +0 -1
  409. package/dist/types/api/tezosGetAddress.d.ts +0 -14
  410. package/dist/types/api/tezosGetAddress.d.ts.map +0 -1
  411. package/dist/types/api/tezosGetPublicKey.d.ts +0 -14
  412. package/dist/types/api/tezosGetPublicKey.d.ts.map +0 -1
  413. package/dist/types/api/tezosSignTx.d.ts +0 -7
  414. package/dist/types/api/tezosSignTx.d.ts.map +0 -1
  415. package/dist/types/api/webAuthnAddResidentCredential.d.ts +0 -4
  416. package/dist/types/api/webAuthnAddResidentCredential.d.ts.map +0 -1
  417. package/dist/types/api/webAuthnListResidentCredentials.d.ts +0 -4
  418. package/dist/types/api/webAuthnListResidentCredentials.d.ts.map +0 -1
  419. package/dist/types/api/webAuthnRemoveResidentCredential.d.ts +0 -4
  420. package/dist/types/api/webAuthnRemoveResidentCredential.d.ts.map +0 -1
  421. package/src/api/BixinBackupDevice.ts +0 -15
  422. package/src/api/BixinLoadDevice.ts +0 -22
  423. package/src/api/BixinMessageSE.ts +0 -22
  424. package/src/api/BixinVerifyDeviceRequest.ts +0 -22
  425. package/src/api/WebAuthnAddResidentCredential.ts +0 -22
  426. package/src/api/WebAuthnListResidentCredentials.ts +0 -24
  427. package/src/api/WebAuthnRemoveResidentCredential.ts +0 -22
  428. package/src/api/binance/BinanceGetAddress.ts +0 -26
  429. package/src/api/binance/BinanceGetPublicKey.ts +0 -26
  430. package/src/api/binance/BinanceSignTx.ts +0 -35
  431. package/src/api/btc/BTCAuthorizeCoinJoin.ts +0 -37
  432. package/src/api/btc/BTCGetOwnershipId.ts +0 -34
  433. package/src/api/btc/BTCGetOwnershipProof.ts +0 -37
  434. package/src/api/crypto/CryptoBatchGetPublickeys.ts +0 -30
  435. package/src/api/crypto/CryptoCipherKeyValue.ts +0 -29
  436. package/src/api/crypto/CryptoCosiCommit.ts +0 -24
  437. package/src/api/crypto/CryptoCosiSign.ts +0 -26
  438. package/src/api/crypto/CryptoGetECDHSessionKey.ts +0 -24
  439. package/src/api/crypto/CryptoSignIdentity.ts +0 -25
  440. package/src/api/debug/DebugLinkDecision.ts +0 -25
  441. package/src/api/debug/DebugLinkEraseSdCard.ts +0 -23
  442. package/src/api/debug/DebugLinkFlashErase.ts +0 -23
  443. package/src/api/debug/DebugLinkGetState.ts +0 -21
  444. package/src/api/debug/DebugLinkMemoryRead.ts +0 -24
  445. package/src/api/debug/DebugLinkMemoryWrite.ts +0 -25
  446. package/src/api/debug/DebugLinkRecordScreen.ts +0 -23
  447. package/src/api/debug/DebugLinkReseedRandom.ts +0 -23
  448. package/src/api/debug/DebugLinkStop.ts +0 -25
  449. package/src/api/debug/DebugLinkWatchLayout.ts +0 -23
  450. package/src/api/emmc/EmmcDirList.ts +0 -20
  451. package/src/api/emmc/EmmcDirMake.ts +0 -20
  452. package/src/api/emmc/EmmcDirRemove.ts +0 -20
  453. package/src/api/emmc/EmmcFileDelete.ts +0 -20
  454. package/src/api/emmc/EmmcFileRead.ts +0 -21
  455. package/src/api/emmc/EmmcFileWrite.ts +0 -23
  456. package/src/api/emmc/EmmcFixPermission.ts +0 -17
  457. package/src/api/emmc/EmmcPathInfo.ts +0 -20
  458. package/src/api/eos/EosGetPublicKey.ts +0 -26
  459. package/src/api/eos/EosSignTx.ts +0 -40
  460. package/src/api/evmTrezor/EVMGetAddress.ts +0 -75
  461. package/src/api/evmTrezor/EVMGetPublicKey.ts +0 -106
  462. package/src/api/evmTrezor/EVMSignMessage.ts +0 -40
  463. package/src/api/evmTrezor/EVMSignTransaction.ts +0 -83
  464. package/src/api/evmTrezor/EVMSignTypedData.ts +0 -366
  465. package/src/api/evmTrezor/EVMVerifyMessage.ts +0 -37
  466. package/src/api/evmTrezor/legacyV1/getAddress.ts +0 -16
  467. package/src/api/evmTrezor/legacyV1/getPublicKey.ts +0 -20
  468. package/src/api/evmTrezor/legacyV1/signMessage.ts +0 -22
  469. package/src/api/evmTrezor/legacyV1/signTransaction.ts +0 -24
  470. package/src/api/evmTrezor/legacyV1/signTypedData.ts +0 -36
  471. package/src/api/evmTrezor/legacyV1/signTypedHash.ts +0 -48
  472. package/src/api/evmTrezor/legacyV1/verifyMessage.ts +0 -19
  473. package/src/api/extensionMethodNames.ts +0 -88
  474. package/src/api/factoryMethods.ts +0 -2
  475. package/src/api/firmware/FirmwareErase.ts +0 -18
  476. package/src/api/firmware/FirmwareEraseEx.ts +0 -18
  477. package/src/api/firmware/FirmwareUpdateEmmcTest.ts +0 -18
  478. package/src/api/firmware/FirmwareUploadTest.ts +0 -17
  479. package/src/api/firmware/Reboot.ts +0 -17
  480. package/src/api/firmware/SelfTest.ts +0 -17
  481. package/src/api/manager/DeviceCancelAuthorization.ts +0 -15
  482. package/src/api/manager/DeviceChangeWipeCode.ts +0 -19
  483. package/src/api/manager/DeviceDoPreauthorized.ts +0 -15
  484. package/src/api/manager/DeviceEndSession.ts +0 -19
  485. package/src/api/manager/DeviceGetEntropy.ts +0 -19
  486. package/src/api/manager/DeviceGetFirmwareHash.ts +0 -23
  487. package/src/api/manager/DeviceInfoSettings.ts +0 -23
  488. package/src/api/manager/DeviceLoad.ts +0 -27
  489. package/src/api/manager/DevicePing.ts +0 -19
  490. package/src/api/manager/DeviceReadSEPublicCert.ts +0 -18
  491. package/src/api/manager/DeviceSESignMessage.ts +0 -23
  492. package/src/api/manager/DeviceSdProtect.ts +0 -18
  493. package/src/api/manager/DeviceSpiFlashRead.ts +0 -22
  494. package/src/api/manager/DeviceSpiFlashWrite.ts +0 -22
  495. package/src/api/manager/DeviceUnlockPath.ts +0 -26
  496. package/src/api/manager/DeviceWriteSEPrivateKey.ts +0 -23
  497. package/src/api/manager/DeviceWriteSEPublicCert.ts +0 -23
  498. package/src/api/manager/GetDeviceInfoSettings.ts +0 -20
  499. package/src/api/manager/GetPublicKeyMultiple.ts +0 -24
  500. package/src/api/manager/ListResDir.ts +0 -19
  501. package/src/api/manager/NFTWriteData.ts +0 -21
  502. package/src/api/manager/NFTWriteInfo.ts +0 -23
  503. package/src/api/manager/ReadSEPublicKey.ts +0 -20
  504. package/src/api/manager/ResourceUpdate.ts +0 -22
  505. package/src/api/methodExtension.ts +0 -27
  506. package/src/api/monero/MoneroGetAddress.ts +0 -64
  507. package/src/api/monero/MoneroGetWatchKey.ts +0 -59
  508. package/src/api/nem/NEMDecryptMessage.ts +0 -29
  509. package/src/api/protocol-v2/DeviceFactoryCertificateRead.ts +0 -25
  510. package/src/api/protocol-v2/DeviceFactoryCertificateWrite.ts +0 -30
  511. package/src/api/protocol-v2/DeviceFactoryChallengeSign.ts +0 -28
  512. package/src/api/testMethods.ts +0 -95
  513. package/src/api/tezos/TezosGetAddress.ts +0 -64
  514. package/src/api/tezos/TezosGetPublicKey.ts +0 -63
  515. package/src/api/tezos/TezosSignTx.ts +0 -44
  516. package/src/types/api/binanceGetAddress.ts +0 -17
  517. package/src/types/api/binanceGetPublicKey.ts +0 -17
  518. package/src/types/api/binanceSignTx.ts +0 -15
  519. package/src/types/api/bixinBackupDevice.ts +0 -8
  520. package/src/types/api/bixinLoadDevice.ts +0 -8
  521. package/src/types/api/bixinMessageSE.ts +0 -8
  522. package/src/types/api/bixinVerifyDeviceRequest.ts +0 -8
  523. package/src/types/api/btcAuthorizeCoinJoin.ts +0 -18
  524. package/src/types/api/btcGetOwnershipId.ts +0 -19
  525. package/src/types/api/btcGetOwnershipProof.ts +0 -22
  526. package/src/types/api/cryptoBatchGetPublickeys.ts +0 -18
  527. package/src/types/api/cryptoCipherKeyValue.ts +0 -18
  528. package/src/types/api/cryptoCosiCommit.ts +0 -13
  529. package/src/types/api/cryptoCosiSign.ts +0 -15
  530. package/src/types/api/cryptoGetECDHSessionKey.ts +0 -8
  531. package/src/types/api/cryptoSignIdentity.ts +0 -8
  532. package/src/types/api/debugLinkDecision.ts +0 -7
  533. package/src/types/api/debugLinkEraseSdCard.ts +0 -7
  534. package/src/types/api/debugLinkFlashErase.ts +0 -7
  535. package/src/types/api/debugLinkGetState.ts +0 -7
  536. package/src/types/api/debugLinkMemoryRead.ts +0 -7
  537. package/src/types/api/debugLinkMemoryWrite.ts +0 -7
  538. package/src/types/api/debugLinkRecordScreen.ts +0 -7
  539. package/src/types/api/debugLinkReseedRandom.ts +0 -7
  540. package/src/types/api/debugLinkStop.ts +0 -7
  541. package/src/types/api/debugLinkWatchLayout.ts +0 -7
  542. package/src/types/api/deviceCancelAuthorization.ts +0 -7
  543. package/src/types/api/deviceChangeWipeCode.ts +0 -7
  544. package/src/types/api/deviceDoPreauthorized.ts +0 -7
  545. package/src/types/api/deviceEndSession.ts +0 -7
  546. package/src/types/api/deviceGetEntropy.ts +0 -7
  547. package/src/types/api/deviceGetFirmwareHash.ts +0 -7
  548. package/src/types/api/deviceGetInfo.ts +0 -7
  549. package/src/types/api/deviceInfoSettings.ts +0 -7
  550. package/src/types/api/deviceLoad.ts +0 -19
  551. package/src/types/api/devicePing.ts +0 -7
  552. package/src/types/api/deviceReadSEPublicCert.ts +0 -7
  553. package/src/types/api/deviceSESignMessage.ts +0 -7
  554. package/src/types/api/deviceSdProtect.ts +0 -7
  555. package/src/types/api/deviceSpiFlashRead.ts +0 -7
  556. package/src/types/api/deviceSpiFlashWrite.ts +0 -7
  557. package/src/types/api/deviceUnlockPath.ts +0 -16
  558. package/src/types/api/deviceWriteSEPrivateKey.ts +0 -7
  559. package/src/types/api/deviceWriteSEPublicCert.ts +0 -7
  560. package/src/types/api/emmcDirList.ts +0 -7
  561. package/src/types/api/emmcDirMake.ts +0 -7
  562. package/src/types/api/emmcDirRemove.ts +0 -7
  563. package/src/types/api/emmcFileDelete.ts +0 -7
  564. package/src/types/api/emmcFileRead.ts +0 -7
  565. package/src/types/api/emmcFileWrite.ts +0 -7
  566. package/src/types/api/emmcFixPermission.ts +0 -7
  567. package/src/types/api/emmcPathInfo.ts +0 -7
  568. package/src/types/api/eosGetPublicKey.ts +0 -13
  569. package/src/types/api/eosSignTx.ts +0 -12
  570. package/src/types/api/evmGetAddressTrezor.ts +0 -24
  571. package/src/types/api/evmGetPublicKeyTrezor.ts +0 -31
  572. package/src/types/api/evmSignMessageTrezor.ts +0 -14
  573. package/src/types/api/evmSignTransactionTrezor.ts +0 -49
  574. package/src/types/api/evmSignTypedDataTrezor.ts +0 -42
  575. package/src/types/api/evmVerifyMessageTrezor.ts +0 -15
  576. package/src/types/api/firmwareErase.ts +0 -4
  577. package/src/types/api/firmwareEraseEx.ts +0 -7
  578. package/src/types/api/firmwareUpdateEmmcTest.ts +0 -7
  579. package/src/types/api/firmwareUploadTest.ts +0 -7
  580. package/src/types/api/getPublicKeyMultiple.ts +0 -11
  581. package/src/types/api/listResDir.ts +0 -8
  582. package/src/types/api/moneroGetAddress.ts +0 -23
  583. package/src/types/api/moneroGetWatchKey.ts +0 -26
  584. package/src/types/api/nemDecryptMessage.ts +0 -15
  585. package/src/types/api/nftWriteData.ts +0 -8
  586. package/src/types/api/nftWriteInfo.ts +0 -8
  587. package/src/types/api/readSEPublicKey.ts +0 -8
  588. package/src/types/api/reboot.ts +0 -4
  589. package/src/types/api/resourceUpdate.ts +0 -11
  590. package/src/types/api/selfTest.ts +0 -7
  591. package/src/types/api/tezosGetAddress.ts +0 -23
  592. package/src/types/api/tezosGetPublicKey.ts +0 -23
  593. package/src/types/api/tezosSignTx.ts +0 -12
  594. package/src/types/api/webAuthnAddResidentCredential.ts +0 -8
  595. package/src/types/api/webAuthnListResidentCredentials.ts +0 -8
  596. package/src/types/api/webAuthnRemoveResidentCredential.ts +0 -8
@@ -91,11 +91,93 @@ describe('AllNetworkGetAddressBase tracing', () => {
91
91
  0
92
92
  );
93
93
 
94
- expect(checkPassphraseStateSafety).toHaveBeenCalledWith('hidden-state', false, undefined);
94
+ expect(checkPassphraseStateSafety).toHaveBeenCalledWith(
95
+ 'hidden-state',
96
+ false,
97
+ undefined,
98
+ false
99
+ );
95
100
  expect(calls).toEqual(['resume-hidden-session', 'run-chain-method']);
96
101
  expect(typedCall).not.toHaveBeenCalled();
97
102
  });
98
103
 
104
+ test('resumes a Protocol V2 Cardano hidden wallet with the Cardano seed domain', async () => {
105
+ const calls: string[] = [];
106
+ const checkPassphraseStateSafety = jest.fn().mockImplementation(() => {
107
+ calls.push('resume-cardano-session');
108
+ return Promise.resolve(true);
109
+ });
110
+ const innerMethod = {
111
+ checkSafetyLevelOnTestNet: jest.fn().mockResolvedValue(false),
112
+ connectId: 'connect-id',
113
+ deviceId: 'device-id',
114
+ getVersionRange: jest.fn().mockReturnValue({}),
115
+ assertProtocolSupported: jest.fn(),
116
+ init: jest.fn(),
117
+ name: 'cardanoGetAddress',
118
+ responseID: 45,
119
+ unlockPolicy: 'unlock-before-run',
120
+ run: jest.fn().mockImplementation(() => {
121
+ calls.push('run-cardano-method');
122
+ return Promise.resolve([{ address: 'addr1hidden' }]);
123
+ }),
124
+ setDevice: jest.fn(),
125
+ strictCheckDeviceSupport: false,
126
+ };
127
+ (findMethod as jest.Mock).mockReturnValue(innerMethod);
128
+ const method = new TestAllNetworkMethod({
129
+ id: 5,
130
+ payload: {
131
+ method: 'allNetworkGetAddress',
132
+ connectId: 'connect-id',
133
+ deviceId: 'device-id',
134
+ passphraseState: 'hidden-state',
135
+ bundle: [],
136
+ },
137
+ });
138
+ method.protocolV2UnlockContext = { preflightCompleted: true };
139
+ const typedCall = jest.fn();
140
+ method.device = {
141
+ checkPassphraseStateSafety,
142
+ commands: {
143
+ typedCall,
144
+ },
145
+ getCurrentFirmwareType: jest.fn(),
146
+ getProtocol: jest.fn().mockReturnValue('V2'),
147
+ getCurrentFirmwareVersionString: jest.fn().mockReturnValue('1.0.0'),
148
+ getCurrentMethodVersionRange: jest
149
+ .fn()
150
+ .mockImplementation((getRange: (type: string) => unknown) => getRange('pro2')),
151
+ instanceId: 'device-instance',
152
+ isProtocolV2: jest.fn().mockReturnValue(true),
153
+ isBootloader: jest.fn().mockReturnValue(false),
154
+ isRomloader: jest.fn().mockReturnValue(false),
155
+ off: jest.fn(),
156
+ on: jest.fn(),
157
+ state: { status: { unlocked: true } },
158
+ updateProtocolV2Status: jest.fn(),
159
+ } as any;
160
+
161
+ await method.callMethod(
162
+ 'cardanoGetAddress',
163
+ {
164
+ bundle: [
165
+ {
166
+ _originRequestParams: {
167
+ network: 'ada',
168
+ path: "m/1852'/1815'/0'/0/0",
169
+ },
170
+ },
171
+ ],
172
+ },
173
+ 0
174
+ );
175
+
176
+ expect(checkPassphraseStateSafety).toHaveBeenCalledWith('hidden-state', false, undefined, true);
177
+ expect(calls).toEqual(['resume-cardano-session', 'run-cardano-method']);
178
+ expect(typedCall).not.toHaveBeenCalled();
179
+ });
180
+
99
181
  test('resumes a Protocol V2 standard wallet before running a nested chain method', async () => {
100
182
  const calls: string[] = [];
101
183
  const checkPassphraseStateSafety = jest.fn().mockImplementation(() => {
@@ -168,7 +250,7 @@ describe('AllNetworkGetAddressBase tracing', () => {
168
250
  0
169
251
  );
170
252
 
171
- expect(checkPassphraseStateSafety).toHaveBeenCalledWith(undefined, true, undefined);
253
+ expect(checkPassphraseStateSafety).toHaveBeenCalledWith(undefined, true, undefined, false);
172
254
  expect(calls).toEqual(['resume-standard-session', 'run-chain-method']);
173
255
  expect(typedCall).not.toHaveBeenCalled();
174
256
  });
@@ -363,9 +363,14 @@ describe('DeviceCommands failure mapping', () => {
363
363
  }
364
364
  );
365
365
 
366
- it.each(['Cancelled', 'User cancelled typed data signing'])(
367
- 'maps the Protocol V2 MP engine cancellation response "%s" to ActionCancelled',
368
- async message => {
366
+ it.each([
367
+ ['SignTx', 'Rejected by the user'],
368
+ ['EthereumSignTypedDataOneKey', ''],
369
+ ['SolanaSignTx', 'Localized cancellation message'],
370
+ ['GetAddress', 'Address confirmation rejected'],
371
+ ] as const)(
372
+ 'maps Protocol V2 cancellation subcode 1 for %s regardless of message',
373
+ async (callType, message) => {
369
374
  const commands = createCommands();
370
375
 
371
376
  await expect(
@@ -378,7 +383,7 @@ describe('DeviceCommands failure mapping', () => {
378
383
  message,
379
384
  },
380
385
  } as any,
381
- 'SignTx'
386
+ callType
382
387
  )
383
388
  ).rejects.toMatchObject({
384
389
  errorCode: HardwareErrorCode.ActionCancelled,
@@ -401,6 +406,7 @@ describe('DeviceCommands failure mapping', () => {
401
406
  type: 'Failure',
402
407
  message: {
403
408
  code: 'Failure_ProcessError',
409
+ subcode: 1,
404
410
  message: 'Cancelled on device',
405
411
  },
406
412
  } as any,
@@ -411,7 +417,7 @@ describe('DeviceCommands failure mapping', () => {
411
417
  });
412
418
  });
413
419
 
414
- it('keeps an unrecognized Protocol V2 process subcode generic', async () => {
420
+ it('maps the DeviceError subcode 1 exception to DeviceBusy', async () => {
415
421
  const commands = createCommands();
416
422
 
417
423
  await expect(
@@ -427,7 +433,12 @@ describe('DeviceCommands failure mapping', () => {
427
433
  'DeviceSettingsPageShow'
428
434
  )
429
435
  ).rejects.toMatchObject({
430
- errorCode: HardwareErrorCode.RuntimeError,
436
+ errorCode: HardwareErrorCode.DeviceBusy,
437
+ params: {
438
+ failureCode: 'Failure_ProcessError',
439
+ subcode: 1,
440
+ firmwareMessage: 'Another process error',
441
+ },
431
442
  });
432
443
  });
433
444
 
@@ -0,0 +1,23 @@
1
+ import { DataManager } from '../src/data-manager';
2
+ import { init } from '../src/core';
3
+
4
+ import type { ConnectSettings } from '../src/types';
5
+
6
+ jest.mock('../src/data/config', () => ({
7
+ getSDKVersion: jest.fn(() => '1.0.0-test'),
8
+ DEFAULT_DOMAIN: 'https://jssdk.onekey.so/1.0.0-test/',
9
+ }));
10
+
11
+ describe('Core initialization', () => {
12
+ afterEach(() => {
13
+ jest.restoreAllMocks();
14
+ });
15
+
16
+ it('does not create a partially initialized core when settings loading fails', async () => {
17
+ jest.spyOn(DataManager, 'load').mockRejectedValue(new Error('settings load failed'));
18
+
19
+ await expect(init({} as ConnectSettings, class TestTransport {})).rejects.toThrow(
20
+ 'settings load failed'
21
+ );
22
+ });
23
+ });
@@ -0,0 +1,81 @@
1
+ import { HardwareErrorCode } from '@onekeyfe/hd-shared';
2
+
3
+ import DeviceConnector from '../src/device/DeviceConnector';
4
+
5
+ jest.mock('../src/data-manager/TransportManager', () => ({
6
+ __esModule: true,
7
+ default: {
8
+ load: jest.fn(),
9
+ getTransport: jest.fn(),
10
+ },
11
+ }));
12
+
13
+ jest.mock('../src/data-manager', () => ({
14
+ DataManager: {
15
+ getSettings: jest.fn(() => 'desktop-web-ble'),
16
+ isBleConnect: jest.fn(() => true),
17
+ },
18
+ }));
19
+
20
+ jest.mock('../src/device/DevicePool', () => ({
21
+ DevicePool: {
22
+ setConnector: jest.fn(),
23
+ },
24
+ }));
25
+
26
+ const transportManagerMock: {
27
+ default: {
28
+ getTransport: jest.Mock;
29
+ };
30
+ } = jest.requireMock('../src/data-manager/TransportManager');
31
+
32
+ describe('DeviceConnector protocol validation', () => {
33
+ beforeEach(() => {
34
+ jest.clearAllMocks();
35
+ });
36
+
37
+ it('reports an explicit transport error when connector initialization ran too early', async () => {
38
+ transportManagerMock.default.getTransport.mockReturnValue(undefined);
39
+ const connector = new DeviceConnector();
40
+
41
+ await expect(connector.enumerate()).rejects.toMatchObject({
42
+ errorCode: HardwareErrorCode.TransportNotConfigured,
43
+ });
44
+ });
45
+
46
+ it('uses the actively probed protocol returned by acquire when the cache was cleared', async () => {
47
+ const acquire = jest.fn().mockResolvedValue({
48
+ id: 'pro2-id',
49
+ path: 'pro2-id',
50
+ protocolType: 'V2',
51
+ });
52
+ transportManagerMock.default.getTransport.mockReturnValue({
53
+ acquire,
54
+ getProtocolType: jest.fn(() => undefined),
55
+ });
56
+ const connector = new DeviceConnector();
57
+
58
+ await expect(connector.acquire('pro2-id', undefined, undefined, 'V2')).resolves.toEqual(
59
+ expect.objectContaining({ protocolType: 'V2' })
60
+ );
61
+ expect(acquire).toHaveBeenCalledWith(
62
+ expect.objectContaining({ uuid: 'pro2-id', expectedProtocol: 'V2' })
63
+ );
64
+ });
65
+
66
+ it('still rejects a real mismatch reported by the active protocol probe', async () => {
67
+ transportManagerMock.default.getTransport.mockReturnValue({
68
+ acquire: jest.fn().mockResolvedValue({
69
+ id: 'classic-id',
70
+ path: 'classic-id',
71
+ protocolType: 'V1',
72
+ }),
73
+ getProtocolType: jest.fn(() => 'V1'),
74
+ });
75
+ const connector = new DeviceConnector();
76
+
77
+ await expect(connector.acquire('classic-id', undefined, undefined, 'V2')).rejects.toThrow(
78
+ 'Device protocol mismatch: expected V2, detected V1'
79
+ );
80
+ });
81
+ });
@@ -115,8 +115,8 @@ describe('DeviceSettings protocol routing', () => {
115
115
  );
116
116
  });
117
117
 
118
- it('uses DeviceSettingsSet and commits the confirmed patch for Protocol V2', async () => {
119
- const { device, typedCall, updateState } = createDevice({ protocol: 'V2' });
118
+ it('uses DeviceSettingsSet and reloads Protocol V2 status and settings from the device', async () => {
119
+ const { device, typedCall, updateState, getDeviceState } = createDevice({ protocol: 'V2' });
120
120
  const method = new DeviceSettings({
121
121
  id: 2,
122
122
  payload: {
@@ -141,21 +141,10 @@ describe('DeviceSettings protocol routing', () => {
141
141
  haptic_feedback: true,
142
142
  },
143
143
  });
144
- expect(updateState).toHaveBeenCalledWith(
145
- {
146
- identity: { label: 'Shared Label' },
147
- settings: {
148
- language: 'ja',
149
- bleEnabled: true,
150
- autoLockDelayMs: 60_000,
151
- hapticFeedback: true,
152
- },
153
- },
154
- 'settings-write'
155
- );
156
- expect(typedCall.mock.calls.map(call => call[0])).not.toEqual(
157
- expect.arrayContaining(['DeviceInfoGet', 'DeviceStatusGet', 'DeviceSettingsGet'])
158
- );
144
+ expect(getDeviceState).toHaveBeenCalledWith({
145
+ refreshSections: ['status', 'settings'],
146
+ });
147
+ expect(updateState).not.toHaveBeenCalled();
159
148
  });
160
149
 
161
150
  it('uses the Pro2 passphrase page as a device-side toggle and verifies the target state', async () => {
@@ -183,7 +172,39 @@ describe('DeviceSettings protocol routing', () => {
183
172
  });
184
173
  expect(typedCall).not.toHaveBeenCalledWith('DeviceSettingsSet', 'Success', expect.anything());
185
174
  expect(getDeviceState).toHaveBeenNthCalledWith(1, { refreshSections: ['status'] });
186
- expect(getDeviceState).toHaveBeenNthCalledWith(2, { refreshSections: ['status'] });
175
+ expect(getDeviceState).toHaveBeenNthCalledWith(2, {
176
+ refreshSections: ['status', 'settings'],
177
+ });
178
+ });
179
+
180
+ it('reloads Protocol V2 status and settings after changing air-gap mode', async () => {
181
+ const { device, typedCall, getDeviceState } = createDevice({ protocol: 'V2' });
182
+ getDeviceState
183
+ .mockResolvedValueOnce({
184
+ settings: { airgapMode: false },
185
+ })
186
+ .mockResolvedValueOnce({
187
+ status: { unlocked: true },
188
+ settings: { airgapMode: true },
189
+ });
190
+ const method = new DeviceSettings({
191
+ id: 4,
192
+ payload: {
193
+ method: 'deviceSettings',
194
+ airgapMode: true,
195
+ },
196
+ });
197
+ method.init();
198
+ (method as any).device = device;
199
+
200
+ await expect(method.run()).resolves.toEqual({ message: 'Success' });
201
+ expect(typedCall).toHaveBeenCalledWith('DeviceSettingsPageShow', 'Success', {
202
+ page: DeviceSettingsPage.DeviceAirgap,
203
+ });
204
+ expect(getDeviceState).toHaveBeenNthCalledWith(1, { refreshSections: ['settings'] });
205
+ expect(getDeviceState).toHaveBeenNthCalledWith(2, {
206
+ refreshSections: ['status', 'settings'],
207
+ });
187
208
  });
188
209
 
189
210
  it('does not open a Pro2 settings page when the hardware already matches the target', async () => {
@@ -269,6 +269,30 @@ describe('Pro2 resource configuration', () => {
269
269
  expect(DataManager.getProtocolV2BootResources()).toEqual(bootResources);
270
270
  });
271
271
 
272
+ test('keeps base SDK initialization available when remote Pro2 resources are invalid', async () => {
273
+ const remoteConfig = createRemoteConfig();
274
+ (remoteConfig.pro2 as { resources?: unknown }).resources = { stable: [] };
275
+ const configFetcher = jest.fn().mockResolvedValue(remoteConfig);
276
+
277
+ await expect(DataManager.load(createSettings(configFetcher))).resolves.toBe(true);
278
+
279
+ expect(DataManager.getProtocolV2Resources()).toBeUndefined();
280
+ expect(DataManager.getProtocolV2BootResources()).toBeUndefined();
281
+ });
282
+
283
+ test('still blocks firmware mutation when the refreshed Pro2 resources are invalid', async () => {
284
+ const remoteConfig = createRemoteConfig();
285
+ (remoteConfig.pro2 as { resources?: unknown }).resources = { stable: [] };
286
+ const settings = createSettings(jest.fn().mockResolvedValue(remoteConfig));
287
+ DataManager.settings = settings;
288
+
289
+ await expect(DataManager.forceReloadData()).rejects.toMatchObject({
290
+ errorCode: HardwareErrorCode.NetworkError,
291
+ message: expect.stringContaining('Invalid Pro2 resources config'),
292
+ });
293
+ expect(DataManager.lastCheckTimestamp).toBe(0);
294
+ });
295
+
272
296
  test('does not advance the cache timestamp when refresh fails', async () => {
273
297
  jest.spyOn(axios, 'get').mockRejectedValue(new Error('offline'));
274
298
  const settings = createSettings(jest.fn().mockResolvedValue(null));
@@ -14,9 +14,6 @@ import DirList from '../src/api/DirList';
14
14
  import FileRead from '../src/api/FileRead';
15
15
  import FileWrite from '../src/api/FileWrite';
16
16
  import UploadPortfolio from '../src/api/UploadPortfolio';
17
- import DeviceFactoryCertificateRead from '../src/api/protocol-v2/DeviceFactoryCertificateRead';
18
- import DeviceFactoryCertificateWrite from '../src/api/protocol-v2/DeviceFactoryCertificateWrite';
19
- import DeviceFactoryChallengeSign from '../src/api/protocol-v2/DeviceFactoryChallengeSign';
20
17
  import DeviceFactoryInfoGet from '../src/api/protocol-v2/DeviceFactoryInfoGet';
21
18
  import DeviceFactoryInfoSet from '../src/api/protocol-v2/DeviceFactoryInfoSet';
22
19
  import DeviceFirmwareUpdate from '../src/api/protocol-v2/DeviceFirmwareUpdate';
@@ -4095,6 +4092,38 @@ describe('Protocol V2 firmware update targets', () => {
4095
4092
  expect(reconnectProtocolV2Device).toHaveBeenCalledTimes(1);
4096
4093
  });
4097
4094
 
4095
+ test('announces bootloader success only after Protocol V2 bootloader mode is confirmed', async () => {
4096
+ const method = new FirmwareUpdateV4({
4097
+ id: 1,
4098
+ payload: {
4099
+ method: 'firmwareUpdateV4',
4100
+ },
4101
+ });
4102
+ (method as any).device = stubDevice({
4103
+ features: { bootloader_mode: false, capabilities: [] },
4104
+ isBootloader: () => false,
4105
+ isRomloader: () => false,
4106
+ });
4107
+ (method as any).protocolV2Reboot = jest.fn().mockResolvedValue({
4108
+ message: 'Device rebooted successfully',
4109
+ });
4110
+
4111
+ const tipMessages: string[] = [];
4112
+ method.postTipMessage = jest.fn((message: string) => {
4113
+ tipMessages.push(message);
4114
+ });
4115
+ let successWasAnnouncedBeforeConfirmation = false;
4116
+ (method as any).waitForProtocolV2BootloaderMode = jest.fn().mockImplementation(() => {
4117
+ successWasAnnouncedBeforeConfirmation = tipMessages.includes('GoToBootloaderSuccess');
4118
+ return Promise.resolve({ mode: 'bootloader' });
4119
+ });
4120
+
4121
+ await (method as any).enterProtocolV2BootloaderMode();
4122
+
4123
+ expect(successWasAnnouncedBeforeConfirmation).toBe(false);
4124
+ expect(tipMessages).toEqual(['AutoRebootToBootloader', 'GoToBootloaderSuccess']);
4125
+ });
4126
+
4098
4127
  test('keeps Protocol V2 bootloader active before firmware transfer', async () => {
4099
4128
  const method = new FirmwareUpdateV4({
4100
4129
  id: 1,
@@ -4120,6 +4149,7 @@ describe('Protocol V2 firmware update targets', () => {
4120
4149
 
4121
4150
  expect((method as any).protocolV2Reboot).not.toHaveBeenCalled();
4122
4151
  expect(method.postTipMessage).not.toHaveBeenCalledWith('AutoRebootToBootloader');
4152
+ expect(method.postTipMessage).toHaveBeenCalledWith('GoToBootloaderSuccess');
4123
4153
  });
4124
4154
 
4125
4155
  test('keeps Protocol V2 romloader active before firmware transfer', async () => {
@@ -5916,8 +5946,9 @@ describe('Protocol V2 firmware update targets', () => {
5916
5946
 
5917
5947
  (method as any).device = stubDevice({
5918
5948
  getCommands: () => ({ typedCall }),
5949
+ toMessageObject: () => ({ connectId: 'firmware-device' }),
5919
5950
  });
5920
- method.postProgressMessage = jest.fn();
5951
+ method.postMessage = jest.fn();
5921
5952
 
5922
5953
  await (method as any).protocolV2CommonUpdateProcess({
5923
5954
  payload: new Uint8Array(4097).buffer,
@@ -5932,6 +5963,17 @@ describe('Protocol V2 firmware update targets', () => {
5932
5963
  expect(writePayloads.map(payload => payload.overwrite)).toEqual([true, false]);
5933
5964
  expect(writePayloads.every(payload => payload.append === false)).toBe(true);
5934
5965
  expect(writePayloads.map(payload => payload.ui_percentage)).toEqual([0, 100]);
5966
+ expect(method.postMessage).toHaveBeenLastCalledWith({
5967
+ event: 'UI_EVENT',
5968
+ type: UI_REQUEST.FIRMWARE_PROGRESS,
5969
+ payload: expect.objectContaining({
5970
+ progress: 99,
5971
+ progressType: 'transferData',
5972
+ transferredBytes: 4097,
5973
+ totalBytes: 4097,
5974
+ elapsedMs: expect.any(Number),
5975
+ }),
5976
+ });
5935
5977
  });
5936
5978
 
5937
5979
  test('restarts the whole file from offset zero after an ambiguous chunk write failure', async () => {
@@ -7228,39 +7270,26 @@ describe('Protocol V2 current low-level methods', () => {
7228
7270
 
7229
7271
  test('sends DeviceFactoryInfoSet and DeviceFactoryInfoGet', async () => {
7230
7272
  const typedCall = jest.fn().mockResolvedValue({ message: {} });
7231
- const manufactureTime = {
7232
- year: 2026,
7233
- month: 8,
7234
- day: 1,
7235
- hour: 10,
7236
- minute: 20,
7237
- second: 30,
7238
- };
7239
7273
  const setMethod = new DeviceFactoryInfoSet({
7240
7274
  id: 1,
7241
7275
  payload: {
7242
7276
  method: 'deviceFactoryInfoSet',
7243
- version: 1,
7244
7277
  serial_number: 'PR2SERIAL',
7245
7278
  burn_in_completed: true,
7246
- factory_test_completed: true,
7247
- manufacture_time: manufactureTime,
7248
7279
  },
7249
7280
  });
7250
7281
  setMethod.init();
7251
- expect(setMethod.getSupportedProtocols()).toEqual(['V2']);
7252
- expect(setMethod.requireDeviceMode).toEqual([UI_REQUEST.BOOTLOADER]);
7253
7282
  (setMethod as any).device = stubDevice({ commands: { typedCall } });
7254
7283
 
7255
7284
  await setMethod.run();
7256
7285
 
7257
7286
  expect(typedCall).toHaveBeenCalledWith('DeviceFactoryInfoSet', 'Success', {
7258
7287
  info: {
7259
- version: 1,
7288
+ version: undefined,
7260
7289
  serial_number: 'PR2SERIAL',
7261
7290
  burn_in_completed: true,
7262
- factory_test_completed: true,
7263
- manufacture_time: manufactureTime,
7291
+ factory_test_completed: undefined,
7292
+ manufacture_time: undefined,
7264
7293
  },
7265
7294
  });
7266
7295
 
@@ -7270,7 +7299,6 @@ describe('Protocol V2 current low-level methods', () => {
7270
7299
  payload: { method: 'deviceFactoryInfoGet' },
7271
7300
  });
7272
7301
  getMethod.init();
7273
- expect(getMethod.getSupportedProtocols()).toEqual(['V2']);
7274
7302
  (getMethod as any).device = stubDevice({ commands: { typedCall } });
7275
7303
 
7276
7304
  await getMethod.run();
@@ -7278,111 +7306,6 @@ describe('Protocol V2 current low-level methods', () => {
7278
7306
  expect(typedCall).toHaveBeenLastCalledWith('DeviceFactoryInfoGet', 'DeviceFactoryInfo', {});
7279
7307
  });
7280
7308
 
7281
- test('validates the write-once DeviceFactoryInfoSet payload before sending', () => {
7282
- expect(() =>
7283
- new DeviceFactoryInfoSet({
7284
- id: 1,
7285
- payload: {
7286
- method: 'deviceProvisionFactoryInfo',
7287
- serial_number: 'PR2SERIAL',
7288
- },
7289
- }).init()
7290
- ).toThrow('Parameter [manufacture_time] is required.');
7291
-
7292
- expect(() =>
7293
- new DeviceFactoryInfoSet({
7294
- id: 1,
7295
- payload: {
7296
- method: 'deviceProvisionFactoryInfo',
7297
- version: 1,
7298
- serial_number: 'P'.repeat(25),
7299
- burn_in_completed: true,
7300
- factory_test_completed: true,
7301
- manufacture_time: {
7302
- year: 2026,
7303
- month: 8,
7304
- day: 1,
7305
- hour: 0,
7306
- minute: 0,
7307
- second: 0,
7308
- },
7309
- },
7310
- }).init()
7311
- ).toThrow('must not exceed 24 UTF-8 bytes');
7312
- });
7313
-
7314
- test('writes, reads and signs with the Protocol V2 factory certificate API', async () => {
7315
- const typedCall = jest.fn().mockResolvedValue({ message: {} });
7316
- const write = new DeviceFactoryCertificateWrite({
7317
- id: 1,
7318
- payload: {
7319
- method: 'deviceWriteFactoryCertificate',
7320
- certificate: 'aabbcc',
7321
- },
7322
- });
7323
- write.init();
7324
- expect(write.getSupportedProtocols()).toEqual(['V2']);
7325
- expect(write.requireDeviceMode).toEqual([UI_REQUEST.BOOTLOADER]);
7326
- (write as any).device = stubDevice({ commands: { typedCall } });
7327
- await write.run();
7328
-
7329
- expect(typedCall).toHaveBeenLastCalledWith('DeviceCertificateWrite', 'Success', {
7330
- cert: {
7331
- cert_and_pubkey: 'aabbcc',
7332
- private_key: undefined,
7333
- },
7334
- });
7335
-
7336
- const read = new DeviceFactoryCertificateRead({
7337
- id: 2,
7338
- payload: { method: 'deviceReadFactoryCertificate' },
7339
- });
7340
- read.init();
7341
- expect(read.getSupportedProtocols()).toEqual(['V2']);
7342
- (read as any).device = stubDevice({ commands: { typedCall } });
7343
- await read.run();
7344
- expect(typedCall).toHaveBeenLastCalledWith('DeviceCertificateRead', 'DeviceCertificate', {});
7345
-
7346
- const sign = new DeviceFactoryChallengeSign({
7347
- id: 3,
7348
- payload: {
7349
- method: 'deviceSignFactoryChallenge',
7350
- digest: '22'.repeat(32),
7351
- },
7352
- });
7353
- sign.init();
7354
- expect(sign.getSupportedProtocols()).toEqual(['V2']);
7355
- (sign as any).device = stubDevice({ commands: { typedCall } });
7356
- await sign.run();
7357
- expect(typedCall).toHaveBeenLastCalledWith(
7358
- 'DeviceCertificateSign',
7359
- 'DeviceCertificateSignature',
7360
- { data: '22'.repeat(32) }
7361
- );
7362
- });
7363
-
7364
- test('rejects malformed Protocol V2 factory certificate fields', () => {
7365
- expect(() =>
7366
- new DeviceFactoryCertificateWrite({
7367
- id: 1,
7368
- payload: {
7369
- method: 'deviceWriteFactoryCertificate',
7370
- certificate: 'xyz',
7371
- },
7372
- }).init()
7373
- ).toThrow('even-length hexadecimal string');
7374
-
7375
- expect(() =>
7376
- new DeviceFactoryChallengeSign({
7377
- id: 2,
7378
- payload: {
7379
- method: 'deviceSignFactoryChallenge',
7380
- digest: '11',
7381
- },
7382
- }).init()
7383
- ).toThrow('exactly 32 bytes');
7384
- });
7385
-
7386
7309
  test('marks explicit Protocol V2 unlock as an on-device PIN interaction', () => {
7387
7310
  const method = new DeviceUnlock({
7388
7311
  id: 1,