@trezor/connect 9.7.0-beta.1 → 9.7.0

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 (408) hide show
  1. package/CHANGELOG.md +49 -16
  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 +4 -4
  75. package/lib/api/ethereum/api/ethereumSignTypedData.js +183 -181
  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.js +30 -26
  82. package/lib/api/evoluGetNode.js +24 -19
  83. package/lib/api/evoluSignRegistrationRequest.js +26 -21
  84. package/lib/api/firmware/calculateFirmwareHash.js +44 -32
  85. package/lib/api/firmware/getBinary.js +30 -22
  86. package/lib/api/firmware/index.js +46 -8
  87. package/lib/api/firmware/modifyFirmware.js +13 -12
  88. package/lib/api/firmware/parseFirmwareHeaders.js +29 -30
  89. package/lib/api/firmware/uploadFirmware.js +84 -67
  90. package/lib/api/firmware/verifyEntropy.js +88 -83
  91. package/lib/api/getAccountDescriptor.js +118 -120
  92. package/lib/api/getAccountInfo.d.ts +14 -14
  93. package/lib/api/getAccountInfo.js +316 -287
  94. package/lib/api/getAddress.js +128 -118
  95. package/lib/api/getCoinInfo.js +22 -17
  96. package/lib/api/getDeviceState.js +16 -10
  97. package/lib/api/getFeatures.d.ts +1 -1
  98. package/lib/api/getFeatures.js +15 -12
  99. package/lib/api/getFirmwareHash.js +23 -18
  100. package/lib/api/getNonce.js +12 -9
  101. package/lib/api/getOwnershipId.js +57 -51
  102. package/lib/api/getOwnershipProof.js +66 -60
  103. package/lib/api/getPublicKey.js +72 -66
  104. package/lib/api/getSettings.js +12 -9
  105. package/lib/api/index.js +346 -58
  106. package/lib/api/loadDevice.js +40 -35
  107. package/lib/api/monero/api/index.js +28 -5
  108. package/lib/api/monero/api/moneroGetAddress.js +108 -97
  109. package/lib/api/monero/api/moneroGetWatchKey.js +37 -32
  110. package/lib/api/monero/api/moneroKeyImageSync.js +111 -107
  111. package/lib/api/monero/api/moneroSignTransaction.js +173 -185
  112. package/lib/api/nem/api/index.js +16 -3
  113. package/lib/api/nem/api/nemGetAddress.js +107 -102
  114. package/lib/api/nem/api/nemSignTransaction.js +25 -20
  115. package/lib/api/nem/nemSignTx.js +128 -125
  116. package/lib/api/pushTransaction.js +31 -27
  117. package/lib/api/recoveryDevice.js +44 -39
  118. package/lib/api/requestLogin.d.ts +0 -1
  119. package/lib/api/requestLogin.js +47 -52
  120. package/lib/api/resetDevice.js +100 -90
  121. package/lib/api/ripple/api/index.js +16 -3
  122. package/lib/api/ripple/api/rippleGetAddress.js +92 -88
  123. package/lib/api/ripple/api/rippleSignTransaction.js +44 -34
  124. package/lib/api/setBrightness.js +21 -16
  125. package/lib/api/setBusy.js +27 -20
  126. package/lib/api/setProxy.js +22 -15
  127. package/lib/api/showDeviceTutorial.js +18 -15
  128. package/lib/api/signMessage.js +50 -46
  129. package/lib/api/signTransaction.js +325 -238
  130. package/lib/api/solana/additionalInfo.js +17 -14
  131. package/lib/api/solana/api/index.js +28 -5
  132. package/lib/api/solana/api/solanaComposeTransaction.js +46 -50
  133. package/lib/api/solana/api/solanaGetAddress.js +92 -90
  134. package/lib/api/solana/api/solanaGetPublicKey.js +56 -52
  135. package/lib/api/solana/api/solanaSignTransaction.js +175 -168
  136. package/lib/api/solana/solanaDefinitions.js +32 -25
  137. package/lib/api/solana/solanaUtils.d.ts +2 -2
  138. package/lib/api/solana/solanaUtils.js +231 -177
  139. package/lib/api/stellar/api/index.js +16 -3
  140. package/lib/api/stellar/api/stellarGetAddress.js +92 -88
  141. package/lib/api/stellar/api/stellarSignTransaction.js +51 -44
  142. package/lib/api/stellar/stellarSignTx.js +184 -179
  143. package/lib/api/tezos/api/index.js +22 -4
  144. package/lib/api/tezos/api/tezosGetAddress.js +92 -88
  145. package/lib/api/tezos/api/tezosGetPublicKey.js +55 -51
  146. package/lib/api/tezos/api/tezosSignTransaction.js +23 -18
  147. package/lib/api/tezos/tezosSignTx.js +183 -169
  148. package/lib/api/thpGetCredentials.js +23 -20
  149. package/lib/api/thpRemoveCredentials.js +28 -21
  150. package/lib/api/unlockPath.js +28 -21
  151. package/lib/api/verifyMessage.js +35 -33
  152. package/lib/api/wipeDevice.js +39 -34
  153. package/lib/backend/BackendManager.js +127 -107
  154. package/lib/backend/Blockchain.d.ts +1 -1
  155. package/lib/backend/Blockchain.js +220 -205
  156. package/lib/backend/BlockchainLink.js +17 -5
  157. package/lib/backend/fees/BitcoinFeeLevels.js +41 -34
  158. package/lib/backend/fees/EthereumFeeLevels.js +51 -51
  159. package/lib/backend/fees/MiscFeeLevels.js +25 -24
  160. package/lib/backend/fees/index.js +28 -21
  161. package/lib/constants/cardano.js +11 -8
  162. package/lib/constants/errors.js +72 -65
  163. package/lib/constants/firmware.js +5 -5
  164. package/lib/constants/index.js +16 -3
  165. package/lib/constants/nem.js +19 -16
  166. package/lib/constants/network.js +15 -22
  167. package/lib/constants/utxo.js +4 -1
  168. package/lib/core/AbstractMethod.d.ts +1 -1
  169. package/lib/core/AbstractMethod.js +248 -224
  170. package/lib/core/index.js +936 -775
  171. package/lib/core/method.js +19 -16
  172. package/lib/core/method.native.js +28 -23
  173. package/lib/core/onCallFirmwareUpdate.js +368 -299
  174. package/lib/data/DataManager.js +85 -77
  175. package/lib/data/analyticsInfo.js +35 -29
  176. package/lib/data/coinInfo.js +154 -156
  177. package/lib/data/config.d.ts +1 -1
  178. package/lib/data/config.js +362 -330
  179. package/lib/data/connectSettings.js +131 -144
  180. package/lib/data/defaultFeeLevels.js +154 -108
  181. package/lib/data/firmwareInfo.d.ts +1 -0
  182. package/lib/data/firmwareInfo.js +407 -377
  183. package/lib/data/thpSettings.js +36 -35
  184. package/lib/data/udevInfo.js +24 -24
  185. package/lib/data/version.d.ts +1 -1
  186. package/lib/data/version.js +6 -5
  187. package/lib/device/Device.d.ts +6 -7
  188. package/lib/device/Device.js +731 -749
  189. package/lib/device/DeviceCommands.js +226 -194
  190. package/lib/device/DeviceCurrentSession.d.ts +333 -333
  191. package/lib/device/DeviceCurrentSession.js +235 -236
  192. package/lib/device/DeviceList.d.ts +2 -0
  193. package/lib/device/DeviceList.js +219 -181
  194. package/lib/device/StateStorage.js +32 -29
  195. package/lib/device/TransportList.d.ts +1 -1
  196. package/lib/device/TransportList.js +37 -36
  197. package/lib/device/TransportManager.js +136 -140
  198. package/lib/device/calculateRevisionForDevice.js +20 -14
  199. package/lib/device/checkFirmwareRevision.js +66 -54
  200. package/lib/device/resolveDescriptorForTaproot.js +26 -16
  201. package/lib/device/thp/handshake.js +95 -82
  202. package/lib/device/thp/index.js +53 -38
  203. package/lib/device/thp/pairing.js +209 -199
  204. package/lib/device/thp/session.js +27 -19
  205. package/lib/device/thp/thpCall.js +53 -43
  206. package/lib/device/workflow/checkFirmwareHash.js +77 -67
  207. package/lib/device/workflow/checkFirmwareHashWithRetries.js +32 -29
  208. package/lib/device/workflow/handshake.js +50 -41
  209. package/lib/device/workflow/index.js +10 -2
  210. package/lib/device/workflow/trezorPushNotification.js +68 -64
  211. package/lib/device/workflow/validateState.js +155 -129
  212. package/lib/events/blockchain.js +13 -10
  213. package/lib/events/call.d.ts +6 -4
  214. package/lib/events/call.js +14 -13
  215. package/lib/events/core.js +24 -21
  216. package/lib/events/device.d.ts +2 -2
  217. package/lib/events/device.js +32 -19
  218. package/lib/events/iframe.js +13 -10
  219. package/lib/events/index.d.ts +0 -1
  220. package/lib/events/index.js +6 -3
  221. package/lib/events/popup.js +20 -17
  222. package/lib/events/transport.d.ts +2 -2
  223. package/lib/events/transport.js +16 -11
  224. package/lib/events/ui-promise.js +4 -1
  225. package/lib/events/ui-request.d.ts +0 -4
  226. package/lib/events/ui-request.js +48 -46
  227. package/lib/events/ui-response.d.ts +2 -2
  228. package/lib/events/ui-response.js +20 -17
  229. package/lib/events/webextension.js +9 -6
  230. package/lib/exports.js +10 -2
  231. package/lib/factory.d.ts +3 -2
  232. package/lib/factory.js +34 -143
  233. package/lib/impl/core-in-module.d.ts +1 -6
  234. package/lib/impl/core-in-module.js +187 -191
  235. package/lib/impl/dynamic.d.ts +0 -1
  236. package/lib/impl/dynamic.js +108 -97
  237. package/lib/index-browser.d.ts +1 -0
  238. package/lib/index-browser.js +18 -16
  239. package/lib/index.d.ts +2 -0
  240. package/lib/index.js +144 -148
  241. package/lib/types/account.js +4 -1
  242. package/lib/types/api/applyFlags.js +4 -1
  243. package/lib/types/api/applySettings.d.ts +2 -2
  244. package/lib/types/api/applySettings.js +7 -7
  245. package/lib/types/api/authenticateDevice.js +7 -4
  246. package/lib/types/api/authorizeCoinjoin.js +13 -10
  247. package/lib/types/api/backupDevice.js +4 -1
  248. package/lib/types/api/bitcoin/index.d.ts +5 -2
  249. package/lib/types/api/bitcoin/index.js +14 -11
  250. package/lib/types/api/bleUnpair.js +4 -1
  251. package/lib/types/api/blockchainDisconnect.js +4 -1
  252. package/lib/types/api/blockchainEstimateFee.js +4 -1
  253. package/lib/types/api/blockchainEvmRpcCall.js +4 -1
  254. package/lib/types/api/blockchainGetAccountBalanceHistory.js +4 -1
  255. package/lib/types/api/blockchainGetCurrentFiatRates.js +4 -1
  256. package/lib/types/api/blockchainGetFiatRatesForTimestamps.js +4 -1
  257. package/lib/types/api/blockchainGetInfo.js +4 -1
  258. package/lib/types/api/blockchainGetTransactions.js +4 -1
  259. package/lib/types/api/blockchainSetCustomBackend.js +4 -1
  260. package/lib/types/api/blockchainSubscribe.js +4 -1
  261. package/lib/types/api/blockchainSubscribeFiatRates.js +4 -1
  262. package/lib/types/api/blockchainUnsubscribe.js +4 -1
  263. package/lib/types/api/blockchainUnsubscribeFiatRates.js +4 -1
  264. package/lib/types/api/cancel.js +4 -1
  265. package/lib/types/api/cancelCoinjoinAuthorization.js +5 -2
  266. package/lib/types/api/cardano/index.d.ts +4 -4
  267. package/lib/types/api/cardano/index.js +173 -180
  268. package/lib/types/api/cardanoComposeTransaction.js +76 -65
  269. package/lib/types/api/cardanoGetAddress.js +4 -1
  270. package/lib/types/api/cardanoGetNativeScriptHash.js +4 -1
  271. package/lib/types/api/cardanoGetPublicKey.js +4 -1
  272. package/lib/types/api/cardanoSignMessage.js +4 -1
  273. package/lib/types/api/cardanoSignTransaction.js +4 -1
  274. package/lib/types/api/changeLanguage.d.ts +1 -1
  275. package/lib/types/api/changeLanguage.js +13 -13
  276. package/lib/types/api/changePin.js +4 -1
  277. package/lib/types/api/changeWipeCode.js +4 -1
  278. package/lib/types/api/cipherKeyValue.d.ts +2 -2
  279. package/lib/types/api/cipherKeyValue.js +11 -8
  280. package/lib/types/api/composeTransaction.js +4 -1
  281. package/lib/types/api/device.js +1 -2
  282. package/lib/types/api/disableWebUSB.js +4 -1
  283. package/lib/types/api/discoverAccounts.js +204 -55
  284. package/lib/types/api/dispose.js +4 -1
  285. package/lib/types/api/eos/index.d.ts +3 -3
  286. package/lib/types/api/eos/index.js +106 -162
  287. package/lib/types/api/eosGetPublicKey.js +4 -1
  288. package/lib/types/api/eosSignTransaction.js +4 -1
  289. package/lib/types/api/ethereum/index.d.ts +7 -7
  290. package/lib/types/api/ethereum/index.js +70 -67
  291. package/lib/types/api/ethereumGetAddress.js +4 -1
  292. package/lib/types/api/ethereumGetPublicKey.js +4 -1
  293. package/lib/types/api/ethereumSignMessage.js +4 -1
  294. package/lib/types/api/ethereumSignTransaction.js +4 -1
  295. package/lib/types/api/ethereumSignTypedData.js +4 -1
  296. package/lib/types/api/ethereumVerifyMessage.js +4 -1
  297. package/lib/types/api/evoluGetDelegatedIdentityKey.js +4 -1
  298. package/lib/types/api/evoluGetNode.js +4 -1
  299. package/lib/types/api/evoluSignRegistrationRequest.js +4 -1
  300. package/lib/types/api/firmwareUpdate.d.ts +1 -1
  301. package/lib/types/api/firmwareUpdate.js +12 -12
  302. package/lib/types/api/getAccountDescriptor.js +8 -5
  303. package/lib/types/api/getAccountInfo.js +4 -1
  304. package/lib/types/api/getAddress.js +11 -11
  305. package/lib/types/api/getCoinInfo.js +4 -1
  306. package/lib/types/api/getDeviceState.js +4 -1
  307. package/lib/types/api/getFeatures.js +4 -1
  308. package/lib/types/api/getFirmwareHash.js +4 -1
  309. package/lib/types/api/getNonce.d.ts +1 -1
  310. package/lib/types/api/getNonce.js +4 -1
  311. package/lib/types/api/getOwnershipId.js +8 -5
  312. package/lib/types/api/getOwnershipProof.js +14 -9
  313. package/lib/types/api/getPublicKey.js +25 -28
  314. package/lib/types/api/getSettings.js +4 -1
  315. package/lib/types/api/index.js +4 -1
  316. package/lib/types/api/init.js +4 -1
  317. package/lib/types/api/loadDevice.js +4 -1
  318. package/lib/types/api/manifest.js +4 -1
  319. package/lib/types/api/monero/index.js +117 -114
  320. package/lib/types/api/moneroGetAddress.js +4 -1
  321. package/lib/types/api/moneroGetWatchKey.js +4 -1
  322. package/lib/types/api/moneroKeyImageSync.js +4 -1
  323. package/lib/types/api/moneroSignTransaction.js +4 -1
  324. package/lib/types/api/nem/index.d.ts +7 -7
  325. package/lib/types/api/nem/index.js +78 -112
  326. package/lib/types/api/nemGetAddress.js +7 -7
  327. package/lib/types/api/nemSignTransaction.js +4 -1
  328. package/lib/types/api/off.js +4 -1
  329. package/lib/types/api/on.js +4 -1
  330. package/lib/types/api/pushTransaction.js +10 -10
  331. package/lib/types/api/recoveryDevice.d.ts +1 -1
  332. package/lib/types/api/recoveryDevice.js +7 -7
  333. package/lib/types/api/removeAllListeners.js +4 -1
  334. package/lib/types/api/renderWebUSBButton.js +4 -1
  335. package/lib/types/api/requestLogin.d.ts +4 -24
  336. package/lib/types/api/requestLogin.js +11 -13
  337. package/lib/types/api/requestWebUSBDevice.js +4 -1
  338. package/lib/types/api/resetDevice.js +4 -1
  339. package/lib/types/api/ripple/index.js +17 -14
  340. package/lib/types/api/rippleGetAddress.js +4 -1
  341. package/lib/types/api/rippleSignTransaction.js +4 -1
  342. package/lib/types/api/setBrightness.js +4 -1
  343. package/lib/types/api/setBusy.js +4 -1
  344. package/lib/types/api/setProxy.js +4 -1
  345. package/lib/types/api/setTransports.js +4 -1
  346. package/lib/types/api/showDeviceTutorial.js +4 -1
  347. package/lib/types/api/signMessage.js +4 -1
  348. package/lib/types/api/signTransaction.js +4 -1
  349. package/lib/types/api/solana/index.js +55 -56
  350. package/lib/types/api/solanaComposeTransaction.js +4 -1
  351. package/lib/types/api/solanaGetAddress.js +4 -1
  352. package/lib/types/api/solanaGetPublicKey.js +4 -1
  353. package/lib/types/api/solanaSignTransaction.js +4 -1
  354. package/lib/types/api/stellar/index.d.ts +146 -146
  355. package/lib/types/api/stellar/index.js +151 -221
  356. package/lib/types/api/stellarGetAddress.js +4 -1
  357. package/lib/types/api/stellarSignTransaction.js +4 -1
  358. package/lib/types/api/tezos/index.js +46 -43
  359. package/lib/types/api/tezosGetAddress.js +4 -1
  360. package/lib/types/api/tezosGetPublicKey.js +4 -1
  361. package/lib/types/api/tezosSignTransaction.js +4 -1
  362. package/lib/types/api/thpGetCredentials.js +4 -1
  363. package/lib/types/api/thpRemoveCredentials.js +4 -1
  364. package/lib/types/api/uiResponse.js +4 -1
  365. package/lib/types/api/unlockPath.js +6 -3
  366. package/lib/types/api/verifyMessage.js +4 -1
  367. package/lib/types/api/wipeDevice.js +4 -1
  368. package/lib/types/coinInfo.js +62 -77
  369. package/lib/types/device.d.ts +7 -2
  370. package/lib/types/device.js +7 -4
  371. package/lib/types/fees.js +31 -37
  372. package/lib/types/firmware.js +4 -1
  373. package/lib/types/index.d.ts +1 -0
  374. package/lib/types/index.js +18 -3
  375. package/lib/types/params.js +25 -16
  376. package/lib/types/settings.js +4 -1
  377. package/lib/types/utils.js +4 -1
  378. package/lib/types/workflow.js +4 -1
  379. package/lib/utils/accountUtils.js +76 -81
  380. package/lib/utils/addressUtils.js +21 -21
  381. package/lib/utils/assetUtils.js +29 -26
  382. package/lib/utils/assets-browser.js +19 -13
  383. package/lib/utils/assets.js +10 -9
  384. package/lib/utils/assets.native.js +24 -23
  385. package/lib/utils/assetsTypes.js +4 -1
  386. package/lib/utils/debug.js +18 -13
  387. package/lib/utils/deviceFeaturesUtils.js +105 -127
  388. package/lib/utils/ethereumUtils.js +9 -6
  389. package/lib/utils/firmwareReleaseConfigUtils.js +69 -57
  390. package/lib/utils/firmwareUtils.js +45 -57
  391. package/lib/utils/formatUtils.d.ts +0 -1
  392. package/lib/utils/formatUtils.js +63 -62
  393. package/lib/utils/hdnodeUtils.d.ts +0 -1
  394. package/lib/utils/hdnodeUtils.js +51 -57
  395. package/lib/utils/interactionTimeout.js +26 -23
  396. package/lib/utils/pathUtils.js +132 -148
  397. package/lib/utils/popupPromiseManager.js +23 -14
  398. package/lib/utils/proxy-event-emitter.js +63 -60
  399. package/lib/utils/uiPromiseManager.js +55 -43
  400. package/lib/utils/urlUtils.js +20 -26
  401. package/lib/utils/versionCheck.js +10 -10
  402. package/lib/workers/workers-browser.d.ts +5 -5
  403. package/lib/workers/workers-browser.js +5 -2
  404. package/lib/workers/workers.d.ts +1 -1
  405. package/lib/workers/workers.js +49 -38
  406. package/lib/workers/workers.native.d.ts +5 -5
  407. package/lib/workers/workers.native.js +4 -1
  408. package/package.json +23 -20
