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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/CHANGELOG.md +43 -15
  2. package/README.md +1 -1
  3. package/lib/api/applyFlags.js +31 -26
  4. package/lib/api/applySettings.js +43 -40
  5. package/lib/api/authenticateDevice.js +82 -54
  6. package/lib/api/authorizeCoinjoin.js +35 -28
  7. package/lib/api/backupDevice.js +32 -27
  8. package/lib/api/bitcoin/TransactionComposer.js +131 -123
  9. package/lib/api/bitcoin/createPendingTx.js +55 -52
  10. package/lib/api/bitcoin/enhanceSignTx.js +57 -55
  11. package/lib/api/bitcoin/index.js +4 -1
  12. package/lib/api/bitcoin/inputs.js +71 -46
  13. package/lib/api/bitcoin/outputs.js +108 -85
  14. package/lib/api/bitcoin/refTx.d.ts +1 -1
  15. package/lib/api/bitcoin/refTx.js +233 -201
  16. package/lib/api/bitcoin/signtx.js +208 -152
  17. package/lib/api/bitcoin/signtxLegacy.js +169 -119
  18. package/lib/api/bitcoin/signtxVerify.js +80 -67
  19. package/lib/api/bitcoin/transactionBytes.js +61 -59
  20. package/lib/api/bleUnpair.js +28 -25
  21. package/lib/api/blockchainDisconnect.js +31 -24
  22. package/lib/api/blockchainEstimateFee.js +94 -61
  23. package/lib/api/blockchainEvmRpcCall.js +51 -34
  24. package/lib/api/blockchainGetAccountBalanceHistory.d.ts +1 -1
  25. package/lib/api/blockchainGetAccountBalanceHistory.js +50 -32
  26. package/lib/api/blockchainGetCurrentFiatRates.d.ts +1 -1
  27. package/lib/api/blockchainGetCurrentFiatRates.js +43 -29
  28. package/lib/api/blockchainGetFiatRatesForTimestamps.d.ts +1 -1
  29. package/lib/api/blockchainGetFiatRatesForTimestamps.js +49 -32
  30. package/lib/api/blockchainGetInfo.js +31 -22
  31. package/lib/api/blockchainGetTransactions.d.ts +1 -1
  32. package/lib/api/blockchainGetTransactions.js +36 -24
  33. package/lib/api/blockchainSetCustomBackend.js +34 -25
  34. package/lib/api/blockchainSubscribe.js +57 -36
  35. package/lib/api/blockchainSubscribeFiatRates.js +36 -24
  36. package/lib/api/blockchainUnsubscribe.js +57 -37
  37. package/lib/api/blockchainUnsubscribeFiatRates.js +31 -22
  38. package/lib/api/cancelCoinjoinAuthorization.js +26 -20
  39. package/lib/api/cardano/api/cardanoComposeTransaction.js +75 -50
  40. package/lib/api/cardano/api/cardanoGetAddress.js +105 -102
  41. package/lib/api/cardano/api/cardanoGetNativeScriptHash.js +59 -56
  42. package/lib/api/cardano/api/cardanoGetPublicKey.js +58 -58
  43. package/lib/api/cardano/api/cardanoSignMessage.js +81 -78
  44. package/lib/api/cardano/api/cardanoSignTransaction.js +269 -240
  45. package/lib/api/cardano/api/index.js +40 -7
  46. package/lib/api/cardano/cardanoAddressParameters.js +71 -65
  47. package/lib/api/cardano/cardanoAuxiliaryData.js +68 -63
  48. package/lib/api/cardano/cardanoCertificate.js +124 -119
  49. package/lib/api/cardano/cardanoInputs.js +33 -33
  50. package/lib/api/cardano/cardanoOutputs.d.ts +1 -1
  51. package/lib/api/cardano/cardanoOutputs.js +63 -61
  52. package/lib/api/cardano/cardanoTokenBundle.d.ts +2 -2
  53. package/lib/api/cardano/cardanoTokenBundle.js +18 -13
  54. package/lib/api/cardano/cardanoUtils.js +94 -89
  55. package/lib/api/cardano/cardanoWitnesses.js +46 -42
  56. package/lib/api/changeLanguage.js +40 -29
  57. package/lib/api/changePin.js +21 -16
  58. package/lib/api/changeWipeCode.js +24 -16
  59. package/lib/api/cipherKeyValue.js +42 -41
  60. package/lib/api/common/Discovery.js +114 -112
  61. package/lib/api/common/paramsValidator.js +110 -116
  62. package/lib/api/composeTransaction.d.ts +1 -1
  63. package/lib/api/composeTransaction.js +307 -256
  64. package/lib/api/discoverAccounts.js +291 -191
  65. package/lib/api/eos/api/eosGetPublicKey.js +56 -52
  66. package/lib/api/eos/api/eosSignTransaction.js +35 -26
  67. package/lib/api/eos/api/index.js +16 -3
  68. package/lib/api/eos/eosSignTx.js +308 -312
  69. package/lib/api/ethereum/api/ethereumGetAddress.js +106 -107
  70. package/lib/api/ethereum/api/ethereumGetPublicKey.js +72 -62
  71. package/lib/api/ethereum/api/ethereumSignMessage.js +55 -48
  72. package/lib/api/ethereum/api/ethereumSignTransaction.d.ts +33 -0
  73. package/lib/api/ethereum/api/ethereumSignTransaction.js +137 -132
  74. package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +6 -4
  75. package/lib/api/ethereum/api/ethereumSignTypedData.js +183 -171
  76. package/lib/api/ethereum/api/ethereumVerifyMessage.js +27 -24
  77. package/lib/api/ethereum/api/index.js +40 -7
  78. package/lib/api/ethereum/ethereumDefinitions.js +94 -87
  79. package/lib/api/ethereum/ethereumSignTx.js +116 -111
  80. package/lib/api/ethereum/ethereumSignTypedData.js +98 -95
  81. package/lib/api/evoluGetDelegatedIdentityKey.d.ts +11 -0
  82. package/lib/api/evoluGetDelegatedIdentityKey.js +41 -0
  83. package/lib/api/evoluGetNode.js +24 -17
  84. package/lib/api/evoluSignRegistrationRequest.d.ts +12 -0
  85. package/lib/api/evoluSignRegistrationRequest.js +35 -0
  86. package/lib/api/firmware/calculateFirmwareHash.js +44 -32
  87. package/lib/api/firmware/getBinary.js +30 -22
  88. package/lib/api/firmware/index.js +46 -8
  89. package/lib/api/firmware/modifyFirmware.js +13 -12
  90. package/lib/api/firmware/parseFirmwareHeaders.js +29 -30
  91. package/lib/api/firmware/uploadFirmware.js +84 -67
  92. package/lib/api/firmware/verifyEntropy.js +88 -83
  93. package/lib/api/getAccountDescriptor.js +118 -120
  94. package/lib/api/getAccountInfo.d.ts +14 -14
  95. package/lib/api/getAccountInfo.js +316 -287
  96. package/lib/api/getAddress.js +128 -118
  97. package/lib/api/getCoinInfo.js +22 -17
  98. package/lib/api/getDeviceState.js +16 -10
  99. package/lib/api/getFeatures.d.ts +5 -1
  100. package/lib/api/getFeatures.js +15 -12
  101. package/lib/api/getFirmwareHash.js +23 -18
  102. package/lib/api/getNonce.js +12 -9
  103. package/lib/api/getOwnershipId.js +57 -51
  104. package/lib/api/getOwnershipProof.js +66 -60
  105. package/lib/api/getPublicKey.js +72 -66
  106. package/lib/api/getSettings.js +12 -9
  107. package/lib/api/index.d.ts +2 -0
  108. package/lib/api/index.js +350 -58
  109. package/lib/api/loadDevice.js +40 -35
  110. package/lib/api/monero/api/index.js +28 -5
  111. package/lib/api/monero/api/moneroGetAddress.js +108 -82
  112. package/lib/api/monero/api/moneroGetWatchKey.js +37 -32
  113. package/lib/api/monero/api/moneroKeyImageSync.js +111 -107
  114. package/lib/api/monero/api/moneroSignTransaction.js +173 -185
  115. package/lib/api/nem/api/index.js +16 -3
  116. package/lib/api/nem/api/nemGetAddress.js +107 -102
  117. package/lib/api/nem/api/nemSignTransaction.js +25 -20
  118. package/lib/api/nem/nemSignTx.js +128 -125
  119. package/lib/api/pushTransaction.js +31 -27
  120. package/lib/api/recoveryDevice.js +44 -39
  121. package/lib/api/requestLogin.d.ts +0 -1
  122. package/lib/api/requestLogin.js +47 -52
  123. package/lib/api/resetDevice.js +100 -90
  124. package/lib/api/ripple/api/index.js +16 -3
  125. package/lib/api/ripple/api/rippleGetAddress.js +92 -88
  126. package/lib/api/ripple/api/rippleSignTransaction.js +44 -34
  127. package/lib/api/setBrightness.js +21 -16
  128. package/lib/api/setBusy.js +27 -20
  129. package/lib/api/setProxy.js +22 -15
  130. package/lib/api/showDeviceTutorial.js +18 -15
  131. package/lib/api/signMessage.js +50 -46
  132. package/lib/api/signTransaction.js +325 -238
  133. package/lib/api/solana/additionalInfo.js +17 -14
  134. package/lib/api/solana/api/index.js +28 -5
  135. package/lib/api/solana/api/solanaComposeTransaction.js +46 -50
  136. package/lib/api/solana/api/solanaGetAddress.js +92 -90
  137. package/lib/api/solana/api/solanaGetPublicKey.js +56 -52
  138. package/lib/api/solana/api/solanaSignTransaction.js +175 -168
  139. package/lib/api/solana/solanaDefinitions.js +32 -25
  140. package/lib/api/solana/solanaUtils.d.ts +2 -2
  141. package/lib/api/solana/solanaUtils.js +231 -177
  142. package/lib/api/stellar/api/index.js +16 -3
  143. package/lib/api/stellar/api/stellarGetAddress.js +92 -88
  144. package/lib/api/stellar/api/stellarSignTransaction.js +51 -44
  145. package/lib/api/stellar/stellarSignTx.js +184 -179
  146. package/lib/api/tezos/api/index.js +22 -4
  147. package/lib/api/tezos/api/tezosGetAddress.js +92 -88
  148. package/lib/api/tezos/api/tezosGetPublicKey.js +55 -51
  149. package/lib/api/tezos/api/tezosSignTransaction.js +23 -18
  150. package/lib/api/tezos/tezosSignTx.js +183 -169
  151. package/lib/api/thpGetCredentials.js +23 -20
  152. package/lib/api/thpRemoveCredentials.js +28 -21
  153. package/lib/api/unlockPath.js +28 -21
  154. package/lib/api/verifyMessage.js +35 -33
  155. package/lib/api/wipeDevice.js +39 -34
  156. package/lib/backend/BackendManager.js +127 -107
  157. package/lib/backend/Blockchain.d.ts +1 -1
  158. package/lib/backend/Blockchain.js +220 -205
  159. package/lib/backend/BlockchainLink.js +17 -5
  160. package/lib/backend/fees/BitcoinFeeLevels.js +41 -34
  161. package/lib/backend/fees/EthereumFeeLevels.js +51 -51
  162. package/lib/backend/fees/MiscFeeLevels.js +25 -24
  163. package/lib/backend/fees/index.js +28 -21
  164. package/lib/constants/cardano.js +11 -8
  165. package/lib/constants/errors.js +72 -65
  166. package/lib/constants/firmware.js +5 -5
  167. package/lib/constants/index.js +16 -3
  168. package/lib/constants/nem.js +19 -16
  169. package/lib/constants/network.js +15 -22
  170. package/lib/constants/utxo.js +4 -1
  171. package/lib/core/AbstractMethod.d.ts +1 -1
  172. package/lib/core/AbstractMethod.js +248 -224
  173. package/lib/core/index.js +936 -775
  174. package/lib/core/method.js +19 -16
  175. package/lib/core/method.native.js +28 -23
  176. package/lib/core/onCallFirmwareUpdate.js +368 -299
  177. package/lib/data/DataManager.js +85 -77
  178. package/lib/data/analyticsInfo.js +35 -29
  179. package/lib/data/coinInfo.js +154 -156
  180. package/lib/data/config.d.ts +1 -1
  181. package/lib/data/config.js +362 -326
  182. package/lib/data/connectSettings.js +131 -144
  183. package/lib/data/defaultFeeLevels.js +154 -108
  184. package/lib/data/firmwareInfo.d.ts +1 -0
  185. package/lib/data/firmwareInfo.js +407 -377
  186. package/lib/data/thpSettings.js +36 -35
  187. package/lib/data/udevInfo.js +24 -24
  188. package/lib/data/version.d.ts +1 -1
  189. package/lib/data/version.js +6 -5
  190. package/lib/device/Device.d.ts +10 -7
  191. package/lib/device/Device.js +731 -749
  192. package/lib/device/DeviceCommands.js +226 -194
  193. package/lib/device/DeviceCurrentSession.d.ts +427 -337
  194. package/lib/device/DeviceCurrentSession.js +235 -236
  195. package/lib/device/DeviceList.d.ts +2 -0
  196. package/lib/device/DeviceList.js +219 -181
  197. package/lib/device/StateStorage.js +32 -29
  198. package/lib/device/TransportList.d.ts +1 -1
  199. package/lib/device/TransportList.js +37 -36
  200. package/lib/device/TransportManager.js +136 -140
  201. package/lib/device/calculateRevisionForDevice.js +20 -14
  202. package/lib/device/checkFirmwareRevision.js +66 -53
  203. package/lib/device/resolveDescriptorForTaproot.js +26 -16
  204. package/lib/device/thp/handshake.js +95 -82
  205. package/lib/device/thp/index.js +53 -38
  206. package/lib/device/thp/pairing.js +209 -199
  207. package/lib/device/thp/session.js +27 -19
  208. package/lib/device/thp/thpCall.js +53 -43
  209. package/lib/device/workflow/checkFirmwareHash.js +77 -67
  210. package/lib/device/workflow/checkFirmwareHashWithRetries.js +32 -29
  211. package/lib/device/workflow/handshake.js +50 -41
  212. package/lib/device/workflow/index.js +10 -2
  213. package/lib/device/workflow/trezorPushNotification.js +68 -63
  214. package/lib/device/workflow/validateState.js +156 -123
  215. package/lib/events/blockchain.js +13 -10
  216. package/lib/events/call.d.ts +6 -4
  217. package/lib/events/call.js +14 -13
  218. package/lib/events/core.js +24 -21
  219. package/lib/events/device.d.ts +2 -2
  220. package/lib/events/device.js +32 -19
  221. package/lib/events/iframe.js +13 -10
  222. package/lib/events/index.d.ts +0 -1
  223. package/lib/events/index.js +6 -3
  224. package/lib/events/popup.js +20 -17
  225. package/lib/events/transport.d.ts +2 -2
  226. package/lib/events/transport.js +16 -11
  227. package/lib/events/ui-promise.js +4 -1
  228. package/lib/events/ui-request.d.ts +0 -4
  229. package/lib/events/ui-request.js +48 -46
  230. package/lib/events/ui-response.d.ts +2 -2
  231. package/lib/events/ui-response.js +20 -17
  232. package/lib/events/webextension.js +9 -6
  233. package/lib/exports.js +10 -2
  234. package/lib/factory.d.ts +3 -2
  235. package/lib/factory.js +34 -141
  236. package/lib/impl/core-in-module.d.ts +1 -8
  237. package/lib/impl/core-in-module.js +186 -211
  238. package/lib/impl/dynamic.d.ts +0 -1
  239. package/lib/impl/dynamic.js +108 -97
  240. package/lib/index-browser.d.ts +1 -0
  241. package/lib/index-browser.js +18 -16
  242. package/lib/index.d.ts +2 -0
  243. package/lib/index.js +144 -148
  244. package/lib/tsconfig.lib.tsbuildinfo +1 -1
  245. package/lib/types/account.js +4 -1
  246. package/lib/types/api/applyFlags.js +4 -1
  247. package/lib/types/api/applySettings.d.ts +3 -3
  248. package/lib/types/api/applySettings.js +7 -7
  249. package/lib/types/api/authenticateDevice.js +7 -4
  250. package/lib/types/api/authorizeCoinjoin.js +13 -10
  251. package/lib/types/api/backupDevice.js +4 -1
  252. package/lib/types/api/bitcoin/index.d.ts +5 -2
  253. package/lib/types/api/bitcoin/index.js +14 -11
  254. package/lib/types/api/bleUnpair.js +4 -1
  255. package/lib/types/api/blockchainDisconnect.js +4 -1
  256. package/lib/types/api/blockchainEstimateFee.js +4 -1
  257. package/lib/types/api/blockchainEvmRpcCall.js +4 -1
  258. package/lib/types/api/blockchainGetAccountBalanceHistory.js +4 -1
  259. package/lib/types/api/blockchainGetCurrentFiatRates.js +4 -1
  260. package/lib/types/api/blockchainGetFiatRatesForTimestamps.js +4 -1
  261. package/lib/types/api/blockchainGetInfo.js +4 -1
  262. package/lib/types/api/blockchainGetTransactions.js +4 -1
  263. package/lib/types/api/blockchainSetCustomBackend.js +4 -1
  264. package/lib/types/api/blockchainSubscribe.js +4 -1
  265. package/lib/types/api/blockchainSubscribeFiatRates.js +4 -1
  266. package/lib/types/api/blockchainUnsubscribe.js +4 -1
  267. package/lib/types/api/blockchainUnsubscribeFiatRates.js +4 -1
  268. package/lib/types/api/cancel.js +4 -1
  269. package/lib/types/api/cancelCoinjoinAuthorization.js +5 -2
  270. package/lib/types/api/cardano/index.d.ts +4 -4
  271. package/lib/types/api/cardano/index.js +173 -180
  272. package/lib/types/api/cardanoComposeTransaction.js +76 -65
  273. package/lib/types/api/cardanoGetAddress.js +4 -1
  274. package/lib/types/api/cardanoGetNativeScriptHash.js +4 -1
  275. package/lib/types/api/cardanoGetPublicKey.js +4 -1
  276. package/lib/types/api/cardanoSignMessage.js +4 -1
  277. package/lib/types/api/cardanoSignTransaction.js +4 -1
  278. package/lib/types/api/changeLanguage.d.ts +1 -1
  279. package/lib/types/api/changeLanguage.js +13 -13
  280. package/lib/types/api/changePin.js +4 -1
  281. package/lib/types/api/changeWipeCode.js +4 -1
  282. package/lib/types/api/cipherKeyValue.d.ts +2 -2
  283. package/lib/types/api/cipherKeyValue.js +11 -8
  284. package/lib/types/api/composeTransaction.js +4 -1
  285. package/lib/types/api/device.js +1 -2
  286. package/lib/types/api/disableWebUSB.js +4 -1
  287. package/lib/types/api/discoverAccounts.js +204 -55
  288. package/lib/types/api/dispose.js +4 -1
  289. package/lib/types/api/eos/index.d.ts +3 -3
  290. package/lib/types/api/eos/index.js +106 -162
  291. package/lib/types/api/eosGetPublicKey.js +4 -1
  292. package/lib/types/api/eosSignTransaction.js +4 -1
  293. package/lib/types/api/ethereum/index.d.ts +11 -7
  294. package/lib/types/api/ethereum/index.js +70 -65
  295. package/lib/types/api/ethereumGetAddress.js +4 -1
  296. package/lib/types/api/ethereumGetPublicKey.js +4 -1
  297. package/lib/types/api/ethereumSignMessage.js +4 -1
  298. package/lib/types/api/ethereumSignTransaction.js +4 -1
  299. package/lib/types/api/ethereumSignTypedData.js +4 -1
  300. package/lib/types/api/ethereumVerifyMessage.js +4 -1
  301. package/lib/types/api/evoluGetDelegatedIdentityKey.d.ts +9 -0
  302. package/lib/types/api/evoluGetDelegatedIdentityKey.js +6 -0
  303. package/lib/types/api/evoluGetNode.js +4 -1
  304. package/lib/types/api/evoluSignRegistrationRequest.d.ts +4 -0
  305. package/lib/types/api/evoluSignRegistrationRequest.js +6 -0
  306. package/lib/types/api/firmwareUpdate.d.ts +1 -1
  307. package/lib/types/api/firmwareUpdate.js +12 -12
  308. package/lib/types/api/getAccountDescriptor.js +8 -5
  309. package/lib/types/api/getAccountInfo.js +4 -1
  310. package/lib/types/api/getAddress.js +11 -11
  311. package/lib/types/api/getCoinInfo.js +4 -1
  312. package/lib/types/api/getDeviceState.js +4 -1
  313. package/lib/types/api/getFeatures.js +4 -1
  314. package/lib/types/api/getFirmwareHash.js +4 -1
  315. package/lib/types/api/getNonce.d.ts +1 -1
  316. package/lib/types/api/getNonce.js +4 -1
  317. package/lib/types/api/getOwnershipId.js +8 -5
  318. package/lib/types/api/getOwnershipProof.js +14 -9
  319. package/lib/types/api/getPublicKey.js +25 -28
  320. package/lib/types/api/getSettings.js +4 -1
  321. package/lib/types/api/index.d.ts +4 -0
  322. package/lib/types/api/index.js +4 -1
  323. package/lib/types/api/init.js +4 -1
  324. package/lib/types/api/loadDevice.js +4 -1
  325. package/lib/types/api/manifest.js +4 -1
  326. package/lib/types/api/monero/index.js +117 -114
  327. package/lib/types/api/moneroGetAddress.js +4 -1
  328. package/lib/types/api/moneroGetWatchKey.js +4 -1
  329. package/lib/types/api/moneroKeyImageSync.js +4 -1
  330. package/lib/types/api/moneroSignTransaction.js +4 -1
  331. package/lib/types/api/nem/index.d.ts +7 -7
  332. package/lib/types/api/nem/index.js +78 -112
  333. package/lib/types/api/nemGetAddress.js +7 -7
  334. package/lib/types/api/nemSignTransaction.js +4 -1
  335. package/lib/types/api/off.js +4 -1
  336. package/lib/types/api/on.js +4 -1
  337. package/lib/types/api/pushTransaction.js +10 -10
  338. package/lib/types/api/recoveryDevice.d.ts +1 -1
  339. package/lib/types/api/recoveryDevice.js +7 -7
  340. package/lib/types/api/removeAllListeners.js +4 -1
  341. package/lib/types/api/renderWebUSBButton.js +4 -1
  342. package/lib/types/api/requestLogin.d.ts +4 -24
  343. package/lib/types/api/requestLogin.js +11 -13
  344. package/lib/types/api/requestWebUSBDevice.js +4 -1
  345. package/lib/types/api/resetDevice.js +4 -1
  346. package/lib/types/api/ripple/index.js +17 -14
  347. package/lib/types/api/rippleGetAddress.js +4 -1
  348. package/lib/types/api/rippleSignTransaction.js +4 -1
  349. package/lib/types/api/setBrightness.js +4 -1
  350. package/lib/types/api/setBusy.js +4 -1
  351. package/lib/types/api/setProxy.js +4 -1
  352. package/lib/types/api/setTransports.js +4 -1
  353. package/lib/types/api/showDeviceTutorial.js +4 -1
  354. package/lib/types/api/signMessage.js +4 -1
  355. package/lib/types/api/signTransaction.js +4 -1
  356. package/lib/types/api/solana/index.js +55 -56
  357. package/lib/types/api/solanaComposeTransaction.js +4 -1
  358. package/lib/types/api/solanaGetAddress.js +4 -1
  359. package/lib/types/api/solanaGetPublicKey.js +4 -1
  360. package/lib/types/api/solanaSignTransaction.js +4 -1
  361. package/lib/types/api/stellar/index.d.ts +146 -146
  362. package/lib/types/api/stellar/index.js +151 -221
  363. package/lib/types/api/stellarGetAddress.js +4 -1
  364. package/lib/types/api/stellarSignTransaction.js +4 -1
  365. package/lib/types/api/tezos/index.js +46 -43
  366. package/lib/types/api/tezosGetAddress.js +4 -1
  367. package/lib/types/api/tezosGetPublicKey.js +4 -1
  368. package/lib/types/api/tezosSignTransaction.js +4 -1
  369. package/lib/types/api/thpGetCredentials.js +4 -1
  370. package/lib/types/api/thpRemoveCredentials.js +4 -1
  371. package/lib/types/api/uiResponse.js +4 -1
  372. package/lib/types/api/unlockPath.js +6 -3
  373. package/lib/types/api/verifyMessage.js +4 -1
  374. package/lib/types/api/wipeDevice.js +4 -1
  375. package/lib/types/coinInfo.js +62 -77
  376. package/lib/types/device.d.ts +11 -2
  377. package/lib/types/device.js +9 -4
  378. package/lib/types/fees.js +31 -37
  379. package/lib/types/firmware.js +4 -1
  380. package/lib/types/index.d.ts +1 -0
  381. package/lib/types/index.js +18 -3
  382. package/lib/types/params.js +25 -16
  383. package/lib/types/settings.js +4 -1
  384. package/lib/types/utils.js +4 -1
  385. package/lib/types/workflow.js +4 -1
  386. package/lib/utils/accountUtils.js +76 -81
  387. package/lib/utils/addressUtils.js +21 -21
  388. package/lib/utils/assetUtils.js +29 -26
  389. package/lib/utils/assets-browser.js +19 -13
  390. package/lib/utils/assets.js +10 -9
  391. package/lib/utils/assets.native.js +24 -23
  392. package/lib/utils/assetsTypes.js +4 -1
  393. package/lib/utils/debug.js +18 -13
  394. package/lib/utils/deviceFeaturesUtils.js +105 -127
  395. package/lib/utils/ethereumUtils.js +9 -6
  396. package/lib/utils/firmwareReleaseConfigUtils.js +69 -57
  397. package/lib/utils/firmwareUtils.js +45 -57
  398. package/lib/utils/formatUtils.d.ts +0 -1
  399. package/lib/utils/formatUtils.js +63 -62
  400. package/lib/utils/hdnodeUtils.d.ts +0 -1
  401. package/lib/utils/hdnodeUtils.js +51 -57
  402. package/lib/utils/interactionTimeout.js +26 -23
  403. package/lib/utils/pathUtils.js +132 -148
  404. package/lib/utils/popupPromiseManager.js +23 -14
  405. package/lib/utils/proxy-event-emitter.js +63 -60
  406. package/lib/utils/uiPromiseManager.js +55 -43
  407. package/lib/utils/urlUtils.js +20 -26
  408. package/lib/utils/versionCheck.js +10 -10
  409. package/lib/workers/workers-browser.d.ts +5 -5
  410. package/lib/workers/workers-browser.js +5 -2
  411. package/lib/workers/workers.d.ts +1 -1
  412. package/lib/workers/workers.js +49 -38
  413. package/lib/workers/workers.native.d.ts +5 -5
  414. package/lib/workers/workers.native.js +4 -1
  415. package/package.json +26 -23
