@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
@@ -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 coin_selection_1 = require("@fivebinaries/coin-selection");
4
7
  const schema_utils_1 = require("@trezor/schema-utils");
5
8
  const constants_1 = require("../../../constants");
@@ -15,256 +18,282 @@ const cardanoOutputs_1 = require("../cardanoOutputs");
15
18
  const cardanoTokenBundle_1 = require("../cardanoTokenBundle");
16
19
  const cardanoWitnesses_1 = require("../cardanoWitnesses");
17
20
  const CardanoSignTransactionFeatures = Object.freeze({
18
- Conway: ['0', '2.7.1'],
21
+ Conway: ['0', '2.7.1']
19
22
  });
20
23
  class CardanoSignTransaction extends AbstractMethod_1.AbstractMethod {
21
- init() {
22
- this.requiredPermissions = ['read', 'write'];
23
- this.requiredDeviceCapabilities = ['Capability_Cardano'];
24
- this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Cardano'), this.firmwareRange);
25
- const { payload } = this;
26
- if (payload.metadata) {
27
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Metadata field has been replaced by auxiliaryData.');
28
- }
29
- if (payload.auxiliaryData && payload.auxiliaryData.blob) {
30
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Auxiliary data can now only be sent as a hash.');
31
- }
32
- if (payload.auxiliaryData && payload.auxiliaryData.catalystRegistrationParameters) {
33
- console.warn('Please use cVoteRegistrationParameters instead of catalystRegistrationParameters.');
34
- payload.auxiliaryData.cVoteRegistrationParameters =
35
- payload.auxiliaryData.catalystRegistrationParameters;
36
- }
37
- if (payload.auxiliaryData && payload.auxiliaryData.governanceRegistrationParameters) {
38
- console.warn('Please use cVoteRegistrationParameters instead of governanceRegistrationParameters.');
39
- payload.auxiliaryData.cVoteRegistrationParameters =
40
- payload.auxiliaryData.governanceRegistrationParameters;
41
- }
42
- (0, schema_utils_1.AssertWeak)(schema_utils_1.Type.Union([cardano_1.CardanoSignTransaction, cardano_1.CardanoSignTransactionExtended]), payload);
43
- const inputsWithPath = payload.inputs.map(cardanoInputs_1.transformInput);
44
- const outputsWithData = payload.outputs.map(cardanoOutputs_1.transformOutput);
45
- let certificatesWithPoolOwnersAndRelays = [];
46
- if (payload.certificates) {
47
- certificatesWithPoolOwnersAndRelays = payload.certificates.map(cardanoCertificate_1.transformCertificate);
48
- }
49
- let withdrawals = [];
50
- if (payload.withdrawals) {
51
- withdrawals = payload.withdrawals.map(withdrawal => ({
52
- path: withdrawal.path ? (0, pathUtils_1.validatePath)(withdrawal.path, 5) : undefined,
53
- amount: withdrawal.amount,
54
- script_hash: withdrawal.scriptHash,
55
- key_hash: withdrawal.keyHash,
56
- }));
57
- }
58
- let mint = [];
59
- if (payload.mint) {
60
- mint = (0, cardanoTokenBundle_1.tokenBundleToProto)(payload.mint);
61
- }
62
- let auxiliaryData;
63
- if (payload.auxiliaryData) {
64
- auxiliaryData = (0, cardanoAuxiliaryData_1.transformAuxiliaryData)(payload.auxiliaryData);
65
- }
66
- let additionalWitnessRequests = [];
67
- if (payload.additionalWitnessRequests) {
68
- additionalWitnessRequests = payload.additionalWitnessRequests.map(witnessRequest => (0, pathUtils_1.validatePath)(witnessRequest, 3));
69
- }
70
- let collateralInputsWithPath = [];
71
- if (payload.collateralInputs) {
72
- collateralInputsWithPath = payload.collateralInputs.map(cardanoInputs_1.transformCollateralInput);
73
- }
74
- let requiredSigners = [];
75
- if (payload.requiredSigners) {
76
- requiredSigners = payload.requiredSigners.map(requiredSigner => ({
77
- key_path: requiredSigner.keyPath
78
- ? (0, pathUtils_1.validatePath)(requiredSigner.keyPath, 3)
79
- : undefined,
80
- key_hash: requiredSigner.keyHash,
81
- }));
82
- }
83
- const collateralReturnWithData = payload.collateralReturn
84
- ? (0, cardanoOutputs_1.transformOutput)(payload.collateralReturn)
85
- : undefined;
86
- let referenceInputs = [];
87
- if (payload.referenceInputs) {
88
- referenceInputs = payload.referenceInputs.map(cardanoInputs_1.transformReferenceInput);
89
- }
90
- this.params = {
91
- signingMode: payload.signingMode,
92
- inputsWithPath,
93
- outputsWithData,
94
- fee: payload.fee,
95
- ttl: payload.ttl,
96
- certificatesWithPoolOwnersAndRelays,
97
- withdrawals,
98
- mint,
99
- auxiliaryData,
100
- validityIntervalStart: payload.validityIntervalStart,
101
- scriptDataHash: payload.scriptDataHash,
102
- collateralInputsWithPath,
103
- requiredSigners,
104
- collateralReturnWithData,
105
- totalCollateral: payload.totalCollateral,
106
- referenceInputs,
107
- protocolMagic: payload.protocolMagic,
108
- networkId: payload.networkId,
109
- witnessPaths: (0, cardanoWitnesses_1.gatherWitnessPaths)(inputsWithPath, certificatesWithPoolOwnersAndRelays, withdrawals, collateralInputsWithPath, requiredSigners, additionalWitnessRequests, payload.signingMode),
110
- additionalWitnessRequests,
111
- derivationType: typeof payload.derivationType !== 'undefined'
112
- ? payload.derivationType
113
- : constants_1.PROTO.CardanoDerivationType.ICARUS_TREZOR,
114
- includeNetworkId: payload.includeNetworkId,
115
- tagCborSets: payload.tagCborSets,
116
- unsignedTx: 'unsignedTx' in payload ? payload.unsignedTx : undefined,
117
- testnet: 'testnet' in payload ? payload.testnet : undefined,
118
- chunkify: typeof payload.chunkify === 'boolean' ? payload.chunkify : false,
119
- };
24
+ init() {
25
+ this.requiredPermissions = ['read', 'write'];
26
+ this.requiredDeviceCapabilities = ['Capability_Cardano'];
27
+ this.firmwareRange = (0, paramsValidator_1.getFirmwareRange)(this.name, (0, coinInfo_1.getMiscNetwork)('Cardano'), this.firmwareRange);
28
+ const {
29
+ payload
30
+ } = this;
31
+ if (payload.metadata) {
32
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Metadata field has been replaced by auxiliaryData.');
120
33
  }
121
- get info() {
122
- return 'Sign Cardano transaction';
34
+ if (payload.auxiliaryData && payload.auxiliaryData.blob) {
35
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Auxiliary data can now only be sent as a hash.');
123
36
  }
124
- _isFeatureSupported(feature) {
125
- return this.device.atLeast(CardanoSignTransactionFeatures[feature]);
37
+ if (payload.auxiliaryData && payload.auxiliaryData.catalystRegistrationParameters) {
38
+ console.warn('Please use cVoteRegistrationParameters instead of catalystRegistrationParameters.');
39
+ payload.auxiliaryData.cVoteRegistrationParameters = payload.auxiliaryData.catalystRegistrationParameters;
126
40
  }
127
- _ensureFeatureIsSupported(feature) {
128
- if (!this._isFeatureSupported(feature)) {
129
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', `Feature ${feature} not supported by device firmware`);
130
- }
41
+ if (payload.auxiliaryData && payload.auxiliaryData.governanceRegistrationParameters) {
42
+ console.warn('Please use cVoteRegistrationParameters instead of governanceRegistrationParameters.');
43
+ payload.auxiliaryData.cVoteRegistrationParameters = payload.auxiliaryData.governanceRegistrationParameters;
131
44
  }
132
- _ensureFirmwareSupportsParams() {
133
- const { params } = this;
134
- params.certificatesWithPoolOwnersAndRelays.forEach(({ certificate }) => {
135
- if (certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_REGISTRATION_CONWAY ||
136
- certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY ||
137
- certificate.type === constants_1.PROTO.CardanoCertificateType.VOTE_DELEGATION) {
138
- this._ensureFeatureIsSupported('Conway');
139
- }
140
- });
141
- if (params.tagCborSets) {
142
- this._ensureFeatureIsSupported('Conway');
143
- }
45
+ (0, schema_utils_1.AssertWeak)(schema_utils_1.Type.Union([cardano_1.CardanoSignTransaction, cardano_1.CardanoSignTransactionExtended]), payload);
46
+ const inputsWithPath = payload.inputs.map(cardanoInputs_1.transformInput);
47
+ const outputsWithData = payload.outputs.map(cardanoOutputs_1.transformOutput);
48
+ let certificatesWithPoolOwnersAndRelays = [];
49
+ if (payload.certificates) {
50
+ certificatesWithPoolOwnersAndRelays = payload.certificates.map(cardanoCertificate_1.transformCertificate);
51
+ }
52
+ let withdrawals = [];
53
+ if (payload.withdrawals) {
54
+ withdrawals = payload.withdrawals.map(withdrawal => ({
55
+ path: withdrawal.path ? (0, pathUtils_1.validatePath)(withdrawal.path, 5) : undefined,
56
+ amount: withdrawal.amount,
57
+ script_hash: withdrawal.scriptHash,
58
+ key_hash: withdrawal.keyHash
59
+ }));
60
+ }
61
+ let mint = [];
62
+ if (payload.mint) {
63
+ mint = (0, cardanoTokenBundle_1.tokenBundleToProto)(payload.mint);
64
+ }
65
+ let auxiliaryData;
66
+ if (payload.auxiliaryData) {
67
+ auxiliaryData = (0, cardanoAuxiliaryData_1.transformAuxiliaryData)(payload.auxiliaryData);
68
+ }
69
+ let additionalWitnessRequests = [];
70
+ if (payload.additionalWitnessRequests) {
71
+ additionalWitnessRequests = payload.additionalWitnessRequests.map(witnessRequest => (0, pathUtils_1.validatePath)(witnessRequest, 3));
72
+ }
73
+ let collateralInputsWithPath = [];
74
+ if (payload.collateralInputs) {
75
+ collateralInputsWithPath = payload.collateralInputs.map(cardanoInputs_1.transformCollateralInput);
76
+ }
77
+ let requiredSigners = [];
78
+ if (payload.requiredSigners) {
79
+ requiredSigners = payload.requiredSigners.map(requiredSigner => ({
80
+ key_path: requiredSigner.keyPath ? (0, pathUtils_1.validatePath)(requiredSigner.keyPath, 3) : undefined,
81
+ key_hash: requiredSigner.keyHash
82
+ }));
83
+ }
84
+ const collateralReturnWithData = payload.collateralReturn ? (0, cardanoOutputs_1.transformOutput)(payload.collateralReturn) : undefined;
85
+ let referenceInputs = [];
86
+ if (payload.referenceInputs) {
87
+ referenceInputs = payload.referenceInputs.map(cardanoInputs_1.transformReferenceInput);
88
+ }
89
+ this.params = {
90
+ signingMode: payload.signingMode,
91
+ inputsWithPath,
92
+ outputsWithData,
93
+ fee: payload.fee,
94
+ ttl: payload.ttl,
95
+ certificatesWithPoolOwnersAndRelays,
96
+ withdrawals,
97
+ mint,
98
+ auxiliaryData,
99
+ validityIntervalStart: payload.validityIntervalStart,
100
+ scriptDataHash: payload.scriptDataHash,
101
+ collateralInputsWithPath,
102
+ requiredSigners,
103
+ collateralReturnWithData,
104
+ totalCollateral: payload.totalCollateral,
105
+ referenceInputs,
106
+ protocolMagic: payload.protocolMagic,
107
+ networkId: payload.networkId,
108
+ witnessPaths: (0, cardanoWitnesses_1.gatherWitnessPaths)(inputsWithPath, certificatesWithPoolOwnersAndRelays, withdrawals, collateralInputsWithPath, requiredSigners, additionalWitnessRequests, payload.signingMode),
109
+ additionalWitnessRequests,
110
+ derivationType: typeof payload.derivationType !== 'undefined' ? payload.derivationType : constants_1.PROTO.CardanoDerivationType.ICARUS_TREZOR,
111
+ includeNetworkId: payload.includeNetworkId,
112
+ tagCborSets: payload.tagCborSets,
113
+ unsignedTx: 'unsignedTx' in payload ? payload.unsignedTx : undefined,
114
+ testnet: 'testnet' in payload ? payload.testnet : undefined,
115
+ chunkify: typeof payload.chunkify === 'boolean' ? payload.chunkify : false
116
+ };
117
+ }
118
+ get info() {
119
+ return 'Sign Cardano transaction';
120
+ }
121
+ _isFeatureSupported(feature) {
122
+ return this.device.atLeast(CardanoSignTransactionFeatures[feature]);
123
+ }
124
+ _ensureFeatureIsSupported(feature) {
125
+ if (!this._isFeatureSupported(feature)) {
126
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', `Feature ${feature} not supported by device firmware`);
144
127
  }
145
- async _sign_tx() {
146
- const { typedCall } = this.device.getCommands();
147
- const hasAuxiliaryData = !!this.params.auxiliaryData;
148
- const signTxInitMessage = {
149
- signing_mode: this.params.signingMode,
150
- protocol_magic: this.params.protocolMagic,
151
- network_id: this.params.networkId,
152
- inputs_count: this.params.inputsWithPath.length,
153
- outputs_count: this.params.outputsWithData.length,
154
- fee: this.params.fee,
155
- ttl: this.params.ttl,
156
- certificates_count: this.params.certificatesWithPoolOwnersAndRelays.length,
157
- withdrawals_count: this.params.withdrawals.length,
158
- has_auxiliary_data: hasAuxiliaryData,
159
- validity_interval_start: this.params.validityIntervalStart,
160
- witness_requests_count: this.params.witnessPaths.length,
161
- minting_asset_groups_count: this.params.mint.length,
162
- script_data_hash: this.params.scriptDataHash,
163
- collateral_inputs_count: this.params.collateralInputsWithPath.length,
164
- required_signers_count: this.params.requiredSigners.length,
165
- has_collateral_return: this.params.collateralReturnWithData != null,
166
- total_collateral: this.params.totalCollateral,
167
- reference_inputs_count: this.params.referenceInputs.length,
168
- derivation_type: this.params.derivationType,
169
- include_network_id: this.params.includeNetworkId,
170
- chunkify: this.params.chunkify,
171
- tag_cbor_sets: this.params.tagCborSets,
128
+ }
129
+ _ensureFirmwareSupportsParams() {
130
+ const {
131
+ params
132
+ } = this;
133
+ params.certificatesWithPoolOwnersAndRelays.forEach(({
134
+ certificate
135
+ }) => {
136
+ if (certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_REGISTRATION_CONWAY || certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY || certificate.type === constants_1.PROTO.CardanoCertificateType.VOTE_DELEGATION) {
137
+ this._ensureFeatureIsSupported('Conway');
138
+ }
139
+ });
140
+ if (params.tagCborSets) {
141
+ this._ensureFeatureIsSupported('Conway');
142
+ }
143
+ }
144
+ async _sign_tx() {
145
+ const {
146
+ typedCall
147
+ } = this.device.getCommands();
148
+ const hasAuxiliaryData = !!this.params.auxiliaryData;
149
+ const signTxInitMessage = {
150
+ signing_mode: this.params.signingMode,
151
+ protocol_magic: this.params.protocolMagic,
152
+ network_id: this.params.networkId,
153
+ inputs_count: this.params.inputsWithPath.length,
154
+ outputs_count: this.params.outputsWithData.length,
155
+ fee: this.params.fee,
156
+ ttl: this.params.ttl,
157
+ certificates_count: this.params.certificatesWithPoolOwnersAndRelays.length,
158
+ withdrawals_count: this.params.withdrawals.length,
159
+ has_auxiliary_data: hasAuxiliaryData,
160
+ validity_interval_start: this.params.validityIntervalStart,
161
+ witness_requests_count: this.params.witnessPaths.length,
162
+ minting_asset_groups_count: this.params.mint.length,
163
+ script_data_hash: this.params.scriptDataHash,
164
+ collateral_inputs_count: this.params.collateralInputsWithPath.length,
165
+ required_signers_count: this.params.requiredSigners.length,
166
+ has_collateral_return: this.params.collateralReturnWithData != null,
167
+ total_collateral: this.params.totalCollateral,
168
+ reference_inputs_count: this.params.referenceInputs.length,
169
+ derivation_type: this.params.derivationType,
170
+ include_network_id: this.params.includeNetworkId,
171
+ chunkify: this.params.chunkify,
172
+ tag_cbor_sets: this.params.tagCborSets
173
+ };
174
+ await typedCall('CardanoSignTxInit', 'CardanoTxItemAck', signTxInitMessage);
175
+ for (const {
176
+ input
177
+ } of this.params.inputsWithPath) {
178
+ await typedCall('CardanoTxInput', 'CardanoTxItemAck', input);
179
+ }
180
+ for (const outputWithData of this.params.outputsWithData) {
181
+ await (0, cardanoOutputs_1.sendOutput)(typedCall, outputWithData);
182
+ }
183
+ for (const {
184
+ certificate,
185
+ poolOwners,
186
+ poolRelays
187
+ } of this.params.certificatesWithPoolOwnersAndRelays) {
188
+ await typedCall('CardanoTxCertificate', 'CardanoTxItemAck', certificate);
189
+ for (const poolOwner of poolOwners) {
190
+ await typedCall('CardanoPoolOwner', 'CardanoTxItemAck', poolOwner);
191
+ }
192
+ for (const poolRelay of poolRelays) {
193
+ await typedCall('CardanoPoolRelayParameters', 'CardanoTxItemAck', poolRelay);
194
+ }
195
+ }
196
+ for (const withdrawal of this.params.withdrawals) {
197
+ await typedCall('CardanoTxWithdrawal', 'CardanoTxItemAck', withdrawal);
198
+ }
199
+ let auxiliaryDataSupplement;
200
+ if (this.params.auxiliaryData) {
201
+ const {
202
+ cvote_registration_parameters
203
+ } = this.params.auxiliaryData;
204
+ if (cvote_registration_parameters) {
205
+ this.params.auxiliaryData = (0, cardanoAuxiliaryData_1.modifyAuxiliaryDataForBackwardsCompatibility)(this.params.auxiliaryData);
206
+ }
207
+ const {
208
+ message
209
+ } = await typedCall('CardanoTxAuxiliaryData', 'CardanoTxAuxiliaryDataSupplement', this.params.auxiliaryData);
210
+ const auxiliaryDataType = constants_1.PROTO.CardanoTxAuxiliaryDataSupplementType[message.type];
211
+ if (auxiliaryDataType !== constants_1.PROTO.CardanoTxAuxiliaryDataSupplementType.NONE) {
212
+ auxiliaryDataSupplement = {
213
+ type: auxiliaryDataType,
214
+ auxiliaryDataHash: message.auxiliary_data_hash,
215
+ cVoteRegistrationSignature: message.cvote_registration_signature,
216
+ catalystSignature: message.cvote_registration_signature,
217
+ governanceSignature: message.cvote_registration_signature
172
218
  };
173
- await typedCall('CardanoSignTxInit', 'CardanoTxItemAck', signTxInitMessage);
174
- for (const { input } of this.params.inputsWithPath) {
175
- await typedCall('CardanoTxInput', 'CardanoTxItemAck', input);
176
- }
177
- for (const outputWithData of this.params.outputsWithData) {
178
- await (0, cardanoOutputs_1.sendOutput)(typedCall, outputWithData);
179
- }
180
- for (const { certificate, poolOwners, poolRelays } of this.params
181
- .certificatesWithPoolOwnersAndRelays) {
182
- await typedCall('CardanoTxCertificate', 'CardanoTxItemAck', certificate);
183
- for (const poolOwner of poolOwners) {
184
- await typedCall('CardanoPoolOwner', 'CardanoTxItemAck', poolOwner);
185
- }
186
- for (const poolRelay of poolRelays) {
187
- await typedCall('CardanoPoolRelayParameters', 'CardanoTxItemAck', poolRelay);
188
- }
189
- }
190
- for (const withdrawal of this.params.withdrawals) {
191
- await typedCall('CardanoTxWithdrawal', 'CardanoTxItemAck', withdrawal);
192
- }
193
- let auxiliaryDataSupplement;
194
- if (this.params.auxiliaryData) {
195
- const { cvote_registration_parameters } = this.params.auxiliaryData;
196
- if (cvote_registration_parameters) {
197
- this.params.auxiliaryData = (0, cardanoAuxiliaryData_1.modifyAuxiliaryDataForBackwardsCompatibility)(this.params.auxiliaryData);
198
- }
199
- const { message } = await typedCall('CardanoTxAuxiliaryData', 'CardanoTxAuxiliaryDataSupplement', this.params.auxiliaryData);
200
- const auxiliaryDataType = constants_1.PROTO.CardanoTxAuxiliaryDataSupplementType[message.type];
201
- if (auxiliaryDataType !== constants_1.PROTO.CardanoTxAuxiliaryDataSupplementType.NONE) {
202
- auxiliaryDataSupplement = {
203
- type: auxiliaryDataType,
204
- auxiliaryDataHash: message.auxiliary_data_hash,
205
- cVoteRegistrationSignature: message.cvote_registration_signature,
206
- catalystSignature: message.cvote_registration_signature,
207
- governanceSignature: message.cvote_registration_signature,
208
- };
209
- }
210
- await typedCall('CardanoTxHostAck', 'CardanoTxItemAck');
211
- }
212
- if (this.params.mint.length > 0) {
213
- await typedCall('CardanoTxMint', 'CardanoTxItemAck', {
214
- asset_groups_count: this.params.mint.length,
215
- });
216
- for (const assetGroup of this.params.mint) {
217
- await typedCall('CardanoAssetGroup', 'CardanoTxItemAck', {
218
- policy_id: assetGroup.policyId,
219
- tokens_count: assetGroup.tokens.length,
220
- });
221
- for (const token of assetGroup.tokens) {
222
- await typedCall('CardanoToken', 'CardanoTxItemAck', token);
223
- }
224
- }
225
- }
226
- for (const { collateralInput } of this.params.collateralInputsWithPath) {
227
- await typedCall('CardanoTxCollateralInput', 'CardanoTxItemAck', collateralInput);
228
- }
229
- for (const requiredSigner of this.params.requiredSigners) {
230
- await typedCall('CardanoTxRequiredSigner', 'CardanoTxItemAck', requiredSigner);
231
- }
232
- if (this.params.collateralReturnWithData) {
233
- await (0, cardanoOutputs_1.sendOutput)(typedCall, this.params.collateralReturnWithData);
234
- }
235
- for (const referenceInput of this.params.referenceInputs) {
236
- await typedCall('CardanoTxReferenceInput', 'CardanoTxItemAck', referenceInput);
237
- }
238
- const witnesses = [];
239
- for (const path of this.params.witnessPaths) {
240
- const { message } = await typedCall('CardanoTxWitnessRequest', 'CardanoTxWitnessResponse', { path });
241
- witnesses.push({
242
- type: constants_1.PROTO.CardanoTxWitnessType[message.type],
243
- pubKey: message.pub_key,
244
- signature: message.signature,
245
- chainCode: message.chain_code,
246
- });
247
- }
248
- const { message: txBodyHashMessage } = await typedCall('CardanoTxHostAck', 'CardanoTxBodyHash');
249
- await typedCall('CardanoTxHostAck', 'CardanoSignTxFinished');
250
- return { hash: txBodyHashMessage.tx_hash, witnesses, auxiliaryDataSupplement };
219
+ }
220
+ await typedCall('CardanoTxHostAck', 'CardanoTxItemAck');
251
221
  }
252
- async run() {
253
- this._ensureFirmwareSupportsParams();
254
- const result = await this._sign_tx();
255
- if (!this.params.unsignedTx)
256
- return result;
257
- const { unsignedTx, testnet } = this.params;
258
- const { hash, witnesses } = result;
259
- if (hash !== unsignedTx.hash) {
260
- throw constants_1.ERRORS.TypedError('Runtime', "Constructed transaction doesn't match the hash returned by the device.");
222
+ if (this.params.mint.length > 0) {
223
+ await typedCall('CardanoTxMint', 'CardanoTxItemAck', {
224
+ asset_groups_count: this.params.mint.length
225
+ });
226
+ for (const assetGroup of this.params.mint) {
227
+ await typedCall('CardanoAssetGroup', 'CardanoTxItemAck', {
228
+ policy_id: assetGroup.policyId,
229
+ tokens_count: assetGroup.tokens.length
230
+ });
231
+ for (const token of assetGroup.tokens) {
232
+ await typedCall('CardanoToken', 'CardanoTxItemAck', token);
261
233
  }
262
- const serializedTx = coin_selection_1.trezorUtils.signTransaction(unsignedTx.body, witnesses, { testnet });
263
- return {
264
- ...result,
265
- serializedTx,
266
- };
234
+ }
235
+ }
236
+ for (const {
237
+ collateralInput
238
+ } of this.params.collateralInputsWithPath) {
239
+ await typedCall('CardanoTxCollateralInput', 'CardanoTxItemAck', collateralInput);
240
+ }
241
+ for (const requiredSigner of this.params.requiredSigners) {
242
+ await typedCall('CardanoTxRequiredSigner', 'CardanoTxItemAck', requiredSigner);
243
+ }
244
+ if (this.params.collateralReturnWithData) {
245
+ await (0, cardanoOutputs_1.sendOutput)(typedCall, this.params.collateralReturnWithData);
246
+ }
247
+ for (const referenceInput of this.params.referenceInputs) {
248
+ await typedCall('CardanoTxReferenceInput', 'CardanoTxItemAck', referenceInput);
249
+ }
250
+ const witnesses = [];
251
+ for (const path of this.params.witnessPaths) {
252
+ const {
253
+ message
254
+ } = await typedCall('CardanoTxWitnessRequest', 'CardanoTxWitnessResponse', {
255
+ path
256
+ });
257
+ witnesses.push({
258
+ type: constants_1.PROTO.CardanoTxWitnessType[message.type],
259
+ pubKey: message.pub_key,
260
+ signature: message.signature,
261
+ chainCode: message.chain_code
262
+ });
263
+ }
264
+ const {
265
+ message: txBodyHashMessage
266
+ } = await typedCall('CardanoTxHostAck', 'CardanoTxBodyHash');
267
+ await typedCall('CardanoTxHostAck', 'CardanoSignTxFinished');
268
+ return {
269
+ hash: txBodyHashMessage.tx_hash,
270
+ witnesses,
271
+ auxiliaryDataSupplement
272
+ };
273
+ }
274
+ async run() {
275
+ this._ensureFirmwareSupportsParams();
276
+ const result = await this._sign_tx();
277
+ if (!this.params.unsignedTx) return result;
278
+ const {
279
+ unsignedTx,
280
+ testnet
281
+ } = this.params;
282
+ const {
283
+ hash,
284
+ witnesses
285
+ } = result;
286
+ if (hash !== unsignedTx.hash) {
287
+ throw constants_1.ERRORS.TypedError('Runtime', "Constructed transaction doesn't match the hash returned by the device.");
267
288
  }
289
+ const serializedTx = coin_selection_1.trezorUtils.signTransaction(unsignedTx.body, witnesses, {
290
+ testnet
291
+ });
292
+ return {
293
+ ...result,
294
+ serializedTx
295
+ };
296
+ }
268
297
  }
269
298
  exports.default = CardanoSignTransaction;
270
299
  //# sourceMappingURL=cardanoSignTransaction.js.map
@@ -1,17 +1,50 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.cardanoSignMessage = exports.cardanoComposeTransaction = exports.cardanoSignTransaction = exports.cardanoGetPublicKey = exports.cardanoGetNativeScriptHash = exports.cardanoGetAddress = void 0;
4
7
  const tslib_1 = require("tslib");
5
8
  var cardanoGetAddress_1 = require("./cardanoGetAddress");
6
- Object.defineProperty(exports, "cardanoGetAddress", { enumerable: true, get: function () { return tslib_1.__importDefault(cardanoGetAddress_1).default; } });
9
+ Object.defineProperty(exports, "cardanoGetAddress", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return tslib_1.__importDefault(cardanoGetAddress_1).default;
13
+ }
14
+ });
7
15
  var cardanoGetNativeScriptHash_1 = require("./cardanoGetNativeScriptHash");
8
- Object.defineProperty(exports, "cardanoGetNativeScriptHash", { enumerable: true, get: function () { return tslib_1.__importDefault(cardanoGetNativeScriptHash_1).default; } });
16
+ Object.defineProperty(exports, "cardanoGetNativeScriptHash", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return tslib_1.__importDefault(cardanoGetNativeScriptHash_1).default;
20
+ }
21
+ });
9
22
  var cardanoGetPublicKey_1 = require("./cardanoGetPublicKey");
10
- Object.defineProperty(exports, "cardanoGetPublicKey", { enumerable: true, get: function () { return tslib_1.__importDefault(cardanoGetPublicKey_1).default; } });
23
+ Object.defineProperty(exports, "cardanoGetPublicKey", {
24
+ enumerable: true,
25
+ get: function () {
26
+ return tslib_1.__importDefault(cardanoGetPublicKey_1).default;
27
+ }
28
+ });
11
29
  var cardanoSignTransaction_1 = require("./cardanoSignTransaction");
12
- Object.defineProperty(exports, "cardanoSignTransaction", { enumerable: true, get: function () { return tslib_1.__importDefault(cardanoSignTransaction_1).default; } });
30
+ Object.defineProperty(exports, "cardanoSignTransaction", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return tslib_1.__importDefault(cardanoSignTransaction_1).default;
34
+ }
35
+ });
13
36
  var cardanoComposeTransaction_1 = require("./cardanoComposeTransaction");
14
- Object.defineProperty(exports, "cardanoComposeTransaction", { enumerable: true, get: function () { return tslib_1.__importDefault(cardanoComposeTransaction_1).default; } });
37
+ Object.defineProperty(exports, "cardanoComposeTransaction", {
38
+ enumerable: true,
39
+ get: function () {
40
+ return tslib_1.__importDefault(cardanoComposeTransaction_1).default;
41
+ }
42
+ });
15
43
  var cardanoSignMessage_1 = require("./cardanoSignMessage");
16
- Object.defineProperty(exports, "cardanoSignMessage", { enumerable: true, get: function () { return tslib_1.__importDefault(cardanoSignMessage_1).default; } });
44
+ Object.defineProperty(exports, "cardanoSignMessage", {
45
+ enumerable: true,
46
+ get: function () {
47
+ return tslib_1.__importDefault(cardanoSignMessage_1).default;
48
+ }
49
+ });
17
50
  //# sourceMappingURL=index.js.map