@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,30 +1,22 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Device = void 0;
7
- const device_utils_1 = require("@trezor/device-utils");
8
- const protocol_1 = require("@trezor/protocol");
9
- const transport_1 = require("@trezor/transport");
10
- const utils_1 = require("@trezor/utils");
11
- const DeviceCommands_1 = require("./DeviceCommands");
12
- const constants_1 = require("../constants");
13
- const DeviceCurrentSession_1 = require("./DeviceCurrentSession");
14
- const checkFirmwareRevision_1 = require("./checkFirmwareRevision");
15
- const thp_1 = require("./thp");
16
- const checkFirmwareHashWithRetries_1 = require("./workflow/checkFirmwareHashWithRetries");
17
- const coinInfo_1 = require("../data/coinInfo");
18
- const firmwareInfo_1 = require("../data/firmwareInfo");
19
- const events_1 = require("../events");
20
- const types_1 = require("../types");
21
- const handshake_1 = require("./workflow/handshake");
22
- const assetUtils_1 = require("../utils/assetUtils");
23
- const debug_1 = require("../utils/debug");
24
- const deviceFeaturesUtils_1 = require("../utils/deviceFeaturesUtils");
25
- const firmwareUtils_1 = require("../utils/firmwareUtils");
26
- const _log = (0, debug_1.initLog)('Device');
27
- class Device extends utils_1.TypedEmitter {
1
+ import { DEVICE, ERRORS, FIRMWARE, UI_REQUEST } from "@trezor/connect-common";
2
+ import { DeviceModelInternal, getFirmwareOrBootloaderVersionArray, getFirmwareVersionArray, models } from "@trezor/device-utils";
3
+ import { thp as protocolThp, v1 as protocolV1, v2 as protocolV2 } from "@trezor/protocol";
4
+ import { TRANSPORT, TRANSPORT_ERROR } from "@trezor/transport-common";
5
+ import { TypedEmitter, cloneObject, createDeferred, deepEqual, isArrayMember, versionUtils } from "@trezor/utils";
6
+ import { DeviceCommands } from "./DeviceCommands.js";
7
+ import { DeviceCurrentSession } from "./DeviceCurrentSession.js";
8
+ import { checkFirmwareRevision } from "./checkFirmwareRevision.js";
9
+ import { abortThpWorkflow, getThpChannel } from "./thp/index.js";
10
+ import { getAllNetworks } from "../data/coinInfo.js";
11
+ import { getFirmwareReleaseConfigInfo, getFirmwareStatus, getReleaseByVersion } from "../data/firmwareInfo.js";
12
+ import * as settingsStore from "../data/settingsStore.js";
13
+ import { getReleaseAsset } from "../utils/assetUtils.js";
14
+ import { ensureInternalModelFeature, getUnavailableCapabilities, parseCapabilities, parseRevision } from "../utils/deviceFeaturesUtils.js";
15
+ import { getFirmwareMode, getFirmwareType, isProductionFirmwareChannel } from "../utils/firmwareUtils.js";
16
+ import { changeLanguage } from "./workflow/changeLanguage.js";
17
+ import { checkFirmwareHashWithRetries } from "./workflow/checkFirmwareHashWithRetries.js";
18
+ import { handshakeCancel } from "./workflow/handshake.js";
19
+ export class Device extends TypedEmitter {
28
20
  transport;
29
21
  thp;
30
22
  descriptor;
@@ -62,7 +54,6 @@ class Device extends utils_1.TypedEmitter {
62
54
  currentSession;
63
55
  instance = 0;
64
56
  state = [];
65
- stateStorage = undefined;
66
57
  busy;
67
58
  _unavailableCapabilities = {};
68
59
  get unavailableCapabilities() {
@@ -86,25 +77,32 @@ class Device extends utils_1.TypedEmitter {
86
77
  firmwareHash: null
87
78
  };
88
79
  uniquePath;
89
- lifecycle = new utils_1.TypedEmitter();
80
+ createLogger;
81
+ logger;
82
+ lifecycle = new TypedEmitter();
83
+ lastEmittedMessage;
90
84
  sessionDfd;
91
85
  constructor({
92
86
  id,
93
87
  transport,
94
- descriptor
88
+ descriptor,
89
+ createLogger
95
90
  }) {
96
91
  super();
97
- this._protocol = protocol_1.v1;
92
+ this._protocol = protocolV1;
93
+ this.createLogger = createLogger;
94
+ this.logger = createLogger('Device');
98
95
  this.uniquePath = id;
99
96
  this.transport = transport;
100
97
  this.descriptor = {
101
98
  id: descriptor.id,
102
99
  apiType: descriptor.apiType,
103
100
  type: descriptor.type,
104
- path: descriptor.path
101
+ path: descriptor.path,
102
+ model: descriptor.model
105
103
  };
106
104
  this.sessionAcquired = null;
107
- transport.on(transport_1.TRANSPORT.STOPPED, this.onTransportStopped);
105
+ transport.on(TRANSPORT.STOPPED, this.onTransportStopped);
108
106
  transport.deviceEvents.on(this.descriptor.path, this.onTransportDeviceEvent);
109
107
  }
110
108
  get transportPath() {
@@ -113,11 +111,11 @@ class Device extends utils_1.TypedEmitter {
113
111
  onTransportStopped = () => this.disconnect();
114
112
  onTransportDeviceEvent = event => {
115
113
  switch (event.type) {
116
- case transport_1.TRANSPORT.DEVICE_SESSION_CHANGED:
114
+ case TRANSPORT.DEVICE_SESSION_CHANGED:
117
115
  return this.updateDescriptor(event.descriptor);
118
- case transport_1.TRANSPORT.DEVICE_REQUEST_RELEASE:
116
+ case TRANSPORT.DEVICE_REQUEST_RELEASE:
119
117
  return this.usedElsewhere();
120
- case transport_1.TRANSPORT.DEVICE_DISCONNECTED:
118
+ case TRANSPORT.DEVICE_DISCONNECTED:
121
119
  {
122
120
  return this.disconnect();
123
121
  }
@@ -125,7 +123,7 @@ class Device extends utils_1.TypedEmitter {
125
123
  };
126
124
  getSessionChangePromise() {
127
125
  if (!this.sessionDfd) {
128
- this.sessionDfd = (0, utils_1.createDeferred)();
126
+ this.sessionDfd = createDeferred();
129
127
  this.sessionDfd.promise.catch(() => {}).finally(() => {
130
128
  this.sessionDfd = undefined;
131
129
  });
@@ -138,13 +136,17 @@ class Device extends utils_1.TypedEmitter {
138
136
  if ((await sessionPromise) !== response.payload) {
139
137
  return {
140
138
  success: false,
141
- error: transport_1.TRANSPORT_ERROR.SESSION_WRONG_PREVIOUS
139
+ error: {
140
+ code: TRANSPORT_ERROR.SESSION_WRONG_PREVIOUS
141
+ }
142
142
  };
143
143
  }
144
144
  } catch {
145
145
  return {
146
146
  success: false,
147
- error: transport_1.TRANSPORT_ERROR.DEVICE_DISCONNECTED_DURING_ACTION
147
+ error: {
148
+ code: TRANSPORT_ERROR.DEVICE_DISCONNECTED_DURING_ACTION
149
+ }
148
150
  };
149
151
  }
150
152
  }
@@ -162,10 +164,10 @@ class Device extends utils_1.TypedEmitter {
162
164
  if (result.success) {
163
165
  this.wasUsedElsewhere = false;
164
166
  this.sessionAcquired = result.payload;
165
- this.currentSession = new DeviceCurrentSession_1.DeviceCurrentSession(this, this.transport, this.sessionAcquired);
167
+ this.currentSession = new DeviceCurrentSession(this, this.transport, this.sessionAcquired, this.createLogger('DeviceCommands'));
166
168
  return result;
167
169
  } else {
168
- throw new Error(result.error);
170
+ throw new Error(result.error.code);
169
171
  }
170
172
  }).finally(() => {
171
173
  this.acquirePromise = undefined;
@@ -173,11 +175,12 @@ class Device extends utils_1.TypedEmitter {
173
175
  return this.acquirePromise;
174
176
  }
175
177
  reset() {
176
- _log.info(`Resetting Features and ThpState`);
178
+ this.logger.info(`Resetting Features and ThpState`);
177
179
  this._features = undefined;
178
- this._protocol = protocol_1.v1;
180
+ this._protocol = protocolV1;
179
181
  this.thp?.resetState();
180
182
  this.thp = undefined;
183
+ this.lastEmittedMessage = undefined;
181
184
  }
182
185
  setBusy(value) {
183
186
  this.busy = value;
@@ -200,15 +203,14 @@ class Device extends utils_1.TypedEmitter {
200
203
  });
201
204
  return this.releasePromise;
202
205
  }
203
- async setupThp() {
204
- _log.info('Setup THP device');
205
- this._protocol = protocol_1.v2;
206
- if (this.transport.name === 'BridgeTransport' && !utils_1.versionUtils.isNewerOrEqual(this.transport.version, '3.0.0')) {
206
+ setupThp() {
207
+ this.logger.info('Setup THP device');
208
+ this._protocol = protocolV2;
209
+ if (this.transport.name === 'BridgeTransport' && !versionUtils.isNewerOrEqual(this.transport.version, '3.0.0')) {
207
210
  this.unreadableError = 'THP incompatible with bridge ' + this.transport.version;
208
211
  } else {
209
212
  try {
210
- await this.transport.loadMessages('thp', protocol_1.thp.getProtobufDefinitions);
211
- this.thp = new protocol_1.thp.ThpState();
213
+ this.thp = new protocolThp.ThpState();
212
214
  } catch (error) {
213
215
  this.unreadableError = error.message;
214
216
  }
@@ -221,11 +223,11 @@ class Device extends utils_1.TypedEmitter {
221
223
  try {
222
224
  await this.run();
223
225
  } catch (error) {
224
- _log.warn(`device.run error.message: ${error.message}, code: ${error.code}`);
225
- if (error.code === 'Device_NotFound' || error.code === 'Device_Disconnected' || error.message === transport_1.TRANSPORT_ERROR.DEVICE_NOT_FOUND || error.message === transport_1.TRANSPORT_ERROR.DEVICE_DISCONNECTED_DURING_ACTION || error.message === transport_1.TRANSPORT_ERROR.HTTP_ERROR) {
226
+ this.logger.warn(`device.run error.message: ${error.message}, code: ${error.code}`);
227
+ if (error.code === 'Device_NotFound' || error.code === 'Device_Disconnected' || error.message === TRANSPORT_ERROR.DEVICE_NOT_FOUND || error.message === TRANSPORT_ERROR.DEVICE_DISCONNECTED_DURING_ACTION || error.message === TRANSPORT_ERROR.HTTP_ERROR) {
226
228
  return false;
227
229
  }
228
- if (this.possibleHIDdevice && error.message === transport_1.TRANSPORT_ERROR.INTERFACE_UNABLE_TO_OPEN_DEVICE || error.message === transport_1.TRANSPORT_ERROR.LIBUSB_ERROR_ACCESS) {
230
+ if (this.possibleHIDdevice && error.message === TRANSPORT_ERROR.INTERFACE_UNABLE_TO_OPEN_DEVICE || error.message === TRANSPORT_ERROR.LIBUSB_ERROR_ACCESS) {
229
231
  this.unreadableError = error.message;
230
232
  }
231
233
  }
@@ -240,12 +242,31 @@ class Device extends utils_1.TypedEmitter {
240
242
  if (!descriptor.session) {
241
243
  this.keepTransportSession = false;
242
244
  }
243
- this.lifecycle.emit(events_1.DEVICE.CHANGED);
245
+ this.emitDeviceChanged();
246
+ }
247
+ emitDeviceChanged() {
248
+ const message = this.toMessageObject();
249
+ if (this.lastEmittedMessage && deepEqual(this.lastEmittedMessage, message)) {
250
+ return;
251
+ }
252
+ this.lastEmittedMessage = cloneObject(message);
253
+ this.lifecycle.emit(DEVICE.CHANGED);
254
+ }
255
+ startPiggybackAck() {
256
+ this.logger.debug('start PiggybackAck');
257
+ this.thp?.enablePiggybackAck(true);
258
+ }
259
+ async stopPiggybackAck() {
260
+ if (this.currentSession && this.thp?.isPiggybackAckEnabled) {
261
+ this.logger.debug('stop PiggybackAck');
262
+ await this.currentSession.send('ThpAck', {});
263
+ this.thp?.enablePiggybackAck(false);
264
+ }
244
265
  }
245
266
  run(fn, options = {}) {
246
267
  if (this.runPromise) {
247
- _log.warn('Previous call is still running');
248
- throw constants_1.ERRORS.TypedError('Device_CallInProgress');
268
+ this.logger.warn('Previous call is still running');
269
+ throw ERRORS.TypedError('Device_CallInProgress');
249
270
  }
250
271
  const wasUnacquired = this.isUnacquired();
251
272
  this.runAbort = new AbortController();
@@ -257,6 +278,7 @@ class Device extends utils_1.TypedEmitter {
257
278
  })]).catch(async err => {
258
279
  this.keepTransportSession = false;
259
280
  await this.acquirePromise;
281
+ await this.stopPiggybackAck();
260
282
  await this.release();
261
283
  throw err;
262
284
  }).finally(() => {
@@ -264,13 +286,13 @@ class Device extends utils_1.TypedEmitter {
264
286
  this.runPromise = undefined;
265
287
  }).then(() => {
266
288
  if (wasUnacquired && !this.isUnacquired()) {
267
- this.lifecycle.emit(events_1.DEVICE.CONNECT);
289
+ this.lifecycle.emit(DEVICE.CONNECT);
268
290
  }
269
291
  });
270
292
  return this.runPromise;
271
293
  }
272
294
  async interrupt(reason) {
273
- await (0, thp_1.abortThpWorkflow)(this);
295
+ await abortThpWorkflow(this);
274
296
  await this.currentSession?.abort(reason);
275
297
  this.runAbort?.abort(reason);
276
298
  await this.currentRun;
@@ -285,8 +307,8 @@ class Device extends utils_1.TypedEmitter {
285
307
  }
286
308
  this.transport.releaseDevice(this.sessionAcquired);
287
309
  this.sessionAcquired = null;
288
- _log.debug('interruptionFromOutside');
289
- this.runAbort?.abort(constants_1.ERRORS.TypedError('Device_UsedElsewhere'));
310
+ this.logger.debug('interruptionFromOutside');
311
+ this.runAbort?.abort(ERRORS.TypedError('Device_UsedElsewhere'));
290
312
  }
291
313
  async _runInner(fn, options, abortSignal) {
292
314
  if (this.releasePromise) {
@@ -303,14 +325,15 @@ class Device extends utils_1.TypedEmitter {
303
325
  } = this.getState() || {};
304
326
  if (acquireNeeded || !staticSessionId || !deriveCardano && options.useCardanoDerivation) {
305
327
  try {
306
- await (0, handshake_1.handshakeCancel)({
328
+ await handshakeCancel({
307
329
  device: this,
308
- logger: _log,
330
+ logger: this.logger,
309
331
  signal: abortSignal
310
332
  });
311
333
  if (this.protocol.name === 'v2') {
312
334
  const withInteraction = !!fn;
313
- this.busy = await (0, thp_1.getThpChannel)(this, withInteraction);
335
+ this.busy = await getThpChannel(this, withInteraction);
336
+ this.updateNameAndColor();
314
337
  if (!this.busy) {
315
338
  await this.getFeatures();
316
339
  }
@@ -320,34 +343,35 @@ class Device extends utils_1.TypedEmitter {
320
343
  await this.getFeatures();
321
344
  }
322
345
  } catch (error) {
323
- _log.warn('Device._runInner error: ', error.message);
346
+ this.logger.warn('Device._runInner error: ', error.message);
324
347
  if (error.code === 'Failure_Busy') {
325
348
  this.busy = 'busy';
326
349
  }
327
350
  if (error.code === 'ThpDeviceLocked') {
328
351
  this.busy = 'pin-locked';
329
352
  }
330
- if (error.code === 'Device_ThpPairingTagInvalid') {
353
+ if (error.code === 'Device_ThpPairingTagInvalid' || error.code === 'Failure_ActionCancelled') {
331
354
  return Promise.reject(error);
332
355
  }
333
- return Promise.reject(constants_1.ERRORS.TypedError('Device_InitializeFailed', `Initialize failed: ${error.message}${error.code ? `, code: ${error.code}` : ''}`));
356
+ return Promise.reject(ERRORS.TypedError('Device_InitializeFailed', `Initialize failed: ${error.message}${error.code ? `, code: ${error.code}` : ''}`));
334
357
  }
335
358
  }
336
359
  if (!options.skipFirmwareChecks) {
337
- await (0, checkFirmwareHashWithRetries_1.checkFirmwareHashWithRetries)({
360
+ await checkFirmwareHashWithRetries({
338
361
  device: this,
339
- logger: _log
362
+ logger: this.logger
340
363
  });
341
364
  await this.checkFirmwareRevisionWithRetries();
342
365
  }
343
366
  if (!options.skipLanguageChecks && this.features?.language && !this.features.language_version_matches && this.atLeast('2.7.0')) {
344
- _log.info('language version mismatch. silently updating...');
367
+ this.logger.info('language version mismatch. silently updating...');
345
368
  try {
346
- await this.changeLanguage({
369
+ await changeLanguage({
370
+ device: this,
347
371
  language: this.features.language
348
372
  });
349
373
  } catch (err) {
350
- _log.error('change language failed silently', err);
374
+ this.logger.error('change language failed silently', err);
351
375
  }
352
376
  }
353
377
  if (options.keepSession) {
@@ -361,17 +385,18 @@ class Device extends utils_1.TypedEmitter {
361
385
  }
362
386
  if (!this.keepTransportSession && typeof options.keepSession !== 'boolean' || options.keepSession === false) {
363
387
  this.keepTransportSession = false;
388
+ await this.stopPiggybackAck();
364
389
  await this.release();
365
390
  }
366
391
  }
367
392
  getCurrentSession() {
368
393
  if (!this.currentSession) {
369
- throw constants_1.ERRORS.TypedError('Runtime', `Device: commands not defined`);
394
+ throw ERRORS.TypedError('Runtime', `Device: commands not defined`);
370
395
  }
371
396
  return this.currentSession;
372
397
  }
373
398
  getCommands() {
374
- return (0, DeviceCommands_1.DeviceCommands)(this.getCurrentSession());
399
+ return DeviceCommands(this.getCurrentSession());
375
400
  }
376
401
  setInstance(instance = 0) {
377
402
  if (this.instance !== instance) {
@@ -398,7 +423,6 @@ class Device extends utils_1.TypedEmitter {
398
423
  ...state
399
424
  };
400
425
  this.state[this.instance] = newState;
401
- this.stateStorage?.saveState(this, newState);
402
426
  }
403
427
  }
404
428
  async initialize(useCardanoDerivation) {
@@ -419,21 +443,17 @@ class Device extends utils_1.TypedEmitter {
419
443
  message
420
444
  } = await this.getCurrentSession().typedCall('Initialize', 'Features', payload);
421
445
  this._updateFeatures(message);
422
- this._updateCurrentRelease(message);
446
+ await this._updateCurrentRelease(message);
423
447
  this.setState({
424
448
  deriveCardano: payload?.derive_cardano
425
449
  });
426
450
  }
427
- initStorage(storage) {
428
- this.stateStorage = storage;
429
- this.setState(storage.loadState(this));
430
- }
431
451
  async getFeatures() {
432
452
  const {
433
453
  message
434
454
  } = await this.getCurrentSession().typedCall('GetFeatures', 'Features', {});
435
455
  this._updateFeatures(message);
436
- this._updateCurrentRelease(message);
456
+ await this._updateCurrentRelease(message);
437
457
  }
438
458
  getAuthenticityChecks() {
439
459
  return this.authenticityChecks;
@@ -445,7 +465,7 @@ class Device extends utils_1.TypedEmitter {
445
465
  const lastResult = this.authenticityChecks.firmwareRevision;
446
466
  const notDoneYet = lastResult === null;
447
467
  const wasError = lastResult !== null && !lastResult.success;
448
- const wasErrorRetriable = wasError && (0, utils_1.isArrayMember)(lastResult.error, constants_1.FIRMWARE.REVISION_CHECK_RETRIABLE_ERRORS);
468
+ const wasErrorRetriable = wasError && isArrayMember(lastResult.error, FIRMWARE.REVISION_CHECK_RETRIABLE_ERRORS);
449
469
  if (notDoneYet || wasErrorRetriable) {
450
470
  await this.checkFirmwareRevision();
451
471
  }
@@ -455,15 +475,17 @@ class Device extends utils_1.TypedEmitter {
455
475
  if (!firmwareVersion || !this.features || !this.firmwareType) {
456
476
  return;
457
477
  }
458
- if (this.features && this.features.bootloader_mode === true) {
478
+ if (this.features?.bootloader_mode === true) {
459
479
  return;
460
480
  }
461
- const release = (0, assetUtils_1.getReleaseAsset)(this.features.internal_model, firmwareVersion, this.firmwareType);
462
- const result = await (0, checkFirmwareRevision_1.checkFirmwareRevision)({
481
+ const release = getReleaseAsset(this.features.internal_model, firmwareVersion, this.firmwareType);
482
+ const result = await checkFirmwareRevision({
463
483
  internalModel: this.features.internal_model,
464
- deviceRevision: this.features.revision,
465
484
  firmwareVersion,
485
+ deviceRevision: this.features.revision,
466
486
  expectedRevision: release?.firmware_revision,
487
+ deviceBootloaderHash: this.features.bootloader_hash,
488
+ expectedBootloaderHash: release?.bootloader_hash,
467
489
  firmwareType: this.firmwareType
468
490
  });
469
491
  this.authenticityChecks = {
@@ -471,116 +493,104 @@ class Device extends utils_1.TypedEmitter {
471
493
  firmwareRevision: result
472
494
  };
473
495
  }
474
- async changeLanguage({
475
- language,
476
- binary
477
- }) {
478
- if (language === 'en-US') {
479
- return this._uploadTranslationData(null);
480
- }
481
- if (binary) {
482
- return this._uploadTranslationData(binary);
483
- }
484
- const version = this.getVersion();
485
- if (!version) {
486
- throw constants_1.ERRORS.TypedError('Runtime', 'changeLanguage: device version unknown');
487
- }
488
- if (!this.firmwareType) {
489
- throw constants_1.ERRORS.TypedError('Runtime', 'changeLanguage: firmware type unknown');
490
- }
491
- if (!this._currentRelease) {
492
- throw constants_1.ERRORS.TypedError('Runtime', 'changeLanguage: release not found');
493
- }
494
- const languageBinPath = this._currentRelease.translations[language];
495
- const downloadedBinary = await (0, firmwareInfo_1.getLanguage)(languageBinPath);
496
- if (!downloadedBinary) {
497
- throw constants_1.ERRORS.TypedError('Runtime', 'changeLanguage: translation not found');
498
- }
499
- let dataToSend;
500
- if (Buffer.isBuffer(downloadedBinary)) {
501
- dataToSend = new Uint8Array(downloadedBinary).buffer;
502
- } else {
503
- dataToSend = downloadedBinary;
504
- }
505
- return this._uploadTranslationData(dataToSend);
506
- }
507
- async _uploadTranslationData(payload) {
508
- if (payload === null) {
509
- const response = await this.getCurrentSession().typedCall('ChangeLanguage', ['Success'], {
510
- data_length: 0
511
- });
512
- return response.message;
513
- }
514
- const length = payload.byteLength;
515
- let response = await this.getCurrentSession().typedCall('ChangeLanguage', ['DataChunkRequest', 'Success'], {
516
- data_length: length
517
- });
518
- while (response.type !== 'Success') {
519
- const start = response.message.data_offset;
520
- const end = response.message.data_offset + response.message.data_length;
521
- const chunk = payload.slice(start, end);
522
- response = await this.getCurrentSession().typedCall('DataChunkAck', ['DataChunkRequest', 'Success'], {
523
- data_chunk: Buffer.from(chunk).toString('hex')
524
- });
525
- }
526
- return response.message;
527
- }
528
496
  async _updateCurrentRelease(feat) {
529
- const {
530
- firmwareVersion
531
- } = (0, firmwareInfo_1.getCurrentVersion)(feat);
532
- const newFirmwareType = (0, firmwareUtils_1.getFirmwareType)(feat);
497
+ const firmwareVersion = getFirmwareVersionArray({
498
+ features: feat
499
+ });
500
+ const newFirmwareType = getFirmwareType(feat);
533
501
  if (!firmwareVersion) {
534
502
  return;
535
503
  }
536
- if (this._currentRelease && newFirmwareType === this.firmwareType && utils_1.versionUtils.isEqual(this._currentRelease.version, firmwareVersion)) {
504
+ if (this._currentRelease && newFirmwareType === this.firmwareType && versionUtils.isEqual(this._currentRelease.version, firmwareVersion) && isProductionFirmwareChannel(settingsStore.get('firmwareChannel'))) {
537
505
  return;
538
506
  }
539
- const release = await (0, firmwareInfo_1.getReleaseByVersion)(feat, firmwareVersion, newFirmwareType);
507
+ const release = await getReleaseByVersion(feat, firmwareVersion, newFirmwareType);
540
508
  this._currentRelease = release;
541
509
  this.availableTranslations = this._currentRelease?.translations ?? {};
542
510
  }
543
511
  _updateFeatures(feat) {
544
- const capabilities = (0, deviceFeaturesUtils_1.parseCapabilities)(feat);
512
+ const capabilities = parseCapabilities(feat);
545
513
  feat.capabilities = capabilities;
546
- if (this.features && this.features.session_id && !feat.session_id) {
514
+ if (this.features?.session_id && !feat.session_id) {
547
515
  feat.session_id = this.features.session_id;
548
516
  }
549
517
  feat.unlocked = feat.unlocked ?? true;
550
- const revision = (0, deviceFeaturesUtils_1.parseRevision)(feat);
518
+ const revision = parseRevision(feat);
551
519
  feat.revision = revision;
552
520
  if (!feat.model && feat.major_version === 1) {
553
521
  feat.model = '1';
554
522
  }
555
- if (!feat.internal_model || !device_utils_1.DeviceModelInternal[feat.internal_model]) {
556
- feat.internal_model = (0, deviceFeaturesUtils_1.ensureInternalModelFeature)(feat.model);
523
+ if (!feat.internal_model || !DeviceModelInternal[feat.internal_model]) {
524
+ feat.internal_model = ensureInternalModelFeature(feat.model);
557
525
  }
558
526
  const version = this.getVersion();
559
- const newVersion = [feat.major_version, feat.minor_version, feat.patch_version];
560
- if (!version || !utils_1.versionUtils.isEqual(version, newVersion)) {
561
- if (version) {
562
- this.emit(events_1.DEVICE.FIRMWARE_VERSION_CHANGED, {
563
- oldVersion: version,
564
- newVersion,
565
- device: this.toMessageObject()
566
- });
527
+ const newVersion = getFirmwareOrBootloaderVersionArray(feat);
528
+ this.deviceVersionCheck(feat);
529
+ if (!version || !versionUtils.isEqual(version, newVersion)) {
530
+ this._unavailableCapabilities = getUnavailableCapabilities(feat, getAllNetworks());
531
+ this._firmwareStatus = getFirmwareStatus(feat, getFirmwareType(feat));
532
+ this._firmwareReleaseConfigInfo = getFirmwareReleaseConfigInfo(feat, getFirmwareType(feat));
533
+ if (isProductionFirmwareChannel(settingsStore.get('firmwareChannel'))) {
534
+ this._currentRelease = getReleaseAsset(feat.internal_model, newVersion, getFirmwareType(feat));
535
+ this.availableTranslations = this._currentRelease?.translations ?? {};
567
536
  }
568
- this._unavailableCapabilities = (0, deviceFeaturesUtils_1.getUnavailableCapabilities)(feat, (0, coinInfo_1.getAllNetworks)());
569
- this._firmwareStatus = (0, firmwareInfo_1.getFirmwareStatus)(feat, (0, firmwareUtils_1.getFirmwareType)(feat));
570
- this._firmwareReleaseConfigInfo = (0, firmwareInfo_1.getFirmwareReleaseConfigInfo)(feat, (0, firmwareUtils_1.getFirmwareType)(feat));
571
- this._currentRelease = (0, assetUtils_1.getReleaseAsset)(feat.internal_model, newVersion, (0, firmwareUtils_1.getFirmwareType)(feat));
572
- this.availableTranslations = this._currentRelease?.translations ?? {};
573
537
  }
574
538
  this._features = feat;
575
- this._firmwareType = (0, firmwareUtils_1.getFirmwareType)(feat);
576
- const deviceInfo = device_utils_1.models[feat.internal_model] ?? {
577
- name: `Unknown ${feat.internal_model}`,
539
+ this._firmwareType = getFirmwareType(feat);
540
+ this.updateNameAndColor();
541
+ this.busy = undefined;
542
+ }
543
+ deviceVersionCheck(feat) {
544
+ const version = this.getVersion();
545
+ const oldId = this.features?.device_id;
546
+ if (!oldId || !!feat.bootloader_mode || !version) return;
547
+ const newVersion = getFirmwareOrBootloaderVersionArray(feat);
548
+ if (feat.device_id !== oldId) {
549
+ if (feat.initialized === this.features?.initialized) {
550
+ const stripConfidential = f => ({
551
+ ...f,
552
+ device_id: undefined,
553
+ session_id: undefined,
554
+ label: undefined
555
+ });
556
+ const oldFeatures = this.features;
557
+ const {
558
+ uniquePath: path
559
+ } = this;
560
+ this.transport.enumerate().then(res => {
561
+ const descriptors = res.success ? res.payload : undefined;
562
+ console.error('getFeatures device id mismatch', {
563
+ path,
564
+ oldFeatures: oldFeatures && stripConfidential(oldFeatures),
565
+ newFeatures: stripConfidential(feat),
566
+ descriptors
567
+ });
568
+ });
569
+ }
570
+ return;
571
+ }
572
+ if (!versionUtils.isEqual(version, newVersion)) {
573
+ this.emit(DEVICE.FIRMWARE_VERSION_CHANGED, {
574
+ oldVersion: version,
575
+ newVersion,
576
+ device: this.toMessageObject()
577
+ });
578
+ }
579
+ }
580
+ updateNameAndColor() {
581
+ const {
582
+ internal_model,
583
+ model_variant
584
+ } = this.thp?.properties ?? {};
585
+ const internalModel = this._features?.internal_model ?? internal_model;
586
+ const unitColor = this._features?.unit_color ?? (model_variant ?? 0) % 256;
587
+ const deviceInfo = models[internalModel] ?? {
588
+ name: `Unknown ${internalModel}`,
578
589
  colors: {}
579
590
  };
580
591
  this.name = deviceInfo.name;
581
- this.busy = undefined;
582
- if (feat?.unit_color) {
583
- const deviceUnitColor = feat.unit_color.toString();
592
+ if (unitColor) {
593
+ const deviceUnitColor = unitColor.toString();
584
594
  if (deviceUnitColor in deviceInfo.colors) {
585
595
  this.color = deviceInfo.colors[deviceUnitColor];
586
596
  }
@@ -592,7 +602,7 @@ class Device extends utils_1.TypedEmitter {
592
602
  ...this._features,
593
603
  [key]: value
594
604
  };
595
- this.lifecycle.emit(events_1.DEVICE.CHANGED);
605
+ this.emitDeviceChanged();
596
606
  }
597
607
  }
598
608
  prompt(type, args) {
@@ -614,12 +624,9 @@ class Device extends utils_1.TypedEmitter {
614
624
  isUnacquired() {
615
625
  return this.features === undefined;
616
626
  }
617
- isUnreadable() {
618
- return !!this.unreadableError;
619
- }
620
627
  disconnect() {
621
- _log.debug('Disconnect cleanup');
622
- this.transport.off(transport_1.TRANSPORT.STOPPED, this.onTransportStopped);
628
+ this.logger.debug('Disconnect cleanup');
629
+ this.transport.off(TRANSPORT.STOPPED, this.onTransportStopped);
623
630
  this.transport.deviceEvents.off(this.descriptor.path, this.onTransportDeviceEvent);
624
631
  this.removeAllListeners();
625
632
  this.sessionDfd?.reject(new Error());
@@ -627,8 +634,8 @@ class Device extends utils_1.TypedEmitter {
627
634
  this.transport.releaseSync(this.sessionAcquired);
628
635
  this.sessionAcquired = null;
629
636
  }
630
- this.lifecycle.emit(events_1.DEVICE.DISCONNECT);
631
- return this.interrupt(constants_1.ERRORS.TypedError('Device_Disconnected'));
637
+ this.lifecycle.emit(DEVICE.DISCONNECT);
638
+ return this.interrupt(ERRORS.TypedError('Device_Disconnected'));
632
639
  }
633
640
  isBootloader() {
634
641
  return this.features && !!this.features.bootloader_mode;
@@ -640,14 +647,17 @@ class Device extends utils_1.TypedEmitter {
640
647
  return this.features && !!this.features.no_backup;
641
648
  }
642
649
  getVersion() {
643
- if (!this.features) return;
644
- return [this.features.major_version, this.features.minor_version, this.features.patch_version];
650
+ return this.features ? getFirmwareOrBootloaderVersionArray(this.features) : undefined;
645
651
  }
646
652
  atLeast(versions) {
647
653
  const version = this.getVersion();
648
654
  if (!this.features || !version) return false;
649
- const modelVersion = typeof versions === 'string' ? versions : versions[this.features.major_version - 1];
650
- return utils_1.versionUtils.isNewerOrEqual(version, modelVersion);
655
+ if (typeof versions === 'string') {
656
+ return versionUtils.isNewerOrEqual(version, versions);
657
+ }
658
+ const modelVersionIndex = this.features.major_version - 1;
659
+ const modelVersion = versions[modelVersionIndex];
660
+ return versionUtils.isNewerOrEqual(version, modelVersion);
651
661
  }
652
662
  isUsed() {
653
663
  return !!this.transport.getDescriptor(this.descriptor.path)?.session;
@@ -655,28 +665,25 @@ class Device extends utils_1.TypedEmitter {
655
665
  isUsedHere() {
656
666
  return !!this.sessionAcquired;
657
667
  }
668
+ getBusy() {
669
+ return this.busy;
670
+ }
658
671
  isUsedElsewhere() {
659
672
  return this.isUsed() && !this.isUsedHere();
660
673
  }
661
674
  getUniquePath() {
662
675
  return this.uniquePath;
663
676
  }
664
- isT1() {
665
- return this.features ? this.features.major_version === 1 : false;
666
- }
667
- hasUnexpectedMode(allow, require) {
677
+ hasUnexpectedMode(allow) {
668
678
  if (this.features) {
669
- if (this.isBootloader() && !allow.includes(events_1.UI.BOOTLOADER)) {
670
- return events_1.UI.BOOTLOADER;
671
- }
672
- if (!this.isInitialized() && !allow.includes(events_1.UI.INITIALIZE)) {
673
- return events_1.UI.INITIALIZE;
679
+ if (this.isBootloader() && !allow.includes(UI_REQUEST.BOOTLOADER)) {
680
+ return UI_REQUEST.BOOTLOADER;
674
681
  }
675
- if (this.isSeedless() && !allow.includes(events_1.UI.SEEDLESS)) {
676
- return events_1.UI.SEEDLESS;
682
+ if (!this.isInitialized() && !allow.includes(UI_REQUEST.INITIALIZE)) {
683
+ return UI_REQUEST.INITIALIZE;
677
684
  }
678
- if (!this.isBootloader() && require.includes(events_1.UI.BOOTLOADER)) {
679
- return events_1.UI.NOT_IN_BOOTLOADER;
685
+ if (this.isSeedless() && !allow.includes(UI_REQUEST.SEEDLESS)) {
686
+ return UI_REQUEST.SEEDLESS;
680
687
  }
681
688
  }
682
689
  return null;
@@ -713,9 +720,6 @@ class Device extends utils_1.TypedEmitter {
713
720
  id
714
721
  }
715
722
  };
716
- const bluetoothProps = this.descriptor.id && this.descriptor.apiType === 'bluetooth' ? {
717
- id: (0, types_1.asBluetoothDeviceId)(this.descriptor.id)
718
- } : undefined;
719
723
  if (this.unreadableError) {
720
724
  return {
721
725
  ...base,
@@ -733,7 +737,6 @@ class Device extends utils_1.TypedEmitter {
733
737
  label: 'Unacquired device',
734
738
  name: this.name,
735
739
  transportSessionOwner: this.sessionAcquired ? undefined : sessionOwner,
736
- bluetoothProps,
737
740
  thp: this.getDeviceThp(),
738
741
  status: this.busy ? this.busy : undefined
739
742
  };
@@ -745,10 +748,9 @@ class Device extends utils_1.TypedEmitter {
745
748
  type: 'acquired',
746
749
  id: this.features.device_id,
747
750
  label,
748
- _state: this.getState(),
749
- state: this.getState()?.staticSessionId,
751
+ state: this.getState(),
750
752
  status: this.getStatus(),
751
- mode: (0, firmwareUtils_1.getFirmwareMode)(this.features),
753
+ mode: getFirmwareMode(this.features),
752
754
  color: this.color,
753
755
  firmware: this.firmwareStatus,
754
756
  firmwareReleaseConfigInfo: this.firmwareReleaseConfigInfo,
@@ -757,10 +759,7 @@ class Device extends utils_1.TypedEmitter {
757
759
  unavailableCapabilities: this.unavailableCapabilities,
758
760
  availableTranslations: this.availableTranslations,
759
761
  authenticityChecks: this.authenticityChecks,
760
- bluetoothProps,
761
762
  thp: this.getDeviceThp()
762
763
  };
763
764
  }
764
- }
765
- exports.Device = Device;
766
- //# sourceMappingURL=Device.js.map
765
+ }