@trezor/connect 10.0.0-beta.1 → 10.0.0-beta.2

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 (429) hide show
  1. package/CHANGELOG.md +56 -9
  2. package/README.md +4 -2
  3. package/lib/exports.d.ts +1 -3
  4. package/lib/exports.js +1 -3
  5. package/lib/impl/core-in-module-native.d.ts +7 -0
  6. package/lib/impl/core-in-module-native.js +11 -0
  7. package/lib/impl/core-in-module-node.d.ts +8 -0
  8. package/lib/impl/core-in-module-node.js +12 -0
  9. package/lib/impl/core-in-module-web.d.ts +9 -0
  10. package/lib/impl/core-in-module-web.js +26 -0
  11. package/lib/index.browser.js +2 -26
  12. package/lib/index.js +1 -11
  13. package/lib/index.native.d.ts +4 -0
  14. package/lib/index.native.js +5 -0
  15. package/package.json +16 -67
  16. package/lib/api/applyFlags.d.ts +0 -20
  17. package/lib/api/applyFlags.js +0 -38
  18. package/lib/api/applySettings.d.ts +0 -20
  19. package/lib/api/applySettings.js +0 -57
  20. package/lib/api/authenticateDevice.d.ts +0 -25
  21. package/lib/api/authenticateDevice.js +0 -195
  22. package/lib/api/authorizeCoinjoin.d.ts +0 -11
  23. package/lib/api/authorizeCoinjoin.js +0 -44
  24. package/lib/api/backupDevice.d.ts +0 -19
  25. package/lib/api/backupDevice.js +0 -39
  26. package/lib/api/bitcoin/TransactionComposer.d.ts +0 -46
  27. package/lib/api/bitcoin/TransactionComposer.js +0 -147
  28. package/lib/api/bitcoin/createPendingTx.d.ts +0 -37
  29. package/lib/api/bitcoin/createPendingTx.js +0 -55
  30. package/lib/api/bitcoin/enhanceSignTx.d.ts +0 -2
  31. package/lib/api/bitcoin/enhanceSignTx.js +0 -23
  32. package/lib/api/bitcoin/index.d.ts +0 -9
  33. package/lib/api/bitcoin/index.js +0 -9
  34. package/lib/api/bitcoin/inputs.d.ts +0 -4
  35. package/lib/api/bitcoin/inputs.js +0 -63
  36. package/lib/api/bitcoin/outputs.d.ts +0 -5
  37. package/lib/api/bitcoin/outputs.js +0 -128
  38. package/lib/api/bitcoin/refTx.d.ts +0 -23
  39. package/lib/api/bitcoin/refTx.js +0 -249
  40. package/lib/api/bitcoin/signtx.d.ts +0 -30
  41. package/lib/api/bitcoin/signtx.js +0 -229
  42. package/lib/api/bitcoin/signtxLegacy.d.ts +0 -10
  43. package/lib/api/bitcoin/signtxLegacy.js +0 -186
  44. package/lib/api/bitcoin/signtxVerify.d.ts +0 -12
  45. package/lib/api/bitcoin/signtxVerify.js +0 -95
  46. package/lib/api/bitcoin/transactionBytes.d.ts +0 -3
  47. package/lib/api/bitcoin/transactionBytes.js +0 -65
  48. package/lib/api/bleUnpair.d.ts +0 -11
  49. package/lib/api/bleUnpair.js +0 -37
  50. package/lib/api/blockchainDisconnect.d.ts +0 -16
  51. package/lib/api/blockchainDisconnect.js +0 -37
  52. package/lib/api/blockchainEstimateFee.d.ts +0 -16
  53. package/lib/api/blockchainEstimateFee.js +0 -102
  54. package/lib/api/blockchainEvmRpcCall.d.ts +0 -19
  55. package/lib/api/blockchainEvmRpcCall.js +0 -57
  56. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +0 -16
  57. package/lib/api/blockchainGetAccountBalanceHistory.js +0 -60
  58. package/lib/api/blockchainGetContractInfo.d.ts +0 -16
  59. package/lib/api/blockchainGetContractInfo.js +0 -46
  60. package/lib/api/blockchainGetCurrentFiatRates.d.ts +0 -20
  61. package/lib/api/blockchainGetCurrentFiatRates.js +0 -49
  62. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +0 -23
  63. package/lib/api/blockchainGetFiatRatesForTimestamps.js +0 -55
  64. package/lib/api/blockchainGetInfo.d.ts +0 -15
  65. package/lib/api/blockchainGetInfo.js +0 -37
  66. package/lib/api/blockchainGetTransactions.d.ts +0 -18
  67. package/lib/api/blockchainGetTransactions.js +0 -47
  68. package/lib/api/blockchainSetCustomBackend.d.ts +0 -17
  69. package/lib/api/blockchainSetCustomBackend.js +0 -43
  70. package/lib/api/blockchainSubscribe.d.ts +0 -19
  71. package/lib/api/blockchainSubscribe.js +0 -66
  72. package/lib/api/blockchainSubscribeFiatRates.d.ts +0 -19
  73. package/lib/api/blockchainSubscribeFiatRates.js +0 -43
  74. package/lib/api/blockchainUnsubscribe.d.ts +0 -19
  75. package/lib/api/blockchainUnsubscribe.js +0 -66
  76. package/lib/api/blockchainUnsubscribeFiatRates.d.ts +0 -17
  77. package/lib/api/blockchainUnsubscribeFiatRates.js +0 -37
  78. package/lib/api/blockchainValidateEvmRpcUrl.d.ts +0 -17
  79. package/lib/api/blockchainValidateEvmRpcUrl.js +0 -54
  80. package/lib/api/cancelCoinjoinAuthorization.d.ts +0 -11
  81. package/lib/api/cancelCoinjoinAuthorization.js +0 -33
  82. package/lib/api/cardano/api/cardanoComposeTransaction.d.ts +0 -10
  83. package/lib/api/cardano/api/cardanoComposeTransaction.js +0 -84
  84. package/lib/api/cardano/api/cardanoGetAddress.d.ts +0 -34
  85. package/lib/api/cardano/api/cardanoGetAddress.js +0 -130
  86. package/lib/api/cardano/api/cardanoGetNativeScriptHash.d.ts +0 -12
  87. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +0 -66
  88. package/lib/api/cardano/api/cardanoGetPublicKey.d.ts +0 -22
  89. package/lib/api/cardano/api/cardanoGetPublicKey.js +0 -92
  90. package/lib/api/cardano/api/cardanoSignMessage.d.ts +0 -22
  91. package/lib/api/cardano/api/cardanoSignMessage.js +0 -90
  92. package/lib/api/cardano/api/cardanoSignTransaction.d.ts +0 -81
  93. package/lib/api/cardano/api/cardanoSignTransaction.js +0 -301
  94. package/lib/api/cardano/api/index.d.ts +0 -6
  95. package/lib/api/cardano/api/index.js +0 -6
  96. package/lib/api/cardano/cardanoAddressParameters.d.ts +0 -6
  97. package/lib/api/cardano/cardanoAddressParameters.js +0 -79
  98. package/lib/api/cardano/cardanoAuxiliaryData.d.ts +0 -4
  99. package/lib/api/cardano/cardanoAuxiliaryData.js +0 -74
  100. package/lib/api/cardano/cardanoCertificate.d.ts +0 -13
  101. package/lib/api/cardano/cardanoCertificate.js +0 -142
  102. package/lib/api/cardano/cardanoInputs.d.ts +0 -25
  103. package/lib/api/cardano/cardanoInputs.js +0 -39
  104. package/lib/api/cardano/cardanoOutputs.d.ts +0 -40
  105. package/lib/api/cardano/cardanoOutputs.js +0 -70
  106. package/lib/api/cardano/cardanoTokenBundle.d.ts +0 -12
  107. package/lib/api/cardano/cardanoTokenBundle.js +0 -21
  108. package/lib/api/cardano/cardanoUtils.d.ts +0 -17
  109. package/lib/api/cardano/cardanoUtils.js +0 -100
  110. package/lib/api/cardano/cardanoWitnesses.d.ts +0 -4
  111. package/lib/api/cardano/cardanoWitnesses.js +0 -47
  112. package/lib/api/changeLanguage.d.ts +0 -18
  113. package/lib/api/changeLanguage.js +0 -49
  114. package/lib/api/changePin.d.ts +0 -11
  115. package/lib/api/changePin.js +0 -27
  116. package/lib/api/changeWipeCode.d.ts +0 -11
  117. package/lib/api/changeWipeCode.js +0 -29
  118. package/lib/api/cipherKeyValue.d.ts +0 -17
  119. package/lib/api/cipherKeyValue.js +0 -58
  120. package/lib/api/common/AbstractMiscGetAddress.d.ts +0 -37
  121. package/lib/api/common/AbstractMiscGetAddress.js +0 -126
  122. package/lib/api/common/Discovery.d.ts +0 -33
  123. package/lib/api/common/Discovery.js +0 -119
  124. package/lib/api/common/paramsValidator.d.ts +0 -24
  125. package/lib/api/common/paramsValidator.js +0 -136
  126. package/lib/api/common/requestExistingAccounts.d.ts +0 -14
  127. package/lib/api/common/requestExistingAccounts.js +0 -20
  128. package/lib/api/composeTransaction.d.ts +0 -36
  129. package/lib/api/composeTransaction.js +0 -404
  130. package/lib/api/discoverAccounts.d.ts +0 -40
  131. package/lib/api/discoverAccounts.js +0 -360
  132. package/lib/api/ethereum/api/ethereumGetAddress.d.ts +0 -30
  133. package/lib/api/ethereum/api/ethereumGetAddress.js +0 -150
  134. package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +0 -52
  135. package/lib/api/ethereum/api/ethereumGetPublicKey.js +0 -100
  136. package/lib/api/ethereum/api/ethereumSignMessage.d.ts +0 -27
  137. package/lib/api/ethereum/api/ethereumSignMessage.js +0 -64
  138. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +0 -83
  139. package/lib/api/ethereum/api/ethereumSignTransaction.js +0 -148
  140. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +0 -117
  141. package/lib/api/ethereum/api/ethereumSignTypedData.js +0 -203
  142. package/lib/api/ethereum/api/ethereumVerifyMessage.d.ts +0 -12
  143. package/lib/api/ethereum/api/ethereumVerifyMessage.js +0 -35
  144. package/lib/api/ethereum/api/index.d.ts +0 -6
  145. package/lib/api/ethereum/api/index.js +0 -6
  146. package/lib/api/ethereum/ethereumDefinitions.d.ts +0 -53
  147. package/lib/api/ethereum/ethereumDefinitions.js +0 -135
  148. package/lib/api/ethereum/ethereumSignTx.d.ts +0 -16
  149. package/lib/api/ethereum/ethereumSignTx.js +0 -144
  150. package/lib/api/ethereum/ethereumSignTypedData.d.ts +0 -32
  151. package/lib/api/ethereum/ethereumSignTypedData.js +0 -175
  152. package/lib/api/evoluGetDelegatedIdentityKey.d.ts +0 -14
  153. package/lib/api/evoluGetDelegatedIdentityKey.js +0 -29
  154. package/lib/api/evoluGetNode.d.ts +0 -13
  155. package/lib/api/evoluGetNode.js +0 -29
  156. package/lib/api/evoluSignRegistrationRequest.d.ts +0 -16
  157. package/lib/api/evoluSignRegistrationRequest.js +0 -33
  158. package/lib/api/firmware/calculateFirmwareHash.d.ts +0 -18
  159. package/lib/api/firmware/calculateFirmwareHash.js +0 -56
  160. package/lib/api/firmware/calculateXPubHash.d.ts +0 -14
  161. package/lib/api/firmware/calculateXPubHash.js +0 -16
  162. package/lib/api/firmware/getBinary.d.ts +0 -14
  163. package/lib/api/firmware/getBinary.js +0 -33
  164. package/lib/api/firmware/index.d.ts +0 -6
  165. package/lib/api/firmware/index.js +0 -6
  166. package/lib/api/firmware/modifyFirmware.d.ts +0 -3
  167. package/lib/api/firmware/modifyFirmware.js +0 -13
  168. package/lib/api/firmware/parseFirmwareHeaders.d.ts +0 -4
  169. package/lib/api/firmware/parseFirmwareHeaders.js +0 -26
  170. package/lib/api/firmware/uploadFirmware.d.ts +0 -27
  171. package/lib/api/firmware/uploadFirmware.js +0 -99
  172. package/lib/api/firmware/verifyEntropy.d.ts +0 -25
  173. package/lib/api/firmware/verifyEntropy.js +0 -110
  174. package/lib/api/getAccountInfo.d.ts +0 -21
  175. package/lib/api/getAccountInfo.js +0 -253
  176. package/lib/api/getAddress.d.ts +0 -45
  177. package/lib/api/getAddress.js +0 -153
  178. package/lib/api/getCoinInfo.d.ts +0 -148
  179. package/lib/api/getCoinInfo.js +0 -25
  180. package/lib/api/getDeviceState.d.ts +0 -8
  181. package/lib/api/getDeviceState.js +0 -18
  182. package/lib/api/getFeatures.d.ts +0 -71
  183. package/lib/api/getFeatures.js +0 -22
  184. package/lib/api/getFirmwareHash.d.ts +0 -11
  185. package/lib/api/getFirmwareHash.js +0 -29
  186. package/lib/api/getNonce.d.ts +0 -10
  187. package/lib/api/getNonce.js +0 -18
  188. package/lib/api/getOwnershipId.d.ts +0 -17
  189. package/lib/api/getOwnershipId.js +0 -88
  190. package/lib/api/getOwnershipProof.d.ts +0 -17
  191. package/lib/api/getOwnershipProof.js +0 -95
  192. package/lib/api/getPublicKey.d.ts +0 -54
  193. package/lib/api/getPublicKey.js +0 -106
  194. package/lib/api/getSettings.d.ts +0 -24
  195. package/lib/api/getSettings.js +0 -21
  196. package/lib/api/index.d.ts +0 -62
  197. package/lib/api/index.js +0 -62
  198. package/lib/api/loadDevice.d.ts +0 -16
  199. package/lib/api/loadDevice.js +0 -46
  200. package/lib/api/monero/api/index.d.ts +0 -4
  201. package/lib/api/monero/api/index.js +0 -4
  202. package/lib/api/monero/api/moneroGetAddress.d.ts +0 -32
  203. package/lib/api/monero/api/moneroGetAddress.js +0 -117
  204. package/lib/api/monero/api/moneroGetWatchKey.d.ts +0 -14
  205. package/lib/api/monero/api/moneroGetWatchKey.js +0 -45
  206. package/lib/api/monero/api/moneroKeyImageSync.d.ts +0 -17
  207. package/lib/api/monero/api/moneroKeyImageSync.js +0 -128
  208. package/lib/api/monero/api/moneroSignTransaction.d.ts +0 -17
  209. package/lib/api/monero/api/moneroSignTransaction.js +0 -218
  210. package/lib/api/nostr/nostrGetPublicKey.d.ts +0 -15
  211. package/lib/api/nostr/nostrGetPublicKey.js +0 -38
  212. package/lib/api/nostr/nostrSignEvent.d.ts +0 -13
  213. package/lib/api/nostr/nostrSignEvent.js +0 -36
  214. package/lib/api/pingDevice.d.ts +0 -11
  215. package/lib/api/pingDevice.js +0 -29
  216. package/lib/api/pushTransaction.d.ts +0 -19
  217. package/lib/api/pushTransaction.js +0 -39
  218. package/lib/api/recoveryDevice.d.ts +0 -20
  219. package/lib/api/recoveryDevice.js +0 -52
  220. package/lib/api/requestLogin.d.ts +0 -14
  221. package/lib/api/requestLogin.js +0 -53
  222. package/lib/api/resetDevice.d.ts +0 -22
  223. package/lib/api/resetDevice.js +0 -133
  224. package/lib/api/ripple/api/index.d.ts +0 -2
  225. package/lib/api/ripple/api/index.js +0 -2
  226. package/lib/api/ripple/api/rippleGetAddress.d.ts +0 -17
  227. package/lib/api/ripple/api/rippleGetAddress.js +0 -22
  228. package/lib/api/ripple/api/rippleSignTransaction.d.ts +0 -13
  229. package/lib/api/ripple/api/rippleSignTransaction.js +0 -52
  230. package/lib/api/selectAccount.d.ts +0 -15
  231. package/lib/api/selectAccount.js +0 -42
  232. package/lib/api/setBrightness.d.ts +0 -12
  233. package/lib/api/setBrightness.js +0 -28
  234. package/lib/api/setBusy.d.ts +0 -11
  235. package/lib/api/setBusy.js +0 -31
  236. package/lib/api/showDeviceTutorial.d.ts +0 -11
  237. package/lib/api/showDeviceTutorial.js +0 -21
  238. package/lib/api/signMessage.d.ts +0 -25
  239. package/lib/api/signMessage.js +0 -75
  240. package/lib/api/signTransaction.d.ts +0 -199
  241. package/lib/api/signTransaction.js +0 -331
  242. package/lib/api/solana/api/index.d.ts +0 -4
  243. package/lib/api/solana/api/index.js +0 -4
  244. package/lib/api/solana/api/solanaComposeTransaction.d.ts +0 -33
  245. package/lib/api/solana/api/solanaComposeTransaction.js +0 -73
  246. package/lib/api/solana/api/solanaGetAddress.d.ts +0 -17
  247. package/lib/api/solana/api/solanaGetAddress.js +0 -22
  248. package/lib/api/solana/api/solanaGetPublicKey.d.ts +0 -32
  249. package/lib/api/solana/api/solanaGetPublicKey.js +0 -86
  250. package/lib/api/solana/api/solanaSignTransaction.d.ts +0 -41
  251. package/lib/api/solana/api/solanaSignTransaction.js +0 -204
  252. package/lib/api/solana/solanaDefinitions.d.ts +0 -9
  253. package/lib/api/solana/solanaDefinitions.js +0 -33
  254. package/lib/api/stellar/api/index.d.ts +0 -2
  255. package/lib/api/stellar/api/index.js +0 -2
  256. package/lib/api/stellar/api/stellarGetAddress.d.ts +0 -17
  257. package/lib/api/stellar/api/stellarGetAddress.js +0 -22
  258. package/lib/api/stellar/api/stellarSignTransaction.d.ts +0 -20
  259. package/lib/api/stellar/api/stellarSignTransaction.js +0 -65
  260. package/lib/api/stellar/stellarSignTx.d.ts +0 -7
  261. package/lib/api/stellar/stellarSignTx.js +0 -183
  262. package/lib/api/telemetryGet.d.ts +0 -14
  263. package/lib/api/telemetryGet.js +0 -26
  264. package/lib/api/tezos/api/index.d.ts +0 -3
  265. package/lib/api/tezos/api/index.js +0 -3
  266. package/lib/api/tezos/api/tezosGetAddress.d.ts +0 -17
  267. package/lib/api/tezos/api/tezosGetAddress.js +0 -22
  268. package/lib/api/tezos/api/tezosGetPublicKey.d.ts +0 -28
  269. package/lib/api/tezos/api/tezosGetPublicKey.js +0 -84
  270. package/lib/api/tezos/api/tezosSignTransaction.d.ts +0 -14
  271. package/lib/api/tezos/api/tezosSignTransaction.js +0 -30
  272. package/lib/api/tezos/tezosSignTx.d.ts +0 -71
  273. package/lib/api/tezos/tezosSignTx.js +0 -204
  274. package/lib/api/thpGetCredentials.d.ts +0 -13
  275. package/lib/api/thpGetCredentials.js +0 -30
  276. package/lib/api/thpRemoveCredentials.d.ts +0 -15
  277. package/lib/api/thpRemoveCredentials.js +0 -44
  278. package/lib/api/tron/api/index.d.ts +0 -3
  279. package/lib/api/tron/api/index.js +0 -3
  280. package/lib/api/tron/api/tronComposeTransaction.d.ts +0 -17
  281. package/lib/api/tron/api/tronComposeTransaction.js +0 -52
  282. package/lib/api/tron/api/tronGetAddress.d.ts +0 -17
  283. package/lib/api/tron/api/tronGetAddress.js +0 -22
  284. package/lib/api/tron/api/tronSignTransaction.d.ts +0 -20
  285. package/lib/api/tron/api/tronSignTransaction.js +0 -137
  286. package/lib/api/tron/tronEncode.d.ts +0 -11
  287. package/lib/api/tron/tronEncode.js +0 -157
  288. package/lib/api/tron/tronProtobuf.d.ts +0 -5
  289. package/lib/api/tron/tronProtobuf.js +0 -28
  290. package/lib/api/unlockPath.d.ts +0 -12
  291. package/lib/api/unlockPath.js +0 -33
  292. package/lib/api/verifyMessage.d.ts +0 -16
  293. package/lib/api/verifyMessage.js +0 -46
  294. package/lib/api/wipeDevice.d.ts +0 -21
  295. package/lib/api/wipeDevice.js +0 -49
  296. package/lib/backend/BackendManager.d.ts +0 -30
  297. package/lib/backend/BackendManager.js +0 -145
  298. package/lib/backend/Blockchain.d.ts +0 -81
  299. package/lib/backend/Blockchain.js +0 -235
  300. package/lib/backend/BlockchainLink.d.ts +0 -10
  301. package/lib/backend/BlockchainLink.js +0 -19
  302. package/lib/backend/fees/BitcoinFeeLevels.d.ts +0 -19
  303. package/lib/backend/fees/BitcoinFeeLevels.js +0 -44
  304. package/lib/backend/fees/EthereumFeeLevels.d.ts +0 -17
  305. package/lib/backend/fees/EthereumFeeLevels.js +0 -63
  306. package/lib/backend/fees/MiscFeeLevels.d.ts +0 -18
  307. package/lib/backend/fees/MiscFeeLevels.js +0 -30
  308. package/lib/backend/fees/index.d.ts +0 -5
  309. package/lib/backend/fees/index.js +0 -31
  310. package/lib/core/AbstractMethod.d.ts +0 -63
  311. package/lib/core/AbstractMethod.js +0 -189
  312. package/lib/core/index.d.ts +0 -29
  313. package/lib/core/index.js +0 -805
  314. package/lib/core/method.d.ts +0 -3
  315. package/lib/core/method.js +0 -19
  316. package/lib/core/method.native.d.ts +0 -2
  317. package/lib/core/method.native.js +0 -29
  318. package/lib/core/onCallFirmwareUpdate.d.ts +0 -42
  319. package/lib/core/onCallFirmwareUpdate.js +0 -436
  320. package/lib/data/coinInfo.d.ts +0 -101
  321. package/lib/data/coinInfo.js +0 -195
  322. package/lib/data/config.d.ts +0 -8
  323. package/lib/data/config.js +0 -273
  324. package/lib/data/defaultFeeLevels.d.ts +0 -18
  325. package/lib/data/defaultFeeLevels.js +0 -200
  326. package/lib/data/enabledNetworksStore.d.ts +0 -5
  327. package/lib/data/enabledNetworksStore.js +0 -20
  328. package/lib/data/firmwareInfo.d.ts +0 -55
  329. package/lib/data/firmwareInfo.js +0 -413
  330. package/lib/data/firmwareReleaseStore.d.ts +0 -10
  331. package/lib/data/firmwareReleaseStore.js +0 -16
  332. package/lib/data/localFirmwareStore.d.ts +0 -3
  333. package/lib/data/localFirmwareStore.js +0 -8
  334. package/lib/data/protobufLoader.d.ts +0 -1
  335. package/lib/data/protobufLoader.js +0 -30
  336. package/lib/data/settingsStore.d.ts +0 -6
  337. package/lib/data/settingsStore.js +0 -21
  338. package/lib/device/Device.d.ts +0 -259
  339. package/lib/device/Device.js +0 -765
  340. package/lib/device/DeviceCommands.d.ts +0 -87
  341. package/lib/device/DeviceCommands.js +0 -248
  342. package/lib/device/DeviceCurrentSession.d.ts +0 -750
  343. package/lib/device/DeviceCurrentSession.js +0 -239
  344. package/lib/device/DeviceList.d.ts +0 -75
  345. package/lib/device/DeviceList.js +0 -243
  346. package/lib/device/TransportList.d.ts +0 -3
  347. package/lib/device/TransportList.js +0 -13
  348. package/lib/device/TransportManager.d.ts +0 -33
  349. package/lib/device/TransportManager.js +0 -144
  350. package/lib/device/calculateRevisionForDevice.d.ts +0 -10
  351. package/lib/device/calculateRevisionForDevice.js +0 -19
  352. package/lib/device/checkFirmwareRevision.d.ts +0 -22
  353. package/lib/device/checkFirmwareRevision.js +0 -104
  354. package/lib/device/resolveDescriptorForTaproot.d.ts +0 -17
  355. package/lib/device/resolveDescriptorForTaproot.js +0 -27
  356. package/lib/device/thp/handshake.d.ts +0 -3
  357. package/lib/device/thp/handshake.js +0 -100
  358. package/lib/device/thp/index.d.ts +0 -5
  359. package/lib/device/thp/index.js +0 -65
  360. package/lib/device/thp/pairing.d.ts +0 -16
  361. package/lib/device/thp/pairing.js +0 -242
  362. package/lib/device/thp/session.d.ts +0 -2
  363. package/lib/device/thp/session.js +0 -27
  364. package/lib/device/thp/thpCall.d.ts +0 -31
  365. package/lib/device/thp/thpCall.js +0 -58
  366. package/lib/device/validateMessageSize.d.ts +0 -2
  367. package/lib/device/validateMessageSize.js +0 -9
  368. package/lib/device/workflow/changeLanguage.d.ts +0 -18
  369. package/lib/device/workflow/changeLanguage.js +0 -62
  370. package/lib/device/workflow/checkFirmwareHash.d.ts +0 -12
  371. package/lib/device/workflow/checkFirmwareHash.js +0 -86
  372. package/lib/device/workflow/checkFirmwareHashWithRetries.d.ts +0 -8
  373. package/lib/device/workflow/checkFirmwareHashWithRetries.js +0 -36
  374. package/lib/device/workflow/handshake.d.ts +0 -13
  375. package/lib/device/workflow/handshake.js +0 -55
  376. package/lib/device/workflow/trezorPushNotification.d.ts +0 -5
  377. package/lib/device/workflow/trezorPushNotification.js +0 -73
  378. package/lib/device/workflow/validateState.d.ts +0 -2
  379. package/lib/device/workflow/validateState.js +0 -152
  380. package/lib/events/ui-promise.d.ts +0 -20
  381. package/lib/events/ui-promise.js +0 -1
  382. package/lib/impl/core-in-module.d.ts +0 -33
  383. package/lib/impl/core-in-module.js +0 -194
  384. package/lib/types/idevice.d.ts +0 -110
  385. package/lib/types/idevice.js +0 -1
  386. package/lib/types/typed-call-provider.d.ts +0 -29
  387. package/lib/types/typed-call-provider.js +0 -1
  388. package/lib/types/workflow.d.ts +0 -16
  389. package/lib/types/workflow.js +0 -1
  390. package/lib/utils/accountUtils.d.ts +0 -10
  391. package/lib/utils/accountUtils.js +0 -90
  392. package/lib/utils/addressUtils.d.ts +0 -2
  393. package/lib/utils/addressUtils.js +0 -24
  394. package/lib/utils/assetUtils.d.ts +0 -13
  395. package/lib/utils/assetUtils.js +0 -55
  396. package/lib/utils/assets.browser.d.ts +0 -1
  397. package/lib/utils/assets.browser.js +0 -1
  398. package/lib/utils/assets.d.ts +0 -2
  399. package/lib/utils/assets.js +0 -13
  400. package/lib/utils/assets.native.d.ts +0 -2
  401. package/lib/utils/assets.native.js +0 -23
  402. package/lib/utils/assetsTypes.d.ts +0 -5
  403. package/lib/utils/assetsTypes.js +0 -1
  404. package/lib/utils/buildOutputDescriptor.d.ts +0 -20
  405. package/lib/utils/buildOutputDescriptor.js +0 -67
  406. package/lib/utils/deviceFeaturesUtils.d.ts +0 -7
  407. package/lib/utils/deviceFeaturesUtils.js +0 -109
  408. package/lib/utils/ethereumUtils.d.ts +0 -3
  409. package/lib/utils/ethereumUtils.js +0 -7
  410. package/lib/utils/firmwareReleaseConfigUtils.d.ts +0 -19
  411. package/lib/utils/firmwareReleaseConfigUtils.js +0 -131
  412. package/lib/utils/firmwareUtils.d.ts +0 -15
  413. package/lib/utils/firmwareUtils.js +0 -57
  414. package/lib/utils/formatUtils.d.ts +0 -13
  415. package/lib/utils/formatUtils.js +0 -45
  416. package/lib/utils/hdnodeUtils.d.ts +0 -6
  417. package/lib/utils/hdnodeUtils.js +0 -62
  418. package/lib/utils/pathUtils.d.ts +0 -1
  419. package/lib/utils/pathUtils.js +0 -1
  420. package/lib/utils/paymentRequest.d.ts +0 -8
  421. package/lib/utils/paymentRequest.js +0 -25
  422. package/lib/utils/uiPromiseManager.d.ts +0 -8
  423. package/lib/utils/uiPromiseManager.js +0 -51
  424. package/lib/workers/workers.browser.d.ts +0 -10
  425. package/lib/workers/workers.browser.js +0 -16
  426. package/lib/workers/workers.d.ts +0 -10
  427. package/lib/workers/workers.js +0 -8
  428. package/lib/workers/workers.native.d.ts +0 -7
  429. package/lib/workers/workers.native.js +0 -7
