@trezor/connect 9.7.3 → 10.0.0-beta.1

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 (772) hide show
  1. package/CHANGELOG.md +68 -1334
  2. package/README.md +9 -45
  3. package/lib/api/applyFlags.d.ts +17 -14
  4. package/lib/api/applyFlags.js +19 -20
  5. package/lib/api/applySettings.d.ts +18 -15
  6. package/lib/api/applySettings.js +25 -21
  7. package/lib/api/authenticateDevice.d.ts +24 -10
  8. package/lib/api/authenticateDevice.js +149 -49
  9. package/lib/api/authorizeCoinjoin.d.ts +10 -8
  10. package/lib/api/authorizeCoinjoin.js +21 -25
  11. package/lib/api/backupDevice.d.ts +16 -14
  12. package/lib/api/backupDevice.js +20 -21
  13. package/lib/api/bitcoin/TransactionComposer.d.ts +42 -44
  14. package/lib/api/bitcoin/TransactionComposer.js +21 -21
  15. package/lib/api/bitcoin/createPendingTx.d.ts +34 -32
  16. package/lib/api/bitcoin/createPendingTx.js +8 -15
  17. package/lib/api/bitcoin/enhanceSignTx.d.ts +2 -4
  18. package/lib/api/bitcoin/enhanceSignTx.js +5 -46
  19. package/lib/api/bitcoin/index.d.ts +9 -10
  20. package/lib/api/bitcoin/index.js +9 -16
  21. package/lib/api/bitcoin/inputs.d.ts +3 -7
  22. package/lib/api/bitcoin/inputs.js +12 -34
  23. package/lib/api/bitcoin/outputs.d.ts +3 -6
  24. package/lib/api/bitcoin/outputs.js +34 -33
  25. package/lib/api/bitcoin/refTx.d.ts +16 -12
  26. package/lib/api/bitcoin/refTx.js +49 -70
  27. package/lib/api/bitcoin/signtx.d.ts +26 -21
  28. package/lib/api/bitcoin/signtx.js +47 -39
  29. package/lib/api/bitcoin/signtxLegacy.d.ts +10 -4
  30. package/lib/api/bitcoin/signtxLegacy.js +31 -32
  31. package/lib/api/bitcoin/signtxVerify.d.ts +7 -9
  32. package/lib/api/bitcoin/signtxVerify.js +35 -35
  33. package/lib/api/bitcoin/transactionBytes.d.ts +3 -5
  34. package/lib/api/bitcoin/transactionBytes.js +8 -19
  35. package/lib/api/bleUnpair.d.ts +10 -8
  36. package/lib/api/bleUnpair.js +23 -25
  37. package/lib/api/blockchainDisconnect.d.ts +12 -11
  38. package/lib/api/blockchainDisconnect.js +22 -28
  39. package/lib/api/blockchainEstimateFee.d.ts +12 -9
  40. package/lib/api/blockchainEstimateFee.js +27 -32
  41. package/lib/api/blockchainEvmRpcCall.d.ts +15 -12
  42. package/lib/api/blockchainEvmRpcCall.js +22 -27
  43. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +12 -9
  44. package/lib/api/blockchainGetAccountBalanceHistory.js +27 -28
  45. package/lib/api/blockchainGetContractInfo.d.ts +16 -0
  46. package/lib/api/blockchainGetContractInfo.js +46 -0
  47. package/lib/api/blockchainGetCurrentFiatRates.d.ts +16 -13
  48. package/lib/api/blockchainGetCurrentFiatRates.js +22 -27
  49. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +19 -16
  50. package/lib/api/blockchainGetFiatRatesForTimestamps.js +22 -27
  51. package/lib/api/blockchainGetInfo.d.ts +11 -8
  52. package/lib/api/blockchainGetInfo.js +22 -27
  53. package/lib/api/blockchainGetTransactions.d.ts +14 -9
  54. package/lib/api/blockchainGetTransactions.js +29 -29
  55. package/lib/api/blockchainSetCustomBackend.d.ts +13 -8
  56. package/lib/api/blockchainSetCustomBackend.js +26 -28
  57. package/lib/api/blockchainSubscribe.d.ts +15 -12
  58. package/lib/api/blockchainSubscribe.js +25 -28
  59. package/lib/api/blockchainSubscribeFiatRates.d.ts +15 -11
  60. package/lib/api/blockchainSubscribeFiatRates.js +23 -27
  61. package/lib/api/blockchainUnsubscribe.d.ts +15 -12
  62. package/lib/api/blockchainUnsubscribe.js +25 -28
  63. package/lib/api/blockchainUnsubscribeFiatRates.d.ts +13 -10
  64. package/lib/api/blockchainUnsubscribeFiatRates.js +22 -27
  65. package/lib/api/blockchainValidateEvmRpcUrl.d.ts +17 -0
  66. package/lib/api/blockchainValidateEvmRpcUrl.js +54 -0
  67. package/lib/api/cancelCoinjoinAuthorization.d.ts +11 -10
  68. package/lib/api/cancelCoinjoinAuthorization.js +15 -18
  69. package/lib/api/cardano/api/cardanoComposeTransaction.d.ts +9 -7
  70. package/lib/api/cardano/api/cardanoComposeTransaction.js +25 -27
  71. package/lib/api/cardano/api/cardanoGetAddress.d.ts +31 -24
  72. package/lib/api/cardano/api/cardanoGetAddress.js +75 -70
  73. package/lib/api/cardano/api/cardanoGetNativeScriptHash.d.ts +11 -12
  74. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +47 -56
  75. package/lib/api/cardano/api/cardanoGetPublicKey.d.ts +19 -14
  76. package/lib/api/cardano/api/cardanoGetPublicKey.js +62 -43
  77. package/lib/api/cardano/api/cardanoSignMessage.d.ts +19 -22
  78. package/lib/api/cardano/api/cardanoSignMessage.js +34 -44
  79. package/lib/api/cardano/api/cardanoSignTransaction.d.ts +75 -73
  80. package/lib/api/cardano/api/cardanoSignTransaction.js +64 -62
  81. package/lib/api/cardano/api/index.d.ts +6 -7
  82. package/lib/api/cardano/api/index.js +6 -50
  83. package/lib/api/cardano/cardanoAddressParameters.d.ts +3 -4
  84. package/lib/api/cardano/cardanoAddressParameters.js +17 -27
  85. package/lib/api/cardano/cardanoAuxiliaryData.d.ts +3 -4
  86. package/lib/api/cardano/cardanoAuxiliaryData.js +16 -25
  87. package/lib/api/cardano/cardanoCertificate.d.ts +9 -10
  88. package/lib/api/cardano/cardanoCertificate.js +35 -42
  89. package/lib/api/cardano/cardanoInputs.d.ts +16 -17
  90. package/lib/api/cardano/cardanoInputs.js +19 -29
  91. package/lib/api/cardano/cardanoOutputs.d.ts +35 -35
  92. package/lib/api/cardano/cardanoOutputs.js +25 -34
  93. package/lib/api/cardano/cardanoTokenBundle.d.ts +10 -11
  94. package/lib/api/cardano/cardanoTokenBundle.js +9 -17
  95. package/lib/api/cardano/cardanoUtils.d.ts +13 -5
  96. package/lib/api/cardano/cardanoUtils.js +19 -33
  97. package/lib/api/cardano/cardanoWitnesses.d.ts +4 -5
  98. package/lib/api/cardano/cardanoWitnesses.js +6 -14
  99. package/lib/api/changeLanguage.d.ts +16 -15
  100. package/lib/api/changeLanguage.js +22 -23
  101. package/lib/api/changePin.d.ts +9 -7
  102. package/lib/api/changePin.js +18 -20
  103. package/lib/api/changeWipeCode.d.ts +10 -8
  104. package/lib/api/changeWipeCode.js +17 -19
  105. package/lib/api/cipherKeyValue.d.ts +16 -12
  106. package/lib/api/cipherKeyValue.js +35 -33
  107. package/lib/api/common/AbstractMiscGetAddress.d.ts +37 -0
  108. package/lib/api/common/AbstractMiscGetAddress.js +126 -0
  109. package/lib/api/common/Discovery.d.ts +23 -26
  110. package/lib/api/common/Discovery.js +14 -22
  111. package/lib/api/common/paramsValidator.d.ts +19 -9
  112. package/lib/api/common/paramsValidator.js +77 -71
  113. package/lib/api/common/requestExistingAccounts.d.ts +14 -0
  114. package/lib/api/common/requestExistingAccounts.js +20 -0
  115. package/lib/api/composeTransaction.d.ts +31 -39
  116. package/lib/api/composeTransaction.js +172 -108
  117. package/lib/api/discoverAccounts.d.ts +36 -29
  118. package/lib/api/discoverAccounts.js +113 -69
  119. package/lib/api/ethereum/api/ethereumGetAddress.d.ts +27 -25
  120. package/lib/api/ethereum/api/ethereumGetAddress.js +80 -62
  121. package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +49 -41
  122. package/lib/api/ethereum/api/ethereumGetPublicKey.js +54 -42
  123. package/lib/api/ethereum/api/ethereumSignMessage.d.ts +24 -21
  124. package/lib/api/ethereum/api/ethereumSignMessage.js +40 -46
  125. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +77 -76
  126. package/lib/api/ethereum/api/ethereumSignTransaction.js +63 -77
  127. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +108 -107
  128. package/lib/api/ethereum/api/ethereumSignTypedData.js +69 -77
  129. package/lib/api/ethereum/api/ethereumVerifyMessage.d.ts +11 -9
  130. package/lib/api/ethereum/api/ethereumVerifyMessage.js +23 -25
  131. package/lib/api/ethereum/api/index.d.ts +6 -7
  132. package/lib/api/ethereum/api/index.js +6 -50
  133. package/lib/api/ethereum/ethereumDefinitions.d.ts +42 -36
  134. package/lib/api/ethereum/ethereumDefinitions.js +67 -50
  135. package/lib/api/ethereum/ethereumSignTx.d.ts +15 -21
  136. package/lib/api/ethereum/ethereumSignTx.js +64 -62
  137. package/lib/api/ethereum/ethereumSignTypedData.d.ts +28 -5
  138. package/lib/api/ethereum/ethereumSignTypedData.js +95 -41
  139. package/lib/api/evoluGetDelegatedIdentityKey.d.ts +13 -10
  140. package/lib/api/evoluGetDelegatedIdentityKey.js +20 -32
  141. package/lib/api/evoluGetNode.d.ts +11 -9
  142. package/lib/api/evoluGetNode.js +16 -20
  143. package/lib/api/evoluSignRegistrationRequest.d.ts +14 -10
  144. package/lib/api/evoluSignRegistrationRequest.js +18 -20
  145. package/lib/api/firmware/calculateFirmwareHash.d.ts +15 -10
  146. package/lib/api/firmware/calculateFirmwareHash.js +16 -21
  147. package/lib/api/firmware/calculateXPubHash.d.ts +14 -0
  148. package/lib/api/firmware/calculateXPubHash.js +16 -0
  149. package/lib/api/firmware/getBinary.d.ts +11 -8
  150. package/lib/api/firmware/getBinary.js +12 -21
  151. package/lib/api/firmware/index.d.ts +6 -6
  152. package/lib/api/firmware/index.js +6 -54
  153. package/lib/api/firmware/modifyFirmware.d.ts +2 -3
  154. package/lib/api/firmware/modifyFirmware.js +6 -14
  155. package/lib/api/firmware/parseFirmwareHeaders.d.ts +3 -4
  156. package/lib/api/firmware/parseFirmwareHeaders.js +2 -10
  157. package/lib/api/firmware/uploadFirmware.d.ts +22 -17
  158. package/lib/api/firmware/uploadFirmware.js +20 -20
  159. package/lib/api/firmware/verifyEntropy.d.ts +20 -14
  160. package/lib/api/firmware/verifyEntropy.js +22 -29
  161. package/lib/api/getAccountInfo.d.ts +17 -143
  162. package/lib/api/getAccountInfo.js +92 -184
  163. package/lib/api/getAddress.d.ts +42 -35
  164. package/lib/api/getAddress.js +76 -71
  165. package/lib/api/getCoinInfo.d.ts +144 -146
  166. package/lib/api/getCoinInfo.js +17 -25
  167. package/lib/api/getDeviceState.d.ts +7 -8
  168. package/lib/api/getDeviceState.js +11 -17
  169. package/lib/api/getFeatures.d.ts +70 -64
  170. package/lib/api/getFeatures.js +17 -17
  171. package/lib/api/getFirmwareHash.d.ts +9 -7
  172. package/lib/api/getFirmwareHash.js +20 -24
  173. package/lib/api/getNonce.d.ts +10 -9
  174. package/lib/api/getNonce.js +12 -12
  175. package/lib/api/getOwnershipId.d.ts +16 -12
  176. package/lib/api/getOwnershipId.js +54 -37
  177. package/lib/api/getOwnershipProof.d.ts +16 -12
  178. package/lib/api/getOwnershipProof.js +54 -39
  179. package/lib/api/getPublicKey.d.ts +51 -43
  180. package/lib/api/getPublicKey.js +67 -48
  181. package/lib/api/getSettings.d.ts +23 -5
  182. package/lib/api/getSettings.js +16 -14
  183. package/lib/api/index.d.ts +62 -58
  184. package/lib/api/index.js +62 -408
  185. package/lib/api/loadDevice.d.ts +14 -12
  186. package/lib/api/loadDevice.js +20 -24
  187. package/lib/api/monero/api/index.d.ts +4 -5
  188. package/lib/api/monero/api/index.js +4 -36
  189. package/lib/api/monero/api/moneroGetAddress.d.ts +29 -24
  190. package/lib/api/monero/api/moneroGetAddress.js +56 -61
  191. package/lib/api/monero/api/moneroGetWatchKey.d.ts +11 -10
  192. package/lib/api/monero/api/moneroGetWatchKey.js +26 -29
  193. package/lib/api/monero/api/moneroKeyImageSync.d.ts +13 -12
  194. package/lib/api/monero/api/moneroKeyImageSync.js +34 -37
  195. package/lib/api/monero/api/moneroSignTransaction.d.ts +13 -12
  196. package/lib/api/monero/api/moneroSignTransaction.js +52 -41
  197. package/lib/api/nostr/nostrGetPublicKey.d.ts +15 -0
  198. package/lib/api/nostr/nostrGetPublicKey.js +38 -0
  199. package/lib/api/nostr/nostrSignEvent.d.ts +13 -0
  200. package/lib/api/nostr/nostrSignEvent.js +36 -0
  201. package/lib/api/pingDevice.d.ts +11 -0
  202. package/lib/api/pingDevice.js +29 -0
  203. package/lib/api/pushTransaction.d.ts +15 -12
  204. package/lib/api/pushTransaction.js +25 -30
  205. package/lib/api/recoveryDevice.d.ts +18 -16
  206. package/lib/api/recoveryDevice.js +22 -23
  207. package/lib/api/requestLogin.d.ts +13 -11
  208. package/lib/api/requestLogin.js +24 -30
  209. package/lib/api/resetDevice.d.ts +21 -15
  210. package/lib/api/resetDevice.js +64 -48
  211. package/lib/api/ripple/api/index.d.ts +2 -3
  212. package/lib/api/ripple/api/index.js +2 -22
  213. package/lib/api/ripple/api/rippleGetAddress.d.ts +17 -27
  214. package/lib/api/ripple/api/rippleGetAddress.js +12 -101
  215. package/lib/api/ripple/api/rippleSignTransaction.d.ts +12 -10
  216. package/lib/api/ripple/api/rippleSignTransaction.js +21 -24
  217. package/lib/api/selectAccount.d.ts +15 -0
  218. package/lib/api/selectAccount.js +42 -0
  219. package/lib/api/setBrightness.d.ts +10 -7
  220. package/lib/api/setBrightness.js +19 -20
  221. package/lib/api/setBusy.d.ts +10 -8
  222. package/lib/api/setBusy.js +18 -25
  223. package/lib/api/showDeviceTutorial.d.ts +11 -10
  224. package/lib/api/showDeviceTutorial.js +11 -16
  225. package/lib/api/signMessage.d.ts +24 -18
  226. package/lib/api/signMessage.js +47 -36
  227. package/lib/api/signTransaction.d.ts +195 -227
  228. package/lib/api/signTransaction.js +84 -101
  229. package/lib/api/solana/api/index.d.ts +4 -5
  230. package/lib/api/solana/api/index.js +4 -36
  231. package/lib/api/solana/api/solanaComposeTransaction.d.ts +29 -26
  232. package/lib/api/solana/api/solanaComposeTransaction.js +47 -36
  233. package/lib/api/solana/api/solanaGetAddress.d.ts +17 -27
  234. package/lib/api/solana/api/solanaGetAddress.js +12 -101
  235. package/lib/api/solana/api/solanaGetPublicKey.d.ts +31 -26
  236. package/lib/api/solana/api/solanaGetPublicKey.js +54 -39
  237. package/lib/api/solana/api/solanaSignTransaction.d.ts +38 -36
  238. package/lib/api/solana/api/solanaSignTransaction.js +134 -133
  239. package/lib/api/solana/solanaDefinitions.d.ts +5 -4
  240. package/lib/api/solana/solanaDefinitions.js +12 -25
  241. package/lib/api/stellar/api/index.d.ts +2 -3
  242. package/lib/api/stellar/api/index.js +2 -22
  243. package/lib/api/stellar/api/stellarGetAddress.d.ts +17 -27
  244. package/lib/api/stellar/api/stellarGetAddress.js +12 -101
  245. package/lib/api/stellar/api/stellarSignTransaction.d.ts +17 -21
  246. package/lib/api/stellar/api/stellarSignTransaction.js +39 -44
  247. package/lib/api/stellar/stellarSignTx.d.ts +7 -7
  248. package/lib/api/stellar/stellarSignTx.js +37 -51
  249. package/lib/api/telemetryGet.d.ts +14 -0
  250. package/lib/api/telemetryGet.js +26 -0
  251. package/lib/api/tezos/api/index.d.ts +3 -4
  252. package/lib/api/tezos/api/index.js +3 -29
  253. package/lib/api/tezos/api/tezosGetAddress.d.ts +17 -27
  254. package/lib/api/tezos/api/tezosGetAddress.js +12 -101
  255. package/lib/api/tezos/api/tezosGetPublicKey.d.ts +27 -20
  256. package/lib/api/tezos/api/tezosGetPublicKey.js +53 -37
  257. package/lib/api/tezos/api/tezosSignTransaction.d.ts +13 -11
  258. package/lib/api/tezos/api/tezosSignTransaction.js +20 -26
  259. package/lib/api/tezos/tezosSignTx.d.ts +66 -67
  260. package/lib/api/tezos/tezosSignTx.js +12 -19
  261. package/lib/api/thpGetCredentials.d.ts +12 -9
  262. package/lib/api/thpGetCredentials.js +21 -25
  263. package/lib/api/thpRemoveCredentials.d.ts +14 -7
  264. package/lib/api/thpRemoveCredentials.js +35 -30
  265. package/lib/api/tron/api/index.d.ts +3 -3
  266. package/lib/api/tron/api/index.js +3 -22
  267. package/lib/api/tron/api/tronComposeTransaction.d.ts +17 -0
  268. package/lib/api/tron/api/tronComposeTransaction.js +52 -0
  269. package/lib/api/tron/api/tronGetAddress.d.ts +17 -27
  270. package/lib/api/tron/api/tronGetAddress.js +12 -98
  271. package/lib/api/tron/api/tronSignTransaction.d.ts +16 -15
  272. package/lib/api/tron/api/tronSignTransaction.js +101 -27
  273. package/lib/api/tron/tronEncode.d.ts +11 -0
  274. package/lib/api/tron/tronEncode.js +157 -0
  275. package/lib/api/tron/tronProtobuf.d.ts +5 -0
  276. package/lib/api/tron/tronProtobuf.js +28 -0
  277. package/lib/api/unlockPath.d.ts +11 -9
  278. package/lib/api/unlockPath.js +18 -23
  279. package/lib/api/verifyMessage.d.ts +15 -9
  280. package/lib/api/verifyMessage.js +30 -34
  281. package/lib/api/wipeDevice.d.ts +19 -15
  282. package/lib/api/wipeDevice.js +22 -22
  283. package/lib/backend/BackendManager.d.ts +26 -20
  284. package/lib/backend/BackendManager.js +29 -29
  285. package/lib/backend/Blockchain.d.ts +78 -79
  286. package/lib/backend/Blockchain.js +34 -35
  287. package/lib/backend/BlockchainLink.d.ts +6 -6
  288. package/lib/backend/BlockchainLink.js +14 -27
  289. package/lib/backend/fees/BitcoinFeeLevels.d.ts +18 -19
  290. package/lib/backend/fees/BitcoinFeeLevels.js +11 -17
  291. package/lib/backend/fees/EthereumFeeLevels.d.ts +16 -17
  292. package/lib/backend/fees/EthereumFeeLevels.js +26 -22
  293. package/lib/backend/fees/MiscFeeLevels.d.ts +17 -18
  294. package/lib/backend/fees/MiscFeeLevels.js +13 -16
  295. package/lib/backend/fees/index.d.ts +4 -5
  296. package/lib/backend/fees/index.js +12 -21
  297. package/lib/core/AbstractMethod.d.ts +57 -72
  298. package/lib/core/AbstractMethod.js +92 -170
  299. package/lib/core/index.d.ts +25 -28
  300. package/lib/core/index.js +292 -493
  301. package/lib/core/method.d.ts +3 -4
  302. package/lib/core/method.js +9 -18
  303. package/lib/core/method.native.d.ts +2 -3
  304. package/lib/core/method.native.js +8 -19
  305. package/lib/core/onCallFirmwareUpdate.d.ts +33 -32
  306. package/lib/core/onCallFirmwareUpdate.js +103 -63
  307. package/lib/data/coinInfo.d.ts +86 -431
  308. package/lib/data/coinInfo.js +55 -57
  309. package/lib/data/config.d.ts +5 -30
  310. package/lib/data/config.js +52 -149
  311. package/lib/data/defaultFeeLevels.d.ts +10 -11
  312. package/lib/data/defaultFeeLevels.js +39 -23
  313. package/lib/data/enabledNetworksStore.d.ts +5 -0
  314. package/lib/data/enabledNetworksStore.js +20 -0
  315. package/lib/data/firmwareInfo.d.ts +39 -37
  316. package/lib/data/firmwareInfo.js +99 -167
  317. package/lib/data/firmwareReleaseStore.d.ts +10 -0
  318. package/lib/data/firmwareReleaseStore.js +16 -0
  319. package/lib/data/localFirmwareStore.d.ts +3 -0
  320. package/lib/data/localFirmwareStore.js +8 -0
  321. package/lib/data/protobufLoader.d.ts +1 -0
  322. package/lib/data/protobufLoader.js +30 -0
  323. package/lib/data/settingsStore.d.ts +6 -0
  324. package/lib/data/settingsStore.js +21 -0
  325. package/lib/device/Device.d.ts +255 -289
  326. package/lib/device/Device.js +203 -204
  327. package/lib/device/DeviceCommands.d.ts +82 -69
  328. package/lib/device/DeviceCommands.js +35 -36
  329. package/lib/device/DeviceCurrentSession.d.ts +746 -1093
  330. package/lib/device/DeviceCurrentSession.js +32 -53
  331. package/lib/device/DeviceList.d.ts +65 -59
  332. package/lib/device/DeviceList.js +80 -76
  333. package/lib/device/TransportList.d.ts +3 -9
  334. package/lib/device/TransportList.js +11 -50
  335. package/lib/device/TransportManager.d.ts +25 -22
  336. package/lib/device/TransportManager.js +15 -21
  337. package/lib/device/calculateRevisionForDevice.d.ts +8 -6
  338. package/lib/device/calculateRevisionForDevice.js +7 -15
  339. package/lib/device/checkFirmwareRevision.d.ts +20 -10
  340. package/lib/device/checkFirmwareRevision.js +43 -22
  341. package/lib/device/resolveDescriptorForTaproot.d.ts +13 -11
  342. package/lib/device/resolveDescriptorForTaproot.js +9 -15
  343. package/lib/device/thp/handshake.d.ts +3 -4
  344. package/lib/device/thp/handshake.js +27 -39
  345. package/lib/device/thp/index.d.ts +5 -6
  346. package/lib/device/thp/index.js +37 -41
  347. package/lib/device/thp/pairing.d.ts +13 -13
  348. package/lib/device/thp/pairing.js +88 -84
  349. package/lib/device/thp/session.d.ts +2 -3
  350. package/lib/device/thp/session.js +4 -12
  351. package/lib/device/thp/thpCall.d.ts +22 -32
  352. package/lib/device/thp/thpCall.js +14 -20
  353. package/lib/device/validateMessageSize.d.ts +2 -0
  354. package/lib/device/validateMessageSize.js +9 -0
  355. package/lib/device/workflow/changeLanguage.d.ts +18 -0
  356. package/lib/device/workflow/changeLanguage.js +62 -0
  357. package/lib/device/workflow/checkFirmwareHash.d.ts +10 -8
  358. package/lib/device/workflow/checkFirmwareHash.js +20 -28
  359. package/lib/device/workflow/checkFirmwareHashWithRetries.d.ts +5 -6
  360. package/lib/device/workflow/checkFirmwareHashWithRetries.js +9 -17
  361. package/lib/device/workflow/handshake.d.ts +11 -8
  362. package/lib/device/workflow/handshake.js +13 -21
  363. package/lib/device/workflow/trezorPushNotification.d.ts +5 -3
  364. package/lib/device/workflow/trezorPushNotification.js +28 -36
  365. package/lib/device/workflow/validateState.d.ts +2 -3
  366. package/lib/device/workflow/validateState.js +35 -59
  367. package/lib/events/ui-promise.d.ts +14 -14
  368. package/lib/events/ui-promise.js +1 -6
  369. package/lib/exports.d.ts +3 -5
  370. package/lib/exports.js +3 -18
  371. package/lib/impl/core-in-module.d.ts +33 -35
  372. package/lib/impl/core-in-module.js +124 -146
  373. package/lib/index.browser.d.ts +7 -0
  374. package/lib/index.browser.js +34 -0
  375. package/lib/index.d.ts +3 -9
  376. package/lib/index.js +15 -178
  377. package/lib/types/idevice.d.ts +110 -0
  378. package/lib/types/idevice.js +1 -0
  379. package/lib/types/typed-call-provider.d.ts +29 -0
  380. package/lib/types/typed-call-provider.js +1 -0
  381. package/lib/types/workflow.d.ts +13 -9
  382. package/lib/types/workflow.js +1 -6
  383. package/lib/utils/accountUtils.d.ts +4 -5
  384. package/lib/utils/accountUtils.js +28 -32
  385. package/lib/utils/addressUtils.d.ts +2 -3
  386. package/lib/utils/addressUtils.js +4 -12
  387. package/lib/utils/assetUtils.d.ts +8 -5
  388. package/lib/utils/assetUtils.js +36 -28
  389. package/lib/utils/assets.browser.d.ts +1 -0
  390. package/lib/utils/assets.browser.js +1 -0
  391. package/lib/utils/assets.d.ts +2 -3
  392. package/lib/utils/assets.js +8 -17
  393. package/lib/utils/assets.native.d.ts +2 -3
  394. package/lib/utils/assets.native.js +5 -12
  395. package/lib/utils/assetsTypes.d.ts +2 -3
  396. package/lib/utils/assetsTypes.js +1 -6
  397. package/lib/utils/buildOutputDescriptor.d.ts +20 -0
  398. package/lib/utils/buildOutputDescriptor.js +67 -0
  399. package/lib/utils/deviceFeaturesUtils.d.ts +4 -5
  400. package/lib/utils/deviceFeaturesUtils.js +24 -38
  401. package/lib/utils/ethereumUtils.d.ts +2 -3
  402. package/lib/utils/ethereumUtils.js +3 -11
  403. package/lib/utils/firmwareReleaseConfigUtils.d.ts +16 -7
  404. package/lib/utils/firmwareReleaseConfigUtils.js +71 -31
  405. package/lib/utils/firmwareUtils.d.ts +7 -7
  406. package/lib/utils/firmwareUtils.js +24 -37
  407. package/lib/utils/formatUtils.d.ts +6 -8
  408. package/lib/utils/formatUtils.js +21 -60
  409. package/lib/utils/hdnodeUtils.d.ts +2 -3
  410. package/lib/utils/hdnodeUtils.js +14 -25
  411. package/lib/utils/pathUtils.d.ts +1 -21
  412. package/lib/utils/pathUtils.js +1 -172
  413. package/lib/utils/paymentRequest.d.ts +8 -0
  414. package/lib/utils/paymentRequest.js +25 -0
  415. package/lib/utils/uiPromiseManager.d.ts +8 -43
  416. package/lib/utils/uiPromiseManager.js +19 -31
  417. package/lib/workers/workers.browser.d.ts +10 -0
  418. package/lib/workers/workers.browser.js +16 -0
  419. package/lib/workers/workers.d.ts +2 -2
  420. package/lib/workers/workers.js +8 -60
  421. package/lib/workers/workers.native.d.ts +2 -3
  422. package/lib/workers/workers.native.js +7 -20
  423. package/package.json +84 -75
  424. package/lib/api/eos/api/eosGetPublicKey.d.ts +0 -23
  425. package/lib/api/eos/api/eosGetPublicKey.js +0 -69
  426. package/lib/api/eos/api/eosSignTransaction.d.ts +0 -18
  427. package/lib/api/eos/api/eosSignTransaction.js +0 -48
  428. package/lib/api/eos/api/index.d.ts +0 -3
  429. package/lib/api/eos/api/index.js +0 -22
  430. package/lib/api/eos/eosSignTx.d.ts +0 -175
  431. package/lib/api/eos/eosSignTx.js +0 -344
  432. package/lib/api/getAccountDescriptor.d.ts +0 -22
  433. package/lib/api/getAccountDescriptor.js +0 -139
  434. package/lib/api/nem/api/index.d.ts +0 -3
  435. package/lib/api/nem/api/index.js +0 -22
  436. package/lib/api/nem/api/nemGetAddress.d.ts +0 -26
  437. package/lib/api/nem/api/nemGetAddress.js +0 -129
  438. package/lib/api/nem/api/nemSignTransaction.d.ts +0 -11
  439. package/lib/api/nem/api/nemSignTransaction.js +0 -39
  440. package/lib/api/nem/nemSignTx.d.ts +0 -78
  441. package/lib/api/nem/nemSignTx.js +0 -143
  442. package/lib/api/setProxy.d.ts +0 -8
  443. package/lib/api/setProxy.js +0 -32
  444. package/lib/api/solana/additionalInfo.d.ts +0 -10
  445. package/lib/api/solana/additionalInfo.js +0 -24
  446. package/lib/api/solana/solanaUtils.d.ts +0 -49
  447. package/lib/api/solana/solanaUtils.js +0 -279
  448. package/lib/constants/cardano.d.ts +0 -14
  449. package/lib/constants/cardano.js +0 -23
  450. package/lib/constants/errors.d.ts +0 -64
  451. package/lib/constants/errors.js +0 -87
  452. package/lib/constants/firmware.d.ts +0 -4
  453. package/lib/constants/firmware.js +0 -10
  454. package/lib/constants/index.d.ts +0 -8
  455. package/lib/constants/index.js +0 -27
  456. package/lib/constants/nem.d.ts +0 -29
  457. package/lib/constants/nem.js +0 -35
  458. package/lib/constants/network.d.ts +0 -17
  459. package/lib/constants/network.js +0 -21
  460. package/lib/constants/utxo.d.ts +0 -3
  461. package/lib/constants/utxo.js +0 -8
  462. package/lib/data/DataManager.d.ts +0 -31
  463. package/lib/data/DataManager.js +0 -100
  464. package/lib/data/analyticsInfo.d.ts +0 -6
  465. package/lib/data/analyticsInfo.js +0 -43
  466. package/lib/data/connectSettings.d.ts +0 -9
  467. package/lib/data/connectSettings.js +0 -147
  468. package/lib/data/thpSettings.d.ts +0 -3
  469. package/lib/data/thpSettings.js +0 -41
  470. package/lib/data/udevInfo.d.ts +0 -11
  471. package/lib/data/udevInfo.js +0 -31
  472. package/lib/data/version.d.ts +0 -6
  473. package/lib/data/version.js +0 -14
  474. package/lib/device/StateStorage.d.ts +0 -15
  475. package/lib/device/StateStorage.js +0 -40
  476. package/lib/device/workflow/index.d.ts +0 -2
  477. package/lib/device/workflow/index.js +0 -14
  478. package/lib/events/blockchain.d.ts +0 -66
  479. package/lib/events/blockchain.js +0 -22
  480. package/lib/events/call.d.ts +0 -46
  481. package/lib/events/call.js +0 -22
  482. package/lib/events/core.d.ts +0 -24
  483. package/lib/events/core.js +0 -32
  484. package/lib/events/device.d.ts +0 -70
  485. package/lib/events/device.js +0 -42
  486. package/lib/events/iframe.d.ts +0 -46
  487. package/lib/events/iframe.js +0 -22
  488. package/lib/events/index.d.ts +0 -68
  489. package/lib/events/index.js +0 -25
  490. package/lib/events/popup.d.ts +0 -88
  491. package/lib/events/popup.js +0 -29
  492. package/lib/events/transport.d.ts +0 -51
  493. package/lib/events/transport.js +0 -26
  494. package/lib/events/ui-request.d.ts +0 -266
  495. package/lib/events/ui-request.js +0 -57
  496. package/lib/events/ui-response.d.ts +0 -104
  497. package/lib/events/ui-response.js +0 -29
  498. package/lib/events/webextension.d.ts +0 -8
  499. package/lib/events/webextension.js +0 -14
  500. package/lib/factory.d.ts +0 -20
  501. package/lib/factory.js +0 -50
  502. package/lib/impl/dynamic.d.ts +0 -39
  503. package/lib/impl/dynamic.js +0 -125
  504. package/lib/index-browser.d.ts +0 -7
  505. package/lib/index-browser.js +0 -29
  506. package/lib/tsconfig.lib.tsbuildinfo +0 -1
  507. package/lib/types/account.d.ts +0 -20
  508. package/lib/types/account.js +0 -6
  509. package/lib/types/api/applyFlags.d.ts +0 -4
  510. package/lib/types/api/applyFlags.js +0 -6
  511. package/lib/types/api/applySettings.d.ts +0 -23
  512. package/lib/types/api/applySettings.js +0 -12
  513. package/lib/types/api/authenticateDevice.d.ts +0 -65
  514. package/lib/types/api/authenticateDevice.js +0 -14
  515. package/lib/types/api/authorizeCoinjoin.d.ts +0 -17
  516. package/lib/types/api/authorizeCoinjoin.js +0 -21
  517. package/lib/types/api/backupDevice.d.ts +0 -4
  518. package/lib/types/api/backupDevice.js +0 -6
  519. package/lib/types/api/bitcoin/index.d.ts +0 -101
  520. package/lib/types/api/bitcoin/index.js +0 -23
  521. package/lib/types/api/bleUnpair.d.ts +0 -4
  522. package/lib/types/api/bleUnpair.js +0 -6
  523. package/lib/types/api/blockchainDisconnect.d.ts +0 -5
  524. package/lib/types/api/blockchainDisconnect.js +0 -6
  525. package/lib/types/api/blockchainEstimateFee.d.ts +0 -26
  526. package/lib/types/api/blockchainEstimateFee.js +0 -6
  527. package/lib/types/api/blockchainEvmRpcCall.d.ts +0 -4
  528. package/lib/types/api/blockchainEvmRpcCall.js +0 -6
  529. package/lib/types/api/blockchainGetAccountBalanceHistory.d.ts +0 -4
  530. package/lib/types/api/blockchainGetAccountBalanceHistory.js +0 -6
  531. package/lib/types/api/blockchainGetCurrentFiatRates.d.ts +0 -4
  532. package/lib/types/api/blockchainGetCurrentFiatRates.js +0 -6
  533. package/lib/types/api/blockchainGetFiatRatesForTimestamps.d.ts +0 -4
  534. package/lib/types/api/blockchainGetFiatRatesForTimestamps.js +0 -6
  535. package/lib/types/api/blockchainGetInfo.d.ts +0 -4
  536. package/lib/types/api/blockchainGetInfo.js +0 -6
  537. package/lib/types/api/blockchainGetTransactions.d.ts +0 -7
  538. package/lib/types/api/blockchainGetTransactions.js +0 -6
  539. package/lib/types/api/blockchainSetCustomBackend.d.ts +0 -8
  540. package/lib/types/api/blockchainSetCustomBackend.js +0 -6
  541. package/lib/types/api/blockchainSubscribe.d.ts +0 -8
  542. package/lib/types/api/blockchainSubscribe.js +0 -6
  543. package/lib/types/api/blockchainSubscribeFiatRates.d.ts +0 -7
  544. package/lib/types/api/blockchainSubscribeFiatRates.js +0 -6
  545. package/lib/types/api/blockchainUnsubscribe.d.ts +0 -5
  546. package/lib/types/api/blockchainUnsubscribe.js +0 -6
  547. package/lib/types/api/blockchainUnsubscribeFiatRates.d.ts +0 -5
  548. package/lib/types/api/blockchainUnsubscribeFiatRates.js +0 -6
  549. package/lib/types/api/cancel.d.ts +0 -2
  550. package/lib/types/api/cancel.js +0 -6
  551. package/lib/types/api/cancelCoinjoinAuthorization.d.ts +0 -9
  552. package/lib/types/api/cancelCoinjoinAuthorization.js +0 -11
  553. package/lib/types/api/cardano/index.d.ts +0 -784
  554. package/lib/types/api/cardano/index.js +0 -241
  555. package/lib/types/api/cardanoComposeTransaction.d.ts +0 -150
  556. package/lib/types/api/cardanoComposeTransaction.js +0 -91
  557. package/lib/types/api/cardanoGetAddress.d.ts +0 -5
  558. package/lib/types/api/cardanoGetAddress.js +0 -6
  559. package/lib/types/api/cardanoGetNativeScriptHash.d.ts +0 -4
  560. package/lib/types/api/cardanoGetNativeScriptHash.js +0 -6
  561. package/lib/types/api/cardanoGetPublicKey.d.ts +0 -5
  562. package/lib/types/api/cardanoGetPublicKey.js +0 -6
  563. package/lib/types/api/cardanoSignMessage.d.ts +0 -4
  564. package/lib/types/api/cardanoSignMessage.js +0 -6
  565. package/lib/types/api/cardanoSignTransaction.d.ts +0 -10
  566. package/lib/types/api/cardanoSignTransaction.js +0 -6
  567. package/lib/types/api/changeLanguage.d.ts +0 -15
  568. package/lib/types/api/changeLanguage.js +0 -17
  569. package/lib/types/api/changePin.d.ts +0 -4
  570. package/lib/types/api/changePin.js +0 -6
  571. package/lib/types/api/changeWipeCode.d.ts +0 -4
  572. package/lib/types/api/changeWipeCode.js +0 -6
  573. package/lib/types/api/cipherKeyValue.d.ts +0 -18
  574. package/lib/types/api/cipherKeyValue.js +0 -18
  575. package/lib/types/api/composeTransaction.d.ts +0 -74
  576. package/lib/types/api/composeTransaction.js +0 -6
  577. package/lib/types/api/device.d.ts +0 -1
  578. package/lib/types/api/device.js +0 -1
  579. package/lib/types/api/disableWebUSB.d.ts +0 -2
  580. package/lib/types/api/disableWebUSB.js +0 -6
  581. package/lib/types/api/discoverAccounts.d.ts +0 -248
  582. package/lib/types/api/discoverAccounts.js +0 -210
  583. package/lib/types/api/dispose.d.ts +0 -2
  584. package/lib/types/api/dispose.js +0 -6
  585. package/lib/types/api/eos/index.d.ts +0 -784
  586. package/lib/types/api/eos/index.js +0 -124
  587. package/lib/types/api/eosGetPublicKey.d.ts +0 -5
  588. package/lib/types/api/eosGetPublicKey.js +0 -6
  589. package/lib/types/api/eosSignTransaction.d.ts +0 -5
  590. package/lib/types/api/eosSignTransaction.js +0 -6
  591. package/lib/types/api/ethereum/index.d.ts +0 -307
  592. package/lib/types/api/ethereum/index.js +0 -101
  593. package/lib/types/api/ethereumGetAddress.d.ts +0 -4
  594. package/lib/types/api/ethereumGetAddress.js +0 -6
  595. package/lib/types/api/ethereumGetPublicKey.d.ts +0 -5
  596. package/lib/types/api/ethereumGetPublicKey.js +0 -6
  597. package/lib/types/api/ethereumSignMessage.d.ts +0 -5
  598. package/lib/types/api/ethereumSignMessage.js +0 -6
  599. package/lib/types/api/ethereumSignTransaction.d.ts +0 -4
  600. package/lib/types/api/ethereumSignTransaction.js +0 -6
  601. package/lib/types/api/ethereumSignTypedData.d.ts +0 -6
  602. package/lib/types/api/ethereumSignTypedData.js +0 -6
  603. package/lib/types/api/ethereumVerifyMessage.d.ts +0 -5
  604. package/lib/types/api/ethereumVerifyMessage.js +0 -6
  605. package/lib/types/api/evoluGetDelegatedIdentityKey.d.ts +0 -9
  606. package/lib/types/api/evoluGetDelegatedIdentityKey.js +0 -6
  607. package/lib/types/api/evoluGetNode.d.ts +0 -4
  608. package/lib/types/api/evoluGetNode.js +0 -6
  609. package/lib/types/api/evoluSignRegistrationRequest.d.ts +0 -4
  610. package/lib/types/api/evoluSignRegistrationRequest.js +0 -6
  611. package/lib/types/api/firmwareUpdate.d.ts +0 -21
  612. package/lib/types/api/firmwareUpdate.js +0 -16
  613. package/lib/types/api/getAccountDescriptor.d.ts +0 -18
  614. package/lib/types/api/getAccountDescriptor.js +0 -16
  615. package/lib/types/api/getAccountInfo.d.ts +0 -16
  616. package/lib/types/api/getAccountInfo.js +0 -6
  617. package/lib/types/api/getAddress.d.ts +0 -48
  618. package/lib/types/api/getAddress.js +0 -17
  619. package/lib/types/api/getCoinInfo.d.ts +0 -6
  620. package/lib/types/api/getCoinInfo.js +0 -6
  621. package/lib/types/api/getDeviceState.d.ts +0 -8
  622. package/lib/types/api/getDeviceState.js +0 -6
  623. package/lib/types/api/getFeatures.d.ts +0 -4
  624. package/lib/types/api/getFeatures.js +0 -6
  625. package/lib/types/api/getFirmwareHash.d.ts +0 -4
  626. package/lib/types/api/getFirmwareHash.js +0 -6
  627. package/lib/types/api/getNonce.d.ts +0 -4
  628. package/lib/types/api/getNonce.js +0 -6
  629. package/lib/types/api/getOwnershipId.d.ts +0 -41
  630. package/lib/types/api/getOwnershipId.js +0 -16
  631. package/lib/types/api/getOwnershipProof.d.ts +0 -45
  632. package/lib/types/api/getOwnershipProof.js +0 -22
  633. package/lib/types/api/getPublicKey.d.ts +0 -37
  634. package/lib/types/api/getPublicKey.js +0 -31
  635. package/lib/types/api/getSettings.d.ts +0 -4
  636. package/lib/types/api/getSettings.js +0 -6
  637. package/lib/types/api/index.d.ts +0 -203
  638. package/lib/types/api/index.js +0 -6
  639. package/lib/types/api/init.d.ts +0 -7
  640. package/lib/types/api/init.js +0 -6
  641. package/lib/types/api/loadDevice.d.ts +0 -4
  642. package/lib/types/api/loadDevice.js +0 -6
  643. package/lib/types/api/manifest.d.ts +0 -3
  644. package/lib/types/api/manifest.js +0 -6
  645. package/lib/types/api/monero/index.d.ts +0 -280
  646. package/lib/types/api/monero/index.js +0 -178
  647. package/lib/types/api/moneroGetAddress.d.ts +0 -5
  648. package/lib/types/api/moneroGetAddress.js +0 -6
  649. package/lib/types/api/moneroGetWatchKey.d.ts +0 -4
  650. package/lib/types/api/moneroGetWatchKey.js +0 -6
  651. package/lib/types/api/moneroKeyImageSync.d.ts +0 -4
  652. package/lib/types/api/moneroKeyImageSync.js +0 -6
  653. package/lib/types/api/moneroSignTransaction.d.ts +0 -4
  654. package/lib/types/api/moneroSignTransaction.js +0 -6
  655. package/lib/types/api/nem/index.d.ts +0 -842
  656. package/lib/types/api/nem/index.js +0 -99
  657. package/lib/types/api/nemGetAddress.d.ts +0 -14
  658. package/lib/types/api/nemGetAddress.js +0 -12
  659. package/lib/types/api/nemSignTransaction.d.ts +0 -5
  660. package/lib/types/api/nemSignTransaction.js +0 -6
  661. package/lib/types/api/off.d.ts +0 -11
  662. package/lib/types/api/off.js +0 -6
  663. package/lib/types/api/on.d.ts +0 -14
  664. package/lib/types/api/on.js +0 -6
  665. package/lib/types/api/pushTransaction.d.ts +0 -16
  666. package/lib/types/api/pushTransaction.js +0 -16
  667. package/lib/types/api/recoveryDevice.d.ts +0 -17
  668. package/lib/types/api/recoveryDevice.js +0 -12
  669. package/lib/types/api/removeAllListeners.d.ts +0 -3
  670. package/lib/types/api/removeAllListeners.js +0 -6
  671. package/lib/types/api/renderWebUSBButton.d.ts +0 -2
  672. package/lib/types/api/renderWebUSBButton.js +0 -6
  673. package/lib/types/api/requestLogin.d.ts +0 -25
  674. package/lib/types/api/requestLogin.js +0 -16
  675. package/lib/types/api/requestWebUSBDevice.d.ts +0 -2
  676. package/lib/types/api/requestWebUSBDevice.js +0 -6
  677. package/lib/types/api/resetDevice.d.ts +0 -4
  678. package/lib/types/api/resetDevice.js +0 -6
  679. package/lib/types/api/ripple/index.d.ts +0 -41
  680. package/lib/types/api/ripple/index.js +0 -30
  681. package/lib/types/api/rippleGetAddress.d.ts +0 -4
  682. package/lib/types/api/rippleGetAddress.js +0 -6
  683. package/lib/types/api/rippleSignTransaction.d.ts +0 -4
  684. package/lib/types/api/rippleSignTransaction.js +0 -6
  685. package/lib/types/api/setBrightness.d.ts +0 -4
  686. package/lib/types/api/setBrightness.js +0 -6
  687. package/lib/types/api/setBusy.d.ts +0 -4
  688. package/lib/types/api/setBusy.js +0 -6
  689. package/lib/types/api/setProxy.d.ts +0 -8
  690. package/lib/types/api/setProxy.js +0 -6
  691. package/lib/types/api/setTransports.d.ts +0 -4
  692. package/lib/types/api/setTransports.js +0 -6
  693. package/lib/types/api/showDeviceTutorial.d.ts +0 -4
  694. package/lib/types/api/showDeviceTutorial.js +0 -6
  695. package/lib/types/api/signMessage.d.ts +0 -5
  696. package/lib/types/api/signMessage.js +0 -6
  697. package/lib/types/api/signTransaction.d.ts +0 -4
  698. package/lib/types/api/signTransaction.js +0 -6
  699. package/lib/types/api/solana/index.d.ts +0 -113
  700. package/lib/types/api/solana/index.js +0 -76
  701. package/lib/types/api/solanaComposeTransaction.d.ts +0 -4
  702. package/lib/types/api/solanaComposeTransaction.js +0 -6
  703. package/lib/types/api/solanaGetAddress.d.ts +0 -4
  704. package/lib/types/api/solanaGetAddress.js +0 -6
  705. package/lib/types/api/solanaGetPublicKey.d.ts +0 -5
  706. package/lib/types/api/solanaGetPublicKey.js +0 -6
  707. package/lib/types/api/solanaSignTransaction.d.ts +0 -4
  708. package/lib/types/api/solanaSignTransaction.js +0 -6
  709. package/lib/types/api/stellar/index.d.ts +0 -914
  710. package/lib/types/api/stellar/index.js +0 -194
  711. package/lib/types/api/stellarGetAddress.d.ts +0 -4
  712. package/lib/types/api/stellarGetAddress.js +0 -6
  713. package/lib/types/api/stellarSignTransaction.d.ts +0 -4
  714. package/lib/types/api/stellarSignTransaction.js +0 -6
  715. package/lib/types/api/tezos/index.d.ts +0 -163
  716. package/lib/types/api/tezos/index.js +0 -67
  717. package/lib/types/api/tezosGetAddress.d.ts +0 -4
  718. package/lib/types/api/tezosGetAddress.js +0 -6
  719. package/lib/types/api/tezosGetPublicKey.d.ts +0 -4
  720. package/lib/types/api/tezosGetPublicKey.js +0 -6
  721. package/lib/types/api/tezosSignTransaction.d.ts +0 -5
  722. package/lib/types/api/tezosSignTransaction.js +0 -6
  723. package/lib/types/api/thpGetCredentials.d.ts +0 -4
  724. package/lib/types/api/thpGetCredentials.js +0 -6
  725. package/lib/types/api/thpRemoveCredentials.d.ts +0 -7
  726. package/lib/types/api/thpRemoveCredentials.js +0 -6
  727. package/lib/types/api/tron/index.d.ts +0 -130
  728. package/lib/types/api/tron/index.js +0 -62
  729. package/lib/types/api/tronGetAddress.d.ts +0 -4
  730. package/lib/types/api/tronGetAddress.js +0 -6
  731. package/lib/types/api/tronSignTransaction.d.ts +0 -4
  732. package/lib/types/api/tronSignTransaction.js +0 -6
  733. package/lib/types/api/uiResponse.d.ts +0 -3
  734. package/lib/types/api/uiResponse.js +0 -6
  735. package/lib/types/api/unlockPath.d.ts +0 -10
  736. package/lib/types/api/unlockPath.js +0 -13
  737. package/lib/types/api/verifyMessage.d.ts +0 -5
  738. package/lib/types/api/verifyMessage.js +0 -6
  739. package/lib/types/api/wipeDevice.d.ts +0 -4
  740. package/lib/types/api/wipeDevice.js +0 -6
  741. package/lib/types/coinInfo.d.ts +0 -353
  742. package/lib/types/coinInfo.js +0 -79
  743. package/lib/types/device.d.ts +0 -133
  744. package/lib/types/device.js +0 -13
  745. package/lib/types/fees.d.ts +0 -36
  746. package/lib/types/fees.js +0 -39
  747. package/lib/types/firmware.d.ts +0 -25
  748. package/lib/types/firmware.js +0 -6
  749. package/lib/types/index.d.ts +0 -25
  750. package/lib/types/index.js +0 -39
  751. package/lib/types/params.d.ts +0 -93
  752. package/lib/types/params.js +0 -38
  753. package/lib/types/settings.d.ts +0 -80
  754. package/lib/types/settings.js +0 -6
  755. package/lib/types/utils.d.ts +0 -15
  756. package/lib/types/utils.js +0 -6
  757. package/lib/utils/assets-browser.d.ts +0 -3
  758. package/lib/utils/assets-browser.js +0 -29
  759. package/lib/utils/debug.d.ts +0 -7
  760. package/lib/utils/debug.js +0 -33
  761. package/lib/utils/interactionTimeout.d.ts +0 -10
  762. package/lib/utils/interactionTimeout.js +0 -37
  763. package/lib/utils/popupPromiseManager.d.ts +0 -8
  764. package/lib/utils/popupPromiseManager.js +0 -30
  765. package/lib/utils/proxy-event-emitter.d.ts +0 -21
  766. package/lib/utils/proxy-event-emitter.js +0 -69
  767. package/lib/utils/urlUtils.d.ts +0 -13
  768. package/lib/utils/urlUtils.js +0 -31
  769. package/lib/utils/versionCheck.d.ts +0 -3
  770. package/lib/utils/versionCheck.js +0 -16
  771. package/lib/workers/workers-browser.d.ts +0 -10
  772. package/lib/workers/workers-browser.js +0 -20
