@trezor/connect 9.6.5-beta.2 → 9.7.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/CHANGELOG.md +43 -15
  2. package/README.md +1 -1
  3. package/lib/api/applyFlags.js +31 -26
  4. package/lib/api/applySettings.js +43 -40
  5. package/lib/api/authenticateDevice.js +82 -54
  6. package/lib/api/authorizeCoinjoin.js +35 -28
  7. package/lib/api/backupDevice.js +32 -27
  8. package/lib/api/bitcoin/TransactionComposer.js +131 -123
  9. package/lib/api/bitcoin/createPendingTx.js +55 -52
  10. package/lib/api/bitcoin/enhanceSignTx.js +57 -55
  11. package/lib/api/bitcoin/index.js +4 -1
  12. package/lib/api/bitcoin/inputs.js +71 -46
  13. package/lib/api/bitcoin/outputs.js +108 -85
  14. package/lib/api/bitcoin/refTx.d.ts +1 -1
  15. package/lib/api/bitcoin/refTx.js +233 -201
  16. package/lib/api/bitcoin/signtx.js +208 -152
  17. package/lib/api/bitcoin/signtxLegacy.js +169 -119
  18. package/lib/api/bitcoin/signtxVerify.js +80 -67
  19. package/lib/api/bitcoin/transactionBytes.js +61 -59
  20. package/lib/api/bleUnpair.js +28 -25
  21. package/lib/api/blockchainDisconnect.js +31 -24
  22. package/lib/api/blockchainEstimateFee.js +94 -61
  23. package/lib/api/blockchainEvmRpcCall.js +51 -34
  24. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +1 -1
  25. package/lib/api/blockchainGetAccountBalanceHistory.js +50 -32
  26. package/lib/api/blockchainGetCurrentFiatRates.d.ts +1 -1
  27. package/lib/api/blockchainGetCurrentFiatRates.js +43 -29
  28. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +1 -1
  29. package/lib/api/blockchainGetFiatRatesForTimestamps.js +49 -32
  30. package/lib/api/blockchainGetInfo.js +31 -22
  31. package/lib/api/blockchainGetTransactions.d.ts +1 -1
  32. package/lib/api/blockchainGetTransactions.js +36 -24
  33. package/lib/api/blockchainSetCustomBackend.js +34 -25
  34. package/lib/api/blockchainSubscribe.js +57 -36
  35. package/lib/api/blockchainSubscribeFiatRates.js +36 -24
  36. package/lib/api/blockchainUnsubscribe.js +57 -37
  37. package/lib/api/blockchainUnsubscribeFiatRates.js +31 -22
  38. package/lib/api/cancelCoinjoinAuthorization.js +26 -20
  39. package/lib/api/cardano/api/cardanoComposeTransaction.js +75 -50
  40. package/lib/api/cardano/api/cardanoGetAddress.js +105 -102
  41. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +59 -56
  42. package/lib/api/cardano/api/cardanoGetPublicKey.js +58 -58
  43. package/lib/api/cardano/api/cardanoSignMessage.js +81 -78
  44. package/lib/api/cardano/api/cardanoSignTransaction.js +269 -240
  45. package/lib/api/cardano/api/index.js +40 -7
  46. package/lib/api/cardano/cardanoAddressParameters.js +71 -65
  47. package/lib/api/cardano/cardanoAuxiliaryData.js +68 -63
  48. package/lib/api/cardano/cardanoCertificate.js +124 -119
  49. package/lib/api/cardano/cardanoInputs.js +33 -33
  50. package/lib/api/cardano/cardanoOutputs.d.ts +1 -1
  51. package/lib/api/cardano/cardanoOutputs.js +63 -61
  52. package/lib/api/cardano/cardanoTokenBundle.d.ts +2 -2
  53. package/lib/api/cardano/cardanoTokenBundle.js +18 -13
  54. package/lib/api/cardano/cardanoUtils.js +94 -89
  55. package/lib/api/cardano/cardanoWitnesses.js +46 -42
  56. package/lib/api/changeLanguage.js +40 -29
  57. package/lib/api/changePin.js +21 -16
  58. package/lib/api/changeWipeCode.js +24 -16
  59. package/lib/api/cipherKeyValue.js +42 -41
  60. package/lib/api/common/Discovery.js +114 -112
  61. package/lib/api/common/paramsValidator.js +110 -116
  62. package/lib/api/composeTransaction.d.ts +1 -1
  63. package/lib/api/composeTransaction.js +307 -256
  64. package/lib/api/discoverAccounts.js +291 -191
  65. package/lib/api/eos/api/eosGetPublicKey.js +56 -52
  66. package/lib/api/eos/api/eosSignTransaction.js +35 -26
  67. package/lib/api/eos/api/index.js +16 -3
  68. package/lib/api/eos/eosSignTx.js +308 -312
  69. package/lib/api/ethereum/api/ethereumGetAddress.js +106 -107
  70. package/lib/api/ethereum/api/ethereumGetPublicKey.js +72 -62
  71. package/lib/api/ethereum/api/ethereumSignMessage.js +55 -48
  72. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +33 -0
  73. package/lib/api/ethereum/api/ethereumSignTransaction.js +137 -132
  74. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +6 -4
  75. package/lib/api/ethereum/api/ethereumSignTypedData.js +183 -171
  76. package/lib/api/ethereum/api/ethereumVerifyMessage.js +27 -24
  77. package/lib/api/ethereum/api/index.js +40 -7
  78. package/lib/api/ethereum/ethereumDefinitions.js +94 -87
  79. package/lib/api/ethereum/ethereumSignTx.js +116 -111
  80. package/lib/api/ethereum/ethereumSignTypedData.js +98 -95
  81. package/lib/api/evoluGetDelegatedIdentityKey.d.ts +11 -0
  82. package/lib/api/evoluGetDelegatedIdentityKey.js +41 -0
  83. package/lib/api/evoluGetNode.js +24 -17
  84. package/lib/api/evoluSignRegistrationRequest.d.ts +12 -0
  85. package/lib/api/evoluSignRegistrationRequest.js +35 -0
  86. package/lib/api/firmware/calculateFirmwareHash.js +44 -32
  87. package/lib/api/firmware/getBinary.js +30 -22
  88. package/lib/api/firmware/index.js +46 -8
  89. package/lib/api/firmware/modifyFirmware.js +13 -12
  90. package/lib/api/firmware/parseFirmwareHeaders.js +29 -30
  91. package/lib/api/firmware/uploadFirmware.js +84 -67
  92. package/lib/api/firmware/verifyEntropy.js +88 -83
  93. package/lib/api/getAccountDescriptor.js +118 -120
  94. package/lib/api/getAccountInfo.d.ts +14 -14
  95. package/lib/api/getAccountInfo.js +316 -287
  96. package/lib/api/getAddress.js +128 -118
  97. package/lib/api/getCoinInfo.js +22 -17
  98. package/lib/api/getDeviceState.js +16 -10
  99. package/lib/api/getFeatures.d.ts +5 -1
  100. package/lib/api/getFeatures.js +15 -12
  101. package/lib/api/getFirmwareHash.js +23 -18
  102. package/lib/api/getNonce.js +12 -9
  103. package/lib/api/getOwnershipId.js +57 -51
  104. package/lib/api/getOwnershipProof.js +66 -60
  105. package/lib/api/getPublicKey.js +72 -66
  106. package/lib/api/getSettings.js +12 -9
  107. package/lib/api/index.d.ts +2 -0
  108. package/lib/api/index.js +350 -58
  109. package/lib/api/loadDevice.js +40 -35
  110. package/lib/api/monero/api/index.js +28 -5
  111. package/lib/api/monero/api/moneroGetAddress.js +108 -82
  112. package/lib/api/monero/api/moneroGetWatchKey.js +37 -32
  113. package/lib/api/monero/api/moneroKeyImageSync.js +111 -107
  114. package/lib/api/monero/api/moneroSignTransaction.js +173 -185
  115. package/lib/api/nem/api/index.js +16 -3
  116. package/lib/api/nem/api/nemGetAddress.js +107 -102
  117. package/lib/api/nem/api/nemSignTransaction.js +25 -20
  118. package/lib/api/nem/nemSignTx.js +128 -125
  119. package/lib/api/pushTransaction.js +31 -27
  120. package/lib/api/recoveryDevice.js +44 -39
  121. package/lib/api/requestLogin.d.ts +0 -1
  122. package/lib/api/requestLogin.js +47 -52
  123. package/lib/api/resetDevice.js +100 -90
  124. package/lib/api/ripple/api/index.js +16 -3
  125. package/lib/api/ripple/api/rippleGetAddress.js +92 -88
  126. package/lib/api/ripple/api/rippleSignTransaction.js +44 -34
  127. package/lib/api/setBrightness.js +21 -16
  128. package/lib/api/setBusy.js +27 -20
  129. package/lib/api/setProxy.js +22 -15
  130. package/lib/api/showDeviceTutorial.js +18 -15
  131. package/lib/api/signMessage.js +50 -46
  132. package/lib/api/signTransaction.js +325 -238
  133. package/lib/api/solana/additionalInfo.js +17 -14
  134. package/lib/api/solana/api/index.js +28 -5
  135. package/lib/api/solana/api/solanaComposeTransaction.js +46 -50
  136. package/lib/api/solana/api/solanaGetAddress.js +92 -90
  137. package/lib/api/solana/api/solanaGetPublicKey.js +56 -52
  138. package/lib/api/solana/api/solanaSignTransaction.js +175 -168
  139. package/lib/api/solana/solanaDefinitions.js +32 -25
  140. package/lib/api/solana/solanaUtils.d.ts +2 -2
  141. package/lib/api/solana/solanaUtils.js +231 -177
  142. package/lib/api/stellar/api/index.js +16 -3
  143. package/lib/api/stellar/api/stellarGetAddress.js +92 -88
  144. package/lib/api/stellar/api/stellarSignTransaction.js +51 -44
  145. package/lib/api/stellar/stellarSignTx.js +184 -179
  146. package/lib/api/tezos/api/index.js +22 -4
  147. package/lib/api/tezos/api/tezosGetAddress.js +92 -88
  148. package/lib/api/tezos/api/tezosGetPublicKey.js +55 -51
  149. package/lib/api/tezos/api/tezosSignTransaction.js +23 -18
  150. package/lib/api/tezos/tezosSignTx.js +183 -169
  151. package/lib/api/thpGetCredentials.js +23 -20
  152. package/lib/api/thpRemoveCredentials.js +28 -21
  153. package/lib/api/unlockPath.js +28 -21
  154. package/lib/api/verifyMessage.js +35 -33
  155. package/lib/api/wipeDevice.js +39 -34
  156. package/lib/backend/BackendManager.js +127 -107
  157. package/lib/backend/Blockchain.d.ts +1 -1
  158. package/lib/backend/Blockchain.js +220 -205
  159. package/lib/backend/BlockchainLink.js +17 -5
  160. package/lib/backend/fees/BitcoinFeeLevels.js +41 -34
  161. package/lib/backend/fees/EthereumFeeLevels.js +51 -51
  162. package/lib/backend/fees/MiscFeeLevels.js +25 -24
  163. package/lib/backend/fees/index.js +28 -21
  164. package/lib/constants/cardano.js +11 -8
  165. package/lib/constants/errors.js +72 -65
  166. package/lib/constants/firmware.js +5 -5
  167. package/lib/constants/index.js +16 -3
  168. package/lib/constants/nem.js +19 -16
  169. package/lib/constants/network.js +15 -22
  170. package/lib/constants/utxo.js +4 -1
  171. package/lib/core/AbstractMethod.d.ts +1 -1
  172. package/lib/core/AbstractMethod.js +248 -224
  173. package/lib/core/index.js +936 -775
  174. package/lib/core/method.js +19 -16
  175. package/lib/core/method.native.js +28 -23
  176. package/lib/core/onCallFirmwareUpdate.js +368 -299
  177. package/lib/data/DataManager.js +85 -77
  178. package/lib/data/analyticsInfo.js +35 -29
  179. package/lib/data/coinInfo.js +154 -156
  180. package/lib/data/config.d.ts +1 -1
  181. package/lib/data/config.js +362 -326
  182. package/lib/data/connectSettings.js +131 -144
  183. package/lib/data/defaultFeeLevels.js +154 -108
  184. package/lib/data/firmwareInfo.d.ts +1 -0
  185. package/lib/data/firmwareInfo.js +407 -377
  186. package/lib/data/thpSettings.js +36 -35
  187. package/lib/data/udevInfo.js +24 -24
  188. package/lib/data/version.d.ts +1 -1
  189. package/lib/data/version.js +6 -5
  190. package/lib/device/Device.d.ts +10 -7
  191. package/lib/device/Device.js +731 -749
  192. package/lib/device/DeviceCommands.js +226 -194
  193. package/lib/device/DeviceCurrentSession.d.ts +427 -337
  194. package/lib/device/DeviceCurrentSession.js +235 -236
  195. package/lib/device/DeviceList.d.ts +2 -0
  196. package/lib/device/DeviceList.js +219 -181
  197. package/lib/device/StateStorage.js +32 -29
  198. package/lib/device/TransportList.d.ts +1 -1
  199. package/lib/device/TransportList.js +37 -36
  200. package/lib/device/TransportManager.js +136 -140
  201. package/lib/device/calculateRevisionForDevice.js +20 -14
  202. package/lib/device/checkFirmwareRevision.js +66 -53
  203. package/lib/device/resolveDescriptorForTaproot.js +26 -16
  204. package/lib/device/thp/handshake.js +95 -82
  205. package/lib/device/thp/index.js +53 -38
  206. package/lib/device/thp/pairing.js +209 -199
  207. package/lib/device/thp/session.js +27 -19
  208. package/lib/device/thp/thpCall.js +53 -43
  209. package/lib/device/workflow/checkFirmwareHash.js +77 -67
  210. package/lib/device/workflow/checkFirmwareHashWithRetries.js +32 -29
  211. package/lib/device/workflow/handshake.js +50 -41
  212. package/lib/device/workflow/index.js +10 -2
  213. package/lib/device/workflow/trezorPushNotification.js +68 -63
  214. package/lib/device/workflow/validateState.js +156 -123
  215. package/lib/events/blockchain.js +13 -10
  216. package/lib/events/call.d.ts +6 -4
  217. package/lib/events/call.js +14 -13
  218. package/lib/events/core.js +24 -21
  219. package/lib/events/device.d.ts +2 -2
  220. package/lib/events/device.js +32 -19
  221. package/lib/events/iframe.js +13 -10
  222. package/lib/events/index.d.ts +0 -1
  223. package/lib/events/index.js +6 -3
  224. package/lib/events/popup.js +20 -17
  225. package/lib/events/transport.d.ts +2 -2
  226. package/lib/events/transport.js +16 -11
  227. package/lib/events/ui-promise.js +4 -1
  228. package/lib/events/ui-request.d.ts +0 -4
  229. package/lib/events/ui-request.js +48 -46
  230. package/lib/events/ui-response.d.ts +2 -2
  231. package/lib/events/ui-response.js +20 -17
  232. package/lib/events/webextension.js +9 -6
  233. package/lib/exports.js +10 -2
  234. package/lib/factory.d.ts +3 -2
  235. package/lib/factory.js +34 -141
  236. package/lib/impl/core-in-module.d.ts +1 -8
  237. package/lib/impl/core-in-module.js +186 -211
  238. package/lib/impl/dynamic.d.ts +0 -1
  239. package/lib/impl/dynamic.js +108 -97
  240. package/lib/index-browser.d.ts +1 -0
  241. package/lib/index-browser.js +18 -16
  242. package/lib/index.d.ts +2 -0
  243. package/lib/index.js +144 -148
  244. package/lib/tsconfig.lib.tsbuildinfo +1 -1
  245. package/lib/types/account.js +4 -1
  246. package/lib/types/api/applyFlags.js +4 -1
  247. package/lib/types/api/applySettings.d.ts +3 -3
  248. package/lib/types/api/applySettings.js +7 -7
  249. package/lib/types/api/authenticateDevice.js +7 -4
  250. package/lib/types/api/authorizeCoinjoin.js +13 -10
  251. package/lib/types/api/backupDevice.js +4 -1
  252. package/lib/types/api/bitcoin/index.d.ts +5 -2
  253. package/lib/types/api/bitcoin/index.js +14 -11
  254. package/lib/types/api/bleUnpair.js +4 -1
  255. package/lib/types/api/blockchainDisconnect.js +4 -1
  256. package/lib/types/api/blockchainEstimateFee.js +4 -1
  257. package/lib/types/api/blockchainEvmRpcCall.js +4 -1
  258. package/lib/types/api/blockchainGetAccountBalanceHistory.js +4 -1
  259. package/lib/types/api/blockchainGetCurrentFiatRates.js +4 -1
  260. package/lib/types/api/blockchainGetFiatRatesForTimestamps.js +4 -1
  261. package/lib/types/api/blockchainGetInfo.js +4 -1
  262. package/lib/types/api/blockchainGetTransactions.js +4 -1
  263. package/lib/types/api/blockchainSetCustomBackend.js +4 -1
  264. package/lib/types/api/blockchainSubscribe.js +4 -1
  265. package/lib/types/api/blockchainSubscribeFiatRates.js +4 -1
  266. package/lib/types/api/blockchainUnsubscribe.js +4 -1
  267. package/lib/types/api/blockchainUnsubscribeFiatRates.js +4 -1
  268. package/lib/types/api/cancel.js +4 -1
  269. package/lib/types/api/cancelCoinjoinAuthorization.js +5 -2
  270. package/lib/types/api/cardano/index.d.ts +4 -4
  271. package/lib/types/api/cardano/index.js +173 -180
  272. package/lib/types/api/cardanoComposeTransaction.js +76 -65
  273. package/lib/types/api/cardanoGetAddress.js +4 -1
  274. package/lib/types/api/cardanoGetNativeScriptHash.js +4 -1
  275. package/lib/types/api/cardanoGetPublicKey.js +4 -1
  276. package/lib/types/api/cardanoSignMessage.js +4 -1
  277. package/lib/types/api/cardanoSignTransaction.js +4 -1
  278. package/lib/types/api/changeLanguage.d.ts +1 -1
  279. package/lib/types/api/changeLanguage.js +13 -13
  280. package/lib/types/api/changePin.js +4 -1
  281. package/lib/types/api/changeWipeCode.js +4 -1
  282. package/lib/types/api/cipherKeyValue.d.ts +2 -2
  283. package/lib/types/api/cipherKeyValue.js +11 -8
  284. package/lib/types/api/composeTransaction.js +4 -1
  285. package/lib/types/api/device.js +1 -2
  286. package/lib/types/api/disableWebUSB.js +4 -1
  287. package/lib/types/api/discoverAccounts.js +204 -55
  288. package/lib/types/api/dispose.js +4 -1
  289. package/lib/types/api/eos/index.d.ts +3 -3
  290. package/lib/types/api/eos/index.js +106 -162
  291. package/lib/types/api/eosGetPublicKey.js +4 -1
  292. package/lib/types/api/eosSignTransaction.js +4 -1
  293. package/lib/types/api/ethereum/index.d.ts +11 -7
  294. package/lib/types/api/ethereum/index.js +70 -65
  295. package/lib/types/api/ethereumGetAddress.js +4 -1
  296. package/lib/types/api/ethereumGetPublicKey.js +4 -1
  297. package/lib/types/api/ethereumSignMessage.js +4 -1
  298. package/lib/types/api/ethereumSignTransaction.js +4 -1
  299. package/lib/types/api/ethereumSignTypedData.js +4 -1
  300. package/lib/types/api/ethereumVerifyMessage.js +4 -1
  301. package/lib/types/api/evoluGetDelegatedIdentityKey.d.ts +9 -0
  302. package/lib/types/api/evoluGetDelegatedIdentityKey.js +6 -0
  303. package/lib/types/api/evoluGetNode.js +4 -1
  304. package/lib/types/api/evoluSignRegistrationRequest.d.ts +4 -0
  305. package/lib/types/api/evoluSignRegistrationRequest.js +6 -0
  306. package/lib/types/api/firmwareUpdate.d.ts +1 -1
  307. package/lib/types/api/firmwareUpdate.js +12 -12
  308. package/lib/types/api/getAccountDescriptor.js +8 -5
  309. package/lib/types/api/getAccountInfo.js +4 -1
  310. package/lib/types/api/getAddress.js +11 -11
  311. package/lib/types/api/getCoinInfo.js +4 -1
  312. package/lib/types/api/getDeviceState.js +4 -1
  313. package/lib/types/api/getFeatures.js +4 -1
  314. package/lib/types/api/getFirmwareHash.js +4 -1
  315. package/lib/types/api/getNonce.d.ts +1 -1
  316. package/lib/types/api/getNonce.js +4 -1
  317. package/lib/types/api/getOwnershipId.js +8 -5
  318. package/lib/types/api/getOwnershipProof.js +14 -9
  319. package/lib/types/api/getPublicKey.js +25 -28
  320. package/lib/types/api/getSettings.js +4 -1
  321. package/lib/types/api/index.d.ts +4 -0
  322. package/lib/types/api/index.js +4 -1
  323. package/lib/types/api/init.js +4 -1
  324. package/lib/types/api/loadDevice.js +4 -1
  325. package/lib/types/api/manifest.js +4 -1
  326. package/lib/types/api/monero/index.js +117 -114
  327. package/lib/types/api/moneroGetAddress.js +4 -1
  328. package/lib/types/api/moneroGetWatchKey.js +4 -1
  329. package/lib/types/api/moneroKeyImageSync.js +4 -1
  330. package/lib/types/api/moneroSignTransaction.js +4 -1
  331. package/lib/types/api/nem/index.d.ts +7 -7
  332. package/lib/types/api/nem/index.js +78 -112
  333. package/lib/types/api/nemGetAddress.js +7 -7
  334. package/lib/types/api/nemSignTransaction.js +4 -1
  335. package/lib/types/api/off.js +4 -1
  336. package/lib/types/api/on.js +4 -1
  337. package/lib/types/api/pushTransaction.js +10 -10
  338. package/lib/types/api/recoveryDevice.d.ts +1 -1
  339. package/lib/types/api/recoveryDevice.js +7 -7
  340. package/lib/types/api/removeAllListeners.js +4 -1
  341. package/lib/types/api/renderWebUSBButton.js +4 -1
  342. package/lib/types/api/requestLogin.d.ts +4 -24
  343. package/lib/types/api/requestLogin.js +11 -13
  344. package/lib/types/api/requestWebUSBDevice.js +4 -1
  345. package/lib/types/api/resetDevice.js +4 -1
  346. package/lib/types/api/ripple/index.js +17 -14
  347. package/lib/types/api/rippleGetAddress.js +4 -1
  348. package/lib/types/api/rippleSignTransaction.js +4 -1
  349. package/lib/types/api/setBrightness.js +4 -1
  350. package/lib/types/api/setBusy.js +4 -1
  351. package/lib/types/api/setProxy.js +4 -1
  352. package/lib/types/api/setTransports.js +4 -1
  353. package/lib/types/api/showDeviceTutorial.js +4 -1
  354. package/lib/types/api/signMessage.js +4 -1
  355. package/lib/types/api/signTransaction.js +4 -1
  356. package/lib/types/api/solana/index.js +55 -56
  357. package/lib/types/api/solanaComposeTransaction.js +4 -1
  358. package/lib/types/api/solanaGetAddress.js +4 -1
  359. package/lib/types/api/solanaGetPublicKey.js +4 -1
  360. package/lib/types/api/solanaSignTransaction.js +4 -1
  361. package/lib/types/api/stellar/index.d.ts +146 -146
  362. package/lib/types/api/stellar/index.js +151 -221
  363. package/lib/types/api/stellarGetAddress.js +4 -1
  364. package/lib/types/api/stellarSignTransaction.js +4 -1
  365. package/lib/types/api/tezos/index.js +46 -43
  366. package/lib/types/api/tezosGetAddress.js +4 -1
  367. package/lib/types/api/tezosGetPublicKey.js +4 -1
  368. package/lib/types/api/tezosSignTransaction.js +4 -1
  369. package/lib/types/api/thpGetCredentials.js +4 -1
  370. package/lib/types/api/thpRemoveCredentials.js +4 -1
  371. package/lib/types/api/uiResponse.js +4 -1
  372. package/lib/types/api/unlockPath.js +6 -3
  373. package/lib/types/api/verifyMessage.js +4 -1
  374. package/lib/types/api/wipeDevice.js +4 -1
  375. package/lib/types/coinInfo.js +62 -77
  376. package/lib/types/device.d.ts +11 -2
  377. package/lib/types/device.js +9 -4
  378. package/lib/types/fees.js +31 -37
  379. package/lib/types/firmware.js +4 -1
  380. package/lib/types/index.d.ts +1 -0
  381. package/lib/types/index.js +18 -3
  382. package/lib/types/params.js +25 -16
  383. package/lib/types/settings.js +4 -1
  384. package/lib/types/utils.js +4 -1
  385. package/lib/types/workflow.js +4 -1
  386. package/lib/utils/accountUtils.js +76 -81
  387. package/lib/utils/addressUtils.js +21 -21
  388. package/lib/utils/assetUtils.js +29 -26
  389. package/lib/utils/assets-browser.js +19 -13
  390. package/lib/utils/assets.js +10 -9
  391. package/lib/utils/assets.native.js +24 -23
  392. package/lib/utils/assetsTypes.js +4 -1
  393. package/lib/utils/debug.js +18 -13
  394. package/lib/utils/deviceFeaturesUtils.js +105 -127
  395. package/lib/utils/ethereumUtils.js +9 -6
  396. package/lib/utils/firmwareReleaseConfigUtils.js +69 -57
  397. package/lib/utils/firmwareUtils.js +45 -57
  398. package/lib/utils/formatUtils.d.ts +0 -1
  399. package/lib/utils/formatUtils.js +63 -62
  400. package/lib/utils/hdnodeUtils.d.ts +0 -1
  401. package/lib/utils/hdnodeUtils.js +51 -57
  402. package/lib/utils/interactionTimeout.js +26 -23
  403. package/lib/utils/pathUtils.js +132 -148
  404. package/lib/utils/popupPromiseManager.js +23 -14
  405. package/lib/utils/proxy-event-emitter.js +63 -60
  406. package/lib/utils/uiPromiseManager.js +55 -43
  407. package/lib/utils/urlUtils.js +20 -26
  408. package/lib/utils/versionCheck.js +10 -10
  409. package/lib/workers/workers-browser.d.ts +5 -5
  410. package/lib/workers/workers-browser.js +5 -2
  411. package/lib/workers/workers.d.ts +1 -1
  412. package/lib/workers/workers.js +49 -38
  413. package/lib/workers/workers.native.d.ts +5 -5
  414. package/lib/workers/workers.native.js +4 -1
  415. package/package.json +26 -23
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.checkFirmwareHash = void 0;
4
7
  const crypto_1 = require("crypto");