@@ -1,144 +0,0 @@
1
- import { TRANSPORT } from "@trezor/transport-common";
2
- import { TypedEmitter, resolveAfter } from "@trezor/utils";
3
- const createOverrideLock = () => {
4
- let promise;
5
- let sequence = 0;
6
- let abort;
7
- let message;
8
- const override = async (abortMessage, action) => {
9
- message = abortMessage;
10
- const seq = ++sequence;
11
- while (promise) {
12
- abort?.abort(new Error(abortMessage));
13
- await promise.catch(() => {});
14
- }
15
- if (seq !== sequence) return Promise.reject(new Error(message));
16
- abort = new AbortController();
17
- promise = action(abort.signal).finally(() => {
18
- abort = undefined;
19
- promise = undefined;
20
- });
21
- return promise;
22
- };
23
- const getPending = () => promise;
24
- return {
25
- override,
26
- getPending
27
- };
28
- };
29
- export class TransportManager extends TypedEmitter {
30
- lock = createOverrideLock();
31
- transports = [];
32
- activeTransport;
33
- transportReconnect = false;
34
- upgradeTimeout;
35
- startTransport;
36
- constructor(startTransport) {
37
- super();
38
- this.startTransport = startTransport;
39
- }
40
- pending() {
41
- return this.lock.getPending();
42
- }
43
- get() {
44
- return this.activeTransport;
45
- }
46
- init({
47
- transports,
48
- transportReconnect = false,
49
- pendingTransportEvent = false
50
- }) {
51
- this.transports = transports;
52
- this.transportReconnect = transportReconnect;
53
- return this.lock.override('New init', signal => this.createInitPromise(pendingTransportEvent, signal));
54
- }
55
- dispose() {
56
- this.removeAllListeners();
57
- return this.lock.override('Disposing', () => {
58
- const {
59
- activeTransport
60
- } = this;
61
- if (activeTransport) {
62
- clearTimeout(this.upgradeTimeout);
63
- delete this.activeTransport;
64
- activeTransport.stop();
65
- }
66
- return Promise.resolve();
67
- });
68
- }
69
- async selectTransport(transports, signal) {
70
- if (signal.aborted) throw new Error(signal.reason);
71
- const transport = transports[0];
72
- const rest = transports.slice(1);
73
- if (transport === this.activeTransport) return transport;
74
- const result = await transport.init({
75
- signal
76
- });
77
- if (result.success) return transport;else if (rest.length) return this.selectTransport(rest, signal);else throw new Error(result.error.code);
78
- }
79
- scheduleUpgradeCheck(pendingTransportEvent) {
80
- clearTimeout(this.upgradeTimeout);
81
- this.upgradeTimeout = setTimeout(async () => {
82
- if (!this.activeTransport || this.activeTransport === this.transports[0]) return;
83
- for (const t of this.transports) {
84
- if (t === this.activeTransport) break;
85
- if (await t.ping()) {
86
- this.lock.override('Upgrading', signal => this.createInitPromise(pendingTransportEvent, signal)).catch(() => {});
87
- return;
88
- }
89
- }
90
- this.scheduleUpgradeCheck(pendingTransportEvent);
91
- }, 1000);
92
- }
93
- async createInitPromise(pendingTransportEvent, abortSignal) {
94
- try {
95
- const {
96
- transports,
97
- activeTransport
98
- } = this;
99
- const transport = transports.length ? await this.selectTransport(transports, abortSignal) : undefined;
100
- if (activeTransport !== transport) {
101
- if (activeTransport) {
102
- clearTimeout(this.upgradeTimeout);
103
- delete this.activeTransport;
104
- activeTransport.stop();
105
- }
106
- if (transport) {
107
- try {
108
- await this.startTransport(transport, pendingTransportEvent, abortSignal);
109
- } catch (err) {
110
- transport.stop();
111
- throw err;
112
- }
113
- transport.on(TRANSPORT.ERROR, error => {
114
- this.emit(TRANSPORT.ERROR, error);
115
- clearTimeout(this.upgradeTimeout);
116
- this.lock.override('Transport error', async signal => {
117
- delete this.activeTransport;
118
- transport.stop();
119
- if (this.transportReconnect) {
120
- await resolveAfter(1000, signal);
121
- await this.createInitPromise(pendingTransportEvent, signal);
122
- }
123
- }).catch(() => {});
124
- });
125
- this.activeTransport = transport;
126
- this.emit(TRANSPORT.START, transport);
127
- } else {
128
- this.emit(TRANSPORT.ERROR, 'Transport disabled');
129
- }
130
- }
131
- if (transport && transport !== transports[0]) {
132
- this.scheduleUpgradeCheck(pendingTransportEvent);
133
- }
134
- } catch (error) {
135
- this.emit(TRANSPORT.ERROR, error?.message);
136
- if (this.transportReconnect && !abortSignal.aborted) {
137
- this.lock.override('Reconnecting', async signal => {
138
- await resolveAfter(1000, signal);
139
- await this.createInitPromise(pendingTransportEvent, signal);
140
- }).catch(() => {});
141
- }
142
- }
143
- }
144
- }
@@ -1,10 +0,0 @@
1
- import type { VersionArray } from '@trezor/utils/lib/versionUtils';
2
- type calculateRevisionForDeviceParams = {
3
- commitRevision: string;
4
- version: VersionArray;
5
- };
6
- export declare const calculateRevisionForDevice: ({
7
- commitRevision,
8
- version
9
- }: calculateRevisionForDeviceParams) => string;
10
- export {};
@@ -1,19 +0,0 @@
1
- import { isNewer } from "@trezor/utils/lib/versionUtils.js";
2
- export const calculateRevisionForDevice = ({
3
- commitRevision,
4
- version
5
- }) => {
6
- if (isNewer(version, '2.4.0')) {
7
- return commitRevision;
8
- }
9
- if (isNewer(version, '2.2.0')) {
10
- return commitRevision.slice(0, 9);
11
- }
12
- if (isNewer(version, '2.1.8')) {
13
- return commitRevision;
14
- }
15
- if (isNewer(version, '2.0.0')) {
16
- return commitRevision.slice(0, 8);
17
- }
18
- return commitRevision;
19
- };
@@ -1,22 +0,0 @@
1
- import type { FirmwareRevisionCheckResult } from '@trezor/connect-common/lib/types/device';
2
- import type { FirmwareType } from '@trezor/device-utils';
3
- import type { MessagesSchema as PROTO } from '@trezor/protobuf';
4
- import type { VersionArray } from '@trezor/utils/lib/versionUtils';
5
- export type CheckFirmwareRevisionParams = {
6
- firmwareVersion: VersionArray;
7
- internalModel: PROTO.DeviceModelInternal;
8
- deviceRevision?: string | null;
9
- expectedRevision: string | undefined;
10
- deviceBootloaderHash?: string | null;
11
- expectedBootloaderHash: string | undefined;
12
- firmwareType: FirmwareType;
13
- };
14
- export declare const checkFirmwareRevision: ({
15
- firmwareVersion,
16
- internalModel,
17
- deviceRevision,
18
- expectedRevision,
19
- deviceBootloaderHash,
20
- expectedBootloaderHash,
21
- firmwareType
22
- }: CheckFirmwareRevisionParams) => Promise<FirmwareRevisionCheckResult>;
@@ -1,104 +0,0 @@
1
- import { serializeError, versionUtils } from "@trezor/utils";
2
- import { calculateRevisionForDevice } from "./calculateRevisionForDevice.js";
3
- import { getOnlineReleaseByVersion } from "../data/firmwareInfo.js";
4
- import { HttpRequestError } from "../utils/assetUtils.js";
5
- const isNotFoundError = e => e instanceof HttpRequestError && e.response.status === 404;
6
- const NODEJS_NETWORK_ERROR_CODES = ['ENOTFOUND', 'ECONNREFUSED', 'ECONNRESET', 'EAI_AGAIN', 'ENETUNREACH', 'EHOSTUNREACH', 'ETIMEDOUT'];
7
- const getNodeJSErrorCode = e => {
8
- if (typeof e !== 'object' || e === null) {
9
- return undefined;
10
- }
11
- if ('code' in e && typeof e.code === 'string') {
12
- return e.code;
13
- }
14
- if ('cause' in e) {
15
- return getNodeJSErrorCode(e.cause);
16
- }
17
- return undefined;
18
- };
19
- const isNodeJSOfflineError = e => {
20
- if (e instanceof TypeError && e.message.includes('fetch failed')) {
21
- return true;
22
- }
23
- const code = getNodeJSErrorCode(e);
24
- return code !== undefined && NODEJS_NETWORK_ERROR_CODES.includes(code);
25
- };
26
- const isReactNativeOfflineError = e => e.name === 'TypeError' && e.message.includes('Network request failed');
27
- const isBrowserOfflineError = e => e instanceof TypeError && e.message.includes('Failed to fetch');
28
- const isAbortControllerTimeout = e => e.message.includes('Aborted') || e.name === 'AbortError' || e.name === 'TimeoutError' && e.message.includes('signal timed out');
29
- const isOfflineError = e => {
30
- if (!(e instanceof Error)) return false;
31
- return isNodeJSOfflineError(e) || isReactNativeOfflineError(e) || isBrowserOfflineError(e) || isAbortControllerTimeout(e);
32
- };
33
- const failFirmwareRevisionCheck = (error, errorPayload) => ({
34
- success: false,
35
- error,
36
- ...(errorPayload ? {
37
- errorPayload
38
- } : null)
39
- });
40
- const doRevisionsMatch = ({
41
- deviceRevision,
42
- expectedCommitRevision,
43
- firmwareVersion
44
- }) => {
45
- if (!deviceRevision) {
46
- return false;
47
- }
48
- const adjustedExpected = calculateRevisionForDevice({
49
- commitRevision: expectedCommitRevision,
50
- version: firmwareVersion
51
- });
52
- return adjustedExpected === deviceRevision;
53
- };
54
- export const checkFirmwareRevision = async ({
55
- firmwareVersion,
56
- internalModel,
57
- deviceRevision,
58
- expectedRevision,
59
- deviceBootloaderHash,
60
- expectedBootloaderHash,
61
- firmwareType
62
- }) => {
63
- if (expectedBootloaderHash && deviceBootloaderHash !== expectedBootloaderHash) {
64
- return failFirmwareRevisionCheck('bootloader-hash-mismatch');
65
- }
66
- if (expectedRevision === undefined) {
67
- if (!versionUtils.isVersionArray(firmwareVersion)) {
68
- return failFirmwareRevisionCheck('firmware-version-unknown');
69
- }
70
- try {
71
- const onlineRelease = await getOnlineReleaseByVersion(internalModel, firmwareVersion, firmwareType);
72
- if (onlineRelease?.firmware_revision === undefined) {
73
- return failFirmwareRevisionCheck('firmware-version-unknown');
74
- }
75
- const expectedOnlineBootloaderHash = onlineRelease.bootloader_hash;
76
- if (expectedOnlineBootloaderHash && deviceBootloaderHash !== expectedOnlineBootloaderHash) {
77
- return failFirmwareRevisionCheck('bootloader-hash-mismatch');
78
- }
79
- if (!doRevisionsMatch({
80
- deviceRevision,
81
- expectedCommitRevision: onlineRelease.firmware_revision,
82
- firmwareVersion
83
- })) {
84
- return failFirmwareRevisionCheck('revision-mismatch');
85
- }
86
- return {
87
- success: true
88
- };
89
- } catch (e) {
90
- if (isNotFoundError(e)) return failFirmwareRevisionCheck('firmware-version-unknown');
91
- return isOfflineError(e) ? failFirmwareRevisionCheck('cannot-perform-check-offline') : failFirmwareRevisionCheck('other-error', serializeError(e));
92
- }
93
- }
94
- if (!doRevisionsMatch({
95
- deviceRevision,
96
- expectedCommitRevision: expectedRevision,
97
- firmwareVersion
98
- })) {
99
- return failFirmwareRevisionCheck('revision-mismatch');
100
- }
101
- return {
102
- success: true
103
- };
104
- };
@@ -1,17 +0,0 @@
1
- import type { HDNodeResponse } from '@trezor/connect-common/lib/types/api/account/getPublicKey';
2
- import type { MessagesSchema as Messages } from '@trezor/protobuf';
3
- interface ResolveDescriptorForTaprootParams {
4
- response: HDNodeResponse;
5
- publicKey: Messages.PublicKey;
6
- }
7
- export declare const resolveDescriptorForTaproot: ({
8
- response,
9
- publicKey
10
- }: ResolveDescriptorForTaprootParams) => {
11
- xpub: string;
12
- checksum: string;
13
- } | {
14
- xpub: string;
15
- checksum: undefined;
16
- };
17
- export {};
@@ -1,27 +0,0 @@
1
- import { convertTaprootXpub, isNotNull, isNotNullOrUndefined } from "@trezor/utils";
2
- export const resolveDescriptorForTaproot = ({
3
- response,
4
- publicKey
5
- }) => {
6
- if (isNotNullOrUndefined(publicKey.descriptor)) {
7
- const splittedDescriptor = publicKey.descriptor.split('#');
8
- const xpub = splittedDescriptor[0];
9
- const checksum = splittedDescriptor[1];
10
- const correctedXpub = convertTaprootXpub({
11
- xpub,
12
- direction: 'h-to-apostrophe'
13
- });
14
- if (isNotNull(correctedXpub)) {
15
- return {
16
- xpub: correctedXpub,
17
- checksum
18
- };
19
- }
20
- }
21
- const fingerprint = Number(publicKey.root_fingerprint || 0).toString(16).padStart(8, '0');
22
- const descriptorPath = `${fingerprint}${response.serializedPath.substring(1)}`;
23
- return {
24
- xpub: `tr([${descriptorPath}]${response.xpub}/<0;1>/*)`,
25
- checksum: undefined
26
- };
27
- };
@@ -1,3 +0,0 @@
1
- import type { IDevice } from "../../types/idevice.js";
2
- export declare const createThpChannel: (device: IDevice) => Promise<void>;
3
- export declare const thpHandshake: (device: IDevice, unlockPin?: boolean) => Promise<void>;
@@ -1,100 +0,0 @@
1
- import { randomBytes } from "@noble/hashes/utils.js";
2
- import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
3
- import { protobufManager } from "@trezor/protobuf";
4
- import { thp as protocolThp } from "@trezor/protocol";
5
- import { thpCall } from "./thpCall.js";
6
- import * as settingsStore from "../../data/settingsStore.js";
7
- const getPairingMethods = (deviceMethods, settingsMethods) => deviceMethods?.flatMap(dm => {
8
- const value = protocolThp.getThpPairingMethod(dm);
9
- const isRequested = settingsMethods?.find(sm => value === protocolThp.getThpPairingMethod(sm));
10
- return isRequested ? value : [];
11
- });
12
- export const createThpChannel = async device => {
13
- const thpState = device.getThpState();
14
- if (!thpState) {
15
- throw ERRORS.TypedError('Device_ThpStateMissing');
16
- }
17
- thpState.setChannel(protocolThp.constants.THP_DEFAULT_CHANNEL);
18
- const nonce = Buffer.from(randomBytes(8));
19
- const createChannel = await thpCall(device, 'ThpCreateChannelRequest', {
20
- nonce
21
- });
22
- const {
23
- properties,
24
- ...resp
25
- } = createChannel.message;
26
- if (nonce.compare(resp.nonce) !== 0) {
27
- throw new Error('Nonce not meet' + nonce.toString('hex') + ' ' + resp.nonce.toString('hex'));
28
- }
29
- const settings = settingsStore.get('thp');
30
- const pairingMethods = getPairingMethods(properties.pairing_methods, settings?.pairingMethods);
31
- if (!pairingMethods?.length) {
32
- throw ERRORS.TypedError('Device_ThpPairingMethodsException');
33
- }
34
- thpState.setThpProperties(properties);
35
- thpState.setChannel(resp.channel);
36
- thpState.updateHandshakeCredentials({
37
- pairingMethods,
38
- handshakeHash: resp.handshakeHash
39
- });
40
- };
41
- export const thpHandshake = async (device, unlockPin = false) => {
42
- const thpState = device.getThpState();
43
- if (!thpState?.handshakeCredentials) {
44
- throw ERRORS.TypedError('Device_ThpStateMissing');
45
- }
46
- const settings = settingsStore.get('thp');
47
- const knownCredentials = (settings?.knownCredentials || []).sort(cre => cre.autoconnect ? -1 : 1);
48
- const tryToUnlock = unlockPin ? 1 : 0;
49
- const hostEphemeralKeys = protocolThp.getCurve25519KeyPair(Buffer.from(randomBytes(32)));
50
- const handshakeInit = await thpCall(device, 'ThpHandshakeInitRequest', {
51
- key: hostEphemeralKeys.publicKey,
52
- tryToUnlock
53
- });
54
- const {
55
- trezorEncryptedStaticPubkey
56
- } = handshakeInit.message;
57
- const handshakeCredentials = protocolThp.handleHandshakeInit({
58
- handshakeInitResponse: handshakeInit.message,
59
- thpState,
60
- hostEphemeralKeys,
61
- knownCredentials,
62
- tryToUnlock,
63
- protobufEncoder: (name, data) => protobufManager.encode(name, data)
64
- });
65
- const {
66
- hostKey,
67
- trezorKey,
68
- hostEncryptedStaticPubkey
69
- } = handshakeCredentials;
70
- thpState.updateHandshakeCredentials({
71
- trezorEncryptedStaticPubkey,
72
- hostEncryptedStaticPubkey,
73
- handshakeHash: handshakeCredentials.handshakeHash,
74
- trezorKey,
75
- hostKey,
76
- staticKey: handshakeCredentials.staticKey,
77
- hostStaticPublicKey: handshakeCredentials.hostStaticKeys.publicKey
78
- });
79
- thpState.setPairingCredentials(handshakeCredentials.allCredentials);
80
- const handshakeCompletion = await thpCall(device, 'ThpHandshakeCompletionRequest', {
81
- hostPubkey: hostEncryptedStaticPubkey,
82
- encryptedPayload: handshakeCredentials.encryptedPayload
83
- });
84
- if (!handshakeCompletion.message.state && handshakeCredentials.credentials) {
85
- thpState.removePairingCredential(handshakeCredentials.credentials);
86
- const {
87
- credential
88
- } = handshakeCredentials.credentials;
89
- const index = settings?.knownCredentials?.findIndex(c => c.credential === credential) ?? -1;
90
- if (index >= 0) {
91
- settings?.knownCredentials?.splice(index, 1);
92
- }
93
- }
94
- thpState.setIsPaired(handshakeCompletion.message.state !== 0);
95
- thpState.setPhase('pairing');
96
- if (thpState.isAutoconnectPaired || handshakeCompletion.message.state === 2) {
97
- await thpCall(device, 'ThpEndRequest', {});
98
- thpState.setPhase('paired');
99
- }
100
- };
@@ -1,5 +0,0 @@
1
- import type { IDevice } from "../../types/idevice.js";
2
- export { abortThpWorkflow } from "./thpCall.js";
3
- export { getThpCredentials } from "./pairing.js";
4
- export { createThpSession } from "./session.js";
5
- export declare const getThpChannel: (device: IDevice, withInteraction?: boolean) => Promise<"pin-locked" | "thp-locked" | undefined>;
@@ -1,65 +0,0 @@
1
- import { DEVICE } from "@trezor/connect-common";
2
- import { createThpChannel, thpHandshake } from "./handshake.js";
3
- import { thpPairing } from "./pairing.js";
4
- export { abortThpWorkflow } from "./thpCall.js";
5
- export { getThpCredentials } from "./pairing.js";
6
- export { createThpSession } from "./session.js";
7
- export const getThpChannel = async (device, withInteraction) => {
8
- const thpState = device.getThpState();
9
- if (!thpState) return;
10
- try {
11
- if (thpState.phase === 'handshake') {
12
- await createThpChannel(device);
13
- try {
14
- await thpHandshake(device);
15
- } catch (error) {
16
- const isPinLocked = error.code === 'ThpDeviceLocked';
17
- const isTransportBusy = error.message === 'ThpTransportBusy';
18
- if (!isPinLocked && !isTransportBusy) throw error;
19
- thpState.resetState();
20
- if (isPinLocked && !withInteraction) return 'pin-locked';
21
- if (isPinLocked) {
22
- device.emit(DEVICE.BUTTON, {
23
- device,
24
- payload: {
25
- code: 'ButtonRequest_PinEntry'
26
- }
27
- });
28
- }
29
- await createThpChannel(device);
30
- await thpHandshake(device, isPinLocked);
31
- }
32
- }
33
- const startPairing = thpState.phase === 'pairing' && withInteraction;
34
- if (startPairing) {
35
- device.emit(DEVICE.THP_PAIRING_STATUS_CHANGED, {
36
- status: 'started'
37
- });
38
- await thpPairing(device);
39
- }
40
- if (thpState.phase !== 'paired') {
41
- device.emit(DEVICE.THP_PAIRING_STATUS_CHANGED, {
42
- status: 'failed',
43
- message: 'THP Locked'
44
- });
45
- return 'thp-locked';
46
- } else if (startPairing) {
47
- device.emit(DEVICE.THP_PAIRING_STATUS_CHANGED, {
48
- status: 'finished'
49
- });
50
- }
51
- } catch (error) {
52
- thpState.resetState();
53
- if (error.code === 'Device_ThpPairingTagInvalid') {} else if (error.code === 'Failure_ActionCancelled') {
54
- device.emit(DEVICE.THP_PAIRING_STATUS_CHANGED, {
55
- status: 'canceled'
56
- });
57
- } else {
58
- device.emit(DEVICE.THP_PAIRING_STATUS_CHANGED, {
59
- status: 'failed',
60
- message: error.message
61
- });
62
- }
63
- throw error;
64
- }
65
- };
@@ -1,16 +0,0 @@
1
- import { thp as protocolThp } from '@trezor/protocol';
2
- import type { IDevice } from "../../types/idevice.js";
3
- export declare const getThpCredentials: (device: IDevice, autoconnect?: boolean) => Promise<{
4
- autoconnect: boolean;
5
- host_static_key: string;
6
- trezor_static_public_key: string;
7
- credential: string;
8
- }>;
9
- export declare const thpPairingEnd: (device: IDevice) => Promise<{
10
- type: "ThpEndResponse";
11
- message: protocolThp.ThpEndResponse;
12
- }>;
13
- export declare const thpPairing: (device: IDevice) => Promise<{
14
- type: "ThpEndResponse";
15
- message: protocolThp.ThpEndResponse;
16
- } | undefined>;