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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/CHANGELOG.md +43 -12
  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