5
8
  const utils_1 = require("@trezor/utils");
@@ -8,77 +11,84 @@ const DataManager_1 = require("../../data/DataManager");
8
11
  const firmwareInfo_1 = require("../../data/firmwareInfo");
9
12
  const firmwareUtils_1 = require("../../utils/firmwareUtils");
10
13
  const createFailResult = (error, errorPayload) => ({
11
- success: false,
12
- error,
13
- errorPayload,
14
+ success: false,
15
+ error,
16
+ errorPayload
14
17
  });
15
- const checkFirmwareHash = async ({ device, logger, }) => {
16
- const enabled = DataManager_1.DataManager.getSettings('enableFirmwareHashCheck');
17
- if (!enabled)
18
- return createFailResult('check-skipped');
19
- const firmwareVersion = device.getVersion();
20
- if (firmwareVersion === undefined || !device.features || device.features.bootloader_mode) {
21
- return null;
22
- }
23
- const firmwareType = (0, firmwareUtils_1.getFirmwareType)(device.features);
24
- const release = await (0, firmwareInfo_1.getReleaseByVersion)(device.features, firmwareVersion, firmwareType);
25
- if (!release)
26
- return createFailResult('unknown-release');
27
- const firmwareLocation = (0, firmwareInfo_1.getFirmwareLocation)({
28
- firmwareVersion,
29
- remotePath: release.url,
30
- deviceModel: device.features.internal_model,
31
- firmwareType: (0, firmwareUtils_1.getFirmwareType)(device.features),
32
- });
33
- const { baseUrl, path } = firmwareLocation;
34
- const timeoutThresholdsPerModel = DataManager_1.DataManager.getSettings('firmwareHashCheckTimeouts');
35
- if (firmwareVersion === undefined || !device.features || device.features.bootloader_mode) {
36
- return null;
37
- }
38
- const checkSupported = !device.unavailableCapabilities.getFirmwareHash;
39
- if (!checkSupported)
40
- return createFailResult('check-unsupported');
41
- const firmwareBinary = await (0, firmware_1.getBinaryOptional)({
42
- baseUrl,
43
- path,
44
- release,
18
+ const checkFirmwareHash = async ({
19
+ device,
20
+ logger
21
+ }) => {
22
+ const enabled = DataManager_1.DataManager.getSettings('enableFirmwareHashCheck');
23
+ if (!enabled) return createFailResult('check-skipped');
24
+ const firmwareVersion = device.getVersion();
25
+ if (firmwareVersion === undefined || !device.features || device.features.bootloader_mode) {
26
+ return null;
27
+ }
28
+ const firmwareType = (0, firmwareUtils_1.getFirmwareType)(device.features);
29
+ const release = await (0, firmwareInfo_1.getReleaseByVersion)(device.features, firmwareVersion, firmwareType);
30
+ if (!release) return createFailResult('unknown-release');
31
+ const firmwareLocation = (0, firmwareInfo_1.getFirmwareLocation)({
32
+ firmwareVersion,
33
+ remotePath: release.url,
34
+ deviceModel: device.features.internal_model,
35
+ firmwareType: (0, firmwareUtils_1.getFirmwareType)(device.features)
36
+ });
37
+ const {
38
+ baseUrl,
39
+ path
40
+ } = firmwareLocation;
41
+ const timeoutThresholdsPerModel = DataManager_1.DataManager.getSettings('firmwareHashCheckTimeouts');
42
+ if (firmwareVersion === undefined || !device.features || device.features.bootloader_mode) {
43
+ return null;
44
+ }
45
+ const checkSupported = !device.unavailableCapabilities.getFirmwareHash;
46
+ if (!checkSupported) return createFailResult('check-unsupported');
47
+ const firmwareBinary = await (0, firmware_1.getBinaryOptional)({
48
+ baseUrl,
49
+ path,
50
+ release
51
+ });
52
+ if (firmwareBinary === null) {
53
+ return createFailResult('check-unsupported');
54
+ }
55
+ if (firmwareBinary.binary.byteLength < 200) {
56
+ logger.warn(`Firmware binary for hash check suspiciously small (< 200 b)`);
57
+ return createFailResult('check-unsupported');
58
+ }
59
+ const strippedBinary = (0, firmware_1.stripFwHeaders)(firmwareBinary.binary);
60
+ const {
61
+ hash: expectedHash,
62
+ challenge
63
+ } = (0, firmware_1.calculateFirmwareHash)({
64
+ internal_model: device.features.internal_model,
65
+ firmwareVersion,
66
+ fw: strippedBinary,
67
+ key: (0, crypto_1.randomBytes)(32)
68
+ });
69
+ try {
70
+ const ts = performance.now();
71
+ const deviceResponse = await device.getCurrentSession().typedCall('GetFirmwareHash', 'FirmwareHash', {
72
+ challenge
45
73
  });
46
- if (firmwareBinary === null) {
47
- return createFailResult('check-unsupported');
48
- }
49
- if (firmwareBinary.binary.byteLength < 200) {
50
- logger.warn(`Firmware binary for hash check suspiciously small (< 200 b)`);
51
- return createFailResult('check-unsupported');
74
+ if (!deviceResponse?.message?.hash) {
75
+ return createFailResult('other-error', 'Device response is missing hash');
52
76
  }
53
- const strippedBinary = (0, firmware_1.stripFwHeaders)(firmwareBinary.binary);
54
- const { hash: expectedHash, challenge } = (0, firmware_1.calculateFirmwareHash)({
55
- internal_model: device.features.internal_model,
56
- firmwareVersion,
57
- fw: strippedBinary,
58
- key: (0, crypto_1.randomBytes)(32),
59
- });
60
- try {
61
- const ts = performance.now();
62
- const deviceResponse = await device
63
- .getCurrentSession()
64
- .typedCall('GetFirmwareHash', 'FirmwareHash', { challenge });
65
- if (!deviceResponse?.message?.hash) {
66
- return createFailResult('other-error', 'Device response is missing hash');
67
- }
68
- if (deviceResponse.message.hash !== expectedHash) {
69
- return createFailResult('hash-mismatch');
70
- }
71
- const duration = performance.now() - ts;
72
- logger.debug('GetFirmwareHash time', duration);
73
- const timeoutThreshold = timeoutThresholdsPerModel?.[device.features.internal_model];
74
- if (timeoutThreshold !== undefined && duration > timeoutThreshold) {
75
- return createFailResult('takes-too-long');
76
- }
77
- return { success: true };
77
+ if (deviceResponse.message.hash !== expectedHash) {
78
+ return createFailResult('hash-mismatch');
78
79
  }
79
- catch (errorPayload) {
80
- return createFailResult('other-error', (0, utils_1.serializeError)(errorPayload));
80
+ const duration = performance.now() - ts;
81
+ logger.debug('GetFirmwareHash time', duration);
82
+ const timeoutThreshold = timeoutThresholdsPerModel?.[device.features.internal_model];
83
+ if (timeoutThreshold !== undefined && duration > timeoutThreshold) {
84
+ return createFailResult('takes-too-long');
81
85
  }
86
+ return {
87
+ success: true
88
+ };
89
+ } catch (errorPayload) {
90
+ return createFailResult('other-error', (0, utils_1.serializeError)(errorPayload));
91
+ }
82
92
  };
83
93
  exports.checkFirmwareHash = checkFirmwareHash;
84
94
  //# sourceMappingURL=checkFirmwareHash.js.map
@@ -1,41 +1,44 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.checkFirmwareHashWithRetries = void 0;
4
7
  const utils_1 = require("@trezor/utils");
5
8
  const constants_1 = require("../../constants");
6
9
  const checkFirmwareHash_1 = require("./checkFirmwareHash");
7
10
  const PROBE_CHECK_TIME_RETRIES = 4;
8
- const probeCheckTime = async (context) => {
9
- for (let i = 0; i < PROBE_CHECK_TIME_RETRIES; i++) {
10
- const result = await (0, checkFirmwareHash_1.checkFirmwareHash)(context);
11
- if (result !== null && (result.success || result.error !== 'takes-too-long')) {
12
- context.device.setAuthenticityChecks(result);
13
- return;
14
- }
11
+ const probeCheckTime = async context => {
12
+ for (let i = 0; i < PROBE_CHECK_TIME_RETRIES; i++) {
13
+ const result = await (0, checkFirmwareHash_1.checkFirmwareHash)(context);
14
+ if (result !== null && (result.success || result.error !== 'takes-too-long')) {
15
+ context.device.setAuthenticityChecks(result);
16
+ return;
15
17
  }
18
+ }
16
19
  };
17
- const checkFirmwareHashWithRetries = async (context) => {
18
- const lastResult = context.device.getAuthenticityChecks().firmwareHash;
19
- const notDoneYet = lastResult === null;
20
- const attemptsDone = lastResult?.attemptCount ?? 0;
21
- if (attemptsDone >= constants_1.FIRMWARE.HASH_CHECK_MAX_ATTEMPTS)
22
- return;
23
- const wasError = lastResult !== null && !lastResult.success;
24
- const wasErrorRetriable = wasError && (0, utils_1.isArrayMember)(lastResult.error, constants_1.FIRMWARE.HASH_CHECK_RETRIABLE_ERRORS);
25
- const lastErrorPayload = wasError ? lastResult?.errorPayload : null;
26
- if (notDoneYet || wasErrorRetriable) {
27
- const result = await (0, checkFirmwareHash_1.checkFirmwareHash)(context);
28
- context.device.setAuthenticityChecks(result);
29
- if (result === null)
30
- return;
31
- result.attemptCount = attemptsDone + 1;
32
- if (!result.success && result.error === 'takes-too-long') {
33
- await probeCheckTime(context);
34
- }
35
- if (result.success && lastErrorPayload) {
36
- result.warningPayload = { lastErrorPayload };
37
- }
20
+ const checkFirmwareHashWithRetries = async context => {
21
+ const lastResult = context.device.getAuthenticityChecks().firmwareHash;
22
+ const notDoneYet = lastResult === null;
23
+ const attemptsDone = lastResult?.attemptCount ?? 0;
24
+ if (attemptsDone >= constants_1.FIRMWARE.HASH_CHECK_MAX_ATTEMPTS) return;
25
+ const wasError = lastResult !== null && !lastResult.success;
26
+ const wasErrorRetriable = wasError && (0, utils_1.isArrayMember)(lastResult.error, constants_1.FIRMWARE.HASH_CHECK_RETRIABLE_ERRORS);
27
+ const lastErrorPayload = wasError ? lastResult?.errorPayload : null;
28
+ if (notDoneYet || wasErrorRetriable) {
29
+ const result = await (0, checkFirmwareHash_1.checkFirmwareHash)(context);
30
+ context.device.setAuthenticityChecks(result);
31
+ if (result === null) return;
32
+ result.attemptCount = attemptsDone + 1;
33
+ if (!result.success && result.error === 'takes-too-long') {
34
+ await probeCheckTime(context);
38
35
  }
36
+ if (result.success && lastErrorPayload) {
37
+ result.warningPayload = {
38
+ lastErrorPayload
39
+ };
40
+ }
41
+ }
39
42
  };
40
43
  exports.checkFirmwareHashWithRetries = checkFirmwareHashWithRetries;
41
44
  //# sourceMappingURL=checkFirmwareHashWithRetries.js.map
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.handshakeCancel = void 0;
4
7
  const protocol_1 = require("@trezor/protocol");
5
8
  const transport_1 = require("@trezor/transport");
@@ -7,48 +10,54 @@ const utils_1 = require("@trezor/utils");
7
10
  const errors_1 = require("../../constants/errors");
8
11
  const CANCEL_TIMEOUT = 1_000;
9
12
  const ATTEMPTS_LIMIT = 10;
10
- const isLegacyBridge = (transport) => transport.name === 'BridgeTransport' &&
11
- !utils_1.versionUtils.isNewerOrEqual(transport.version, '3.0.0');
12
- const handshakeCancel = async ({ device, logger, signal }) => {
13
- if (device.features || device.getThpState()?.properties) {
14
- return;
13
+ const isLegacyBridge = transport => transport.name === 'BridgeTransport' && !utils_1.versionUtils.isNewerOrEqual(transport.version, '3.0.0');
14
+ const handshakeCancel = async ({
15
+ device,
16
+ logger,
17
+ signal
18
+ }) => {
19
+ if (device.features || device.getThpState()?.properties) {
20
+ return;
21
+ }
22
+ const timeout = device.possibleT1 ? CANCEL_TIMEOUT : undefined;
23
+ logger?.debug('handshake Cancel start');
24
+ const send = await device.getCurrentSession().send('Cancel', {}, {
25
+ signal,
26
+ timeout
27
+ });
28
+ if (!send.success) {
29
+ logger?.debug(`handshake Cancel send error ${send.error}`);
30
+ return;
31
+ }
32
+ logger?.debug('handshake Cancel sent');
33
+ for (let attempt = 0; attempt < ATTEMPTS_LIMIT; ++attempt) {
34
+ logger?.debug(`handshake Cancel read attempt ${attempt}`);
35
+ const result = await device.getCurrentSession().receive({
36
+ signal,
37
+ timeout
38
+ });
39
+ if (!result.success && result.error.message === transport_1.TRANSPORT_ERROR.ABORTED_BY_TIMEOUT) {
40
+ if (isLegacyBridge(device.transport)) {
41
+ await (0, utils_1.resolveAfter)(501);
42
+ }
43
+ await device.acquire();
15
44
  }
16
- const timeout = device.possibleT1 ? CANCEL_TIMEOUT : undefined;
17
- logger?.debug('handshake Cancel start');
18
- const send = await device.getCurrentSession().send('Cancel', {}, { signal, timeout });
19
- if (!send.success) {
20
- logger?.debug(`handshake Cancel send error ${send.error}`);
21
- return;
45
+ if (!result.success && result.error.message !== protocol_1.PROTOCOL_MALFORMED) {
46
+ logger?.debug(`handshake Cancel read error: ${result.error}`);
47
+ return;
48
+ } else if (result.success) {
49
+ logger?.debug(`handshake Cancel read success: ${result.payload.type}`);
50
+ if (result.payload.type === 'Failure' && result.payload.message.code === 'Failure_InvalidProtocol') {
51
+ logger?.debug(`handshake Cancel protocol v2 detected`);
52
+ await device.setupThp();
53
+ }
54
+ if (result.payload.type === 'Failure' && result.payload.message.code === 'Failure_Busy') {
55
+ throw (0, errors_1.TypedError)(result.payload.message.code, result.payload.message.message);
56
+ }
57
+ return;
22
58
  }
23
- logger?.debug('handshake Cancel sent');
24
- for (let attempt = 0; attempt < ATTEMPTS_LIMIT; ++attempt) {
25
- logger?.debug(`handshake Cancel read attempt ${attempt}`);
26
- const result = await device.getCurrentSession().receive({ signal, timeout });
27
- if (!result.success && result.error.message === transport_1.TRANSPORT_ERROR.ABORTED_BY_TIMEOUT) {
28
- if (isLegacyBridge(device.transport)) {
29
- await (0, utils_1.resolveAfter)(501);
30
- }
31
- await device.acquire();
32
- }
33
- if (!result.success && result.error.message !== protocol_1.PROTOCOL_MALFORMED) {
34
- logger?.debug(`handshake Cancel read error: ${result.error}`);
35
- return;
36
- }
37
- else if (result.success) {
38
- logger?.debug(`handshake Cancel read success: ${result.payload.type}`);
39
- if (result.payload.type === 'Failure' &&
40
- result.payload.message.code === 'Failure_InvalidProtocol') {
41
- logger?.debug(`handshake Cancel protocol v2 detected`);
42
- await device.setupThp();
43
- }
44
- if (result.payload.type === 'Failure' &&
45
- result.payload.message.code === 'Failure_Busy') {
46
- throw (0, errors_1.TypedError)(result.payload.message.code, result.payload.message.message);
47
- }
48
- return;
49
- }
50
- }
51
- logger?.debug(`handshake Cancel attempts limit reached`);
59
+ }
60
+ logger?.debug(`handshake Cancel attempts limit reached`);
52
61
  };
53
62
  exports.handshakeCancel = handshakeCancel;
54
63
  //# sourceMappingURL=handshake.js.map
@@ -1,6 +1,14 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.validateState = void 0;
4
7
  var validateState_1 = require("./validateState");
5
- Object.defineProperty(exports, "validateState", { enumerable: true, get: function () { return validateState_1.validateState; } });
8
+ Object.defineProperty(exports, "validateState", {
9
+ enumerable: true,
10
+ get: function () {
11
+ return validateState_1.validateState;
12
+ }
13
+ });
6
14
  //# sourceMappingURL=index.js.map
@@ -1,76 +1,81 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.trezorPushNotificationHandler = void 0;
4
7
  const protocol_1 = require("@trezor/protocol");
5
8
  const utils_1 = require("@trezor/utils");
6
9
  const device_1 = require("../../events/device");
7
10
  const thp_1 = require("../thp");
8
11
  const setupDeviceMode = async (device, mode) => {
9
- if (mode === protocol_1.TrezorPushNotificationMode.BootloaderMode && !device.features) {
10
- device.setBusy('rebooting');
11
- await device.acquire();
12
- await device.getFeatures();
13
- await device.release();
12
+ if (mode === protocol_1.TrezorPushNotificationMode.BootloaderMode && !device.features) {
13
+ device.setBusy('rebooting');
14
+ await device.acquire();
15
+ await device.getFeatures();
16
+ await device.release();
17
+ }
18
+ if (mode === protocol_1.TrezorPushNotificationMode.NormalMode && (!device.features || !device.getThpState())) {
19
+ device.setBusy('rebooting');
20
+ await device.setupThp();
21
+ await device.acquire();
22
+ await (0, utils_1.resolveAfter)(1000);
23
+ await (0, thp_1.getThpChannel)(device, false);
24
+ if (device.getThpState()?.phase === 'paired') {
25
+ await device.getFeatures();
26
+ } else {
27
+ device.setBusy('thp-locked');
28
+ device.lifecycle.emit(device_1.DEVICE.CHANGED);
14
29
  }
15
- if (mode === protocol_1.TrezorPushNotificationMode.NormalMode &&
16
- (!device.features || !device.getThpState())) {
17
- device.setBusy('rebooting');
18
- await device.setupThp();
30
+ await device.release();
31
+ }
32
+ };
33
+ const trezorPushNotificationHandler = async ({
34
+ device,
35
+ message
36
+ }) => {
37
+ const decodedResult = protocol_1.tpn.decode(message);
38
+ if (!decodedResult.success) return;
39
+ const decoded = decodedResult.payload;
40
+ device.lifecycle.emit(device_1.DEVICE.TREZOR_PUSH_NOTIFICATION, decoded);
41
+ const {
42
+ type,
43
+ mode
44
+ } = decoded;
45
+ const modeChanged = mode === protocol_1.TrezorPushNotificationMode.BootloaderMode && (device.getThpState()?.properties || device.features && !device.features.bootloader_mode) || mode === protocol_1.TrezorPushNotificationMode.NormalMode && device.features?.bootloader_mode;
46
+ if (modeChanged) {
47
+ device.reset();
48
+ device.setBusy(mode === protocol_1.TrezorPushNotificationMode.BootloaderMode ? 'bootloader-locked' : 'rebooting');
49
+ device.lifecycle.emit(device_1.DEVICE.CHANGED);
50
+ }
51
+ switch (type) {
52
+ case protocol_1.TrezorPushNotificationType.SETTING_CHANGE:
53
+ case protocol_1.TrezorPushNotificationType.PIN_CHANGE:
54
+ case protocol_1.TrezorPushNotificationType.NOTIFY_POWER_STATUS_CHANGE:
55
+ if (!device.isUsed()) {
19
56
  await device.acquire();
20
- await (0, utils_1.resolveAfter)(1000);
21
- await (0, thp_1.getThpChannel)(device, false);
22
- if (device.getThpState()?.phase === 'paired') {
23
- await device.getFeatures();
24
- }
25
- else {
26
- device.setBusy('thp-locked');
27
- device.lifecycle.emit(device_1.DEVICE.CHANGED);
28
- }
57
+ await device.getFeatures();
29
58
  await device.release();
30
- }
31
- };
32
- const trezorPushNotificationHandler = async ({ device, message }) => {
33
- const decoded = protocol_1.tpn.decode(message);
34
- device.lifecycle.emit(device_1.DEVICE.TREZOR_PUSH_NOTIFICATION, decoded);
35
- const { type, mode } = decoded;
36
- const modeChanged = (mode === protocol_1.TrezorPushNotificationMode.BootloaderMode &&
37
- (device.getThpState()?.properties ||
38
- (device.features && !device.features.bootloader_mode))) ||
39
- (mode === protocol_1.TrezorPushNotificationMode.NormalMode && device.features?.bootloader_mode);
40
- if (modeChanged) {
41
- device.reset();
42
- device.setBusy(mode === protocol_1.TrezorPushNotificationMode.BootloaderMode ? 'bootloader-locked' : 'rebooting');
43
- device.lifecycle.emit(device_1.DEVICE.CHANGED);
44
- }
45
- switch (type) {
46
- case protocol_1.TrezorPushNotificationType.SETTING_CHANGE:
47
- case protocol_1.TrezorPushNotificationType.PIN_CHANGE:
48
- if (!device.isUsed()) {
49
- await device.acquire();
50
- await device.getFeatures();
51
- await device.release();
52
- }
53
- break;
54
- case protocol_1.TrezorPushNotificationType.LOCK:
55
- device.setBusy(mode === protocol_1.TrezorPushNotificationMode.BootloaderMode
56
- ? 'bootloader-locked'
57
- : 'hard-locked');
58
- device.lifecycle.emit(device_1.DEVICE.CHANGED);
59
- break;
60
- case protocol_1.TrezorPushNotificationType.UNLOCK:
61
- await setupDeviceMode(device, decoded.mode);
62
- break;
63
- case protocol_1.TrezorPushNotificationType.SOFTLOCK:
64
- device.setBusy('pin-locked');
65
- device.lifecycle.emit(device_1.DEVICE.CHANGED);
66
- break;
67
- case protocol_1.TrezorPushNotificationType.SOFTUNLOCK:
68
- device.setBusy(device.features ? undefined : 'thp-locked');
69
- device.lifecycle.emit(device_1.DEVICE.CHANGED);
70
- break;
71
- default:
72
- break;
73
- }
59
+ }
60
+ break;
61
+ case protocol_1.TrezorPushNotificationType.LOCK:
62
+ device.setBusy(mode === protocol_1.TrezorPushNotificationMode.BootloaderMode ? 'bootloader-locked' : 'hard-locked');
63
+ device.lifecycle.emit(device_1.DEVICE.CHANGED);
64
+ break;
65
+ case protocol_1.TrezorPushNotificationType.UNLOCK:
66
+ await setupDeviceMode(device, decoded.mode);
67
+ break;
68
+ case protocol_1.TrezorPushNotificationType.SOFTLOCK:
69
+ device.setBusy('pin-locked');
70
+ device.lifecycle.emit(device_1.DEVICE.CHANGED);
71
+ break;
72
+ case protocol_1.TrezorPushNotificationType.SOFTUNLOCK:
73
+ device.setBusy(device.features ? undefined : 'thp-locked');
74
+ device.lifecycle.emit(device_1.DEVICE.CHANGED);
75
+ break;
76
+ default:
77
+ break;
78
+ }
74
79
  };
75
80
  exports.trezorPushNotificationHandler = trezorPushNotificationHandler;
76
81
  //# sourceMappingURL=trezorPushNotification.js.map