@@ -1,17 +1,9 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DeviceCurrentSession = void 0;
7
- const protobuf_1 = require("@trezor/protobuf");
8
- const schema_utils_1 = require("@trezor/schema-utils");
9
- const transport_1 = require("@trezor/transport");
10
- const errors_groups_1 = require("@trezor/transport/lib/errors-groups");
11
- const utils_1 = require("@trezor/utils");
12
- const constants_1 = require("../constants");
13
- const events_1 = require("../events");
14
- const debug_1 = require("../utils/debug");
1
+ import { DEVICE } from "@trezor/connect-common";
2
+ import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
3
+ import { MessagesSchema as Messages } from "@trezor/protobuf";
4
+ import { Assert } from "@trezor/schema-utils";
5
+ import { TRANSPORT, isErrorWithoutDeviceInteraction } from "@trezor/transport-common";
6
+ import { scheduleAction } from "@trezor/utils";
15
7
  const blacklist = {
16
8
  PassphraseAck: ['passphrase'],
17
9
  CipheredKeyValue: ['value'],
@@ -20,12 +12,11 @@ const blacklist = {
20
12
  DecryptedMessage: ['message', 'address'],
21
13
  Features: true
22
14
  };
23
- const allowedCallsBeforeInitialize = ['Cancel', 'Initialize', 'GetFeatures', 'GetFirmwareHash', 'ChangeLanguage', 'DataChunkAck', 'RebootToBootloader', 'FirmwareErase', 'FirmwareUpload', 'RecoveryDevice'];
15
+ const allowedCallsBeforeInitialize = ['Cancel', 'Initialize', 'GetFeatures', 'GetFirmwareHash', 'ChangeLanguage', 'DataChunkAck', 'RebootToBootloader', 'FirmwareErase', 'FirmwareUpload', 'RecoveryDevice', 'WipeDevice'];
24
16
  const filterForLog = (type, msg) => blacklist[type] === true ? '(redacted...)' : (blacklist[type] ?? []).reduce((prev, cur) => ({
25
17
  ...prev,
26
18
  [cur]: '(redacted...)'
27
19
  }), msg);
28
- const logger = (0, debug_1.initLog)('DeviceCommands');
29
20
  const isExpectedResponse = (response, expected) => (Array.isArray(expected) ? expected : expected.split('|')).includes(response.type);
30
21
  const success = payload => ({
31
22
  success: true,
@@ -35,22 +26,24 @@ const error = error => ({
35
26
  success: false,
36
27
  error
37
28
  });
38
- const nestedError = cause => error(constants_1.ERRORS.nestError(cause));
39
- const fail = msg => error((0, errors_groups_1.isErrorWithoutDeviceInteraction)(msg) ? new constants_1.ERRORS.TransportError(msg) : new Error(msg));
40
- class DeviceCurrentSession {
29
+ const nestedError = cause => error(ERRORS.nestError(cause));
30
+ const fail = msg => error(isErrorWithoutDeviceInteraction(msg) ? new ERRORS.TransportError(msg) : new Error(msg));
31
+ export class DeviceCurrentSession {
41
32
  device;
42
33
  transport;
43
34
  session;
35
+ logger;
44
36
  disposed;
45
37
  callPromise;
46
38
  abortController;
47
- constructor(device, transport, session) {
39
+ constructor(device, transport, session, logger) {
48
40
  this.device = device;
49
41
  this.transport = transport;
50
42
  this.session = session;
43
+ this.logger = logger;
51
44
  transport.deviceEvents.once(device.transportPath, e => {
52
45
  if (!this.disposed) {
53
- this.disposed = constants_1.ERRORS.TypedError(e.type === transport_1.TRANSPORT.DEVICE_DISCONNECTED ? 'Device_Disconnected' : 'Device_UsedElsewhere');
46
+ this.disposed = ERRORS.TypedError(e.type === TRANSPORT.DEVICE_DISCONNECTED ? 'Device_Disconnected' : 'Device_UsedElsewhere');
54
47
  this.abortController?.abort(this.disposed);
55
48
  }
56
49
  });
@@ -63,7 +56,7 @@ class DeviceCurrentSession {
63
56
  if (!allowedCallsBeforeInitialize.includes(type) && !deviceSessionId) {
64
57
  console.error('Runtime', `typedCall: Device not initialized when calling ${type}. call Initialize first`);
65
58
  }
66
- (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.MessageType.properties[type], msg);
59
+ Assert(Messages.MessageType.properties[type], msg);
67
60
  this.abortController = new AbortController();
68
61
  const {
69
62
  signal
@@ -82,7 +75,7 @@ class DeviceCurrentSession {
82
75
  if (isExpectedResponse(payload, expectedType)) {
83
76
  return payload;
84
77
  } else {
85
- await (0, utils_1.scheduleAction)(abort => this.transport.receive({
78
+ await scheduleAction(abort => this.transport.receive({
86
79
  session: this.session,
87
80
  protocol: this.device.protocol,
88
81
  thpState: this.device.getThpState(),
@@ -90,12 +83,9 @@ class DeviceCurrentSession {
90
83
  }), {
91
84
  timeout: 500
92
85
  }).catch(() => {});
93
- throw constants_1.ERRORS.TypedError('Runtime', `assertType: Response of unexpected type: ${receivedType}. Should be ${expectedType}`);
86
+ throw ERRORS.TypedError('Runtime', `assertType: Response of unexpected type: ${receivedType}. Should be ${expectedType}`);
94
87
  }
95
88
  }
96
- needCancelWorkaround() {
97
- return this.transport.name === 'BridgeTransport' && !utils_1.versionUtils.isNewer(this.transport.version, '2.0.28');
98
- }
99
89
  async callLoop(type, msg, abortPromise) {
100
90
  let [name, data] = [type, msg];
101
91
  let pinUnlocked = false;
@@ -106,17 +96,8 @@ class DeviceCurrentSession {
106
96
  });
107
97
  const [abortedDuringCall, response] = await Promise.race([callPromise.then(res => [false, res]), abortPromise.then(res => [true, nestedError(res)])]);
108
98
  if (name === 'ButtonAck' && abortedDuringCall && !this.disposed) {
109
- if (this.needCancelWorkaround()) {
110
- try {
111
- await (0, utils_1.resolveAfter)(1);
112
- await this.device.acquire();
113
- await this.device.getCurrentSession().cancelCall();
114
- await this.device.release();
115
- } catch {}
116
- } else {
117
- this.device.getThpState()?.sync('send', 'Cancel');
118
- await this.send('Cancel', {});
119
- }
99
+ this.device.getThpState()?.sync('send', 'Cancel');
100
+ await this.send('Cancel', {});
120
101
  }
121
102
  await callPromise;
122
103
  if (this.disposed) return nestedError(this.disposed);
@@ -134,14 +115,14 @@ class DeviceCurrentSession {
134
115
  break;
135
116
  }
136
117
  const err = message || code === 'Failure_FirmwareError' && 'Firmware installation failed' || code === 'Failure_ActionCancelled' && 'Action cancelled by user' || 'Failure_UnknownMessage';
137
- return error(new constants_1.ERRORS.TrezorError(code || 'Failure_UnknownCode', err));
118
+ return error(new ERRORS.TrezorError(code || 'Failure_UnknownCode', err));
138
119
  }
139
120
  case 'ButtonRequest':
140
121
  {
141
122
  if (res.message.code === 'ButtonRequest_PassphraseEntry') {
142
- this.device.emit(events_1.DEVICE.PASSPHRASE_ON_DEVICE);
123
+ this.device.emit(DEVICE.PASSPHRASE_ON_DEVICE);
143
124
  } else {
144
- this.device.emit(events_1.DEVICE.BUTTON, {
125
+ this.device.emit(DEVICE.BUTTON, {
145
126
  device: this.device,
146
127
  payload: res.message
147
128
  });
@@ -151,7 +132,7 @@ class DeviceCurrentSession {
151
132
  }
152
133
  case 'PinMatrixRequest':
153
134
  {
154
- const promptRes = await Promise.race([this.device.prompt(events_1.DEVICE.PIN, {
135
+ const promptRes = await Promise.race([this.device.prompt(DEVICE.PIN, {
155
136
  type: res.message.type
156
137
  }), abortPromise.then(nestedError)]);
157
138
  if (!promptRes.success) {
@@ -166,7 +147,7 @@ class DeviceCurrentSession {
166
147
  }
167
148
  case 'PassphraseRequest':
168
149
  {
169
- const promptRes = await Promise.race([this.device.prompt(events_1.DEVICE.PASSPHRASE, {}), abortPromise.then(nestedError)]);
150
+ const promptRes = await Promise.race([this.device.prompt(DEVICE.PASSPHRASE, {}), abortPromise.then(nestedError)]);
170
151
  if (!promptRes.success) {
171
152
  const cancelRes = await this.call('Cancel', {});
172
153
  return cancelRes.success ? promptRes : cancelRes;
@@ -181,7 +162,7 @@ class DeviceCurrentSession {
181
162
  }
182
163
  case 'WordRequest':
183
164
  {
184
- const promptRes = await Promise.race([this.device.prompt(events_1.DEVICE.WORD, {
165
+ const promptRes = await Promise.race([this.device.prompt(DEVICE.WORD, {
185
166
  type: res.message.type
186
167
  }), abortPromise.then(nestedError)]);
187
168
  if (!promptRes.success) {
@@ -205,7 +186,7 @@ class DeviceCurrentSession {
205
186
  }
206
187
  async call(name, data, options = {}) {
207
188
  if (this.disposed) return Promise.resolve(nestedError(this.disposed));
208
- logger.debug('Sending', name, filterForLog(name, data));
189
+ this.logger.debug('Sending', name, filterForLog(name, data));
209
190
  const result = await this.transport.call({
210
191
  name,
211
192
  data,
@@ -219,11 +200,11 @@ class DeviceCurrentSession {
219
200
  type,
220
201
  message
221
202
  } = result.payload;
222
- logger.debug('Received', type, filterForLog(type, message));
203
+ this.logger.debug('Received', type, filterForLog(type, message));
223
204
  } else {
224
- logger.warn('Received transport error', result.error, result.message);
205
+ this.logger.warn('Received transport error', result.error.code, result.error.message);
225
206
  }
226
- return result.success ? success(result.payload) : fail(result.message || result.error);
207
+ return result.success ? success(result.payload) : fail(result.error.message || result.error.code);
227
208
  }
228
209
  async send(name, data, options = {}) {
229
210
  if (this.disposed) return Promise.resolve(nestedError(this.disposed));
@@ -235,7 +216,7 @@ class DeviceCurrentSession {
235
216
  thpState: this.device.getThpState(),
236
217
  ...options
237
218
  });
238
- return result.success ? success(result.payload) : fail(result.message || result.error);
219
+ return result.success ? success(result.payload) : fail(result.error.message || result.error.code);
239
220
  }
240
221
  async receive(options = {}) {
241
222
  if (this.disposed) return Promise.resolve(nestedError(this.disposed));
@@ -245,7 +226,7 @@ class DeviceCurrentSession {
245
226
  thpState: this.device.getThpState(),
246
227
  ...options
247
228
  });
248
- return result.success ? success(result.payload) : fail(result.message || result.error);
229
+ return result.success ? success(result.payload) : fail(result.error.message || result.error.code);
249
230
  }
250
231
  cancelCall() {
251
232
  return this.call('Cancel', {});
@@ -255,6 +236,4 @@ class DeviceCurrentSession {
255
236
  await this.callPromise;
256
237
  this.disposed = reason;
257
238
  }
258
- }
259
- exports.DeviceCurrentSession = DeviceCurrentSession;
260
- //# sourceMappingURL=DeviceCurrentSession.js.map
239
+ }
@@ -1,69 +1,75 @@
1
- import { TRANSPORT } from '@trezor/transport';
1
+ import { DEVICE } from '@trezor/connect-common';
2
+ import type { ConnectSettings, DecodedTrezorPushNotification, DeviceUniquePath, StaticSessionId, TransportError, TransportInfo } from '@trezor/connect-common';
3
+ import type { CreateLogger } from '@trezor/connect-common/lib/types/settings';
4
+ import { type Descriptor, TRANSPORT } from '@trezor/transport-common';
2
5
  import { TypedEmitter } from '@trezor/utils';
3
- import { DEVICE, DecodedTrezorPushNotification, TransportError, TransportInfo } from '../events';
4
- import { Device } from './Device';
5
- import { ConnectSettings, DeviceUniquePath, StaticSessionId } from '../types';
6
+ import { Device } from "./Device.js";
6
7
  interface DeviceListEvents {
7
- [TRANSPORT.START]: TransportInfo;
8
- [TRANSPORT.ERROR]: TransportError;
9
- [DEVICE.CONNECT]: Device;
10
- [DEVICE.CONNECT_UNACQUIRED]: Device;
11
- [DEVICE.TREZOR_PUSH_NOTIFICATION]: DecodedTrezorPushNotification & {
12
- device: Device;
13
- };
14
- [DEVICE.DISCONNECT]: Device;
15
- [DEVICE.CHANGED]: Device;
8
+ [TRANSPORT.START]: TransportInfo;
9
+ [TRANSPORT.ERROR]: TransportError;
10
+ [DEVICE.CONNECT]: Device;
11
+ [DEVICE.CONNECT_UNACQUIRED]: Device;
12
+ [DEVICE.TREZOR_PUSH_NOTIFICATION]: DecodedTrezorPushNotification & {
13
+ device: Device;
14
+ };
15
+ [DEVICE.DISCONNECT]: Device;
16
+ [DEVICE.CHANGED]: Device;
16
17
  }
17
18
  export interface IDeviceList {
18
- isConnected(): this is DeviceList;
19
- pendingConnection(): Promise<void> | undefined;
20
- addAuthPenalty: DeviceList['addAuthPenalty'];
21
- removeAuthPenalty: DeviceList['removeAuthPenalty'];
22
- on: DeviceList['on'];
23
- once: DeviceList['once'];
24
- init: DeviceList['init'];
25
- dispose: DeviceList['dispose'];
19
+ isConnected(): this is DeviceList;
20
+ pendingConnection(): Promise<void> | undefined;
21
+ addAuthPenalty: DeviceList['addAuthPenalty'];
22
+ removeAuthPenalty: DeviceList['removeAuthPenalty'];
23
+ on: DeviceList['on'];
24
+ once: DeviceList['once'];
25
+ init: DeviceList['init'];
26
+ dispose: DeviceList['dispose'];
26
27
  }
27
28
  export declare const assertDeviceListConnected: (deviceList: IDeviceList) => asserts deviceList is DeviceList;
28
- type ConstructorParams = Pick<ConnectSettings, 'priority' | 'debug' | 'manifest'> & {
29
- messages: Record<string, any>;
29
+ type ConstructorParams = {
30
+ createLogger: CreateLogger;
30
31
  };
31
32
  type InitParams = Pick<ConnectSettings, 'transports' | 'pendingTransportEvent' | 'transportReconnect'>;
32
33
  export declare class DeviceList extends TypedEmitter<DeviceListEvents> implements IDeviceList {
33
- private readonly transportManagers;
34
- private transports;
35
- private devices;
36
- private deviceCounter;
37
- private readonly handshakeLock;
38
- private readonly authPenaltyManager;
39
- private updateTransports;
40
- private getConnectedTransports;
41
- isConnected(): this is DeviceList;
42
- pendingConnection(): Promise<void> | undefined;
43
- getActiveTransports(): {
44
- apiType: "usb" | "bluetooth" | "udp";
45
- type: "BridgeTransport" | "NodeUsbTransport" | "WebUsbTransport" | "UdpTransport" | "NativeUsbTransport" | "BluetoothTransport" | "NativeBluetoothTransport";
46
- version: string;
47
- outdated: boolean;
48
- }[];
49
- constructor({ messages, priority, debug, manifest }: ConstructorParams);
50
- private onDeviceConnected;
51
- private onPushNotification;
52
- private onBatteryLevel;
53
- private getOrCreateTransportManager;
54
- init({ transports, transportReconnect, pendingTransportEvent }?: InitParams): Promise<void>;
55
- private initializeTransport;
56
- private waitForDevices;
57
- getDeviceCount(): number;
58
- getPrioritizedDevices(): Device[];
59
- getAllDevices(): readonly Device[];
60
- getOnlyDevice(): Device | undefined;
61
- getDeviceByPath(path: DeviceUniquePath): Device | undefined;
62
- getDeviceByStaticState(state: StaticSessionId): Device | undefined;
63
- dispose(): Promise<void>;
64
- enumerate(): Promise<void>;
65
- addAuthPenalty(device: Device): void;
66
- removeAuthPenalty(device: Device): void;
34
+ private readonly transportManagers;
35
+ private transports;
36
+ private devices;
37
+ private deviceCounter;
38
+ private readonly handshakeLock;
39
+ private readonly authPenaltyManager;
40
+ private readonly createLogger;
41
+ private getConnectedTransports;
42
+ isConnected(): this is DeviceList;
43
+ pendingConnection(): Promise<void> | undefined;
44
+ getActiveTransports(): {
45
+ apiType: "usb" | "bluetooth" | "udp";
46
+ type: "BridgeTransport" | "NodeUsbTransport" | "WebUsbTransport" | "UdpTransport" | "NativeUsbTransport" | "BluetoothTransport" | "NativeBluetoothTransport";
47
+ version: string;
48
+ }[];
49
+ constructor({
50
+ createLogger
51
+ }: ConstructorParams);
52
+ private getSimilarDevices;
53
+ private onDeviceConnected;
54
+ private onPushNotification;
55
+ private onBatteryLevel;
56
+ private getOrCreateTransportManager;
57
+ init({
58
+ transports,
59
+ transportReconnect,
60
+ pendingTransportEvent
61
+ }?: InitParams): Promise<void>;
62
+ private initializeTransport;
63
+ private waitForDevices;
64
+ getDeviceCount(): number;
65
+ getPrioritizedDevices(): Device[];
66
+ getAllDevices(): readonly Device[];
67
+ getOnlyDevice(apiType?: Descriptor['apiType']): Device | undefined;
68
+ getDeviceByPath(path: DeviceUniquePath): Device | undefined;
69
+ getDeviceByStaticState(state: StaticSessionId): Device | undefined;
70
+ dispose(): Promise<void>;
71
+ enumerate(): Promise<void>;
72
+ addAuthPenalty(device: Device): void;
73
+ removeAuthPenalty(device: Device): void;
67
74
  }
68
- export {};
69
- //# sourceMappingURL=DeviceList.d.ts.map
75
+ export {};
@@ -1,26 +1,23 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DeviceList = exports.assertDeviceListConnected = void 0;
7
- const transport_1 = require("@trezor/transport");
8
- const utils_1 = require("@trezor/utils");
9
- const constants_1 = require("../constants");
10
- const events_1 = require("../events");
11
- const Device_1 = require("./Device");
12
- const types_1 = require("../types");
13
- const TransportList_1 = require("./TransportList");
14
- const TransportManager_1 = require("./TransportManager");
15
- const debug_1 = require("../utils/debug");
16
- const trezorPushNotification_1 = require("./workflow/trezorPushNotification");
17
- const createAuthPenaltyManager = priority => {
1
+ import { DEVICE, asDeviceUniquePath } from "@trezor/connect-common";
2
+ import { ERRORS } from "@trezor/connect-common/lib/constants/index.js";
3
+ import { parseStaticSessionId } from "@trezor/device-utils";
4
+ import { TRANSPORT } from "@trezor/transport-common";
5
+ import { TypedEmitter, arrayDistinct, createDeferred, getSynchronize, isNotUndefined, resolveAfter, typedObjectKeys } from "@trezor/utils";
6
+ import { Device } from "./Device.js";
7
+ import { createTransportList } from "./TransportList.js";
8
+ import { TransportManager } from "./TransportManager.js";
9
+ import { trezorPushNotificationHandler } from "./workflow/trezorPushNotification.js";
10
+ const createAuthPenaltyManager = (priority = 2) => {
18
11
  const penalizedDevices = {};
19
- const get = () => 100 * priority + Object.keys(penalizedDevices).reduce((penalty, key) => Math.max(penalty, penalizedDevices[key]), 0);
12
+ const get = () => 100 * priority + Object.keys(penalizedDevices).reduce((penalty, key) => {
13
+ const devicePenalty = penalizedDevices[key];
14
+ return Math.max(penalty, devicePenalty);
15
+ }, 0);
20
16
  const add = device => {
21
17
  if (!device.isInitialized() || device.isBootloader() || !device.features.device_id) return;
22
18
  const deviceID = device.features.device_id;
23
- const penalty = penalizedDevices[deviceID] ? penalizedDevices[deviceID] + 500 : 2000;
19
+ const currentPenalty = penalizedDevices[deviceID];
20
+ const penalty = currentPenalty ? currentPenalty + 500 : 2000;
24
21
  penalizedDevices[deviceID] = Math.min(penalty, 5000);
25
22
  };
26
23
  const remove = device => {
@@ -28,74 +25,80 @@ const createAuthPenaltyManager = priority => {
28
25
  const deviceID = device.features.device_id;
29
26
  delete penalizedDevices[deviceID];
30
27
  };
31
- const clear = () => Object.keys(penalizedDevices).forEach(key => delete penalizedDevices[key]);
32
28
  return {
33
29
  get,
34
30
  add,
35
- remove,
36
- clear
31
+ remove
37
32
  };
38
33
  };
39
34
  const getTransportInfo = transport => ({
40
35
  apiType: transport.apiType,
41
36
  type: transport.name,
42
- version: transport.version,
43
- outdated: transport.isOutdated
37
+ version: transport.version
44
38
  });
45
- const assertDeviceListConnected = deviceList => {
39
+ export const assertDeviceListConnected = deviceList => {
46
40
  if (!deviceList.isConnected()) {
47
- throw constants_1.ERRORS.TypedError('Transport_Missing');
41
+ throw ERRORS.TypedError('Transport_Missing');
48
42
  }
49
43
  };
50
- exports.assertDeviceListConnected = assertDeviceListConnected;
51
- class DeviceList extends utils_1.TypedEmitter {
44
+ export class DeviceList extends TypedEmitter {
52
45
  transportManagers = {};
53
46
  transports = [];
54
47
  devices = [];
55
48
  deviceCounter = Date.now();
56
49
  handshakeLock;
57
50
  authPenaltyManager;
58
- updateTransports;
51
+ createLogger;
59
52
  getConnectedTransports() {
60
- return Object.values(this.transportManagers).map(manager => manager.get()).filter(utils_1.isNotUndefined);
53
+ return Object.values(this.transportManagers).map(manager => manager.get()).filter(isNotUndefined);
61
54
  }
62
55
  isConnected() {
63
56
  return !!this.getConnectedTransports().length;
64
57
  }
65
58
  pendingConnection() {
66
- const pending = Object.values(this.transportManagers).map(manager => manager.pending()).filter(utils_1.isNotUndefined);
59
+ const pending = Object.values(this.transportManagers).map(manager => manager.pending()).filter(isNotUndefined);
67
60
  if (pending.length) return Promise.all(pending).then(() => {});
68
61
  }
69
62
  getActiveTransports() {
70
63
  return this.getConnectedTransports().map(getTransportInfo);
71
64
  }
72
65
  constructor({
73
- messages,
74
- priority,
75
- debug,
76
- manifest
66
+ createLogger
77
67
  }) {
78
68
  super();
79
- const transportLogger = (0, debug_1.initLog)('@trezor/transport', debug);
80
- this.handshakeLock = (0, utils_1.getSynchronize)();
81
- this.authPenaltyManager = createAuthPenaltyManager(priority);
82
- this.updateTransports = (0, TransportList_1.createTransportList)({
83
- messages,
84
- logger: transportLogger,
85
- id: manifest?.appName || manifest?.appUrl || 'unknown app'
69
+ this.createLogger = createLogger;
70
+ this.handshakeLock = getSynchronize();
71
+ this.authPenaltyManager = createAuthPenaltyManager();
72
+ }
73
+ getSimilarDevices(device) {
74
+ return this.devices.filter(d => {
75
+ if (d.descriptor.apiType === device.transport.apiType) {
76
+ return false;
77
+ }
78
+ if (device.descriptor.id && d.features?.device_id === device.descriptor.id) {
79
+ return true;
80
+ }
81
+ if (device.descriptor.model && d.descriptor.model === device.descriptor.model) {
82
+ return true;
83
+ }
84
+ return false;
86
85
  });
87
86
  }
88
87
  async onDeviceConnected(descriptor, transport) {
89
88
  const id = (this.deviceCounter++).toString(16).slice(-8);
90
- const device = new Device_1.Device({
91
- id: (0, types_1.asDeviceUniquePath)(id),
89
+ const device = new Device({
90
+ id: asDeviceUniquePath(id),
92
91
  transport,
93
- descriptor
92
+ descriptor,
93
+ createLogger: this.createLogger
94
94
  });
95
- const penalty = this.authPenaltyManager.get();
96
- const stillConnected = await this.handshakeLock(() => (0, utils_1.resolveAfter)(penalty && penalty + 501).then(() => device.handshake()));
97
- if (!stillConnected) {
98
- return;
95
+ const similarUsedDevices = this.getSimilarDevices(device).some(d => d.isUsed() || d.getBusy() === 'rebooting');
96
+ if (!similarUsedDevices) {
97
+ const penalty = this.authPenaltyManager.get();
98
+ const stillConnected = await this.handshakeLock(() => resolveAfter(penalty && penalty + 501).then(() => device.handshake()));
99
+ if (!stillConnected) {
100
+ return;
101
+ }
99
102
  }
100
103
  if (descriptor.id && descriptor.apiType === 'bluetooth') {
101
104
  transport.subscribe({
@@ -104,28 +107,28 @@ class DeviceList extends utils_1.TypedEmitter {
104
107
  });
105
108
  }
106
109
  this.devices.push(device);
107
- device.lifecycle.on(events_1.DEVICE.CONNECT, () => this.emit(events_1.DEVICE.CONNECT, device));
108
- device.lifecycle.on(events_1.DEVICE.CHANGED, () => this.emit(events_1.DEVICE.CHANGED, device));
109
- device.lifecycle.on(events_1.DEVICE.CONNECT_UNACQUIRED, () => this.emit(events_1.DEVICE.CONNECT_UNACQUIRED, device));
110
- device.lifecycle.on(events_1.DEVICE.TREZOR_PUSH_NOTIFICATION, payload => {
111
- this.emit(events_1.DEVICE.TREZOR_PUSH_NOTIFICATION, {
110
+ device.lifecycle.on(DEVICE.CONNECT, () => this.emit(DEVICE.CONNECT, device));
111
+ device.lifecycle.on(DEVICE.CHANGED, () => this.emit(DEVICE.CHANGED, device));
112
+ device.lifecycle.on(DEVICE.CONNECT_UNACQUIRED, () => this.emit(DEVICE.CONNECT_UNACQUIRED, device));
113
+ device.lifecycle.on(DEVICE.TREZOR_PUSH_NOTIFICATION, payload => {
114
+ this.emit(DEVICE.TREZOR_PUSH_NOTIFICATION, {
112
115
  device,
113
116
  ...payload
114
117
  });
115
118
  });
116
- device.lifecycle.on(events_1.DEVICE.DISCONNECT, () => {
119
+ device.lifecycle.on(DEVICE.DISCONNECT, () => {
117
120
  device.lifecycle.removeAllListeners();
118
121
  this.authPenaltyManager.remove(device);
119
122
  const index = this.devices.indexOf(device);
120
123
  if (index >= 0) this.devices.splice(index, 1);
121
- this.emit(events_1.DEVICE.DISCONNECT, device);
124
+ this.emit(DEVICE.DISCONNECT, device);
122
125
  });
123
- this.emit(device.isUnacquired() ? events_1.DEVICE.CONNECT_UNACQUIRED : events_1.DEVICE.CONNECT, device);
126
+ this.emit(device.isUnacquired() ? DEVICE.CONNECT_UNACQUIRED : DEVICE.CONNECT, device);
124
127
  }
125
128
  onPushNotification(event) {
126
129
  const device = this.devices.find(d => d.descriptor.id === event.id);
127
130
  if (device) {
128
- (0, trezorPushNotification_1.trezorPushNotificationHandler)({
131
+ trezorPushNotificationHandler({
129
132
  device,
130
133
  message: event.data
131
134
  });
@@ -137,9 +140,9 @@ class DeviceList extends utils_1.TypedEmitter {
137
140
  }
138
141
  getOrCreateTransportManager(apiType) {
139
142
  if (!this.transportManagers[apiType]) {
140
- const manager = new TransportManager_1.TransportManager(this.initializeTransport.bind(this));
141
- manager.on(transport_1.TRANSPORT.START, transport => this.emit(transport_1.TRANSPORT.START, getTransportInfo(transport)));
142
- manager.on(transport_1.TRANSPORT.ERROR, error => this.emit(transport_1.TRANSPORT.ERROR, {
143
+ const manager = new TransportManager(this.initializeTransport.bind(this));
144
+ manager.on(TRANSPORT.START, transport => this.emit(TRANSPORT.START, getTransportInfo(transport)));
145
+ manager.on(TRANSPORT.ERROR, error => this.emit(TRANSPORT.ERROR, {
143
146
  apiType,
144
147
  error
145
148
  }));
@@ -152,8 +155,8 @@ class DeviceList extends utils_1.TypedEmitter {
152
155
  transportReconnect,
153
156
  pendingTransportEvent
154
157
  } = {}) {
155
- this.transports = this.updateTransports(this.transports, transports);
156
- const promises = this.transports.map(t => t.apiType).concat((0, utils_1.typedObjectKeys)(this.transportManagers)).filter(utils_1.arrayDistinct).map(apiType => this.getOrCreateTransportManager(apiType).init({
158
+ this.transports = createTransportList(this.transports, transports);
159
+ const promises = this.transports.map(t => t.apiType).concat(typedObjectKeys(this.transportManagers)).filter(arrayDistinct).map(apiType => this.getOrCreateTransportManager(apiType).init({
157
160
  transports: this.transports.filter(t => t.apiType === apiType),
158
161
  transportReconnect,
159
162
  pendingTransportEvent
@@ -161,14 +164,14 @@ class DeviceList extends utils_1.TypedEmitter {
161
164
  await Promise.all(promises);
162
165
  }
163
166
  async initializeTransport(transport, pendingTransportEvent, signal) {
164
- transport.on(transport_1.TRANSPORT.DEVICE_CONNECTED, d => this.onDeviceConnected(d, transport));
165
- transport.on(transport_1.TRANSPORT.TREZOR_PUSH_NOTIFICATION, this.onPushNotification.bind(this));
166
- transport.on(transport_1.TRANSPORT.BATTERY_LEVEL, this.onBatteryLevel.bind(this));
167
+ transport.on(TRANSPORT.DEVICE_CONNECTED, d => this.onDeviceConnected(d, transport));
168
+ transport.on(TRANSPORT.TREZOR_PUSH_NOTIFICATION, this.onPushNotification.bind(this));
169
+ transport.on(TRANSPORT.BATTERY_LEVEL, this.onBatteryLevel.bind(this));
167
170
  const enumerateResult = await transport.enumerate({
168
171
  signal
169
172
  });
170
173
  if (!enumerateResult.success) {
171
- throw new Error(enumerateResult.error);
174
+ throw new Error(enumerateResult.error.message || enumerateResult.error.code);
172
175
  }
173
176
  const descriptors = enumerateResult.payload;
174
177
  transport.handleDescriptorsChange(descriptors);
@@ -182,15 +185,15 @@ class DeviceList extends utils_1.TypedEmitter {
182
185
  promise,
183
186
  reject,
184
187
  resolve
185
- } = (0, utils_1.createDeferred)();
188
+ } = createDeferred();
186
189
  const onAbort = () => reject(signal.reason);
187
190
  signal.addEventListener('abort', onAbort);
188
191
  const onError = error => reject(new Error(error));
189
- transport.once(transport_1.TRANSPORT.ERROR, onError);
192
+ transport.once(TRANSPORT.ERROR, onError);
190
193
  const autoResolveTransportEventTimeout = setTimeout(resolve, 10000);
191
194
  this.handshakeLock(resolve);
192
195
  return promise.finally(() => {
193
- transport.off(transport_1.TRANSPORT.ERROR, onError);
196
+ transport.off(TRANSPORT.ERROR, onError);
194
197
  signal.removeEventListener('abort', onAbort);
195
198
  clearTimeout(autoResolveTransportEventTimeout);
196
199
  });
@@ -204,14 +207,17 @@ class DeviceList extends utils_1.TypedEmitter {
204
207
  getAllDevices() {
205
208
  return this.getPrioritizedDevices();
206
209
  }
207
- getOnlyDevice() {
208
- return this.devices.length === 1 ? this.devices[0] : undefined;
210
+ getOnlyDevice(apiType) {
211
+ const devices = apiType ? this.devices.filter(d => d.descriptor.apiType === apiType) : this.devices;
212
+ return devices.length === 1 ? devices[0] : undefined;
209
213
  }
210
214
  getDeviceByPath(path) {
211
215
  return this.getPrioritizedDevices().find(d => d.getUniquePath() === path);
212
216
  }
213
217
  getDeviceByStaticState(state) {
214
- const deviceId = state.split('@')[1].split(':')[0];
218
+ const {
219
+ deviceId
220
+ } = parseStaticSessionId(state);
215
221
  return this.getPrioritizedDevices().find(d => d.features?.device_id === deviceId);
216
222
  }
217
223
  async dispose() {
@@ -234,6 +240,4 @@ class DeviceList extends utils_1.TypedEmitter {
234
240
  removeAuthPenalty(device) {
235
241
  return this.authPenaltyManager.remove(device);
236
242
  }
237
- }
238
- exports.DeviceList = DeviceList;
239
- //# sourceMappingURL=DeviceList.js.map
243
+ }
@@ -1,9 +1,3 @@
1
- import { NodeUsbTransport, Transport, UdpTransport } from '@trezor/transport';
2
- import type { AbstractTransportParams } from '@trezor/transport/lib/transports/abstract';
3
- import { ConnectSettingsTransport } from '../types';
4
- type Params = AbstractTransportParams & {
5
- sessionsBackgroundUrl?: string | null;
6
- };
7
- export declare const createTransportList: (params: Params) => (existing: Transport[], transports?: ConnectSettingsTransport[]) => (Transport | NodeUsbTransport | UdpTransport)[];
8
- export {};
9
- //# sourceMappingURL=TransportList.d.ts.map
1
+ import type { ConnectSettingsTransport } from '@trezor/connect-common/lib/types/settings';
2
+ import { type Transport } from '@trezor/transport-common';
3
+ export declare const createTransportList: (existing: Transport[], transports?: ConnectSettingsTransport[]) => Transport[];