package/CHANGELOG.md CHANGED
@@ -1,23 +1,56 @@
1
- | Package | Stable | Canary |
2
- | :------------------------------: | :----: | :----------: |
3
- | npm @trezor/connect | 9.6.4 | 9.7.0-beta.1 |
4
- | npm @trezor/connect-web | 9.6.4 | 9.7.0-beta.1 |
5
- | npm @trezor/connect-webextension | 9.6.4 | 9.7.0-beta.1 |
6
- | npm @trezor/connect-mobile | 9.6.4 | 9.7.0-beta.1 |
1
+ | Package | Stable | Canary |
2
+ | :------------------------------: | :----: | :----: |
3
+ | npm @trezor/connect | 9.7.0 | - |
4
+ | npm @trezor/connect-web | 9.7.0 | - |
5
+ | npm @trezor/connect-webextension | 9.7.0 | - |
6
+ | npm @trezor/connect-mobile | 9.7.0 | - |
7
7
 
8
- | Deployment | Stable | Canary |
9
- | :----------------: | :----: | :----------: |
10
- | connect.trezor.io/ | 9.6.4 | 9.7.0-beta.1 |
8
+ | Deployment | Stable | Canary |
9
+ | :----------------: | :----: | :----: |
10
+ | connect.trezor.io/ | 9.7.0 | - |
11
11
 