@@ -1,83 +1,89 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.addressParametersFromProto = exports.addressParametersToProto = exports.modifyAddressParametersForBackwardsCompatibility = exports.validateAddressParameters = void 0;
4
7
  const schema_utils_1 = require("@trezor/schema-utils");
5
8
  const constants_1 = require("../../constants");
6
9
  const cardano_1 = require("../../types/api/cardano");
7
10
  const pathUtils_1 = require("../../utils/pathUtils");
8
- const validateAddressParameters = (addressParameters) => {
9
- (0, schema_utils_1.Assert)(cardano_1.CardanoAddressParameters, addressParameters);
10
- if (addressParameters.path) {
11
- (0, pathUtils_1.validatePath)(addressParameters.path);
12
- }
13
- if (addressParameters.stakingPath) {
14
- (0, pathUtils_1.validatePath)(addressParameters.stakingPath);
15
- }
11
+ const validateAddressParameters = addressParameters => {
12
+ (0, schema_utils_1.Assert)(cardano_1.CardanoAddressParameters, addressParameters);
13
+ if (addressParameters.path) {
14
+ (0, pathUtils_1.validatePath)(addressParameters.path);
15
+ }
16
+ if (addressParameters.stakingPath) {
17
+ (0, pathUtils_1.validatePath)(addressParameters.stakingPath);
18
+ }
16
19
  };
17
20
  exports.validateAddressParameters = validateAddressParameters;
18
- const modifyAddressParametersForBackwardsCompatibility = (address_parameters) => {
19
- if (address_parameters.address_type === constants_1.PROTO.CardanoAddressType.REWARD) {
20
- let { address_n, address_n_staking } = address_parameters;
21
- if (address_n.length > 0 && address_n_staking.length > 0) {
22
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', `Only stakingPath is allowed for CardanoAddressType.REWARD`);
23
- }
24
- if (address_n.length > 0) {
25
- address_n_staking = address_n;
26
- address_n = [];
27
- }
28
- return {
29
- ...address_parameters,
30
- address_n,
31
- address_n_staking,
32
- };
33
- }
34
- return address_parameters;
35
- };
36
- exports.modifyAddressParametersForBackwardsCompatibility = modifyAddressParametersForBackwardsCompatibility;
37
- const addressParametersToProto = (addressParameters) => {
38
- let path = [];
39
- if (addressParameters.path) {
40
- path = (0, pathUtils_1.validatePath)(addressParameters.path, 3);
41
- }
42
- let stakingPath = [];
43
- if (addressParameters.stakingPath) {
44
- stakingPath = (0, pathUtils_1.validatePath)(addressParameters.stakingPath, 3);
21
+ const modifyAddressParametersForBackwardsCompatibility = address_parameters => {
22
+ if (address_parameters.address_type === constants_1.PROTO.CardanoAddressType.REWARD) {
23
+ let {
24
+ address_n,
25
+ address_n_staking
26
+ } = address_parameters;
27
+ if (address_n.length > 0 && address_n_staking.length > 0) {
28
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', `Only stakingPath is allowed for CardanoAddressType.REWARD`);
45
29
  }
46
- let certificatePointer;
47
- if (addressParameters.certificatePointer) {
48
- certificatePointer = {
49
- block_index: addressParameters.certificatePointer.blockIndex,
50
- tx_index: addressParameters.certificatePointer.txIndex,
51
- certificate_index: addressParameters.certificatePointer.certificateIndex,
52
- };
30
+ if (address_n.length > 0) {
31
+ address_n_staking = address_n;
32
+ address_n = [];
53
33
  }
54
34
  return {
55
- address_type: addressParameters.addressType,
56
- address_n: path,
57
- address_n_staking: stakingPath,
58
- staking_key_hash: addressParameters.stakingKeyHash,
59
- certificate_pointer: certificatePointer,
60
- script_payment_hash: addressParameters.paymentScriptHash,
61
- script_staking_hash: addressParameters.stakingScriptHash,
35
+ ...address_parameters,
36
+ address_n,
37
+ address_n_staking
62
38
  };
39
+ }
40
+ return address_parameters;
41
+ };
42
+ exports.modifyAddressParametersForBackwardsCompatibility = modifyAddressParametersForBackwardsCompatibility;
43
+ const addressParametersToProto = addressParameters => {
44
+ let path = [];
45
+ if (addressParameters.path) {
46
+ path = (0, pathUtils_1.validatePath)(addressParameters.path, 3);
47
+ }
48
+ let stakingPath = [];
49
+ if (addressParameters.stakingPath) {
50
+ stakingPath = (0, pathUtils_1.validatePath)(addressParameters.stakingPath, 3);
51
+ }
52
+ let certificatePointer;
53
+ if (addressParameters.certificatePointer) {
54
+ certificatePointer = {
55
+ block_index: addressParameters.certificatePointer.blockIndex,
56
+ tx_index: addressParameters.certificatePointer.txIndex,
57
+ certificate_index: addressParameters.certificatePointer.certificateIndex
58
+ };
59
+ }
60
+ return {
61
+ address_type: addressParameters.addressType,
62
+ address_n: path,
63
+ address_n_staking: stakingPath,
64
+ staking_key_hash: addressParameters.stakingKeyHash,
65
+ certificate_pointer: certificatePointer,
66
+ script_payment_hash: addressParameters.paymentScriptHash,
67
+ script_staking_hash: addressParameters.stakingScriptHash
68
+ };
63
69
  };
64
70
  exports.addressParametersToProto = addressParametersToProto;
65
- const addressParametersFromProto = (addressParameters) => {
66
- let certificatePointer;
67
- if (addressParameters.certificate_pointer) {
68
- certificatePointer = {
69
- blockIndex: addressParameters.certificate_pointer.block_index,
70
- txIndex: addressParameters.certificate_pointer.tx_index,
71
- certificateIndex: addressParameters.certificate_pointer.certificate_index,
72
- };
73
- }
74
- return {
75
- addressType: addressParameters.address_type,
76
- path: addressParameters.address_n,
77
- stakingPath: addressParameters.address_n_staking,
78
- stakingKeyHash: addressParameters.staking_key_hash,
79
- certificatePointer,
71
+ const addressParametersFromProto = addressParameters => {
72
+ let certificatePointer;
73
+ if (addressParameters.certificate_pointer) {
74
+ certificatePointer = {
75
+ blockIndex: addressParameters.certificate_pointer.block_index,
76
+ txIndex: addressParameters.certificate_pointer.tx_index,
77
+ certificateIndex: addressParameters.certificate_pointer.certificate_index
80
78
  };
79
+ }
80
+ return {
81
+ addressType: addressParameters.address_type,
82
+ path: addressParameters.address_n,
83
+ stakingPath: addressParameters.address_n_staking,
84
+ stakingKeyHash: addressParameters.staking_key_hash,
85
+ certificatePointer
86
+ };
81
87
  };
82
88
  exports.addressParametersFromProto = addressParametersFromProto;
83
89
  //# sourceMappingURL=cardanoAddressParameters.js.map
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.modifyAuxiliaryDataForBackwardsCompatibility = exports.transformAuxiliaryData = void 0;
4
7
  const schema_utils_1 = require("@trezor/schema-utils");
5
8
  const cardanoAddressParameters_1 = require("./cardanoAddressParameters");
@@ -7,72 +10,74 @@ const constants_1 = require("../../constants");
7
10
  const cardano_1 = require("../../types/api/cardano");
8
11
  const pathUtils_1 = require("../../utils/pathUtils");
9
12
  const MAX_DELEGATION_COUNT = 32;
10
- const transformDelegation = (delegation) => {
11
- if (delegation.votingPublicKey) {
12
- console.warn('Please use votePublicKey instead of votingPublicKey.');
13
- delegation.votePublicKey = delegation.votingPublicKey;
14
- }
15
- (0, schema_utils_1.Assert)(cardano_1.CardanoCVoteRegistrationDelegation, delegation);
16
- return {
17
- vote_public_key: delegation.votePublicKey,
18
- weight: delegation.weight,
19
- };
13
+ const transformDelegation = delegation => {
14
+ if (delegation.votingPublicKey) {
15
+ console.warn('Please use votePublicKey instead of votingPublicKey.');
16
+ delegation.votePublicKey = delegation.votingPublicKey;
17
+ }
18
+ (0, schema_utils_1.Assert)(cardano_1.CardanoCVoteRegistrationDelegation, delegation);
19
+ return {
20
+ vote_public_key: delegation.votePublicKey,
21
+ weight: delegation.weight
22
+ };
20
23
  };
21
- const transformCvoteRegistrationParameters = (cVoteRegistrationParameters) => {
22
- if (cVoteRegistrationParameters.votingPublicKey) {
23
- console.warn('Please use votePublicKey instead of votingPublicKey.');
24
- cVoteRegistrationParameters.votePublicKey = cVoteRegistrationParameters.votingPublicKey;
25
- }
26
- if (cVoteRegistrationParameters.rewardAddressParameters) {
27
- console.warn('Please use paymentAddressParameters instead of rewardAddressParameters.');
28
- cVoteRegistrationParameters.paymentAddressParameters =
29
- cVoteRegistrationParameters.rewardAddressParameters;
30
- }
31
- (0, schema_utils_1.Assert)(cardano_1.CardanoCVoteRegistrationParameters, cVoteRegistrationParameters);
32
- const { paymentAddressParameters } = cVoteRegistrationParameters;
33
- if (paymentAddressParameters) {
34
- (0, cardanoAddressParameters_1.validateAddressParameters)(paymentAddressParameters);
35
- }
36
- const { delegations } = cVoteRegistrationParameters;
37
- if (delegations && delegations.length > MAX_DELEGATION_COUNT) {
38
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', `At most ${MAX_DELEGATION_COUNT} delegations are allowed in a CIP-36 registration`);
39
- }
40
- return {
41
- vote_public_key: cVoteRegistrationParameters.votePublicKey,
42
- staking_path: (0, pathUtils_1.validatePath)(cVoteRegistrationParameters.stakingPath, 3),
43
- payment_address_parameters: paymentAddressParameters
44
- ? (0, cardanoAddressParameters_1.addressParametersToProto)(paymentAddressParameters)
45
- : undefined,
46
- nonce: cVoteRegistrationParameters.nonce,
47
- format: cVoteRegistrationParameters.format,
48
- delegations: delegations?.map(transformDelegation),
49
- voting_purpose: cVoteRegistrationParameters.votingPurpose,
50
- payment_address: cVoteRegistrationParameters.paymentAddress,
51
- };
24
+ const transformCvoteRegistrationParameters = cVoteRegistrationParameters => {
25
+ if (cVoteRegistrationParameters.votingPublicKey) {
26
+ console.warn('Please use votePublicKey instead of votingPublicKey.');
27
+ cVoteRegistrationParameters.votePublicKey = cVoteRegistrationParameters.votingPublicKey;
28
+ }
29
+ if (cVoteRegistrationParameters.rewardAddressParameters) {
30
+ console.warn('Please use paymentAddressParameters instead of rewardAddressParameters.');
31
+ cVoteRegistrationParameters.paymentAddressParameters = cVoteRegistrationParameters.rewardAddressParameters;
32
+ }
33
+ (0, schema_utils_1.Assert)(cardano_1.CardanoCVoteRegistrationParameters, cVoteRegistrationParameters);
34
+ const {
35
+ paymentAddressParameters
36
+ } = cVoteRegistrationParameters;
37
+ if (paymentAddressParameters) {
38
+ (0, cardanoAddressParameters_1.validateAddressParameters)(paymentAddressParameters);
39
+ }
40
+ const {
41
+ delegations
42
+ } = cVoteRegistrationParameters;
43
+ if (delegations && delegations.length > MAX_DELEGATION_COUNT) {
44
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', `At most ${MAX_DELEGATION_COUNT} delegations are allowed in a CIP-36 registration`);
45
+ }
46
+ return {
47
+ vote_public_key: cVoteRegistrationParameters.votePublicKey,
48
+ staking_path: (0, pathUtils_1.validatePath)(cVoteRegistrationParameters.stakingPath, 3),
49
+ payment_address_parameters: paymentAddressParameters ? (0, cardanoAddressParameters_1.addressParametersToProto)(paymentAddressParameters) : undefined,
50
+ nonce: cVoteRegistrationParameters.nonce,
51
+ format: cVoteRegistrationParameters.format,
52
+ delegations: delegations?.map(transformDelegation),
53
+ voting_purpose: cVoteRegistrationParameters.votingPurpose,
54
+ payment_address: cVoteRegistrationParameters.paymentAddress
55
+ };
52
56
  };
53
- const transformAuxiliaryData = (auxiliaryData) => {
54
- (0, schema_utils_1.Assert)(cardano_1.CardanoAuxiliaryData, auxiliaryData);
55
- let cVoteRegistrationParameters;
56
- if (auxiliaryData.cVoteRegistrationParameters) {
57
- cVoteRegistrationParameters = transformCvoteRegistrationParameters(auxiliaryData.cVoteRegistrationParameters);
58
- }
59
- return {
60
- hash: auxiliaryData.hash,
61
- cvote_registration_parameters: cVoteRegistrationParameters,
62
- };
57
+ const transformAuxiliaryData = auxiliaryData => {
58
+ (0, schema_utils_1.Assert)(cardano_1.CardanoAuxiliaryData, auxiliaryData);
59
+ let cVoteRegistrationParameters;
60
+ if (auxiliaryData.cVoteRegistrationParameters) {
61
+ cVoteRegistrationParameters = transformCvoteRegistrationParameters(auxiliaryData.cVoteRegistrationParameters);
62
+ }
63
+ return {
64
+ hash: auxiliaryData.hash,
65
+ cvote_registration_parameters: cVoteRegistrationParameters
66
+ };
63
67
  };
64
68
  exports.transformAuxiliaryData = transformAuxiliaryData;
65
- const modifyAuxiliaryDataForBackwardsCompatibility = (auxiliary_data) => {
66
- const { cvote_registration_parameters } = auxiliary_data;
67
- if (cvote_registration_parameters?.payment_address_parameters) {
68
- cvote_registration_parameters.payment_address_parameters =
69
- (0, cardanoAddressParameters_1.modifyAddressParametersForBackwardsCompatibility)(cvote_registration_parameters.payment_address_parameters);
70
- return {
71
- ...auxiliary_data,
72
- cvote_registration_parameters,
73
- };
74
- }
75
- return auxiliary_data;
69
+ const modifyAuxiliaryDataForBackwardsCompatibility = auxiliary_data => {
70
+ const {
71
+ cvote_registration_parameters
72
+ } = auxiliary_data;
73
+ if (cvote_registration_parameters?.payment_address_parameters) {
74
+ cvote_registration_parameters.payment_address_parameters = (0, cardanoAddressParameters_1.modifyAddressParametersForBackwardsCompatibility)(cvote_registration_parameters.payment_address_parameters);
75
+ return {
76
+ ...auxiliary_data,
77
+ cvote_registration_parameters
78
+ };
79
+ }
80
+ return auxiliary_data;
76
81
  };
77
82
  exports.modifyAuxiliaryDataForBackwardsCompatibility = modifyAuxiliaryDataForBackwardsCompatibility;
78
83
  //# sourceMappingURL=cardanoAuxiliaryData.js.map
@@ -1,144 +1,149 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.transformCertificate = void 0;
4
7
  const schema_utils_1 = require("@trezor/schema-utils");
5
8
  const constants_1 = require("../../constants");
6
9
  const cardano_1 = require("../../types/api/cardano");
7
10
  const pathUtils_1 = require("../../utils/pathUtils");
8
- const ipv4AddressToHex = (ipv4Address) => Buffer.from(ipv4Address.split('.').map(ipPart => parseInt(ipPart, 10))).toString('hex');
9
- const ipv6AddressToHex = (ipv6Address) => ipv6Address.split(':').join('');
10
- const validatePoolRelay = (relay) => {
11
- (0, schema_utils_1.Assert)(cardano_1.CardanoPoolRelay, relay);
12
- if (relay.type === constants_1.PROTO.CardanoPoolRelayType.SINGLE_HOST_IP) {
13
- if (!relay.ipv4Address && !relay.ipv6Address) {
14
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Either ipv4Address or ipv6Address must be supplied');
15
- }
11
+ const ipv4AddressToHex = ipv4Address => Buffer.from(ipv4Address.split('.').map(ipPart => parseInt(ipPart, 10))).toString('hex');
12
+ const ipv6AddressToHex = ipv6Address => ipv6Address.split(':').join('');
13
+ const validatePoolRelay = relay => {
14
+ (0, schema_utils_1.Assert)(cardano_1.CardanoPoolRelay, relay);
15
+ if (relay.type === constants_1.PROTO.CardanoPoolRelayType.SINGLE_HOST_IP) {
16
+ if (!relay.ipv4Address && !relay.ipv6Address) {
17
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Either ipv4Address or ipv6Address must be supplied');
16
18
  }
17
- else if (relay.type === constants_1.PROTO.CardanoPoolRelayType.SINGLE_HOST_NAME) {
18
- if (!relay.hostName) {
19
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'hostName must be supplied');
20
- }
21
- if (!relay.port) {
22
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'port must be supplied');
23
- }
19
+ } else if (relay.type === constants_1.PROTO.CardanoPoolRelayType.SINGLE_HOST_NAME) {
20
+ if (!relay.hostName) {
21
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'hostName must be supplied');
24
22
  }
25
- else if (relay.type === constants_1.PROTO.CardanoPoolRelayType.MULTIPLE_HOST_NAME) {
26
- if (!relay.hostName) {
27
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'hostName must be supplied');
28
- }
23
+ if (!relay.port) {
24
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'port must be supplied');
29
25
  }
30
- };
31
- const validatePoolOwners = (owners) => {
32
- owners.forEach(owner => {
33
- if (owner.stakingKeyPath) {
34
- (0, pathUtils_1.validatePath)(owner.stakingKeyPath, 5);
35
- }
36
- if (!owner.stakingKeyHash && !owner.stakingKeyPath) {
37
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Either stakingKeyHash or stakingKeyPath must be supplied');
38
- }
39
- });
40
- const ownersAsPathCount = owners.filter(owner => !!owner.stakingKeyPath).length;
41
- if (ownersAsPathCount !== 1) {
42
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Exactly one pool owner must be given as a path');
26
+ } else if (relay.type === constants_1.PROTO.CardanoPoolRelayType.MULTIPLE_HOST_NAME) {
27
+ if (!relay.hostName) {
28
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'hostName must be supplied');
43
29
  }
30
+ }
44
31
  };
45
- const validatePoolParameters = (poolParameters) => {
46
- (0, schema_utils_1.Assert)(cardano_1.CardanoPoolParameters, poolParameters);
47
- validatePoolOwners(poolParameters.owners);
48
- poolParameters.relays.forEach(validatePoolRelay);
49
- };
50
- const validateDRep = (dRep) => {
51
- (0, schema_utils_1.Assert)(cardano_1.CardanoDRep, dRep);
52
- if (dRep.type === constants_1.PROTO.CardanoDRepType.KEY_HASH && !dRep.keyHash) {
53
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'keyHash must be supplied for KEY_HASH dRep type');
32
+ const validatePoolOwners = owners => {
33
+ owners.forEach(owner => {
34
+ if (owner.stakingKeyPath) {
35
+ (0, pathUtils_1.validatePath)(owner.stakingKeyPath, 5);
54
36
  }
55
- else if (dRep.type === constants_1.PROTO.CardanoDRepType.SCRIPT_HASH && !dRep.scriptHash) {
56
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'scriptHash must be supplied for SCRIPT_HASH dRep type');
37
+ if (!owner.stakingKeyHash && !owner.stakingKeyPath) {
38
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Either stakingKeyHash or stakingKeyPath must be supplied');
57
39
  }
40
+ });
41
+ const ownersAsPathCount = owners.filter(owner => !!owner.stakingKeyPath).length;
42
+ if (ownersAsPathCount !== 1) {
43
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'Exactly one pool owner must be given as a path');
44
+ }
58
45
  };
59
- const transformPoolParameters = (poolParameters) => {
60
- if (!poolParameters) {
61
- return { poolParameters: undefined, poolOwners: [], poolRelays: [] };
62
- }
63
- validatePoolParameters(poolParameters);
64
- return {
65
- poolParameters: {
66
- pool_id: poolParameters.poolId,
67
- vrf_key_hash: poolParameters.vrfKeyHash,
68
- pledge: poolParameters.pledge,
69
- cost: poolParameters.cost,
70
- margin_numerator: poolParameters.margin.numerator,
71
- margin_denominator: poolParameters.margin.denominator,
72
- reward_account: poolParameters.rewardAccount,
73
- metadata: poolParameters.metadata,
74
- owners_count: poolParameters.owners.length,
75
- relays_count: poolParameters.relays.length,
76
- },
77
- poolOwners: poolParameters.owners.map(owner => ({
78
- staking_key_hash: owner.stakingKeyHash,
79
- staking_key_path: owner.stakingKeyPath
80
- ? (0, pathUtils_1.validatePath)(owner.stakingKeyPath, 5)
81
- : undefined,
82
- })),
83
- poolRelays: poolParameters.relays.map(relay => ({
84
- type: relay.type,
85
- ipv4_address: relay.ipv4Address ? ipv4AddressToHex(relay.ipv4Address) : undefined,
86
- ipv6_address: relay.ipv6Address ? ipv6AddressToHex(relay.ipv6Address) : undefined,
87
- host_name: relay.hostName,
88
- port: relay.port,
89
- })),
90
- };
46
+ const validatePoolParameters = poolParameters => {
47
+ (0, schema_utils_1.Assert)(cardano_1.CardanoPoolParameters, poolParameters);
48
+ validatePoolOwners(poolParameters.owners);
49
+ poolParameters.relays.forEach(validatePoolRelay);
91
50
  };
92
- const transformDRep = (dRep) => {
93
- if (!dRep) {
94
- return undefined;
95
- }
96
- validateDRep(dRep);
51
+ const validateDRep = dRep => {
52
+ (0, schema_utils_1.Assert)(cardano_1.CardanoDRep, dRep);
53
+ if (dRep.type === constants_1.PROTO.CardanoDRepType.KEY_HASH && !dRep.keyHash) {
54
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'keyHash must be supplied for KEY_HASH dRep type');
55
+ } else if (dRep.type === constants_1.PROTO.CardanoDRepType.SCRIPT_HASH && !dRep.scriptHash) {
56
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'scriptHash must be supplied for SCRIPT_HASH dRep type');
57
+ }
58
+ };
59
+ const transformPoolParameters = poolParameters => {
60
+ if (!poolParameters) {
97
61
  return {
98
- type: dRep.type,
99
- key_hash: dRep.keyHash,
100
- script_hash: dRep.scriptHash,
62
+ poolParameters: undefined,
63
+ poolOwners: [],
64
+ poolRelays: []
101
65
  };
66
+ }
67
+ validatePoolParameters(poolParameters);
68
+ return {
69
+ poolParameters: {
70
+ pool_id: poolParameters.poolId,
71
+ vrf_key_hash: poolParameters.vrfKeyHash,
72
+ pledge: poolParameters.pledge,
73
+ cost: poolParameters.cost,
74
+ margin_numerator: poolParameters.margin.numerator,
75
+ margin_denominator: poolParameters.margin.denominator,
76
+ reward_account: poolParameters.rewardAccount,
77
+ metadata: poolParameters.metadata,
78
+ owners_count: poolParameters.owners.length,
79
+ relays_count: poolParameters.relays.length
80
+ },
81
+ poolOwners: poolParameters.owners.map(owner => ({
82
+ staking_key_hash: owner.stakingKeyHash,
83
+ staking_key_path: owner.stakingKeyPath ? (0, pathUtils_1.validatePath)(owner.stakingKeyPath, 5) : undefined
84
+ })),
85
+ poolRelays: poolParameters.relays.map(relay => ({
86
+ type: relay.type,
87
+ ipv4_address: relay.ipv4Address ? ipv4AddressToHex(relay.ipv4Address) : undefined,
88
+ ipv6_address: relay.ipv6Address ? ipv6AddressToHex(relay.ipv6Address) : undefined,
89
+ host_name: relay.hostName,
90
+ port: relay.port
91
+ }))
92
+ };
93
+ };
94
+ const transformDRep = dRep => {
95
+ if (!dRep) {
96
+ return undefined;
97
+ }
98
+ validateDRep(dRep);
99
+ return {
100
+ type: dRep.type,
101
+ key_hash: dRep.keyHash,
102
+ script_hash: dRep.scriptHash
103
+ };
102
104
  };
103
- const transformCertificate = (certificate) => {
104
- (0, schema_utils_1.Assert)(cardano_1.CardanoCertificate, certificate);
105
- if (certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_DELEGATION) {
106
- if (!certificate.pool) {
107
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'pool must be supplied for STAKE_DELEGATION');
108
- }
105
+ const transformCertificate = certificate => {
106
+ (0, schema_utils_1.Assert)(cardano_1.CardanoCertificate, certificate);
107
+ if (certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_DELEGATION) {
108
+ if (!certificate.pool) {
109
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'pool must be supplied for STAKE_DELEGATION');
109
110
  }
110
- if (certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_POOL_REGISTRATION) {
111
- if (!certificate.poolParameters) {
112
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'poolParameters must be supplied for STAKE_POOL_REGISTRATION');
113
- }
111
+ }
112
+ if (certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_POOL_REGISTRATION) {
113
+ if (!certificate.poolParameters) {
114
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'poolParameters must be supplied for STAKE_POOL_REGISTRATION');
114
115
  }
115
- if (certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_REGISTRATION_CONWAY ||
116
- certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY) {
117
- if (!certificate.deposit) {
118
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'deposit must be supplied for STAKE_REGISTRATION_CONWAY or STAKE_DEREGISTRATION_CONWAY');
119
- }
116
+ }
117
+ if (certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_REGISTRATION_CONWAY || certificate.type === constants_1.PROTO.CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY) {
118
+ if (!certificate.deposit) {
119
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'deposit must be supplied for STAKE_REGISTRATION_CONWAY or STAKE_DEREGISTRATION_CONWAY');
120
120
  }
121
- if (certificate.type === constants_1.PROTO.CardanoCertificateType.VOTE_DELEGATION) {
122
- if (!certificate.dRep) {
123
- throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'dRep must be supplied for VOTE_DELEGATION');
124
- }
121
+ }
122
+ if (certificate.type === constants_1.PROTO.CardanoCertificateType.VOTE_DELEGATION) {
123
+ if (!certificate.dRep) {
124
+ throw constants_1.ERRORS.TypedError('Method_InvalidParameter', 'dRep must be supplied for VOTE_DELEGATION');
125
125
  }
126
- const { poolParameters, poolOwners, poolRelays } = transformPoolParameters(certificate.poolParameters);
127
- const dRep = transformDRep(certificate.dRep);
128
- return {
129
- certificate: {
130
- type: certificate.type,
131
- path: certificate.path ? (0, pathUtils_1.validatePath)(certificate.path, 5) : undefined,
132
- script_hash: certificate.scriptHash,
133
- key_hash: certificate.keyHash,
134
- pool: certificate.pool,
135
- pool_parameters: poolParameters,
136
- deposit: certificate.deposit,
137
- drep: dRep,
138
- },
139
- poolOwners,
140
- poolRelays,
141
- };
126
+ }
127
+ const {
128
+ poolParameters,
129
+ poolOwners,
130
+ poolRelays
131
+ } = transformPoolParameters(certificate.poolParameters);
132
+ const dRep = transformDRep(certificate.dRep);
133
+ return {
134
+ certificate: {
135
+ type: certificate.type,
136
+ path: certificate.path ? (0, pathUtils_1.validatePath)(certificate.path, 5) : undefined,
137
+ script_hash: certificate.scriptHash,
138
+ key_hash: certificate.keyHash,
139
+ pool: certificate.pool,
140
+ pool_parameters: poolParameters,
141
+ deposit: certificate.deposit,
142
+ drep: dRep
143
+ },
144
+ poolOwners,
145
+ poolRelays
146
+ };
142
147
  };
143
148
  exports.transformCertificate = transformCertificate;
144
149
  //# sourceMappingURL=cardanoCertificate.js.map