12
12
  Use the persistent link [connect.trezor.io/9](https://connect.trezor.io/9/) to access the latest stable version of Connect Explorer.
13
13
 
14
- # 9.7.0-beta.1
15
-
16
- This release enables a new flow that replaces the old popup with web-based Suite. It allows for TS7 support on the web and provides an improved UI, consistent with Suite Desktop.
17
-
18
- Additionally, Monero support has been added to Connect APIs.
19
-
20
- If you encounter any issues with the new flow, please let us know.
14
+ # 9.7.0
15
+
16
+ We are deprecating `coreMode: 'iframe'` for connect-web, which is now limited due to [Local Network Access](https://developer.chrome.com/blog/local-network-access) permission. If you are using it explicitly, we recommend moving to `coreMode: 'auto'` for a better user experience.
17
+
18
+ We've updated `requestLogin` method to be up to date with the newer Connect implementations.
19
+ However this change required removing the `callback` and `asyncChallenge` parameters, so please make sure to update your code accordingly by simply fetching the data first and passing it to the method.
20
+
21
+ Monero support has been added to Connect APIs - `moneroGetAddress`, `moneroGetWatchKey`, `moneroKeyImageSync`, `moneroSignTransaction`.
22
+
23
+ This release if used in nodejs environment it requires version 22 to work.
24
+
25
+ This release also fixes import issues with CommonJS in Node environments.
26
+
27
+ - feat(connect): handle requestLogin origin in suite (a8539c8)
28
+ - fix(connect): turn requestLogin to a normal method (bb85884)
29
+ - chore(connect): clean up connect call factory (f5f44b7)
30
+ - fix(connect): move TNP subscription to DeviceList (b665d56)
31
+ - fix(protocol): don't throw on malformed push notification (d382cbf)
32
+ - refactor(connect): simplify tpn subscription (414392e)
33
+ - refactor(connect): restartEmu util (02acc0a)
34
+ - chore(connect): remove now useless sessionId fix (ebd6685)
35
+ - feat(connect): ignore invalid passphrase when using THP session id (6b492dc)
36
+ - refactor(connect): unexpected state checking (b24d217)
37
+ - chore(blockchain-link-types): remove TokenInfo.type (11ae574)
38
+ - chore(connect): simplify ui-request_thp_pairing (c02dcaa)
39
+ - chore(protocol): export ThpPairingMethod as enum (e61610e)
40
+ - chore(protocol): distinguish DeviceThpState and ThpChannelState (780e532)
41
+ - fix(connect): reset sessionId when new is created (b4282bf)
42
+ - chore(connect): remove unused UI.IFRAME_FAILURE (ea11886)
43
+ - fix(connect): update current release when bootloader mode (c250f5f)
44
+ - fix(connect-popup): button requests in fixtures for eos and ripple (a244dd1)
45
+ - fix(connect): payment request buffer issue (3951709)
46
+ - fix(connect): test tropic authenticateDevice only for T3W1 (1ff76c3)
47
+ - fix(connect): new credential (84b179b)
48
+ - fix(connect): PaymentRequest amount (c19c043)
49
+ - feat(connect-web): in core-in-suite-desktop handle permission error (41da933)
50
+ - feat(connect): monero support (7e4e42c)
51
+ - feat(connect-webextension): suite web popup implementation for webextension (175e40c)
52
+ - feat(connect): use existing message channels for suite web (314464a)
53
+ - feat(connect): suite web popup implementation (6bafb1e)
21
54
 
22
55
  # 9.6.4
23
56
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @trezor/connect
2
2
 
3
- API version 9.7.0-beta.1
3
+ API version 9.7.0
4
4
 
5
5
  [![Build Status](https://github.com/trezor/trezor-suite/actions/workflows/test-connect.yml/badge.svg)](https://github.com/trezor/trezor-suite/actions/workflows/test-connect.yml)
6
6
  [![NPM](https://img.shields.io/npm/v/@trezor/connect.svg)](https://www.npmjs.org/package/@trezor/connect)
@@ -1,34 +1,39 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  const protobuf_1 = require("@trezor/protobuf");
4
7
  const schema_utils_1 = require("@trezor/schema-utils");
5
8
  const AbstractMethod_1 = require("../core/AbstractMethod");
6
9
  class ApplyFlags extends AbstractMethod_1.AbstractMethod {
7
- init() {
8
- this.requiredPermissions = ['management'];
9
- this.useDeviceState = false;
10
- this.skipFinalReload = false;
11
- const { payload } = this;
12
- (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.ApplyFlags, payload);
13
- this.params = {
14
- flags: payload.flags,
15
- };
16
- }
17
- get confirmation() {
18
- return {
19
- view: 'device-management',
20
- customConfirmButton: {
21
- className: 'confirm',
22
- label: 'Proceed',
23
- },
24
- label: 'Do you really want to apply flags?',
25
- };
26
- }
27
- async run() {
28
- const cmd = this.device.getCommands();
29
- const response = await cmd.typedCall('ApplyFlags', 'Success', this.params);
30
- return response.message;
31
- }
10
+ init() {
11
+ this.requiredPermissions = ['management'];
12
+ this.useDeviceState = false;
13
+ this.skipFinalReload = false;
14
+ const {
15
+ payload
16
+ } = this;
17
+ (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.ApplyFlags, payload);
18
+ this.params = {
19
+ flags: payload.flags
20
+ };
21
+ }
22
+ get confirmation() {
23
+ return {
24
+ view: 'device-management',
25
+ customConfirmButton: {
26
+ className: 'confirm',
27
+ label: 'Proceed'
28
+ },
29
+ label: 'Do you really want to apply flags?'
30
+ };
31
+ }
32
+ async run() {
33
+ const cmd = this.device.getCommands();
34
+ const response = await cmd.typedCall('ApplyFlags', 'Success', this.params);
35
+ return response.message;
36
+ }
32
37
  }
33
38
  exports.default = ApplyFlags;
34
39
  //# sourceMappingURL=applyFlags.js.map
@@ -1,50 +1,53 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  const schema_utils_1 = require("@trezor/schema-utils");
4
7
  const AbstractMethod_1 = require("../core/AbstractMethod");
5
8
  const applySettings_1 = require("../types/api/applySettings");
6
9
  class ApplySettings extends AbstractMethod_1.AbstractMethod {
7
- init() {
8
- this.requiredPermissions = ['management'];
9
- this.useDeviceState = false;
10
- this.skipFinalReload = false;
11
- const { payload } = this;
12
- (0, schema_utils_1.Assert)(applySettings_1.ApplySettings, payload);
13
- this.params = {
14
- ...payload,
15
- _passphrase_source: payload.passphrase_source,
16
- };
10
+ init() {
11
+ this.requiredPermissions = ['management'];
12
+ this.useDeviceState = false;
13
+ this.skipFinalReload = false;
14
+ const {
15
+ payload
16
+ } = this;
17
+ (0, schema_utils_1.Assert)(applySettings_1.ApplySettings, payload);
18
+ this.params = {
19
+ ...payload,
20
+ _passphrase_source: payload.passphrase_source
21
+ };
22
+ }
23
+ get confirmation() {
24
+ return {
25
+ view: 'device-management',
26
+ customConfirmButton: {
27
+ className: 'confirm',
28
+ label: 'Proceed'
29
+ },
30
+ label: 'Do you really want to change device settings?'
31
+ };
32
+ }
33
+ async run() {
34
+ const cmd = this.device.getCommands();
35
+ const homescreenBytes = this.params.homescreen ? Buffer.from(this.params.homescreen, 'hex') : undefined;
36
+ if (this.device.atLeast('2.9.0') && homescreenBytes) {
37
+ this.params.homescreen = undefined;
38
+ this.params.homescreen_length = homescreenBytes.length;
17
39
  }
18
- get confirmation() {
19
- return {
20
- view: 'device-management',
21
- customConfirmButton: {
22
- className: 'confirm',
23
- label: 'Proceed',
24
- },
25
- label: 'Do you really want to change device settings?',
26
- };
27
- }
28
- async run() {
29
- const cmd = this.device.getCommands();
30
- const homescreenBytes = this.params.homescreen
31
- ? Buffer.from(this.params.homescreen, 'hex')
32
- : undefined;
33
- if (this.device.atLeast('2.9.0') && homescreenBytes) {
34
- this.params.homescreen = undefined;
35
- this.params.homescreen_length = homescreenBytes.length;
36
- }
37
- let response = await cmd.typedCall('ApplySettings', ['DataChunkRequest', 'Success'], this.params);
38
- while (response.type !== 'Success') {
39
- const start = response.message.data_offset;
40
- const end = start + response.message.data_length;
41
- const data_chunk = homescreenBytes?.subarray(start, end).toString('hex') || '';
42
- response = await cmd.typedCall('DataChunkAck', ['DataChunkRequest', 'Success'], {
43
- data_chunk,
44
- });
45
- }
46
- return response.message;
40
+ let response = await cmd.typedCall('ApplySettings', ['DataChunkRequest', 'Success'], this.params);
41
+ while (response.type !== 'Success') {
42
+ const start = response.message.data_offset;
43
+ const end = start + response.message.data_length;
44
+ const data_chunk = homescreenBytes?.subarray(start, end).toString('hex') || '';
45
+ response = await cmd.typedCall('DataChunkAck', ['DataChunkRequest', 'Success'], {
46
+ data_chunk
47
+ });
47
48
  }
49
+ return response.message;
50
+ }
48
51
  }
49
52
  exports.default = ApplySettings;
50
53
  //# sourceMappingURL=applySettings.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
  const device_authenticity_1 = require("@trezor/device-authenticity");
4
7
  const schema_utils_1 = require("@trezor/schema-utils");
5
8
  const AbstractMethod_1 = require("../core/AbstractMethod");
@@ -7,61 +10,86 @@ const events_1 = require("../events");
7
10
  const paramsValidator_1 = require("./common/paramsValidator");
8
11
  const authenticateDevice_1 = require("../types/api/authenticateDevice");
9
12
  class AuthenticateDevice extends AbstractMethod_1.AbstractMethod {
10
- init() {
11
- this.useEmptyPassphrase = true;
12
- this.allowDeviceMode = [events_1.UI.INITIALIZE, events_1.UI.SEEDLESS];
13
- this.requiredPermissions = ['management'];
14
- this.skipFinalReload = false;
15
- this.useDeviceState = false;
16
- this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, null, this.firmwareRange);
17
- const { payload } = this;
18
- (0, schema_utils_1.Assert)(authenticateDevice_1.AuthenticateDeviceParams, payload);
19
- this.params = {
20
- config: payload.config,
21
- blacklistConfig: payload.blacklistConfig,
22
- allowDebugKeys: payload.allowDebugKeys,
23
- };
24
- }
25
- async run() {
26
- const challenge = (0, device_authenticity_1.getRandomChallenge)();
27
- const { message } = await this.device
28
- .getCommands()
29
- .typedCall('AuthenticateDevice', 'AuthenticityProof', {
30
- challenge: challenge.toString('hex'),
13
+ init() {
14
+ this.useEmptyPassphrase = true;
15
+ this.allowDeviceMode = [events_1.UI.INITIALIZE, events_1.UI.SEEDLESS];
16
+ this.requiredPermissions = ['management'];
17
+ this.skipFinalReload = false;
18
+ this.useDeviceState = false;
19
+ this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, null, this.firmwareRange);
20
+ const {
21
+ payload
22
+ } = this;
23
+ (0, schema_utils_1.Assert)(authenticateDevice_1.AuthenticateDeviceParams, payload);
24
+ this.params = {
25
+ config: payload.config,
26
+ blacklistConfig: payload.blacklistConfig,
27
+ allowDebugKeys: payload.allowDebugKeys
28
+ };
29
+ }
30
+ async run() {
31
+ const challenge = (0, device_authenticity_1.getRandomChallenge)();
32
+ const {
33
+ message
34
+ } = await this.device.getCommands().typedCall('AuthenticateDevice', 'AuthenticityProof', {
35
+ challenge: challenge.toString('hex')
36
+ });
37
+ const config = this.params.config || device_authenticity_1.deviceAuthenticityConfig;
38
+ const blacklistConfig = this.params.blacklistConfig || device_authenticity_1.deviceAuthenticityBlacklistConfig;
39
+ const commonParams = {
40
+ challenge,
41
+ deviceModel: this.device.features.internal_model,
42
+ allowDebugKeys: this.params.allowDebugKeys,
43
+ config,
44
+ blacklistConfig
45
+ };
46
+ const getOptigaResult = async () => {
47
+ const {
48
+ optiga_signature: signature,
49
+ optiga_certificates: certificates
50
+ } = message;
51
+ const isAvailable = signature !== undefined && certificates.length > 0;
52
+ if (isAvailable) {
53
+ return await (0, device_authenticity_1.verifyAuthenticityProof)({
54
+ ...commonParams,
55
+ certificates,
56
+ signature
31
57
  });
32
- const config = this.params.config || device_authenticity_1.deviceAuthenticityConfig;
33
- const blacklistConfig = this.params.blacklistConfig || device_authenticity_1.deviceAuthenticityBlacklistConfig;
34
- const commonParams = {
35
- challenge,
36
- deviceModel: this.device.features.internal_model,
37
- allowDebugKeys: this.params.allowDebugKeys,
38
- config,
39
- blacklistConfig,
40
- };
41
- const getOptigaResult = async () => {
42
- const { optiga_signature: signature, optiga_certificates: certificates } = message;
43
- const isAvailable = signature !== undefined && certificates.length > 0;
44
- if (isAvailable) {
45
- return await (0, device_authenticity_1.verifyAuthenticityProof)({ ...commonParams, certificates, signature });
46
- }
47
- return { valid: false, error: 'RESPONSE_PAYLOAD_MISSING' };
48
- };
49
- const getTropicResult = async () => {
50
- const { tropic_signature: signature, tropic_certificates: certificates } = message;
51
- const isAvailable = signature !== undefined && certificates.length > 0;
52
- const isRequired = !this.device.unavailableCapabilities['tropicDeviceAuthentication'];
53
- if (isAvailable) {
54
- return await (0, device_authenticity_1.verifyAuthenticityProof)({ ...commonParams, certificates, signature });
55
- }
56
- if (isRequired) {
57
- return { valid: false, error: 'RESPONSE_PAYLOAD_MISSING' };
58
- }
59
- return null;
58
+ }
59
+ return {
60
+ valid: false,
61
+ error: 'RESPONSE_PAYLOAD_MISSING'
62
+ };
63
+ };
64
+ const getTropicResult = async () => {
65
+ const {
66
+ tropic_signature: signature,
67
+ tropic_certificates: certificates
68
+ } = message;
69
+ const isAvailable = signature !== undefined && certificates.length > 0;
70
+ const isRequired = !this.device.unavailableCapabilities['tropicDeviceAuthentication'];
71
+ if (isAvailable) {
72
+ return await (0, device_authenticity_1.verifyAuthenticityProof)({
73
+ ...commonParams,
74
+ certificates,
75
+ signature
76
+ });
77
+ }
78
+ if (isRequired) {
79
+ return {
80
+ valid: false,
81
+ error: 'RESPONSE_PAYLOAD_MISSING'
60
82
  };
61
- const optigaResult = await getOptigaResult();
62
- const tropicResult = await getTropicResult();
63
- return { optigaResult, tropicResult };
64
- }
83
+ }
84
+ return null;
85
+ };
86
+ const optigaResult = await getOptigaResult();
87
+ const tropicResult = await getTropicResult();
88
+ return {
89
+ optigaResult,
90
+ tropicResult
91
+ };
92
+ }
65
93
  }
66
94
  exports.default = AuthenticateDevice;
67
95
  //# sourceMappingURL=authenticateDevice.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
  const schema_utils_1 = require("@trezor/schema-utils");
4
7
  const AbstractMethod_1 = require("../core/AbstractMethod");
5
8
  const paramsValidator_1 = require("./common/paramsValidator");
@@ -7,35 +10,39 @@ const coinInfo_1 = require("../data/coinInfo");
7
10
  const authorizeCoinjoin_1 = require("../types/api/authorizeCoinjoin");
8
11
  const pathUtils_1 = require("../utils/pathUtils");
9
12
  class AuthorizeCoinjoin extends AbstractMethod_1.AbstractMethod {
10
- init() {
11
- const { payload } = this;
12
- (0, schema_utils_1.Assert)(authorizeCoinjoin_1.AuthorizeCoinjoin, payload);
13
- const address_n = (0, pathUtils_1.validatePath)(payload.path, 3);
14
- const script_type = payload.scriptType || (0, pathUtils_1.getScriptType)(address_n);
15
- const coinInfo = (0, coinInfo_1.getBitcoinNetwork)(payload.coin || address_n);
16
- this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, coinInfo, this.firmwareRange);
17
- this.preauthorized = payload.preauthorized;
18
- this.params = {
19
- coordinator: payload.coordinator,
20
- max_rounds: payload.maxRounds,
21
- max_coordinator_fee_rate: payload.maxCoordinatorFeeRate,
22
- max_fee_per_kvbyte: payload.maxFeePerKvbyte,
23
- address_n,
24
- coin_name: coinInfo?.name,
25
- script_type,
26
- amount_unit: payload.amountUnit,
13
+ init() {
14
+ const {
15
+ payload
16
+ } = this;
17
+ (0, schema_utils_1.Assert)(authorizeCoinjoin_1.AuthorizeCoinjoin, payload);
18
+ const address_n = (0, pathUtils_1.validatePath)(payload.path, 3);
19
+ const script_type = payload.scriptType || (0, pathUtils_1.getScriptType)(address_n);
20
+ const coinInfo = (0, coinInfo_1.getBitcoinNetwork)(payload.coin || address_n);
21
+ this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, coinInfo, this.firmwareRange);
22
+ this.preauthorized = payload.preauthorized;
23
+ this.params = {
24
+ coordinator: payload.coordinator,
25
+ max_rounds: payload.maxRounds,
26
+ max_coordinator_fee_rate: payload.maxCoordinatorFeeRate,
27
+ max_fee_per_kvbyte: payload.maxFeePerKvbyte,
28
+ address_n,
29
+ coin_name: coinInfo?.name,
30
+ script_type,
31
+ amount_unit: payload.amountUnit
32
+ };
33
+ }
34
+ async run() {
35
+ const cmd = this.device.getCommands();
36
+ if (this.preauthorized) {
37
+ if (await cmd.preauthorize(false)) {
38
+ return {
39
+ message: 'Success'
27
40
  };
41
+ }
28
42
  }
29
- async run() {
30
- const cmd = this.device.getCommands();
31
- if (this.preauthorized) {
32
- if (await cmd.preauthorize(false)) {
33
- return { message: 'Success' };
34
- }
35
- }
36
- const response = await cmd.typedCall('AuthorizeCoinJoin', 'Success', this.params);
37
- return response.message;
38
- }
43
+ const response = await cmd.typedCall('AuthorizeCoinJoin', 'Success', this.params);
44
+ return response.message;
45
+ }
39
46
  }
40
47
  exports.default = AuthorizeCoinjoin;
41
48
  //# sourceMappingURL=authorizeCoinjoin.js.map
@@ -1,35 +1,40 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  const protobuf_1 = require("@trezor/protobuf");
4
7
  const schema_utils_1 = require("@trezor/schema-utils");
5
8
  const AbstractMethod_1 = require("../core/AbstractMethod");
6
9
  class BackupDevice extends AbstractMethod_1.AbstractMethod {
7
- init() {
8
- this.requiredPermissions = ['management'];
9
- this.skipFinalReload = false;
10
- this.useDeviceState = false;
11
- const { payload } = this;
12
- (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.BackupDevice, payload);
13
- this.params = {
14
- group_threshold: payload.group_threshold,
15
- groups: payload.groups,
16
- };
17
- }
18
- get confirmation() {
19
- return {
20
- view: 'device-management',
21
- customConfirmButton: {
22
- className: 'confirm',
23
- label: 'Proceed',
24
- },
25
- label: 'Do you want to initiate backup procedure?',
26
- };
27
- }
28
- async run() {
29
- const cmd = this.device.getCommands();
30
- const response = await cmd.typedCall('BackupDevice', 'Success', this.params);
31
- return response.message;
32
- }
10
+ init() {
11
+ this.requiredPermissions = ['management'];
12
+ this.skipFinalReload = false;
13
+ this.useDeviceState = false;
14
+ const {
15
+ payload
16
+ } = this;
17
+ (0, schema_utils_1.Assert)(protobuf_1.MessagesSchema.BackupDevice, payload);
18
+ this.params = {
19
+ group_threshold: payload.group_threshold,
20
+ groups: payload.groups
21
+ };
22
+ }
23
+ get confirmation() {
24
+ return {
25
+ view: 'device-management',
26
+ customConfirmButton: {
27
+ className: 'confirm',
28
+ label: 'Proceed'
29
+ },
30
+ label: 'Do you want to initiate backup procedure?'
31
+ };
32
+ }
33
+ async run() {
34
+ const cmd = this.device.getCommands();
35
+ const response = await cmd.typedCall('BackupDevice', 'Success', this.params);
36
+ return response.message;
37
+ }
33
38
  }
34
39
  exports.default = BackupDevice;
35
40
  //# sourceMappingURL=backupDevice.js.map