@bitgo-beta/sdk-core 8.2.1-beta.174 → 8.2.1-beta.1740

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 (628) hide show
  1. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts +0 -1
  2. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts.map +1 -1
  3. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts +3 -3
  4. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts.map +1 -1
  5. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.js +4 -3
  6. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +1 -0
  7. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -1
  8. package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +41 -29
  9. package/dist/src/account-lib/baseCoin/enum.d.ts +39 -5
  10. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  11. package/dist/src/account-lib/baseCoin/enum.js +68 -10
  12. package/dist/src/account-lib/baseCoin/errors.d.ts +3 -0
  13. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -1
  14. package/dist/src/account-lib/baseCoin/errors.js +8 -2
  15. package/dist/src/account-lib/baseCoin/iface.d.ts +19 -35
  16. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
  17. package/dist/src/account-lib/baseCoin/iface.js +26 -18
  18. package/dist/src/account-lib/baseCoin/index.d.ts +1 -1
  19. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -1
  20. package/dist/src/account-lib/baseCoin/index.js +8 -5
  21. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts +88 -0
  22. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  23. package/dist/src/account-lib/baseCoin/messages/baseMessage.js +154 -0
  24. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +67 -0
  25. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  26. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +144 -0
  27. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +33 -0
  28. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  29. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +45 -0
  30. package/dist/src/account-lib/baseCoin/messages/iface.d.ts +164 -0
  31. package/dist/src/account-lib/baseCoin/messages/iface.d.ts.map +1 -0
  32. package/dist/src/account-lib/baseCoin/messages/iface.js +3 -0
  33. package/dist/src/account-lib/baseCoin/messages/index.d.ts +6 -0
  34. package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -0
  35. package/dist/src/account-lib/baseCoin/messages/index.js +22 -0
  36. package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts +3 -0
  37. package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts.map +1 -0
  38. package/dist/src/account-lib/baseCoin/messages/simple/index.js +19 -0
  39. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts +13 -0
  40. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts.map +1 -0
  41. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.js +28 -0
  42. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts +21 -0
  43. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts.map +1 -0
  44. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.js +28 -0
  45. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts +1 -2
  46. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +1 -1
  47. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +38 -26
  48. package/dist/src/account-lib/index.js +23 -9
  49. package/dist/src/account-lib/mpc/index.d.ts +1 -1
  50. package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
  51. package/dist/src/account-lib/mpc/index.js +6 -2
  52. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +2 -3
  53. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  54. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +376 -354
  55. package/dist/src/account-lib/mpc/tss/ecdsa/index.js +23 -9
  56. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts +2 -2
  57. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts.map +1 -1
  58. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.js +3 -3
  59. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +46 -53
  60. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
  61. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
  62. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +0 -1
  63. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -1
  64. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +66 -69
  65. package/dist/src/account-lib/mpc/tss/eddsa/index.js +23 -9
  66. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +1 -1
  67. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
  68. package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
  69. package/dist/src/account-lib/mpc/tss/index.js +23 -9
  70. package/dist/src/account-lib/mpc/util.d.ts +7 -1
  71. package/dist/src/account-lib/mpc/util.d.ts.map +1 -1
  72. package/dist/src/account-lib/mpc/util.js +24 -1
  73. package/dist/src/account-lib/staking/index.js +6 -2
  74. package/dist/src/account-lib/staking/utils.js +3 -3
  75. package/dist/src/account-lib/util/crypto.d.ts +8 -2
  76. package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
  77. package/dist/src/account-lib/util/crypto.js +69 -38
  78. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +2 -1
  79. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +1 -1
  80. package/dist/src/account-lib/util/ed25519KeyDeriver.js +5 -3
  81. package/dist/src/api/bip32path.js +2 -3
  82. package/dist/src/api/index.js +6 -2
  83. package/dist/src/api/types.d.ts +20 -0
  84. package/dist/src/api/types.d.ts.map +1 -1
  85. package/dist/src/api/types.js +1 -1
  86. package/dist/src/bitgo/address-book/address-book.d.ts +61 -0
  87. package/dist/src/bitgo/address-book/address-book.d.ts.map +1 -0
  88. package/dist/src/bitgo/address-book/address-book.js +139 -0
  89. package/dist/src/bitgo/address-book/index.d.ts +3 -0
  90. package/dist/src/bitgo/address-book/index.d.ts.map +1 -0
  91. package/dist/src/bitgo/address-book/index.js +19 -0
  92. package/dist/src/bitgo/address-book/types.d.ts +170 -0
  93. package/dist/src/bitgo/address-book/types.d.ts.map +1 -0
  94. package/dist/src/bitgo/address-book/types.js +3 -0
  95. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +97 -11
  96. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  97. package/dist/src/bitgo/baseCoin/baseCoin.js +152 -16
  98. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +181 -28
  99. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  100. package/dist/src/bitgo/baseCoin/iBaseCoin.js +14 -3
  101. package/dist/src/bitgo/baseCoin/index.js +6 -2
  102. package/dist/src/bitgo/bip32util.d.ts +3 -16
  103. package/dist/src/bitgo/bip32util.d.ts.map +1 -1
  104. package/dist/src/bitgo/bip32util.js +4 -56
  105. package/dist/src/bitgo/bitcoin.d.ts +0 -1
  106. package/dist/src/bitgo/bitcoin.d.ts.map +1 -1
  107. package/dist/src/bitgo/bitcoin.js +26 -13
  108. package/dist/src/bitgo/bitgoBase.d.ts +7 -1
  109. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  110. package/dist/src/bitgo/bitgoBase.js +1 -1
  111. package/dist/src/bitgo/coinFactory.d.ts +17 -3
  112. package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
  113. package/dist/src/bitgo/coinFactory.js +26 -3
  114. package/dist/src/bitgo/config.d.ts +3 -95
  115. package/dist/src/bitgo/config.d.ts.map +1 -1
  116. package/dist/src/bitgo/config.js +26 -15
  117. package/dist/src/bitgo/ecdh.d.ts +0 -1
  118. package/dist/src/bitgo/ecdh.d.ts.map +1 -1
  119. package/dist/src/bitgo/ecdh.js +26 -13
  120. package/dist/src/bitgo/enterprise/enterprise.d.ts +3 -13
  121. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  122. package/dist/src/bitgo/enterprise/enterprise.js +39 -34
  123. package/dist/src/bitgo/enterprise/enterprises.js +27 -13
  124. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +2 -6
  125. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  126. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  127. package/dist/src/bitgo/enterprise/index.js +6 -2
  128. package/dist/src/bitgo/environments.d.ts +68 -5
  129. package/dist/src/bitgo/environments.d.ts.map +1 -1
  130. package/dist/src/bitgo/environments.js +389 -40
  131. package/dist/src/bitgo/errors.d.ts +175 -0
  132. package/dist/src/bitgo/errors.d.ts.map +1 -1
  133. package/dist/src/bitgo/errors.js +166 -2
  134. package/dist/src/bitgo/evm/evmUtils.d.ts +26 -0
  135. package/dist/src/bitgo/evm/evmUtils.d.ts.map +1 -0
  136. package/dist/src/bitgo/evm/evmUtils.js +50 -0
  137. package/dist/src/bitgo/index.d.ts +3 -1
  138. package/dist/src/bitgo/index.d.ts.map +1 -1
  139. package/dist/src/bitgo/index.js +29 -11
  140. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts +3 -3
  141. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts.map +1 -1
  142. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.js +1 -1
  143. package/dist/src/bitgo/inscriptionBuilder/index.js +6 -2
  144. package/dist/src/bitgo/internal/index.js +6 -2
  145. package/dist/src/bitgo/internal/internal.js +5 -6
  146. package/dist/src/bitgo/internal/keycard.js +6 -7
  147. package/dist/src/bitgo/keychain/decryptKeychain.d.ts +24 -0
  148. package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -0
  149. package/dist/src/bitgo/keychain/decryptKeychain.js +67 -0
  150. package/dist/src/bitgo/keychain/iKeychains.d.ts +84 -8
  151. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  152. package/dist/src/bitgo/keychain/iKeychains.js +2 -2
  153. package/dist/src/bitgo/keychain/index.d.ts +1 -0
  154. package/dist/src/bitgo/keychain/index.d.ts.map +1 -1
  155. package/dist/src/bitgo/keychain/index.js +7 -2
  156. package/dist/src/bitgo/keychain/keychains.d.ts +29 -4
  157. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  158. package/dist/src/bitgo/keychain/keychains.js +181 -43
  159. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +3 -3
  160. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  161. package/dist/src/bitgo/keychain/ovcJsonCodec.js +23 -9
  162. package/dist/src/bitgo/legacyBitcoin.d.ts +0 -1
  163. package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -1
  164. package/dist/src/bitgo/legacyBitcoin.js +27 -13
  165. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts +7 -0
  166. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts.map +1 -0
  167. package/dist/src/bitgo/lightning/lightningWalletUtil.js +25 -0
  168. package/dist/src/bitgo/market/iMarkets.d.ts +2 -2
  169. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -1
  170. package/dist/src/bitgo/market/index.js +6 -2
  171. package/dist/src/bitgo/market/markets.js +23 -9
  172. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +1 -0
  173. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  174. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +4 -4
  175. package/dist/src/bitgo/pendingApproval/index.js +6 -2
  176. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +20 -8
  177. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
  178. package/dist/src/bitgo/pendingApproval/pendingApproval.js +228 -110
  179. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +23 -9
  180. package/dist/src/bitgo/proofs/WalletProofs.d.ts +19 -0
  181. package/dist/src/bitgo/proofs/WalletProofs.d.ts.map +1 -0
  182. package/dist/src/bitgo/proofs/WalletProofs.js +37 -0
  183. package/dist/src/bitgo/proofs/index.d.ts +2 -0
  184. package/dist/src/bitgo/proofs/index.d.ts.map +1 -0
  185. package/dist/src/bitgo/proofs/index.js +6 -0
  186. package/dist/src/bitgo/proofs/types.d.ts +80 -0
  187. package/dist/src/bitgo/proofs/types.d.ts.map +1 -0
  188. package/dist/src/bitgo/proofs/types.js +80 -0
  189. package/dist/src/bitgo/recovery/index.js +6 -2
  190. package/dist/src/bitgo/recovery/initiate.d.ts +8 -1
  191. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  192. package/dist/src/bitgo/recovery/initiate.js +14 -8
  193. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +132 -0
  194. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts.map +1 -0
  195. package/dist/src/bitgo/staking/goStakingInterfaces.js +3 -0
  196. package/dist/src/bitgo/staking/goStakingWallet.d.ts +62 -0
  197. package/dist/src/bitgo/staking/goStakingWallet.d.ts.map +1 -0
  198. package/dist/src/bitgo/staking/goStakingWallet.js +141 -0
  199. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts +17 -0
  200. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts.map +1 -0
  201. package/dist/src/bitgo/staking/iGoStakingWallet.js +3 -0
  202. package/dist/src/bitgo/staking/iStakingWallet.d.ts +173 -7
  203. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  204. package/dist/src/bitgo/staking/iStakingWallet.js +2 -2
  205. package/dist/src/bitgo/staking/index.d.ts +3 -0
  206. package/dist/src/bitgo/staking/index.d.ts.map +1 -1
  207. package/dist/src/bitgo/staking/index.js +9 -2
  208. package/dist/src/bitgo/staking/stakingWallet.d.ts +21 -8
  209. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  210. package/dist/src/bitgo/staking/stakingWallet.js +140 -7
  211. package/dist/src/bitgo/trading/iTradingAccount.d.ts +14 -33
  212. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -1
  213. package/dist/src/bitgo/trading/iTradingAccount.js +1 -1
  214. package/dist/src/bitgo/trading/index.d.ts +1 -15
  215. package/dist/src/bitgo/trading/index.d.ts.map +1 -1
  216. package/dist/src/bitgo/trading/index.js +7 -17
  217. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts +8 -0
  218. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts.map +1 -0
  219. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.js +31 -0
  220. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts +8 -0
  221. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts.map +1 -0
  222. package/dist/src/bitgo/trading/network/decrypt-rsa.js +23 -0
  223. package/dist/src/bitgo/trading/network/decrypt.d.ts +14 -0
  224. package/dist/src/bitgo/trading/network/decrypt.d.ts.map +1 -0
  225. package/dist/src/bitgo/trading/network/decrypt.js +23 -0
  226. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts +8 -0
  227. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts.map +1 -0
  228. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.js +25 -0
  229. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts +8 -0
  230. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts.map +1 -0
  231. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.js +65 -0
  232. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts +8 -0
  233. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts.map +1 -0
  234. package/dist/src/bitgo/trading/network/encrypt-rsa.js +23 -0
  235. package/dist/src/bitgo/trading/network/encrypt.d.ts +37 -0
  236. package/dist/src/bitgo/trading/network/encrypt.d.ts.map +1 -0
  237. package/dist/src/bitgo/trading/network/encrypt.js +58 -0
  238. package/dist/src/bitgo/trading/network/index.d.ts +5 -0
  239. package/dist/src/bitgo/trading/network/index.d.ts.map +1 -0
  240. package/dist/src/bitgo/trading/network/index.js +21 -0
  241. package/dist/src/bitgo/trading/network/network.d.ts +36 -0
  242. package/dist/src/bitgo/trading/network/network.d.ts.map +1 -0
  243. package/dist/src/bitgo/trading/network/network.js +99 -0
  244. package/dist/src/bitgo/trading/network/types.d.ts +277 -0
  245. package/dist/src/bitgo/trading/network/types.d.ts.map +1 -0
  246. package/dist/src/bitgo/trading/network/types.js +3 -0
  247. package/dist/src/bitgo/trading/network/utils.d.ts +20 -0
  248. package/dist/src/bitgo/trading/network/utils.d.ts.map +1 -0
  249. package/dist/src/bitgo/trading/network/utils.js +54 -0
  250. package/dist/src/bitgo/trading/tradingAccount.d.ts +22 -33
  251. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
  252. package/dist/src/bitgo/trading/tradingAccount.js +56 -97
  253. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts +38 -0
  254. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  255. package/dist/src/bitgo/tss/bitgoPubKeys.js +72 -0
  256. package/dist/src/bitgo/tss/common.d.ts +39 -6
  257. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  258. package/dist/src/bitgo/tss/common.js +112 -17
  259. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +6 -4
  260. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  261. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +78 -66
  262. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts +15 -0
  263. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  264. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.js +167 -0
  265. package/dist/src/bitgo/tss/ecdsa/index.d.ts +1 -0
  266. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -1
  267. package/dist/src/bitgo/tss/ecdsa/index.js +25 -10
  268. package/dist/src/bitgo/tss/ecdsa/types.d.ts +27 -27
  269. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  270. package/dist/src/bitgo/tss/ecdsa/types.js +3 -3
  271. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +15 -6
  272. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  273. package/dist/src/bitgo/tss/eddsa/eddsa.js +47 -40
  274. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +35 -0
  275. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  276. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +100 -0
  277. package/dist/src/bitgo/tss/eddsa/index.js +23 -9
  278. package/dist/src/bitgo/tss/eddsa/types.d.ts +4 -4
  279. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -1
  280. package/dist/src/bitgo/tss/index.d.ts +3 -2
  281. package/dist/src/bitgo/tss/index.d.ts.map +1 -1
  282. package/dist/src/bitgo/tss/index.js +26 -10
  283. package/dist/src/bitgo/tss/types.d.ts +3 -3
  284. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  285. package/dist/src/bitgo/tss/types.js +2 -2
  286. package/dist/src/bitgo/types.d.ts +3 -3
  287. package/dist/src/bitgo/types.d.ts.map +1 -1
  288. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +8 -0
  289. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
  290. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +55 -13
  291. package/dist/src/bitgo/utils/codecProps.js +24 -11
  292. package/dist/src/bitgo/utils/codecs.d.ts +11 -0
  293. package/dist/src/bitgo/utils/codecs.d.ts.map +1 -0
  294. package/dist/src/bitgo/utils/codecs.js +59 -0
  295. package/dist/src/bitgo/utils/decode.d.ts.map +1 -1
  296. package/dist/src/bitgo/utils/decode.js +30 -16
  297. package/dist/src/bitgo/utils/index.d.ts +4 -2
  298. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  299. package/dist/src/bitgo/utils/index.js +27 -11
  300. package/dist/src/bitgo/utils/messageTypes.d.ts +38 -0
  301. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
  302. package/dist/src/bitgo/utils/messageTypes.js +15 -0
  303. package/dist/src/bitgo/utils/mpcUtils.d.ts +2 -3
  304. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  305. package/dist/src/bitgo/utils/mpcUtils.js +82 -14
  306. package/dist/src/bitgo/utils/notEmpty.d.ts +2 -0
  307. package/dist/src/bitgo/utils/notEmpty.d.ts.map +1 -0
  308. package/dist/src/bitgo/utils/notEmpty.js +7 -0
  309. package/dist/src/bitgo/utils/opengpgUtils.d.ts +12 -9
  310. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  311. package/dist/src/bitgo/utils/opengpgUtils.js +77 -64
  312. package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -1
  313. package/dist/src/bitgo/utils/postWithCodec.js +4 -38
  314. package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
  315. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
  316. package/dist/src/bitgo/utils/promise-utils.js +2 -3
  317. package/dist/src/bitgo/utils/transactionUtils.d.ts +9 -0
  318. package/dist/src/bitgo/utils/transactionUtils.d.ts.map +1 -0
  319. package/dist/src/bitgo/utils/transactionUtils.js +29 -0
  320. package/dist/src/bitgo/utils/triple.d.ts +1 -1
  321. package/dist/src/bitgo/utils/triple.d.ts.map +1 -1
  322. package/dist/src/bitgo/utils/triple.js +2 -3
  323. package/dist/src/bitgo/utils/tss/addressVerification.d.ts +37 -0
  324. package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  325. package/dist/src/bitgo/utils/tss/addressVerification.js +75 -0
  326. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +56 -16
  327. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  328. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +213 -45
  329. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +299 -43
  330. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  331. package/dist/src/bitgo/utils/tss/baseTypes.js +44 -22
  332. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts +23 -0
  333. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -0
  334. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +157 -0
  335. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts +28 -0
  336. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts.map +1 -0
  337. package/dist/src/bitgo/utils/tss/ecdsa/base.js +53 -0
  338. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +19 -50
  339. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  340. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +134 -238
  341. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +212 -0
  342. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  343. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1034 -0
  344. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +8 -0
  345. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -0
  346. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +13 -0
  347. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +4 -0
  348. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
  349. package/dist/src/bitgo/utils/tss/ecdsa/index.js +10 -2
  350. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +7 -10
  351. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  352. package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
  353. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +107 -0
  354. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -0
  355. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +55 -0
  356. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts +18 -0
  357. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts.map +1 -0
  358. package/dist/src/bitgo/utils/tss/eddsa/base.js +64 -0
  359. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +26 -10
  360. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  361. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +195 -103
  362. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +51 -0
  363. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  364. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +338 -0
  365. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts +6 -0
  366. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts.map +1 -0
  367. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.js +13 -0
  368. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +3 -0
  369. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
  370. package/dist/src/bitgo/utils/tss/eddsa/index.js +28 -8
  371. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +7 -7
  372. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
  373. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +40 -0
  374. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -0
  375. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +44 -0
  376. package/dist/src/bitgo/utils/tss/index.d.ts +1 -0
  377. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
  378. package/dist/src/bitgo/utils/tss/index.js +24 -9
  379. package/dist/src/bitgo/utils/txRequest.d.ts +10 -0
  380. package/dist/src/bitgo/utils/txRequest.d.ts.map +1 -0
  381. package/dist/src/bitgo/utils/txRequest.js +47 -0
  382. package/dist/src/bitgo/utils/util.js +24 -10
  383. package/dist/src/bitgo/utils/wallet.d.ts +7 -0
  384. package/dist/src/bitgo/utils/wallet.d.ts.map +1 -0
  385. package/dist/src/bitgo/utils/wallet.js +48 -0
  386. package/dist/src/bitgo/wallet/BuildParams.d.ts +47 -1
  387. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  388. package/dist/src/bitgo/wallet/BuildParams.js +55 -11
  389. package/dist/src/bitgo/wallet/iWallet.d.ts +443 -21
  390. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  391. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  392. package/dist/src/bitgo/wallet/iWallets.d.ts +150 -19
  393. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  394. package/dist/src/bitgo/wallet/iWallets.js +63 -3
  395. package/dist/src/bitgo/wallet/index.js +6 -2
  396. package/dist/src/bitgo/wallet/wallet.d.ts +336 -23
  397. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  398. package/dist/src/bitgo/wallet/wallet.js +1678 -347
  399. package/dist/src/bitgo/wallet/wallets.d.ts +100 -9
  400. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  401. package/dist/src/bitgo/wallet/wallets.js +1038 -203
  402. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts +12 -0
  403. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts.map +1 -0
  404. package/dist/src/bitgo/walletUtil/iMessageProvider.js +3 -0
  405. package/dist/src/bitgo/walletUtil/index.d.ts +3 -0
  406. package/dist/src/bitgo/walletUtil/index.d.ts.map +1 -0
  407. package/dist/src/bitgo/walletUtil/index.js +19 -0
  408. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts +22 -0
  409. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts.map +1 -0
  410. package/dist/src/bitgo/walletUtil/midnightMessageProvider.js +95 -0
  411. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts +9 -0
  412. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts.map +1 -0
  413. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.js +72 -0
  414. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts +15 -0
  415. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts.map +1 -0
  416. package/dist/src/bitgo/walletUtil/utxoMessageProof.js +40 -0
  417. package/dist/src/bitgo/webhook/index.js +6 -2
  418. package/dist/src/bitgo/webhook/webhooks.js +23 -9
  419. package/dist/src/coins/fiat.d.ts +45 -0
  420. package/dist/src/coins/fiat.d.ts.map +1 -0
  421. package/dist/src/coins/fiat.js +94 -0
  422. package/dist/src/coins/index.d.ts +1 -6
  423. package/dist/src/coins/index.d.ts.map +1 -1
  424. package/dist/src/coins/index.js +7 -8
  425. package/dist/src/coins/ofc.d.ts +3 -2
  426. package/dist/src/coins/ofc.d.ts.map +1 -1
  427. package/dist/src/coins/ofc.js +6 -2
  428. package/dist/src/coins/ofcToken.d.ts +2 -1
  429. package/dist/src/coins/ofcToken.d.ts.map +1 -1
  430. package/dist/src/coins/ofcToken.js +27 -2
  431. package/dist/src/coins/susd.d.ts +3 -2
  432. package/dist/src/coins/susd.d.ts.map +1 -1
  433. package/dist/src/coins/susd.js +5 -1
  434. package/dist/src/common.js +27 -13
  435. package/dist/src/index.d.ts +6 -1
  436. package/dist/src/index.d.ts.map +1 -1
  437. package/dist/src/index.js +32 -11
  438. package/dist/src/lightning.d.ts +2 -0
  439. package/dist/src/lightning.d.ts.map +1 -0
  440. package/dist/src/lightning.js +13 -0
  441. package/dist/src/units.js +5 -6
  442. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
  443. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  444. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +207 -0
  445. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
  446. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  447. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +174 -0
  448. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
  449. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  450. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +108 -0
  451. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +46 -0
  452. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
  453. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +69 -0
  454. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +91 -29
  455. package/dist/test/unit/account-lib/mpc/util.d.ts +2 -0
  456. package/dist/test/unit/account-lib/mpc/util.d.ts.map +1 -0
  457. package/dist/test/unit/account-lib/mpc/util.js +53 -0
  458. package/dist/test/unit/bitgo/environment.d.ts +2 -0
  459. package/dist/test/unit/bitgo/environment.d.ts.map +1 -0
  460. package/dist/test/unit/bitgo/environment.js +38 -0
  461. package/dist/test/unit/bitgo/errors.d.ts +2 -0
  462. package/dist/test/unit/bitgo/errors.d.ts.map +1 -0
  463. package/dist/test/unit/bitgo/errors.js +262 -0
  464. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts +2 -0
  465. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts.map +1 -0
  466. package/dist/test/unit/bitgo/trading/network/encrypt.js +71 -0
  467. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts +2 -0
  468. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts.map +1 -0
  469. package/dist/test/unit/bitgo/trading/tradingAccount.js +183 -0
  470. package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +24 -4
  471. package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
  472. package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
  473. package/dist/test/unit/bitgo/utils/messageTypes.js +64 -0
  474. package/dist/test/unit/bitgo/utils/notEmpty.d.ts +2 -0
  475. package/dist/test/unit/bitgo/utils/notEmpty.d.ts.map +1 -0
  476. package/dist/test/unit/bitgo/utils/notEmpty.js +15 -0
  477. package/dist/test/unit/bitgo/utils/postWithCodec.js +32 -38
  478. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts +2 -0
  479. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  480. package/dist/test/unit/bitgo/utils/tss/addressVerification.js +85 -0
  481. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +2 -0
  482. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  483. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +465 -0
  484. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts +5 -0
  485. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts.map +1 -0
  486. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.js +36 -0
  487. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +2 -0
  488. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  489. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +239 -0
  490. package/dist/test/unit/bitgo/utils/txRequest.d.ts +2 -0
  491. package/dist/test/unit/bitgo/utils/txRequest.d.ts.map +1 -0
  492. package/dist/test/unit/bitgo/utils/txRequest.js +105 -0
  493. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts +2 -0
  494. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts.map +1 -0
  495. package/dist/test/unit/bitgo/wallet/BuildParams.js +68 -0
  496. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +23 -9
  497. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts +2 -0
  498. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts.map +1 -0
  499. package/dist/test/unit/bitgo/wallet/getAccountResources.js +133 -0
  500. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts +2 -0
  501. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts.map +1 -0
  502. package/dist/test/unit/bitgo/wallet/getResourceDelegations.js +118 -0
  503. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts +2 -0
  504. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts.map +1 -0
  505. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.js +62 -0
  506. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts +3 -0
  507. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts.map +1 -0
  508. package/dist/test/unit/bitgo/wallet/resourceManagement.js +326 -0
  509. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts +2 -0
  510. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts.map +1 -0
  511. package/dist/test/unit/bitgo/wallet/tokenApproval.js +135 -0
  512. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts +2 -0
  513. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts.map +1 -0
  514. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.js +181 -0
  515. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts +2 -0
  516. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts.map +1 -0
  517. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +43 -0
  518. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts +2 -0
  519. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts.map +1 -0
  520. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.js +276 -0
  521. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts +2 -0
  522. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts.map +1 -0
  523. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.js +216 -0
  524. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts +2 -0
  525. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts.map +1 -0
  526. package/dist/test/unit/bitgo/wallet/walletsWebauthn.js +200 -0
  527. package/dist/test/unit/lightning.d.ts +2 -0
  528. package/dist/test/unit/lightning.d.ts.map +1 -0
  529. package/dist/test/unit/lightning.js +23 -0
  530. package/dist/test/unit/units.d.ts.map +1 -1
  531. package/dist/test/unit/units.js +64 -64
  532. package/dist/tsconfig.tsbuildinfo +1 -1
  533. package/package.json +24 -21
  534. package/.eslintignore +0 -5
  535. package/CHANGELOG.md +0 -1367
  536. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +0 -77
  537. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +0 -1
  538. package/dist/src/account-lib/baseCoin/blsKeyPair.js +0 -209
  539. package/dist/src/bitgo/lightning/iLightning.d.ts +0 -186
  540. package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
  541. package/dist/src/bitgo/lightning/iLightning.js +0 -106
  542. package/dist/src/bitgo/lightning/index.d.ts +0 -5
  543. package/dist/src/bitgo/lightning/index.d.ts.map +0 -1
  544. package/dist/src/bitgo/lightning/index.js +0 -17
  545. package/dist/src/bitgo/lightning/lightning.d.ts +0 -25
  546. package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
  547. package/dist/src/bitgo/lightning/lightning.js +0 -111
  548. package/dist/src/bitgo/lightning/lightningUtils.d.ts +0 -46
  549. package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +0 -1
  550. package/dist/src/bitgo/lightning/lightningUtils.js +0 -133
  551. package/dist/src/bitgo/lightning/lnurlCodec.d.ts +0 -3
  552. package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
  553. package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
  554. package/dist/src/bitgo/trading/affirmation.d.ts +0 -35
  555. package/dist/src/bitgo/trading/affirmation.d.ts.map +0 -1
  556. package/dist/src/bitgo/trading/affirmation.js +0 -53
  557. package/dist/src/bitgo/trading/affirmations.d.ts +0 -23
  558. package/dist/src/bitgo/trading/affirmations.d.ts.map +0 -1
  559. package/dist/src/bitgo/trading/affirmations.js +0 -45
  560. package/dist/src/bitgo/trading/iAffirmation.d.ts +0 -15
  561. package/dist/src/bitgo/trading/iAffirmation.d.ts.map +0 -1
  562. package/dist/src/bitgo/trading/iAffirmation.js +0 -13
  563. package/dist/src/bitgo/trading/iAffirmations.d.ts +0 -10
  564. package/dist/src/bitgo/trading/iAffirmations.d.ts.map +0 -1
  565. package/dist/src/bitgo/trading/iAffirmations.js +0 -3
  566. package/dist/src/bitgo/trading/iSettlement.d.ts +0 -25
  567. package/dist/src/bitgo/trading/iSettlement.d.ts.map +0 -1
  568. package/dist/src/bitgo/trading/iSettlement.js +0 -17
  569. package/dist/src/bitgo/trading/iSettlements.d.ts +0 -19
  570. package/dist/src/bitgo/trading/iSettlements.d.ts.map +0 -1
  571. package/dist/src/bitgo/trading/iSettlements.js +0 -3
  572. package/dist/src/bitgo/trading/iTradingPartner.d.ts +0 -14
  573. package/dist/src/bitgo/trading/iTradingPartner.d.ts.map +0 -1
  574. package/dist/src/bitgo/trading/iTradingPartner.js +0 -17
  575. package/dist/src/bitgo/trading/iTradingPartners.d.ts +0 -15
  576. package/dist/src/bitgo/trading/iTradingPartners.d.ts.map +0 -1
  577. package/dist/src/bitgo/trading/iTradingPartners.js +0 -9
  578. package/dist/src/bitgo/trading/lock.d.ts +0 -16
  579. package/dist/src/bitgo/trading/lock.d.ts.map +0 -1
  580. package/dist/src/bitgo/trading/lock.js +0 -12
  581. package/dist/src/bitgo/trading/payload.d.ts +0 -22
  582. package/dist/src/bitgo/trading/payload.d.ts.map +0 -1
  583. package/dist/src/bitgo/trading/payload.js +0 -3
  584. package/dist/src/bitgo/trading/settlement.d.ts +0 -16
  585. package/dist/src/bitgo/trading/settlement.d.ts.map +0 -1
  586. package/dist/src/bitgo/trading/settlement.js +0 -21
  587. package/dist/src/bitgo/trading/settlements.d.ts +0 -32
  588. package/dist/src/bitgo/trading/settlements.d.ts.map +0 -1
  589. package/dist/src/bitgo/trading/settlements.js +0 -61
  590. package/dist/src/bitgo/trading/trade.d.ts +0 -29
  591. package/dist/src/bitgo/trading/trade.d.ts.map +0 -1
  592. package/dist/src/bitgo/trading/trade.js +0 -11
  593. package/dist/src/bitgo/trading/tradingPartner.d.ts +0 -26
  594. package/dist/src/bitgo/trading/tradingPartner.d.ts.map +0 -1
  595. package/dist/src/bitgo/trading/tradingPartner.js +0 -31
  596. package/dist/src/bitgo/trading/tradingPartners.d.ts +0 -24
  597. package/dist/src/bitgo/trading/tradingPartners.d.ts.map +0 -1
  598. package/dist/src/bitgo/trading/tradingPartners.js +0 -32
  599. package/dist/src/bitgo/utils/blsUtils.d.ts +0 -52
  600. package/dist/src/bitgo/utils/blsUtils.d.ts.map +0 -1
  601. package/dist/src/bitgo/utils/blsUtils.js +0 -237
  602. package/dist/src/bitgo/utils/iBlsUtils.d.ts +0 -14
  603. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +0 -1
  604. package/dist/src/bitgo/utils/iBlsUtils.js +0 -3
  605. package/dist/src/coins/fiateur.d.ts +0 -31
  606. package/dist/src/coins/fiateur.d.ts.map +0 -1
  607. package/dist/src/coins/fiateur.js +0 -57
  608. package/dist/src/coins/fiatgbp.d.ts +0 -31
  609. package/dist/src/coins/fiatgbp.d.ts.map +0 -1
  610. package/dist/src/coins/fiatgbp.js +0 -57
  611. package/dist/src/coins/fiatusd.d.ts +0 -31
  612. package/dist/src/coins/fiatusd.d.ts.map +0 -1
  613. package/dist/src/coins/fiatusd.js +0 -57
  614. package/dist/src/coins/tfiateur.d.ts +0 -11
  615. package/dist/src/coins/tfiateur.d.ts.map +0 -1
  616. package/dist/src/coins/tfiateur.js +0 -17
  617. package/dist/src/coins/tfiatgbp.d.ts +0 -11
  618. package/dist/src/coins/tfiatgbp.d.ts.map +0 -1
  619. package/dist/src/coins/tfiatgbp.js +0 -17
  620. package/dist/src/coins/tfiatusd.d.ts +0 -11
  621. package/dist/src/coins/tfiatusd.d.ts.map +0 -1
  622. package/dist/src/coins/tfiatusd.js +0 -17
  623. package/dist/src/openssl/index.d.ts +0 -5
  624. package/dist/src/openssl/index.d.ts.map +0 -1
  625. package/dist/src/openssl/index.js +0 -9
  626. package/dist/test/unit/openssl.d.ts +0 -2
  627. package/dist/test/unit/openssl.d.ts.map +0 -1
  628. package/dist/test/unit/openssl.js +0 -39
@@ -0,0 +1,51 @@
1
+ import { EddsaMPCv2KeyGenRound1Request, EddsaMPCv2KeyGenRound1Response, EddsaMPCv2KeyGenRound2Request, EddsaMPCv2KeyGenRound2Response, MPCv2PartyFromStringOrNumber } from '@bitgo/public-types';
2
+ import { KeychainsTriplet } from '../../../baseCoin';
3
+ import { Keychain } from '../../../keychain';
4
+ import { TSSParamsForMessageWithPrv, TSSParamsWithPrv, TxRequest } from '../baseTypes';
5
+ import { BaseEddsaUtils } from './base';
6
+ import { EddsaMPCv2KeyGenSendFn } from './eddsaMPCv2KeyGenSender';
7
+ export declare class EddsaMPCv2Utils extends BaseEddsaUtils {
8
+ /** @inheritdoc */
9
+ createKeychains(params: {
10
+ passphrase: string;
11
+ enterprise: string;
12
+ originalPasscodeEncryptionCode?: string;
13
+ }): Promise<KeychainsTriplet>;
14
+ createParticipantKeychain(participantIndex: MPCv2PartyFromStringOrNumber, commonKeychain: string, privateMaterial?: Buffer, reducedPrivateMaterial?: Buffer, passphrase?: string, originalPasscodeEncryptionCode?: string): Promise<Keychain>;
15
+ private addUserKeychain;
16
+ private addBackupKeychain;
17
+ private addBitgoKeychain;
18
+ sendKeyGenerationRound1(enterprise: string, payload: EddsaMPCv2KeyGenRound1Request): Promise<EddsaMPCv2KeyGenRound1Response>;
19
+ sendKeyGenerationRound1BySender(senderFn: EddsaMPCv2KeyGenSendFn<EddsaMPCv2KeyGenRound1Response>, payload: EddsaMPCv2KeyGenRound1Request): Promise<EddsaMPCv2KeyGenRound1Response>;
20
+ sendKeyGenerationRound2(enterprise: string, payload: EddsaMPCv2KeyGenRound2Request): Promise<EddsaMPCv2KeyGenRound2Response>;
21
+ sendKeyGenerationRound2BySender(senderFn: EddsaMPCv2KeyGenSendFn<EddsaMPCv2KeyGenRound2Response>, payload: EddsaMPCv2KeyGenRound2Request): Promise<EddsaMPCv2KeyGenRound2Response>;
22
+ /**
23
+ * Signs the transaction associated with the transaction request.
24
+ * @param {string | TxRequest} params.txRequest - transaction request object or id
25
+ * @param {string} params.prv - decrypted private key
26
+ * @param {string} params.reqId - request id
27
+ * @returns {Promise<TxRequest>} fully signed TxRequest
28
+ */
29
+ signTxRequest(params: TSSParamsWithPrv): Promise<TxRequest>;
30
+ /**
31
+ * Signs the message associated with the transaction request.
32
+ * @param {string | TxRequest} params.txRequest - transaction request object or id
33
+ * @param {string} params.prv - decrypted private key
34
+ * @param {string} params.reqId - request id
35
+ * @returns {Promise<TxRequest>} fully signed TxRequest
36
+ */
37
+ signTxRequestForMessage(params: TSSParamsForMessageWithPrv): Promise<TxRequest>;
38
+ /**
39
+ * Full 3-round EdDSA MPCv2 (MPS) online signing orchestration.
40
+ *
41
+ * Protocol overview:
42
+ * WASM Round 0 → getFirstMessage() (produces userMsg1)
43
+ * API Round 1 → send userMsg1 / recv bitgoMsg1
44
+ * WASM Round 1 → handleIncomingMessages([userMsg1, bitgoMsg1]) (produces userMsg2)
45
+ * API Round 2 → send userMsg2 / recv bitgoMsg2
46
+ * WASM Round 2 → handleIncomingMessages([userMsg2, bitgoMsg2]) (produces userMsg3)
47
+ * API Round 3 → send userMsg3 (WP finalises; no BitGo msg returned to client)
48
+ */
49
+ private signRequestBase;
50
+ }
51
+ //# sourceMappingURL=eddsaMPCv2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eddsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/eddsaMPCv2.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,EAI9B,4BAA4B,EAC7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAsB,QAAQ,EAAW,MAAM,mBAAmB,CAAC;AAa1E,OAAO,EAAmC,0BAA0B,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACxH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAA6B,MAAM,0BAA0B,CAAC;AAE7F,qBAAa,eAAgB,SAAQ,cAAc;IACjD,kBAAkB;IACZ,eAAe,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,8BAA8B,CAAC,EAAE,MAAM,CAAC;KACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqJvB,yBAAyB,CAC7B,gBAAgB,EAAE,4BAA4B,EAC9C,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,EACxB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,UAAU,CAAC,EAAE,MAAM,EACnB,8BAA8B,CAAC,EAAE,MAAM,GACtC,OAAO,CAAC,QAAQ,CAAC;YA+CN,eAAe;YAiBf,iBAAiB;YAiBjB,gBAAgB;IAKxB,uBAAuB,CAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,8BAA8B,CAAC;IAIpC,+BAA+B,CACnC,QAAQ,EAAE,sBAAsB,CAAC,8BAA8B,CAAC,EAChE,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,8BAA8B,CAAC;IAIpC,uBAAuB,CAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,8BAA8B,CAAC;IAIpC,+BAA+B,CACnC,QAAQ,EAAE,sBAAsB,CAAC,8BAA8B,CAAC,EAChE,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,8BAA8B,CAAC;IAQ1C;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKjE;;;;;;OAMG;IACG,uBAAuB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,SAAS,CAAC;IAKrF;;;;;;;;;;OAUG;YACW,eAAe;CAyJ9B"}
@@ -0,0 +1,338 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.EddsaMPCv2Utils = void 0;
40
+ const assert_1 = __importDefault(require("assert"));
41
+ const pgp = __importStar(require("openpgp"));
42
+ const io_ts_types_1 = require("io-ts-types");
43
+ const public_types_1 = require("@bitgo/public-types");
44
+ const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
45
+ const bitgoPubKeys_1 = require("../../../tss/bitgoPubKeys");
46
+ const common_1 = require("../../../tss/common");
47
+ const codecs_1 = require("../../codecs");
48
+ const eddsaMPCv2_1 = require("../../../tss/eddsa/eddsaMPCv2");
49
+ const opengpgUtils_1 = require("../../opengpgUtils");
50
+ const typesMPCv2_1 = require("../ecdsa/typesMPCv2");
51
+ const baseTypes_1 = require("../baseTypes");
52
+ const base_1 = require("./base");
53
+ const eddsaMPCv2KeyGenSender_1 = require("./eddsaMPCv2KeyGenSender");
54
+ class EddsaMPCv2Utils extends base_1.BaseEddsaUtils {
55
+ /** @inheritdoc */
56
+ async createKeychains(params) {
57
+ const userKeyPair = await (0, opengpgUtils_1.generateGPGKeyPair)('ed25519');
58
+ const userGpgKey = await pgp.readPrivateKey({ armoredKey: userKeyPair.privateKey });
59
+ const userGpgPublicKey = userKeyPair.publicKey;
60
+ const [userPk, userSk] = await sdk_lib_mpc_1.MPSComms.extractEd25519KeyPair(userGpgKey);
61
+ const backupKeyPair = await (0, opengpgUtils_1.generateGPGKeyPair)('ed25519');
62
+ const backupGpgKey = await pgp.readPrivateKey({ armoredKey: backupKeyPair.privateKey });
63
+ const backupGpgPublicKey = backupKeyPair.publicKey;
64
+ const [backupPk, backupSk] = await sdk_lib_mpc_1.MPSComms.extractEd25519KeyPair(backupGpgKey);
65
+ // Get the BitGo EdDSA MPCv2 public key (ed25519). Using the default mpcv2PublicKey (secp256k1)
66
+ // here would cause a WASM "Invalid Input" error, so we require the dedicated eddsaMpcv2PublicKey.
67
+ const { eddsaMpcv2PublicKey } = await this.getBitgoGpgPubkeyBasedOnFeatureFlags(params.enterprise, true);
68
+ const bitgoPublicGpgKey = eddsaMpcv2PublicKey ?? this.bitgoEddsaMpcv2PublicGpgKey;
69
+ (0, assert_1.default)(bitgoPublicGpgKey, 'Failed to get BitGo EdDSA MPCv2 GPG public key');
70
+ const bitgoPublicGpgKeyArmored = bitgoPublicGpgKey.armor();
71
+ if ((0, bitgoPubKeys_1.envRequiresBitgoPubGpgKeyConfig)(this.bitgo.getEnv())) {
72
+ (0, assert_1.default)((0, bitgoPubKeys_1.isBitgoEddsaMpcv2PubKey)(bitgoPublicGpgKeyArmored), 'Invalid BitGo GPG public key');
73
+ }
74
+ const bitgoKeyObj = await pgp.readKey({ armoredKey: bitgoPublicGpgKeyArmored });
75
+ const bitgoPk = await sdk_lib_mpc_1.MPSComms.extractEd25519PublicKey(bitgoKeyObj);
76
+ // Create DKG sessions for user (party 0) and backup (party 1)
77
+ const userDkg = new sdk_lib_mpc_1.EddsaMPSDkg.DKG(3, 2, typesMPCv2_1.MPCv2PartiesEnum.USER);
78
+ const backupDkg = new sdk_lib_mpc_1.EddsaMPSDkg.DKG(3, 2, typesMPCv2_1.MPCv2PartiesEnum.BACKUP);
79
+ // #region round 1
80
+ await userDkg.initDkg(userSk, [backupPk, bitgoPk]);
81
+ await backupDkg.initDkg(backupSk, [userPk, bitgoPk]);
82
+ const userMsg1 = userDkg.getFirstMessage();
83
+ const backupMsg1 = backupDkg.getFirstMessage();
84
+ const userSignedMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(userMsg1.payload), userGpgKey);
85
+ const backupSignedMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(backupMsg1.payload), backupGpgKey);
86
+ (0, assert_1.default)(io_ts_types_1.NonEmptyString.is(userGpgPublicKey), 'User GPG public key is required');
87
+ (0, assert_1.default)(io_ts_types_1.NonEmptyString.is(backupGpgPublicKey), 'Backup GPG public key is required');
88
+ const { sessionId, bitgoMsg1 } = await this.sendKeyGenerationRound1(params.enterprise, {
89
+ userGpgPublicKey,
90
+ backupGpgPublicKey,
91
+ userMsg1: userSignedMsg1,
92
+ backupMsg1: backupSignedMsg1,
93
+ });
94
+ // #endregion
95
+ // #region round 2
96
+ const bitgoRawMsg1Bytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoMsg1, bitgoKeyObj);
97
+ const bitgoDeserializedMsg1 = {
98
+ from: typesMPCv2_1.MPCv2PartiesEnum.BITGO,
99
+ payload: new Uint8Array(bitgoRawMsg1Bytes),
100
+ };
101
+ const round1Messages = [userMsg1, backupMsg1, bitgoDeserializedMsg1];
102
+ const userRound2Msgs = userDkg.handleIncomingMessages(round1Messages);
103
+ const backupRound2Msgs = backupDkg.handleIncomingMessages(round1Messages);
104
+ (0, assert_1.default)(userRound2Msgs.length === 1, 'User round 1 should produce exactly one round 2 message');
105
+ (0, assert_1.default)(backupRound2Msgs.length === 1, 'Backup round 1 should produce exactly one round 2 message');
106
+ const userMsg2 = userRound2Msgs[0];
107
+ const backupMsg2 = backupRound2Msgs[0];
108
+ const userSignedMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(userMsg2.payload), userGpgKey);
109
+ const backupSignedMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(backupMsg2.payload), backupGpgKey);
110
+ const { sessionId: sessionIdRound2, commonPublicKeychain, bitgoMsg2, } = await this.sendKeyGenerationRound2(params.enterprise, {
111
+ sessionId,
112
+ userMsg2: userSignedMsg2,
113
+ backupMsg2: backupSignedMsg2,
114
+ });
115
+ // #endregion
116
+ // #region keychain creation
117
+ assert_1.default.equal(sessionId, sessionIdRound2, 'Round 1 and round 2 session IDs do not match');
118
+ const bitgoRawMsg2Bytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoMsg2, bitgoKeyObj);
119
+ const bitgoDeserializedMsg2 = {
120
+ from: typesMPCv2_1.MPCv2PartiesEnum.BITGO,
121
+ payload: new Uint8Array(bitgoRawMsg2Bytes),
122
+ };
123
+ const round2Messages = [userMsg2, backupMsg2, bitgoDeserializedMsg2];
124
+ const userFinalMsgs = userDkg.handleIncomingMessages(round2Messages);
125
+ const backupFinalMsgs = backupDkg.handleIncomingMessages(round2Messages);
126
+ (0, assert_1.default)(userFinalMsgs.length === 0, 'WASM round 2 should produce no output messages for user');
127
+ (0, assert_1.default)(backupFinalMsgs.length === 0, 'WASM round 2 should produce no output messages for backup');
128
+ const userCommonKeychain = userDkg.getCommonKeychain();
129
+ const backupCommonKeychain = backupDkg.getCommonKeychain();
130
+ assert_1.default.equal(userCommonKeychain, commonPublicKeychain, 'User computed keychain does not match BitGo common keychain');
131
+ assert_1.default.equal(backupCommonKeychain, commonPublicKeychain, 'Backup computed keychain does not match BitGo common keychain');
132
+ const userPrivateMaterial = userDkg.getKeyShare();
133
+ const backupPrivateMaterial = backupDkg.getKeyShare();
134
+ const userReducedPrivateMaterial = userDkg.getReducedKeyShare();
135
+ const backupReducedPrivateMaterial = backupDkg.getReducedKeyShare();
136
+ const userKeychainPromise = this.addUserKeychain(userCommonKeychain, userPrivateMaterial, userReducedPrivateMaterial, params.passphrase, params.originalPasscodeEncryptionCode);
137
+ const backupKeychainPromise = this.addBackupKeychain(backupCommonKeychain, backupPrivateMaterial, backupReducedPrivateMaterial, params.passphrase, params.originalPasscodeEncryptionCode);
138
+ const bitgoKeychainPromise = this.addBitgoKeychain(userCommonKeychain);
139
+ const [userKeychain, backupKeychain, bitgoKeychain] = await Promise.all([
140
+ userKeychainPromise,
141
+ backupKeychainPromise,
142
+ bitgoKeychainPromise,
143
+ ]);
144
+ // #endregion
145
+ return {
146
+ userKeychain,
147
+ backupKeychain,
148
+ bitgoKeychain,
149
+ };
150
+ }
151
+ // #region keychain utils
152
+ async createParticipantKeychain(participantIndex, commonKeychain, privateMaterial, reducedPrivateMaterial, passphrase, originalPasscodeEncryptionCode) {
153
+ let source;
154
+ let encryptedPrv = undefined;
155
+ let reducedEncryptedPrv = undefined;
156
+ switch (participantIndex) {
157
+ case typesMPCv2_1.MPCv2PartiesEnum.USER:
158
+ case typesMPCv2_1.MPCv2PartiesEnum.BACKUP:
159
+ source = participantIndex === typesMPCv2_1.MPCv2PartiesEnum.USER ? 'user' : 'backup';
160
+ (0, assert_1.default)(privateMaterial, `Private material is required for ${source} keychain`);
161
+ (0, assert_1.default)(reducedPrivateMaterial, `Reduced private material is required for ${source} keychain`);
162
+ (0, assert_1.default)(passphrase, `Passphrase is required for ${source} keychain`);
163
+ encryptedPrv = this.bitgo.encrypt({
164
+ input: privateMaterial.toString('base64'),
165
+ password: passphrase,
166
+ });
167
+ // Encrypts the CBOR-encoded ReducedKeyShare (which contains the party's public
168
+ // key) with the wallet passphrase. The result is stored as reducedEncryptedPrv
169
+ // on the key card QR code and represents a second copy of key material
170
+ // beyond the server-stored encryptedPrv.
171
+ reducedEncryptedPrv = this.bitgo.encrypt({
172
+ // Buffer.toString('base64') can not be used here as it does not work on the browser.
173
+ // The browser deals with a Buffer as Uint8Array, therefore in the browser .toString('base64') just creates a comma separated string of the array values.
174
+ input: btoa(String.fromCharCode.apply(null, Array.from(new Uint8Array(reducedPrivateMaterial)))),
175
+ password: passphrase,
176
+ });
177
+ break;
178
+ case typesMPCv2_1.MPCv2PartiesEnum.BITGO:
179
+ source = 'bitgo';
180
+ break;
181
+ default:
182
+ throw new Error('Invalid participant index');
183
+ }
184
+ const keychainParams = {
185
+ source,
186
+ keyType: 'tss',
187
+ commonKeychain,
188
+ encryptedPrv,
189
+ originalPasscodeEncryptionCode,
190
+ isMPCv2: true,
191
+ };
192
+ const keychains = this.baseCoin.keychains();
193
+ return { ...(await keychains.add(keychainParams)), reducedEncryptedPrv };
194
+ }
195
+ async addUserKeychain(commonKeychain, privateMaterial, reducedPrivateMaterial, passphrase, originalPasscodeEncryptionCode) {
196
+ return this.createParticipantKeychain(typesMPCv2_1.MPCv2PartiesEnum.USER, commonKeychain, privateMaterial, reducedPrivateMaterial, passphrase, originalPasscodeEncryptionCode);
197
+ }
198
+ async addBackupKeychain(commonKeychain, privateMaterial, reducedPrivateMaterial, passphrase, originalPasscodeEncryptionCode) {
199
+ return this.createParticipantKeychain(typesMPCv2_1.MPCv2PartiesEnum.BACKUP, commonKeychain, privateMaterial, reducedPrivateMaterial, passphrase, originalPasscodeEncryptionCode);
200
+ }
201
+ async addBitgoKeychain(commonKeychain) {
202
+ return this.createParticipantKeychain(typesMPCv2_1.MPCv2PartiesEnum.BITGO, commonKeychain);
203
+ }
204
+ // #endregion
205
+ async sendKeyGenerationRound1(enterprise, payload) {
206
+ return this.sendKeyGenerationRound1BySender((0, eddsaMPCv2KeyGenSender_1.KeyGenSenderForEnterprise)(this.bitgo, enterprise), payload);
207
+ }
208
+ async sendKeyGenerationRound1BySender(senderFn, payload) {
209
+ return senderFn(public_types_1.MPCv2KeyGenStateEnum['MPCv2-R1'], payload);
210
+ }
211
+ async sendKeyGenerationRound2(enterprise, payload) {
212
+ return this.sendKeyGenerationRound2BySender((0, eddsaMPCv2KeyGenSender_1.KeyGenSenderForEnterprise)(this.bitgo, enterprise), payload);
213
+ }
214
+ async sendKeyGenerationRound2BySender(senderFn, payload) {
215
+ return senderFn(public_types_1.MPCv2KeyGenStateEnum['MPCv2-R2'], payload);
216
+ }
217
+ // #endregion
218
+ // #region sign tx request
219
+ /**
220
+ * Signs the transaction associated with the transaction request.
221
+ * @param {string | TxRequest} params.txRequest - transaction request object or id
222
+ * @param {string} params.prv - decrypted private key
223
+ * @param {string} params.reqId - request id
224
+ * @returns {Promise<TxRequest>} fully signed TxRequest
225
+ */
226
+ async signTxRequest(params) {
227
+ this.bitgo.setRequestTracer(params.reqId);
228
+ return this.signRequestBase(params, baseTypes_1.RequestType.tx);
229
+ }
230
+ /**
231
+ * Signs the message associated with the transaction request.
232
+ * @param {string | TxRequest} params.txRequest - transaction request object or id
233
+ * @param {string} params.prv - decrypted private key
234
+ * @param {string} params.reqId - request id
235
+ * @returns {Promise<TxRequest>} fully signed TxRequest
236
+ */
237
+ async signTxRequestForMessage(params) {
238
+ this.bitgo.setRequestTracer(params.reqId);
239
+ return this.signRequestBase(params, baseTypes_1.RequestType.message);
240
+ }
241
+ /**
242
+ * Full 3-round EdDSA MPCv2 (MPS) online signing orchestration.
243
+ *
244
+ * Protocol overview:
245
+ * WASM Round 0 → getFirstMessage() (produces userMsg1)
246
+ * API Round 1 → send userMsg1 / recv bitgoMsg1
247
+ * WASM Round 1 → handleIncomingMessages([userMsg1, bitgoMsg1]) (produces userMsg2)
248
+ * API Round 2 → send userMsg2 / recv bitgoMsg2
249
+ * WASM Round 2 → handleIncomingMessages([userMsg2, bitgoMsg2]) (produces userMsg3)
250
+ * API Round 3 → send userMsg3 (WP finalises; no BitGo msg returned to client)
251
+ */
252
+ async signRequestBase(params, requestType) {
253
+ const userKeyShare = Buffer.from(params.prv, 'base64');
254
+ const txRequest = typeof params.txRequest === 'string'
255
+ ? await (0, common_1.getTxRequest)(this.bitgo, this.wallet.id(), params.txRequest, params.reqId)
256
+ : params.txRequest;
257
+ let txOrMessageToSign;
258
+ let derivationPath;
259
+ let bufferContent;
260
+ // One fresh ed25519 GPG key pair per signing session, reused across all signing rounds.
261
+ const userGpgKey = await (0, opengpgUtils_1.generateGPGKeyPair)('ed25519');
262
+ const userGpgPrvKey = await pgp.readPrivateKey({ armoredKey: userGpgKey.privateKey });
263
+ const bitgoGpgPubKey = await this.pickBitgoPubGpgKeyForSigning(true, params.reqId, txRequest.enterpriseId, true);
264
+ if (!bitgoGpgPubKey) {
265
+ throw new Error('Missing BitGo GPG key for MPCv2');
266
+ }
267
+ if (requestType === baseTypes_1.RequestType.tx) {
268
+ (0, assert_1.default)(txRequest.transactions || txRequest.unsignedTxs, 'Unable to find transactions in txRequest');
269
+ const unsignedTx = txRequest.apiVersion === 'full' ? txRequest.transactions[0].unsignedTx : txRequest.unsignedTxs[0];
270
+ txOrMessageToSign = unsignedTx.signableHex;
271
+ (0, assert_1.default)(txOrMessageToSign, 'Missing signableHex in unsignedTx');
272
+ derivationPath = unsignedTx.derivationPath;
273
+ bufferContent = Buffer.from(txOrMessageToSign, 'hex');
274
+ await this.baseCoin.verifyTransaction({
275
+ txPrebuild: { txHex: unsignedTx.serializedTxHex ?? txOrMessageToSign },
276
+ txParams: params.txParams || { recipients: [] },
277
+ wallet: this.wallet,
278
+ walletType: this.wallet.multisigType(),
279
+ });
280
+ }
281
+ else if (requestType === baseTypes_1.RequestType.message) {
282
+ (0, assert_1.default)(txRequest.messages && txRequest.messages.length > 0, 'Unable to find messages in txRequest');
283
+ txOrMessageToSign = txRequest.messages[0].messageEncoded;
284
+ (0, assert_1.default)(txOrMessageToSign, 'Missing messageEncoded in messages[0]');
285
+ derivationPath = txRequest.messages[0].derivationPath || 'm/0';
286
+ bufferContent = Buffer.from(txOrMessageToSign, 'hex');
287
+ }
288
+ else {
289
+ throw new Error('Invalid request type');
290
+ }
291
+ // ── WASM Round 0 ──────────────────────────────────────────────────────────
292
+ const partyId = params.mpcv2PartyId ?? typesMPCv2_1.MPCv2PartiesEnum.USER;
293
+ const signerShareType = partyId === typesMPCv2_1.MPCv2PartiesEnum.USER ? baseTypes_1.SignatureShareType.USER : baseTypes_1.SignatureShareType.BACKUP;
294
+ const userDsg = new sdk_lib_mpc_1.EddsaMPSDsg.DSG(partyId);
295
+ userDsg.initDsg(userKeyShare, bufferContent, derivationPath, typesMPCv2_1.MPCv2PartiesEnum.BITGO);
296
+ const userMsg1 = userDsg.getFirstMessage();
297
+ // ── API Round 1 ───────────────────────────────────────────────────────────
298
+ const signatureShareRound1 = await (0, eddsaMPCv2_1.getSignatureShareRoundOne)(userMsg1, userGpgPrvKey, partyId);
299
+ let latestTxRequest = await (0, common_1.sendSignatureShareV2)(this.bitgo, txRequest.walletId, txRequest.txRequestId, [signatureShareRound1], requestType, this.baseCoin.getMPCAlgorithm(), userGpgKey.publicKey, undefined, this.wallet.multisigTypeVersion(), params.reqId);
300
+ (0, assert_1.default)(latestTxRequest.transactions || latestTxRequest.messages, 'Invalid txRequest object after round 1');
301
+ const signatureShares1 = requestType === baseTypes_1.RequestType.tx
302
+ ? latestTxRequest.transactions[0].signatureShares
303
+ : latestTxRequest.messages[0].signatureShares;
304
+ const bitgoShareRoundOne = (0, common_1.getBitgoSignatureShare)(signatureShares1, signerShareType);
305
+ const parsedBitGoToUserSigShareRoundOne = (0, codecs_1.decodeWithCodec)(public_types_1.EddsaMPCv2SignatureShareRound1Output, JSON.parse(bitgoShareRoundOne.share), 'Unexpected signature share response. Unable to parse data.');
306
+ if (parsedBitGoToUserSigShareRoundOne.type !== 'round1Output') {
307
+ throw new Error('Unexpected signature share response. Unable to parse data.');
308
+ }
309
+ const bitgoDeserializedMsg1 = await (0, eddsaMPCv2_1.verifyBitGoMessageRoundOne)(parsedBitGoToUserSigShareRoundOne, bitgoGpgPubKey);
310
+ // ── WASM Round 1 ──────────────────────────────────────────────────────────
311
+ const [userMsg2] = userDsg.handleIncomingMessages([userMsg1, bitgoDeserializedMsg1]);
312
+ (0, assert_1.default)(userMsg2, 'WASM round 1 produced no message');
313
+ // ── API Round 2 ───────────────────────────────────────────────────────────
314
+ const signatureShareRoundTwo = await (0, eddsaMPCv2_1.getSignatureShareRoundTwo)(userMsg2, userGpgPrvKey, partyId);
315
+ latestTxRequest = await (0, common_1.sendSignatureShareV2)(this.bitgo, txRequest.walletId, txRequest.txRequestId, [signatureShareRoundTwo], requestType, this.baseCoin.getMPCAlgorithm(), userGpgKey.publicKey, undefined, this.wallet.multisigTypeVersion(), params.reqId);
316
+ (0, assert_1.default)(latestTxRequest.transactions || latestTxRequest.messages, 'Invalid txRequest object after round 2');
317
+ const txRequestSignatureShares = requestType === baseTypes_1.RequestType.tx
318
+ ? latestTxRequest.transactions[0].signatureShares
319
+ : latestTxRequest.messages[0].signatureShares;
320
+ const bitgoShareRoundTwo = (0, common_1.getBitgoSignatureShare)(txRequestSignatureShares, signerShareType);
321
+ const parsedBitGoToUserSigShareRoundTwo = (0, codecs_1.decodeWithCodec)(public_types_1.EddsaMPCv2SignatureShareRound2Output, JSON.parse(bitgoShareRoundTwo.share), 'Unexpected signature share response. Unable to parse data.');
322
+ if (parsedBitGoToUserSigShareRoundTwo.type !== 'round2Output') {
323
+ throw new Error('Unexpected signature share response. Unable to parse data.');
324
+ }
325
+ const bitgoDeserializedMsg2 = await (0, eddsaMPCv2_1.verifyBitGoMessageRoundTwo)(parsedBitGoToUserSigShareRoundTwo, bitgoGpgPubKey);
326
+ // ── WASM Round 2 ──────────────────────────────────────────────────────────
327
+ const [userMsg3] = userDsg.handleIncomingMessages([userMsg2, bitgoDeserializedMsg2]);
328
+ (0, assert_1.default)(userMsg3, 'WASM round 2 produced no message');
329
+ // ── API Round 3 ───────────────────────────────────────────────────────────
330
+ // No BitGo response to verify; WP finalises the signing server-side
331
+ const signatureShareRound3 = await (0, eddsaMPCv2_1.getSignatureShareRoundThree)(userMsg3, userGpgPrvKey, partyId);
332
+ const round3TxRequest = await (0, common_1.sendSignatureShareV2)(this.bitgo, txRequest.walletId, txRequest.txRequestId, [signatureShareRound3], requestType, this.baseCoin.getMPCAlgorithm(), userGpgKey.publicKey, undefined, this.wallet.multisigTypeVersion(), params.reqId);
333
+ (0, assert_1.default)(round3TxRequest?.txRequestId === txRequest.txRequestId, 'Invalid txRequest object after round 3');
334
+ return (0, common_1.sendTxRequest)(this.bitgo, txRequest.walletId, txRequest.txRequestId, requestType, params.reqId);
335
+ }
336
+ }
337
+ exports.EddsaMPCv2Utils = EddsaMPCv2Utils;
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2FNUEN2Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvZWRkc2EvZWRkc2FNUEN2Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsNkNBQStCO0FBQy9CLDZDQUE2QztBQUM3QyxzREFTNkI7QUFDN0IseURBQXVGO0FBR3ZGLDREQUFxRztBQUNyRyxnREFBZ0g7QUFDaEgseUNBQStDO0FBQy9DLDhEQU11QztBQUN2QyxxREFBd0Q7QUFDeEQsb0RBQXVEO0FBQ3ZELDRDQUF3SDtBQUN4SCxpQ0FBd0M7QUFDeEMscUVBQTZGO0FBRTdGLE1BQWEsZUFBZ0IsU0FBUSxxQkFBYztJQUNqRCxrQkFBa0I7SUFDbEIsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUlyQjtRQUNDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBQSxpQ0FBa0IsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxNQUFNLFVBQVUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDcEYsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsTUFBTSxzQkFBUSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFFLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBQSxpQ0FBa0IsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxNQUFNLFlBQVksR0FBRyxNQUFNLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDeEYsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUMsU0FB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QyxDQUFDO1FBQ3JGLElBQUEsZ0JBQU0sRUFBQyxRQUFRLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztRQUVyRCw2RUFBNkU7UUFDN0Usb0VBQW9FO1FBQ3BFLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxJQUFBLHdDQUEyQixFQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakcsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFBLDZCQUFvQixFQUNoRCxJQUFJLENBQUMsS0FBSyxFQUNWLFNBQVMsQ0FBQyxRQUFRLEVBQ2xCLFNBQVMsQ0FBQyxXQUFXLEVBQ3JCLENBQUMsb0JBQW9CLENBQUMsRUFDdEIsV0FBVyxFQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLEVBQy9CLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLFNBQVMsRUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQ2pDLE1BQU0sQ0FBQyxLQUFLLENBQ2IsQ0FBQztRQUNGLElBQUEsZ0JBQU0sRUFBQyxlQUFlLEVBQUUsV0FBVyxLQUFLLFNBQVMsQ0FBQyxXQUFXLEVBQUUsd0NBQXdDLENBQUMsQ0FBQztRQUV6RyxPQUFPLElBQUEsc0JBQWEsRUFBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pHLENBQUM7Q0FHRjtBQXBkRCwwQ0FvZEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyBwZ3AgZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBOb25FbXB0eVN0cmluZyB9IGZyb20gJ2lvLXRzLXR5cGVzJztcbmltcG9ydCB7XG4gIEVkZHNhTVBDdjJLZXlHZW5Sb3VuZDFSZXF1ZXN0LFxuICBFZGRzYU1QQ3YyS2V5R2VuUm91bmQxUmVzcG9uc2UsXG4gIEVkZHNhTVBDdjJLZXlHZW5Sb3VuZDJSZXF1ZXN0LFxuICBFZGRzYU1QQ3YyS2V5R2VuUm91bmQyUmVzcG9uc2UsXG4gIEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kMU91dHB1dCxcbiAgRWRkc2FNUEN2MlNpZ25hdHVyZVNoYXJlUm91bmQyT3V0cHV0LFxuICBNUEN2MktleUdlblN0YXRlRW51bSxcbiAgTVBDdjJQYXJ0eUZyb21TdHJpbmdPck51bWJlcixcbn0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQgeyBFZGRzYU1QU0RrZywgRWRkc2FNUFNEc2csIE1QU0NvbW1zLCBNUFNUeXBlcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcbmltcG9ydCB7IEtleWNoYWluc1RyaXBsZXQgfSBmcm9tICcuLi8uLi8uLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBBZGRLZXljaGFpbk9wdGlvbnMsIEtleWNoYWluLCBLZXlUeXBlIH0gZnJvbSAnLi4vLi4vLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgZW52UmVxdWlyZXNCaXRnb1B1YkdwZ0tleUNvbmZpZywgaXNCaXRnb0VkZHNhTXBjdjJQdWJLZXkgfSBmcm9tICcuLi8uLi8uLi90c3MvYml0Z29QdWJLZXlzJztcbmltcG9ydCB7IGdldEJpdGdvU2lnbmF0dXJlU2hhcmUsIGdldFR4UmVxdWVzdCwgc2VuZFNpZ25hdHVyZVNoYXJlVjIsIHNlbmRUeFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi90c3MvY29tbW9uJztcbmltcG9ydCB7IGRlY29kZVdpdGhDb2RlYyB9IGZyb20gJy4uLy4uL2NvZGVjcyc7XG5pbXBvcnQge1xuICBnZXRTaWduYXR1cmVTaGFyZVJvdW5kT25lLFxuICBnZXRTaWduYXR1cmVTaGFyZVJvdW5kVHdvLFxuICBnZXRTaWduYXR1cmVTaGFyZVJvdW5kVGhyZWUsXG4gIHZlcmlmeUJpdEdvTWVzc2FnZVJvdW5kT25lLFxuICB2ZXJpZnlCaXRHb01lc3NhZ2VSb3VuZFR3byxcbn0gZnJvbSAnLi4vLi4vLi4vdHNzL2VkZHNhL2VkZHNhTVBDdjInO1xuaW1wb3J0IHsgZ2VuZXJhdGVHUEdLZXlQYWlyIH0gZnJvbSAnLi4vLi4vb3BlbmdwZ1V0aWxzJztcbmltcG9ydCB7IE1QQ3YyUGFydGllc0VudW0gfSBmcm9tICcuLi9lY2RzYS90eXBlc01QQ3YyJztcbmltcG9ydCB7IFJlcXVlc3RUeXBlLCBTaWduYXR1cmVTaGFyZVR5cGUsIFRTU1BhcmFtc0Zvck1lc3NhZ2VXaXRoUHJ2LCBUU1NQYXJhbXNXaXRoUHJ2LCBUeFJlcXVlc3QgfSBmcm9tICcuLi9iYXNlVHlwZXMnO1xuaW1wb3J0IHsgQmFzZUVkZHNhVXRpbHMgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgRWRkc2FNUEN2MktleUdlblNlbmRGbiwgS2V5R2VuU2VuZGVyRm9yRW50ZXJwcmlzZSB9IGZyb20gJy4vZWRkc2FNUEN2MktleUdlblNlbmRlcic7XG5cbmV4cG9ydCBjbGFzcyBFZGRzYU1QQ3YyVXRpbHMgZXh0ZW5kcyBCYXNlRWRkc2FVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBhc3luYyBjcmVhdGVLZXljaGFpbnMocGFyYW1zOiB7XG4gICAgcGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGVudGVycHJpc2U6IHN0cmluZztcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+IHtcbiAgICBjb25zdCB1c2VyS2V5UGFpciA9IGF3YWl0IGdlbmVyYXRlR1BHS2V5UGFpcignZWQyNTUxOScpO1xuICAgIGNvbnN0IHVzZXJHcGdLZXkgPSBhd2FpdCBwZ3AucmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiB1c2VyS2V5UGFpci5wcml2YXRlS2V5IH0pO1xuICAgIGNvbnN0IHVzZXJHcGdQdWJsaWNLZXkgPSB1c2VyS2V5UGFpci5wdWJsaWNLZXk7XG4gICAgY29uc3QgW3VzZXJQaywgdXNlclNrXSA9IGF3YWl0IE1QU0NvbW1zLmV4dHJhY3RFZDI1NTE5S2V5UGFpcih1c2VyR3BnS2V5KTtcblxuICAgIGNvbnN0IGJhY2t1cEtleVBhaXIgPSBhd2FpdCBnZW5lcmF0ZUdQR0tleVBhaXIoJ2VkMjU1MTknKTtcbiAgICBjb25zdCBiYWNrdXBHcGdLZXkgPSBhd2FpdCBwZ3AucmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiBiYWNrdXBLZXlQYWlyLnByaXZhdGVLZXkgfSk7XG4gICAgY29uc3QgYmFja3VwR3BnUHVibGljS2V5ID0gYmFja3VwS2V5UGFpci5wdWJsaWNLZXk7XG4gICAgY29uc3QgW2JhY2t1cFBrLCBiYWNrdXBTa10gPSBhd2FpdCBNUFNDb21tcy5leHRyYWN0RWQyNTUxOUtleVBhaXIoYmFja3VwR3BnS2V5KTtcblxuICAgIC8vIEdldCB0aGUgQml0R28gRWREU0EgTVBDdjIgcHVibGljIGtleSAoZWQyNTUxOSkuIFVzaW5nIHRoZSBkZWZhdWx0IG1wY3YyUHVibGljS2V5IChzZWNwMjU2azEpXG4gICAgLy8gaGVyZSB3b3VsZCBjYXVzZSBhIFdBU00gXCJJbnZhbGlkIElucHV0XCIgZXJyb3IsIHNvIHdlIHJlcXVpcmUgdGhlIGRlZGljYXRlZCBlZGRzYU1wY3YyUHVibGljS2V5LlxuICAgIGNvbnN0IHsgZWRkc2FNcGN2MlB1YmxpY0tleSB9ID0gYXdhaXQgdGhpcy5nZXRCaXRnb0dwZ1B1YmtleUJhc2VkT25GZWF0dXJlRmxhZ3MocGFyYW1zLmVudGVycHJpc2UsIHRydWUpO1xuICAgIGNvbnN0IGJpdGdvUHVibGljR3BnS2V5ID0gZWRkc2FNcGN2MlB1YmxpY0tleSA/PyB0aGlzLmJpdGdvRWRkc2FNcGN2MlB1YmxpY0dwZ0tleTtcbiAgICBhc3NlcnQoYml0Z29QdWJsaWNHcGdLZXksICdGYWlsZWQgdG8gZ2V0IEJpdEdvIEVkRFNBIE1QQ3YyIEdQRyBwdWJsaWMga2V5Jyk7XG4gICAgY29uc3QgYml0Z29QdWJsaWNHcGdLZXlBcm1vcmVkID0gYml0Z29QdWJsaWNHcGdLZXkuYXJtb3IoKTtcblxuICAgIGlmIChlbnZSZXF1aXJlc0JpdGdvUHViR3BnS2V5Q29uZmlnKHRoaXMuYml0Z28uZ2V0RW52KCkpKSB7XG4gICAgICBhc3NlcnQoaXNCaXRnb0VkZHNhTXBjdjJQdWJLZXkoYml0Z29QdWJsaWNHcGdLZXlBcm1vcmVkKSwgJ0ludmFsaWQgQml0R28gR1BHIHB1YmxpYyBrZXknKTtcbiAgICB9XG5cbiAgICBjb25zdCBiaXRnb0tleU9iaiA9IGF3YWl0IHBncC5yZWFkS2V5KHsgYXJtb3JlZEtleTogYml0Z29QdWJsaWNHcGdLZXlBcm1vcmVkIH0pO1xuICAgIGNvbnN0IGJpdGdvUGsgPSBhd2FpdCBNUFNDb21tcy5leHRyYWN0RWQyNTUxOVB1YmxpY0tleShiaXRnb0tleU9iaik7XG5cbiAgICAvLyBDcmVhdGUgREtHIHNlc3Npb25zIGZvciB1c2VyIChwYXJ0eSAwKSBhbmQgYmFja3VwIChwYXJ0eSAxKVxuICAgIGNvbnN0IHVzZXJEa2cgPSBuZXcgRWRkc2FNUFNEa2cuREtHKDMsIDIsIE1QQ3YyUGFydGllc0VudW0uVVNFUik7XG4gICAgY29uc3QgYmFja3VwRGtnID0gbmV3IEVkZHNhTVBTRGtnLkRLRygzLCAyLCBNUEN2MlBhcnRpZXNFbnVtLkJBQ0tVUCk7XG5cbiAgICAvLyAjcmVnaW9uIHJvdW5kIDFcbiAgICBhd2FpdCB1c2VyRGtnLmluaXREa2codXNlclNrLCBbYmFja3VwUGssIGJpdGdvUGtdKTtcbiAgICBhd2FpdCBiYWNrdXBEa2cuaW5pdERrZyhiYWNrdXBTaywgW3VzZXJQaywgYml0Z29Qa10pO1xuXG4gICAgY29uc3QgdXNlck1zZzEgPSB1c2VyRGtnLmdldEZpcnN0TWVzc2FnZSgpO1xuICAgIGNvbnN0IGJhY2t1cE1zZzEgPSBiYWNrdXBEa2cuZ2V0Rmlyc3RNZXNzYWdlKCk7XG5cbiAgICBjb25zdCB1c2VyU2lnbmVkTXNnMSA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKEJ1ZmZlci5mcm9tKHVzZXJNc2cxLnBheWxvYWQpLCB1c2VyR3BnS2V5KTtcbiAgICBjb25zdCBiYWNrdXBTaWduZWRNc2cxID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UoQnVmZmVyLmZyb20oYmFja3VwTXNnMS5wYXlsb2FkKSwgYmFja3VwR3BnS2V5KTtcblxuICAgIGFzc2VydChOb25FbXB0eVN0cmluZy5pcyh1c2VyR3BnUHVibGljS2V5KSwgJ1VzZXIgR1BHIHB1YmxpYyBrZXkgaXMgcmVxdWlyZWQnKTtcbiAgICBhc3NlcnQoTm9uRW1wdHlTdHJpbmcuaXMoYmFja3VwR3BnUHVibGljS2V5KSwgJ0JhY2t1cCBHUEcgcHVibGljIGtleSBpcyByZXF1aXJlZCcpO1xuXG4gICAgY29uc3QgeyBzZXNzaW9uSWQsIGJpdGdvTXNnMSB9ID0gYXdhaXQgdGhpcy5zZW5kS2V5R2VuZXJhdGlvblJvdW5kMShwYXJhbXMuZW50ZXJwcmlzZSwge1xuICAgICAgdXNlckdwZ1B1YmxpY0tleSxcbiAgICAgIGJhY2t1cEdwZ1B1YmxpY0tleSxcbiAgICAgIHVzZXJNc2cxOiB1c2VyU2lnbmVkTXNnMSxcbiAgICAgIGJhY2t1cE1zZzE6IGJhY2t1cFNpZ25lZE1zZzEsXG4gICAgfSk7XG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvbiByb3VuZCAyXG4gICAgY29uc3QgYml0Z29SYXdNc2cxQnl0ZXMgPSBhd2FpdCBNUFNDb21tcy52ZXJpZnlNcHNNZXNzYWdlKGJpdGdvTXNnMSwgYml0Z29LZXlPYmopO1xuICAgIGNvbnN0IGJpdGdvRGVzZXJpYWxpemVkTXNnMTogTVBTVHlwZXMuRGVzZXJpYWxpemVkTWVzc2FnZSA9IHtcbiAgICAgIGZyb206IE1QQ3YyUGFydGllc0VudW0uQklUR08sXG4gICAgICBwYXlsb2FkOiBuZXcgVWludDhBcnJheShiaXRnb1Jhd01zZzFCeXRlcyksXG4gICAgfTtcblxuICAgIGNvbnN0IHJvdW5kMU1lc3NhZ2VzOiBNUFNUeXBlcy5EZXNlcmlhbGl6ZWRNZXNzYWdlcyA9IFt1c2VyTXNnMSwgYmFja3VwTXNnMSwgYml0Z29EZXNlcmlhbGl6ZWRNc2cxXTtcblxuICAgIGNvbnN0IHVzZXJSb3VuZDJNc2dzID0gdXNlckRrZy5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKHJvdW5kMU1lc3NhZ2VzKTtcbiAgICBjb25zdCBiYWNrdXBSb3VuZDJNc2dzID0gYmFja3VwRGtnLmhhbmRsZUluY29taW5nTWVzc2FnZXMocm91bmQxTWVzc2FnZXMpO1xuXG4gICAgYXNzZXJ0KHVzZXJSb3VuZDJNc2dzLmxlbmd0aCA9PT0gMSwgJ1VzZXIgcm91bmQgMSBzaG91bGQgcHJvZHVjZSBleGFjdGx5IG9uZSByb3VuZCAyIG1lc3NhZ2UnKTtcbiAgICBhc3NlcnQoYmFja3VwUm91bmQyTXNncy5sZW5ndGggPT09IDEsICdCYWNrdXAgcm91bmQgMSBzaG91bGQgcHJvZHVjZSBleGFjdGx5IG9uZSByb3VuZCAyIG1lc3NhZ2UnKTtcblxuICAgIGNvbnN0IHVzZXJNc2cyID0gdXNlclJvdW5kMk1zZ3NbMF07XG4gICAgY29uc3QgYmFja3VwTXNnMiA9IGJhY2t1cFJvdW5kMk1zZ3NbMF07XG5cbiAgICBjb25zdCB1c2VyU2lnbmVkTXNnMiA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKEJ1ZmZlci5mcm9tKHVzZXJNc2cyLnBheWxvYWQpLCB1c2VyR3BnS2V5KTtcbiAgICBjb25zdCBiYWNrdXBTaWduZWRNc2cyID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UoQnVmZmVyLmZyb20oYmFja3VwTXNnMi5wYXlsb2FkKSwgYmFja3VwR3BnS2V5KTtcblxuICAgIGNvbnN0IHtcbiAgICAgIHNlc3Npb25JZDogc2Vzc2lvbklkUm91bmQyLFxuICAgICAgY29tbW9uUHVibGljS2V5Y2hhaW4sXG4gICAgICBiaXRnb01zZzIsXG4gICAgfSA9IGF3YWl0IHRoaXMuc2VuZEtleUdlbmVyYXRpb25Sb3VuZDIocGFyYW1zLmVudGVycHJpc2UsIHtcbiAgICAgIHNlc3Npb25JZCxcbiAgICAgIHVzZXJNc2cyOiB1c2VyU2lnbmVkTXNnMixcbiAgICAgIGJhY2t1cE1zZzI6IGJhY2t1cFNpZ25lZE1zZzIsXG4gICAgfSk7XG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvbiBrZXljaGFpbiBjcmVhdGlvblxuICAgIGFzc2VydC5lcXVhbChzZXNzaW9uSWQsIHNlc3Npb25JZFJvdW5kMiwgJ1JvdW5kIDEgYW5kIHJvdW5kIDIgc2Vzc2lvbiBJRHMgZG8gbm90IG1hdGNoJyk7XG5cbiAgICBjb25zdCBiaXRnb1Jhd01zZzJCeXRlcyA9IGF3YWl0IE1QU0NvbW1zLnZlcmlmeU1wc01lc3NhZ2UoYml0Z29Nc2cyLCBiaXRnb0tleU9iaik7XG4gICAgY29uc3QgYml0Z29EZXNlcmlhbGl6ZWRNc2cyOiBNUFNUeXBlcy5EZXNlcmlhbGl6ZWRNZXNzYWdlID0ge1xuICAgICAgZnJvbTogTVBDdjJQYXJ0aWVzRW51bS5CSVRHTyxcbiAgICAgIHBheWxvYWQ6IG5ldyBVaW50OEFycmF5KGJpdGdvUmF3TXNnMkJ5dGVzKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgcm91bmQyTWVzc2FnZXM6IE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2VzID0gW3VzZXJNc2cyLCBiYWNrdXBNc2cyLCBiaXRnb0Rlc2VyaWFsaXplZE1zZzJdO1xuXG4gICAgY29uc3QgdXNlckZpbmFsTXNncyA9IHVzZXJEa2cuaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhyb3VuZDJNZXNzYWdlcyk7XG4gICAgY29uc3QgYmFja3VwRmluYWxNc2dzID0gYmFja3VwRGtnLmhhbmRsZUluY29taW5nTWVzc2FnZXMocm91bmQyTWVzc2FnZXMpO1xuXG4gICAgYXNzZXJ0KHVzZXJGaW5hbE1zZ3MubGVuZ3RoID09PSAwLCAnV0FTTSByb3VuZCAyIHNob3VsZCBwcm9kdWNlIG5vIG91dHB1dCBtZXNzYWdlcyBmb3IgdXNlcicpO1xuICAgIGFzc2VydChiYWNrdXBGaW5hbE1zZ3MubGVuZ3RoID09PSAwLCAnV0FTTSByb3VuZCAyIHNob3VsZCBwcm9kdWNlIG5vIG91dHB1dCBtZXNzYWdlcyBmb3IgYmFja3VwJyk7XG5cbiAgICBjb25zdCB1c2VyQ29tbW9uS2V5Y2hhaW4gPSB1c2VyRGtnLmdldENvbW1vbktleWNoYWluKCk7XG4gICAgY29uc3QgYmFja3VwQ29tbW9uS2V5Y2hhaW4gPSBiYWNrdXBEa2cuZ2V0Q29tbW9uS2V5Y2hhaW4oKTtcblxuICAgIGFzc2VydC5lcXVhbChcbiAgICAgIHVzZXJDb21tb25LZXljaGFpbixcbiAgICAgIGNvbW1vblB1YmxpY0tleWNoYWluLFxuICAgICAgJ1VzZXIgY29tcHV0ZWQga2V5Y2hhaW4gZG9lcyBub3QgbWF0Y2ggQml0R28gY29tbW9uIGtleWNoYWluJ1xuICAgICk7XG4gICAgYXNzZXJ0LmVxdWFsKFxuICAgICAgYmFja3VwQ29tbW9uS2V5Y2hhaW4sXG4gICAgICBjb21tb25QdWJsaWNLZXljaGFpbixcbiAgICAgICdCYWNrdXAgY29tcHV0ZWQga2V5Y2hhaW4gZG9lcyBub3QgbWF0Y2ggQml0R28gY29tbW9uIGtleWNoYWluJ1xuICAgICk7XG5cbiAgICBjb25zdCB1c2VyUHJpdmF0ZU1hdGVyaWFsID0gdXNlckRrZy5nZXRLZXlTaGFyZSgpO1xuICAgIGNvbnN0IGJhY2t1cFByaXZhdGVNYXRlcmlhbCA9IGJhY2t1cERrZy5nZXRLZXlTaGFyZSgpO1xuICAgIGNvbnN0IHVzZXJSZWR1Y2VkUHJpdmF0ZU1hdGVyaWFsID0gdXNlckRrZy5nZXRSZWR1Y2VkS2V5U2hhcmUoKTtcbiAgICBjb25zdCBiYWNrdXBSZWR1Y2VkUHJpdmF0ZU1hdGVyaWFsID0gYmFja3VwRGtnLmdldFJlZHVjZWRLZXlTaGFyZSgpO1xuXG4gICAgY29uc3QgdXNlcktleWNoYWluUHJvbWlzZSA9IHRoaXMuYWRkVXNlcktleWNoYWluKFxuICAgICAgdXNlckNvbW1vbktleWNoYWluLFxuICAgICAgdXNlclByaXZhdGVNYXRlcmlhbCxcbiAgICAgIHVzZXJSZWR1Y2VkUHJpdmF0ZU1hdGVyaWFsLFxuICAgICAgcGFyYW1zLnBhc3NwaHJhc2UsXG4gICAgICBwYXJhbXMub3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlXG4gICAgKTtcbiAgICBjb25zdCBiYWNrdXBLZXljaGFpblByb21pc2UgPSB0aGlzLmFkZEJhY2t1cEtleWNoYWluKFxuICAgICAgYmFja3VwQ29tbW9uS2V5Y2hhaW4sXG4gICAgICBiYWNrdXBQcml2YXRlTWF0ZXJpYWwsXG4gICAgICBiYWNrdXBSZWR1Y2VkUHJpdmF0ZU1hdGVyaWFsLFxuICAgICAgcGFyYW1zLnBhc3NwaHJhc2UsXG4gICAgICBwYXJhbXMub3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlXG4gICAgKTtcbiAgICBjb25zdCBiaXRnb0tleWNoYWluUHJvbWlzZSA9IHRoaXMuYWRkQml0Z29LZXljaGFpbih1c2VyQ29tbW9uS2V5Y2hhaW4pO1xuXG4gICAgY29uc3QgW3VzZXJLZXljaGFpbiwgYmFja3VwS2V5Y2hhaW4sIGJpdGdvS2V5Y2hhaW5dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdXNlcktleWNoYWluUHJvbWlzZSxcbiAgICAgIGJhY2t1cEtleWNoYWluUHJvbWlzZSxcbiAgICAgIGJpdGdvS2V5Y2hhaW5Qcm9taXNlLFxuICAgIF0pO1xuICAgIC8vICNlbmRyZWdpb25cblxuICAgIHJldHVybiB7XG4gICAgICB1c2VyS2V5Y2hhaW4sXG4gICAgICBiYWNrdXBLZXljaGFpbixcbiAgICAgIGJpdGdvS2V5Y2hhaW4sXG4gICAgfTtcbiAgfVxuXG4gIC8vICNyZWdpb24ga2V5Y2hhaW4gdXRpbHNcbiAgYXN5bmMgY3JlYXRlUGFydGljaXBhbnRLZXljaGFpbihcbiAgICBwYXJ0aWNpcGFudEluZGV4OiBNUEN2MlBhcnR5RnJvbVN0cmluZ09yTnVtYmVyLFxuICAgIGNvbW1vbktleWNoYWluOiBzdHJpbmcsXG4gICAgcHJpdmF0ZU1hdGVyaWFsPzogQnVmZmVyLFxuICAgIHJlZHVjZWRQcml2YXRlTWF0ZXJpYWw/OiBCdWZmZXIsXG4gICAgcGFzc3BocmFzZT86IHN0cmluZyxcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIGxldCBzb3VyY2U6IHN0cmluZztcbiAgICBsZXQgZW5jcnlwdGVkUHJ2OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgbGV0IHJlZHVjZWRFbmNyeXB0ZWRQcnY6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIHN3aXRjaCAocGFydGljaXBhbnRJbmRleCkge1xuICAgICAgY2FzZSBNUEN2MlBhcnRpZXNFbnVtLlVTRVI6XG4gICAgICBjYXNlIE1QQ3YyUGFydGllc0VudW0uQkFDS1VQOlxuICAgICAgICBzb3VyY2UgPSBwYXJ0aWNpcGFudEluZGV4ID09PSBNUEN2MlBhcnRpZXNFbnVtLlVTRVIgPyAndXNlcicgOiAnYmFja3VwJztcbiAgICAgICAgYXNzZXJ0KHByaXZhdGVNYXRlcmlhbCwgYFByaXZhdGUgbWF0ZXJpYWwgaXMgcmVxdWlyZWQgZm9yICR7c291cmNlfSBrZXljaGFpbmApO1xuICAgICAgICBhc3NlcnQocmVkdWNlZFByaXZhdGVNYXRlcmlhbCwgYFJlZHVjZWQgcHJpdmF0ZSBtYXRlcmlhbCBpcyByZXF1aXJlZCBmb3IgJHtzb3VyY2V9IGtleWNoYWluYCk7XG4gICAgICAgIGFzc2VydChwYXNzcGhyYXNlLCBgUGFzc3BocmFzZSBpcyByZXF1aXJlZCBmb3IgJHtzb3VyY2V9IGtleWNoYWluYCk7XG4gICAgICAgIGVuY3J5cHRlZFBydiA9IHRoaXMuYml0Z28uZW5jcnlwdCh7XG4gICAgICAgICAgaW5wdXQ6IHByaXZhdGVNYXRlcmlhbC50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgcGFzc3dvcmQ6IHBhc3NwaHJhc2UsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBFbmNyeXB0cyB0aGUgQ0JPUi1lbmNvZGVkIFJlZHVjZWRLZXlTaGFyZSAod2hpY2ggY29udGFpbnMgdGhlIHBhcnR5J3MgcHVibGljXG4gICAgICAgIC8vIGtleSkgd2l0aCB0aGUgd2FsbGV0IHBhc3NwaHJhc2UuIFRoZSByZXN1bHQgaXMgc3RvcmVkIGFzIHJlZHVjZWRFbmNyeXB0ZWRQcnZcbiAgICAgICAgLy8gb24gdGhlIGtleSBjYXJkIFFSIGNvZGUgYW5kIHJlcHJlc2VudHMgYSBzZWNvbmQgY29weSBvZiBrZXkgbWF0ZXJpYWxcbiAgICAgICAgLy8gYmV5b25kIHRoZSBzZXJ2ZXItc3RvcmVkIGVuY3J5cHRlZFBydi5cbiAgICAgICAgcmVkdWNlZEVuY3J5cHRlZFBydiA9IHRoaXMuYml0Z28uZW5jcnlwdCh7XG4gICAgICAgICAgLy8gQnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKSBjYW4gbm90IGJlIHVzZWQgaGVyZSBhcyBpdCBkb2VzIG5vdCB3b3JrIG9uIHRoZSBicm93c2VyLlxuICAgICAgICAgIC8vIFRoZSBicm93c2VyIGRlYWxzIHdpdGggYSBCdWZmZXIgYXMgVWludDhBcnJheSwgdGhlcmVmb3JlIGluIHRoZSBicm93c2VyIC50b1N0cmluZygnYmFzZTY0JykganVzdCBjcmVhdGVzIGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiB0aGUgYXJyYXkgdmFsdWVzLlxuICAgICAgICAgIGlucHV0OiBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShyZWR1Y2VkUHJpdmF0ZU1hdGVyaWFsKSkpKSxcbiAgICAgICAgICBwYXNzd29yZDogcGFzc3BocmFzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPOlxuICAgICAgICBzb3VyY2UgPSAnYml0Z28nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwYXJ0aWNpcGFudCBpbmRleCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGtleWNoYWluUGFyYW1zOiBBZGRLZXljaGFpbk9wdGlvbnMgPSB7XG4gICAgICBzb3VyY2UsXG4gICAgICBrZXlUeXBlOiAndHNzJyBhcyBLZXlUeXBlLFxuICAgICAgY29tbW9uS2V5Y2hhaW4sXG4gICAgICBlbmNyeXB0ZWRQcnYsXG4gICAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gICAgICBpc01QQ3YyOiB0cnVlLFxuICAgIH07XG5cbiAgICBjb25zdCBrZXljaGFpbnMgPSB0aGlzLmJhc2VDb2luLmtleWNoYWlucygpO1xuICAgIHJldHVybiB7IC4uLihhd2FpdCBrZXljaGFpbnMuYWRkKGtleWNoYWluUGFyYW1zKSksIHJlZHVjZWRFbmNyeXB0ZWRQcnYgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkVXNlcktleWNoYWluKFxuICAgIGNvbW1vbktleWNoYWluOiBzdHJpbmcsXG4gICAgcHJpdmF0ZU1hdGVyaWFsOiBCdWZmZXIsXG4gICAgcmVkdWNlZFByaXZhdGVNYXRlcmlhbDogQnVmZmVyLFxuICAgIHBhc3NwaHJhc2U6IHN0cmluZyxcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVBhcnRpY2lwYW50S2V5Y2hhaW4oXG4gICAgICBNUEN2MlBhcnRpZXNFbnVtLlVTRVIsXG4gICAgICBjb21tb25LZXljaGFpbixcbiAgICAgIHByaXZhdGVNYXRlcmlhbCxcbiAgICAgIHJlZHVjZWRQcml2YXRlTWF0ZXJpYWwsXG4gICAgICBwYXNzcGhyYXNlLFxuICAgICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkQmFja3VwS2V5Y2hhaW4oXG4gICAgY29tbW9uS2V5Y2hhaW46IHN0cmluZyxcbiAgICBwcml2YXRlTWF0ZXJpYWw6IEJ1ZmZlcixcbiAgICByZWR1Y2VkUHJpdmF0ZU1hdGVyaWFsOiBCdWZmZXIsXG4gICAgcGFzc3BocmFzZTogc3RyaW5nLFxuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUGFydGljaXBhbnRLZXljaGFpbihcbiAgICAgIE1QQ3YyUGFydGllc0VudW0uQkFDS1VQLFxuICAgICAgY29tbW9uS2V5Y2hhaW4sXG4gICAgICBwcml2YXRlTWF0ZXJpYWwsXG4gICAgICByZWR1Y2VkUHJpdmF0ZU1hdGVyaWFsLFxuICAgICAgcGFzc3BocmFzZSxcbiAgICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFkZEJpdGdvS2V5Y2hhaW4oY29tbW9uS2V5Y2hhaW46IHN0cmluZyk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVQYXJ0aWNpcGFudEtleWNoYWluKE1QQ3YyUGFydGllc0VudW0uQklUR08sIGNvbW1vbktleWNoYWluKTtcbiAgfVxuICAvLyAjZW5kcmVnaW9uXG5cbiAgYXN5bmMgc2VuZEtleUdlbmVyYXRpb25Sb3VuZDEoXG4gICAgZW50ZXJwcmlzZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IEVkZHNhTVBDdjJLZXlHZW5Sb3VuZDFSZXF1ZXN0XG4gICk6IFByb21pc2U8RWRkc2FNUEN2MktleUdlblJvdW5kMVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VuZEtleUdlbmVyYXRpb25Sb3VuZDFCeVNlbmRlcihLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlKHRoaXMuYml0Z28sIGVudGVycHJpc2UpLCBwYXlsb2FkKTtcbiAgfVxuXG4gIGFzeW5jIHNlbmRLZXlHZW5lcmF0aW9uUm91bmQxQnlTZW5kZXIoXG4gICAgc2VuZGVyRm46IEVkZHNhTVBDdjJLZXlHZW5TZW5kRm48RWRkc2FNUEN2MktleUdlblJvdW5kMVJlc3BvbnNlPixcbiAgICBwYXlsb2FkOiBFZGRzYU1QQ3YyS2V5R2VuUm91bmQxUmVxdWVzdFxuICApOiBQcm9taXNlPEVkZHNhTVBDdjJLZXlHZW5Sb3VuZDFSZXNwb25zZT4ge1xuICAgIHJldHVybiBzZW5kZXJGbihNUEN2MktleUdlblN0YXRlRW51bVsnTVBDdjItUjEnXSwgcGF5bG9hZCk7XG4gIH1cblxuICBhc3luYyBzZW5kS2V5R2VuZXJhdGlvblJvdW5kMihcbiAgICBlbnRlcnByaXNlOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogRWRkc2FNUEN2MktleUdlblJvdW5kMlJlcXVlc3RcbiAgKTogUHJvbWlzZTxFZGRzYU1QQ3YyS2V5R2VuUm91bmQyUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5zZW5kS2V5R2VuZXJhdGlvblJvdW5kMkJ5U2VuZGVyKEtleUdlblNlbmRlckZvckVudGVycHJpc2UodGhpcy5iaXRnbywgZW50ZXJwcmlzZSksIHBheWxvYWQpO1xuICB9XG5cbiAgYXN5bmMgc2VuZEtleUdlbmVyYXRpb25Sb3VuZDJCeVNlbmRlcihcbiAgICBzZW5kZXJGbjogRWRkc2FNUEN2MktleUdlblNlbmRGbjxFZGRzYU1QQ3YyS2V5R2VuUm91bmQyUmVzcG9uc2U+LFxuICAgIHBheWxvYWQ6IEVkZHNhTVBDdjJLZXlHZW5Sb3VuZDJSZXF1ZXN0XG4gICk6IFByb21pc2U8RWRkc2FNUEN2MktleUdlblJvdW5kMlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHNlbmRlckZuKE1QQ3YyS2V5R2VuU3RhdGVFbnVtWydNUEN2Mi1SMiddLCBwYXlsb2FkKTtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb25cblxuICAvLyAjcmVnaW9uIHNpZ24gdHggcmVxdWVzdFxuXG4gIC8qKlxuICAgKiBTaWducyB0aGUgdHJhbnNhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSB0cmFuc2FjdGlvbiByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFR4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgb2JqZWN0IG9yIGlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucHJ2IC0gZGVjcnlwdGVkIHByaXZhdGUga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucmVxSWQgLSByZXF1ZXN0IGlkXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59IGZ1bGx5IHNpZ25lZCBUeFJlcXVlc3RcbiAgICovXG4gIGFzeW5jIHNpZ25UeFJlcXVlc3QocGFyYW1zOiBUU1NQYXJhbXNXaXRoUHJ2KTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICB0aGlzLmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocGFyYW1zLnJlcUlkKTtcbiAgICByZXR1cm4gdGhpcy5zaWduUmVxdWVzdEJhc2UocGFyYW1zLCBSZXF1ZXN0VHlwZS50eCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgdGhlIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoZSB0cmFuc2FjdGlvbiByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFR4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgb2JqZWN0IG9yIGlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucHJ2IC0gZGVjcnlwdGVkIHByaXZhdGUga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucmVxSWQgLSByZXF1ZXN0IGlkXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59IGZ1bGx5IHNpZ25lZCBUeFJlcXVlc3RcbiAgICovXG4gIGFzeW5jIHNpZ25UeFJlcXVlc3RGb3JNZXNzYWdlKHBhcmFtczogVFNTUGFyYW1zRm9yTWVzc2FnZVdpdGhQcnYpOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIHRoaXMuYml0Z28uc2V0UmVxdWVzdFRyYWNlcihwYXJhbXMucmVxSWQpO1xuICAgIHJldHVybiB0aGlzLnNpZ25SZXF1ZXN0QmFzZShwYXJhbXMsIFJlcXVlc3RUeXBlLm1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bGwgMy1yb3VuZCBFZERTQSBNUEN2MiAoTVBTKSBvbmxpbmUgc2lnbmluZyBvcmNoZXN0cmF0aW9uLlxuICAgKlxuICAgKiBQcm90b2NvbCBvdmVydmlldzpcbiAgICogICBXQVNNIFJvdW5kIDAgIOKGkiBnZXRGaXJzdE1lc3NhZ2UoKSAgICAgIChwcm9kdWNlcyB1c2VyTXNnMSlcbiAgICogICBBUEkgIFJvdW5kIDEgIOKGkiBzZW5kIHVzZXJNc2cxIC8gcmVjdiBiaXRnb01zZzFcbiAgICogICBXQVNNIFJvdW5kIDEgIOKGkiBoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKFt1c2VyTXNnMSwgYml0Z29Nc2cxXSkgIChwcm9kdWNlcyB1c2VyTXNnMilcbiAgICogICBBUEkgIFJvdW5kIDIgIOKGkiBzZW5kIHVzZXJNc2cyIC8gcmVjdiBiaXRnb01zZzJcbiAgICogICBXQVNNIFJvdW5kIDIgIOKGkiBoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKFt1c2VyTXNnMiwgYml0Z29Nc2cyXSkgIChwcm9kdWNlcyB1c2VyTXNnMylcbiAgICogICBBUEkgIFJvdW5kIDMgIOKGkiBzZW5kIHVzZXJNc2czIChXUCBmaW5hbGlzZXM7IG5vIEJpdEdvIG1zZyByZXR1cm5lZCB0byBjbGllbnQpXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHNpZ25SZXF1ZXN0QmFzZShcbiAgICBwYXJhbXM6IFRTU1BhcmFtc1dpdGhQcnYgfCBUU1NQYXJhbXNGb3JNZXNzYWdlV2l0aFBydixcbiAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGVcbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBjb25zdCB1c2VyS2V5U2hhcmUgPSBCdWZmZXIuZnJvbShwYXJhbXMucHJ2LCAnYmFzZTY0Jyk7XG5cbiAgICBjb25zdCB0eFJlcXVlc3Q6IFR4UmVxdWVzdCA9XG4gICAgICB0eXBlb2YgcGFyYW1zLnR4UmVxdWVzdCA9PT0gJ3N0cmluZydcbiAgICAgICAgPyBhd2FpdCBnZXRUeFJlcXVlc3QodGhpcy5iaXRnbywgdGhpcy53YWxsZXQuaWQoKSwgcGFyYW1zLnR4UmVxdWVzdCwgcGFyYW1zLnJlcUlkKVxuICAgICAgICA6IHBhcmFtcy50eFJlcXVlc3Q7XG5cbiAgICBsZXQgdHhPck1lc3NhZ2VUb1NpZ247XG4gICAgbGV0IGRlcml2YXRpb25QYXRoO1xuICAgIGxldCBidWZmZXJDb250ZW50O1xuICAgIC8vIE9uZSBmcmVzaCBlZDI1NTE5IEdQRyBrZXkgcGFpciBwZXIgc2lnbmluZyBzZXNzaW9uLCByZXVzZWQgYWNyb3NzIGFsbCBzaWduaW5nIHJvdW5kcy5cbiAgICBjb25zdCB1c2VyR3BnS2V5ID0gYXdhaXQgZ2VuZXJhdGVHUEdLZXlQYWlyKCdlZDI1NTE5Jyk7XG4gICAgY29uc3QgdXNlckdwZ1BydktleSA9IGF3YWl0IHBncC5yZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHVzZXJHcGdLZXkucHJpdmF0ZUtleSB9KTtcbiAgICBjb25zdCBiaXRnb0dwZ1B1YktleSA9IGF3YWl0IHRoaXMucGlja0JpdGdvUHViR3BnS2V5Rm9yU2lnbmluZyh0cnVlLCBwYXJhbXMucmVxSWQsIHR4UmVxdWVzdC5lbnRlcnByaXNlSWQsIHRydWUpO1xuXG4gICAgaWYgKCFiaXRnb0dwZ1B1YktleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIEJpdEdvIEdQRyBrZXkgZm9yIE1QQ3YyJyk7XG4gICAgfVxuXG4gICAgaWYgKHJlcXVlc3RUeXBlID09PSBSZXF1ZXN0VHlwZS50eCkge1xuICAgICAgYXNzZXJ0KHR4UmVxdWVzdC50cmFuc2FjdGlvbnMgfHwgdHhSZXF1ZXN0LnVuc2lnbmVkVHhzLCAnVW5hYmxlIHRvIGZpbmQgdHJhbnNhY3Rpb25zIGluIHR4UmVxdWVzdCcpO1xuICAgICAgY29uc3QgdW5zaWduZWRUeCA9XG4gICAgICAgIHR4UmVxdWVzdC5hcGlWZXJzaW9uID09PSAnZnVsbCcgPyB0eFJlcXVlc3QudHJhbnNhY3Rpb25zIVswXS51bnNpZ25lZFR4IDogdHhSZXF1ZXN0LnVuc2lnbmVkVHhzIVswXTtcbiAgICAgIHR4T3JNZXNzYWdlVG9TaWduID0gdW5zaWduZWRUeC5zaWduYWJsZUhleDtcbiAgICAgIGFzc2VydCh0eE9yTWVzc2FnZVRvU2lnbiwgJ01pc3Npbmcgc2lnbmFibGVIZXggaW4gdW5zaWduZWRUeCcpO1xuICAgICAgZGVyaXZhdGlvblBhdGggPSB1bnNpZ25lZFR4LmRlcml2YXRpb25QYXRoO1xuICAgICAgYnVmZmVyQ29udGVudCA9IEJ1ZmZlci5mcm9tKHR4T3JNZXNzYWdlVG9TaWduLCAnaGV4Jyk7XG4gICAgICBhd2FpdCB0aGlzLmJhc2VDb2luLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQcmVidWlsZDogeyB0eEhleDogdW5zaWduZWRUeC5zZXJpYWxpemVkVHhIZXggPz8gdHhPck1lc3NhZ2VUb1NpZ24gfSxcbiAgICAgICAgdHhQYXJhbXM6IHBhcmFtcy50eFBhcmFtcyB8fCB7IHJlY2lwaWVudHM6IFtdIH0sXG4gICAgICAgIHdhbGxldDogdGhpcy53YWxsZXQsXG4gICAgICAgIHdhbGxldFR5cGU6IHRoaXMud2FsbGV0Lm11bHRpc2lnVHlwZSgpLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChyZXF1ZXN0VHlwZSA9PT0gUmVxdWVzdFR5cGUubWVzc2FnZSkge1xuICAgICAgYXNzZXJ0KHR4UmVxdWVzdC5tZXNzYWdlcyAmJiB0eFJlcXVlc3QubWVzc2FnZXMubGVuZ3RoID4gMCwgJ1VuYWJsZSB0byBmaW5kIG1lc3NhZ2VzIGluIHR4UmVxdWVzdCcpO1xuICAgICAgdHhPck1lc3NhZ2VUb1NpZ24gPSB0eFJlcXVlc3QubWVzc2FnZXNbMF0ubWVzc2FnZUVuY29kZWQ7XG4gICAgICBhc3NlcnQodHhPck1lc3NhZ2VUb1NpZ24sICdNaXNzaW5nIG1lc3NhZ2VFbmNvZGVkIGluIG1lc3NhZ2VzWzBdJyk7XG4gICAgICBkZXJpdmF0aW9uUGF0aCA9IHR4UmVxdWVzdC5tZXNzYWdlc1swXS5kZXJpdmF0aW9uUGF0aCB8fCAnbS8wJztcbiAgICAgIGJ1ZmZlckNvbnRlbnQgPSBCdWZmZXIuZnJvbSh0eE9yTWVzc2FnZVRvU2lnbiwgJ2hleCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcmVxdWVzdCB0eXBlJyk7XG4gICAgfVxuXG4gICAgLy8g4pSA4pSAIFdBU00gUm91bmQgMCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgICBjb25zdCBwYXJ0eUlkID0gcGFyYW1zLm1wY3YyUGFydHlJZCA/PyBNUEN2MlBhcnRpZXNFbnVtLlVTRVI7XG4gICAgY29uc3Qgc2lnbmVyU2hhcmVUeXBlID0gcGFydHlJZCA9PT0gTVBDdjJQYXJ0aWVzRW51bS5VU0VSID8gU2lnbmF0dXJlU2hhcmVUeXBlLlVTRVIgOiBTaWduYXR1cmVTaGFyZVR5cGUuQkFDS1VQO1xuICAgIGNvbnN0IHVzZXJEc2cgPSBuZXcgRWRkc2FNUFNEc2cuRFNHKHBhcnR5SWQpO1xuICAgIHVzZXJEc2cuaW5pdERzZyh1c2VyS2V5U2hhcmUsIGJ1ZmZlckNvbnRlbnQsIGRlcml2YXRpb25QYXRoLCBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPKTtcbiAgICBjb25zdCB1c2VyTXNnMSA9IHVzZXJEc2cuZ2V0Rmlyc3RNZXNzYWdlKCk7XG5cbiAgICAvLyDilIDilIAgQVBJIFJvdW5kIDEg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICAgY29uc3Qgc2lnbmF0dXJlU2hhcmVSb3VuZDEgPSBhd2FpdCBnZXRTaWduYXR1cmVTaGFyZVJvdW5kT25lKHVzZXJNc2cxLCB1c2VyR3BnUHJ2S2V5LCBwYXJ0eUlkKTtcbiAgICBsZXQgbGF0ZXN0VHhSZXF1ZXN0ID0gYXdhaXQgc2VuZFNpZ25hdHVyZVNoYXJlVjIoXG4gICAgICB0aGlzLmJpdGdvLFxuICAgICAgdHhSZXF1ZXN0LndhbGxldElkLFxuICAgICAgdHhSZXF1ZXN0LnR4UmVxdWVzdElkLFxuICAgICAgW3NpZ25hdHVyZVNoYXJlUm91bmQxXSxcbiAgICAgIHJlcXVlc3RUeXBlLFxuICAgICAgdGhpcy5iYXNlQ29pbi5nZXRNUENBbGdvcml0aG0oKSxcbiAgICAgIHVzZXJHcGdLZXkucHVibGljS2V5LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy53YWxsZXQubXVsdGlzaWdUeXBlVmVyc2lvbigpLFxuICAgICAgcGFyYW1zLnJlcUlkXG4gICAgKTtcblxuICAgIGFzc2VydChsYXRlc3RUeFJlcXVlc3QudHJhbnNhY3Rpb25zIHx8IGxhdGVzdFR4UmVxdWVzdC5tZXNzYWdlcywgJ0ludmFsaWQgdHhSZXF1ZXN0IG9iamVjdCBhZnRlciByb3VuZCAxJyk7XG5cbiAgICBjb25zdCBzaWduYXR1cmVTaGFyZXMxID1cbiAgICAgIHJlcXVlc3RUeXBlID09PSBSZXF1ZXN0VHlwZS50eFxuICAgICAgICA/IGxhdGVzdFR4UmVxdWVzdC50cmFuc2FjdGlvbnMhWzBdLnNpZ25hdHVyZVNoYXJlc1xuICAgICAgICA6IGxhdGVzdFR4UmVxdWVzdC5tZXNzYWdlcyFbMF0uc2lnbmF0dXJlU2hhcmVzO1xuXG4gICAgY29uc3QgYml0Z29TaGFyZVJvdW5kT25lID0gZ2V0Qml0Z29TaWduYXR1cmVTaGFyZShzaWduYXR1cmVTaGFyZXMxLCBzaWduZXJTaGFyZVR5cGUpO1xuICAgIGNvbnN0IHBhcnNlZEJpdEdvVG9Vc2VyU2lnU2hhcmVSb3VuZE9uZSA9IGRlY29kZVdpdGhDb2RlYyhcbiAgICAgIEVkZHNhTVBDdjJTaWduYXR1cmVTaGFyZVJvdW5kMU91dHB1dCxcbiAgICAgIEpTT04ucGFyc2UoYml0Z29TaGFyZVJvdW5kT25lLnNoYXJlKSxcbiAgICAgICdVbmV4cGVjdGVkIHNpZ25hdHVyZSBzaGFyZSByZXNwb25zZS4gVW5hYmxlIHRvIHBhcnNlIGRhdGEuJ1xuICAgICk7XG5cbiAgICBpZiAocGFyc2VkQml0R29Ub1VzZXJTaWdTaGFyZVJvdW5kT25lLnR5cGUgIT09ICdyb3VuZDFPdXRwdXQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgc2lnbmF0dXJlIHNoYXJlIHJlc3BvbnNlLiBVbmFibGUgdG8gcGFyc2UgZGF0YS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBiaXRnb0Rlc2VyaWFsaXplZE1zZzEgPSBhd2FpdCB2ZXJpZnlCaXRHb01lc3NhZ2VSb3VuZE9uZShwYXJzZWRCaXRHb1RvVXNlclNpZ1NoYXJlUm91bmRPbmUsIGJpdGdvR3BnUHViS2V5KTtcblxuICAgIC8vIOKUgOKUgCBXQVNNIFJvdW5kIDEg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICAgY29uc3QgW3VzZXJNc2cyXSA9IHVzZXJEc2cuaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhbdXNlck1zZzEsIGJpdGdvRGVzZXJpYWxpemVkTXNnMV0pO1xuICAgIGFzc2VydCh1c2VyTXNnMiwgJ1dBU00gcm91bmQgMSBwcm9kdWNlZCBubyBtZXNzYWdlJyk7XG5cbiAgICAvLyDilIDilIAgQVBJIFJvdW5kIDIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICAgY29uc3Qgc2lnbmF0dXJlU2hhcmVSb3VuZFR3byA9IGF3YWl0IGdldFNpZ25hdHVyZVNoYXJlUm91bmRUd28odXNlck1zZzIsIHVzZXJHcGdQcnZLZXksIHBhcnR5SWQpO1xuICAgIGxhdGVzdFR4UmVxdWVzdCA9IGF3YWl0IHNlbmRTaWduYXR1cmVTaGFyZVYyKFxuICAgICAgdGhpcy5iaXRnbyxcbiAgICAgIHR4UmVxdWVzdC53YWxsZXRJZCxcbiAgICAgIHR4UmVxdWVzdC50eFJlcXVlc3RJZCxcbiAgICAgIFtzaWduYXR1cmVTaGFyZVJvdW5kVHdvXSxcbiAgICAgIHJlcXVlc3RUeXBlLFxuICAgICAgdGhpcy5iYXNlQ29pbi5nZXRNUENBbGdvcml0aG0oKSxcbiAgICAgIHVzZXJHcGdLZXkucHVibGljS2V5LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy53YWxsZXQubXVsdGlzaWdUeXBlVmVyc2lvbigpLFxuICAgICAgcGFyYW1zLnJlcUlkXG4gICAgKTtcblxuICAgIGFzc2VydChsYXRlc3RUeFJlcXVlc3QudHJhbnNhY3Rpb25zIHx8IGxhdGVzdFR4UmVxdWVzdC5tZXNzYWdlcywgJ0ludmFsaWQgdHhSZXF1ZXN0IG9iamVjdCBhZnRlciByb3VuZCAyJyk7XG5cbiAgICBjb25zdCB0eFJlcXVlc3RTaWduYXR1cmVTaGFyZXMgPVxuICAgICAgcmVxdWVzdFR5cGUgPT09IFJlcXVlc3RUeXBlLnR4XG4gICAgICAgID8gbGF0ZXN0VHhSZXF1ZXN0LnRyYW5zYWN0aW9ucyFbMF0uc2lnbmF0dXJlU2hhcmVzXG4gICAgICAgIDogbGF0ZXN0VHhSZXF1ZXN0Lm1lc3NhZ2VzIVswXS5zaWduYXR1cmVTaGFyZXM7XG5cbiAgICBjb25zdCBiaXRnb1NoYXJlUm91bmRUd28gPSBnZXRCaXRnb1NpZ25hdHVyZVNoYXJlKHR4UmVxdWVzdFNpZ25hdHVyZVNoYXJlcywgc2lnbmVyU2hhcmVUeXBlKTtcbiAgICBjb25zdCBwYXJzZWRCaXRHb1RvVXNlclNpZ1NoYXJlUm91bmRUd28gPSBkZWNvZGVXaXRoQ29kZWMoXG4gICAgICBFZGRzYU1QQ3YyU2lnbmF0dXJlU2hhcmVSb3VuZDJPdXRwdXQsXG4gICAgICBKU09OLnBhcnNlKGJpdGdvU2hhcmVSb3VuZFR3by5zaGFyZSksXG4gICAgICAnVW5leHBlY3RlZCBzaWduYXR1cmUgc2hhcmUgcmVzcG9uc2UuIFVuYWJsZSB0byBwYXJzZSBkYXRhLidcbiAgICApO1xuXG4gICAgaWYgKHBhcnNlZEJpdEdvVG9Vc2VyU2lnU2hhcmVSb3VuZFR3by50eXBlICE9PSAncm91bmQyT3V0cHV0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIHNpZ25hdHVyZSBzaGFyZSByZXNwb25zZS4gVW5hYmxlIHRvIHBhcnNlIGRhdGEuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYml0Z29EZXNlcmlhbGl6ZWRNc2cyID0gYXdhaXQgdmVyaWZ5Qml0R29NZXNzYWdlUm91bmRUd28ocGFyc2VkQml0R29Ub1VzZXJTaWdTaGFyZVJvdW5kVHdvLCBiaXRnb0dwZ1B1YktleSk7XG5cbiAgICAvLyDilIDilIAgV0FTTSBSb3VuZCAyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgIGNvbnN0IFt1c2VyTXNnM10gPSB1c2VyRHNnLmhhbmRsZUluY29taW5nTWVzc2FnZXMoW3VzZXJNc2cyLCBiaXRnb0Rlc2VyaWFsaXplZE1zZzJdKTtcbiAgICBhc3NlcnQodXNlck1zZzMsICdXQVNNIHJvdW5kIDIgcHJvZHVjZWQgbm8gbWVzc2FnZScpO1xuXG4gICAgLy8g4pSA4pSAIEFQSSBSb3VuZCAzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgIC8vIE5vIEJpdEdvIHJlc3BvbnNlIHRvIHZlcmlmeTsgV1AgZmluYWxpc2VzIHRoZSBzaWduaW5nIHNlcnZlci1zaWRlXG4gICAgY29uc3Qgc2lnbmF0dXJlU2hhcmVSb3VuZDMgPSBhd2FpdCBnZXRTaWduYXR1cmVTaGFyZVJvdW5kVGhyZWUodXNlck1zZzMsIHVzZXJHcGdQcnZLZXksIHBhcnR5SWQpO1xuICAgIGNvbnN0IHJvdW5kM1R4UmVxdWVzdCA9IGF3YWl0IHNlbmRTaWduYXR1cmVTaGFyZVYyKFxuICAgICAgdGhpcy5iaXRnbyxcbiAgICAgIHR4UmVxdWVzdC53YWxsZXRJZCxcbiAgICAgIHR4UmVxdWVzdC50eFJlcXVlc3RJZCxcbiAgICAgIFtzaWduYXR1cmVTaGFyZVJvdW5kM10sXG4gICAgICByZXF1ZXN0VHlwZSxcbiAgICAgIHRoaXMuYmFzZUNvaW4uZ2V0TVBDQWxnb3JpdGhtKCksXG4gICAgICB1c2VyR3BnS2V5LnB1YmxpY0tleSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMud2FsbGV0Lm11bHRpc2lnVHlwZVZlcnNpb24oKSxcbiAgICAgIHBhcmFtcy5yZXFJZFxuICAgICk7XG4gICAgYXNzZXJ0KHJvdW5kM1R4UmVxdWVzdD8udHhSZXF1ZXN0SWQgPT09IHR4UmVxdWVzdC50eFJlcXVlc3RJZCwgJ0ludmFsaWQgdHhSZXF1ZXN0IG9iamVjdCBhZnRlciByb3VuZCAzJyk7XG5cbiAgICByZXR1cm4gc2VuZFR4UmVxdWVzdCh0aGlzLmJpdGdvLCB0eFJlcXVlc3Qud2FsbGV0SWQsIHR4UmVxdWVzdC50eFJlcXVlc3RJZCwgcmVxdWVzdFR5cGUsIHBhcmFtcy5yZXFJZCk7XG4gIH1cblxuICAvLyAjZW5kcmVnaW9uXG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ import { MPCv2KeyGenState } from '@bitgo/public-types';
2
+ import { BitGoBase } from '../../../bitgoBase';
3
+ import { GenerateEddsaMPCv2KeyRequestBody, GenerateEddsaMPCv2KeyRequestResponse } from './typesEddsaMPCv2';
4
+ export type EddsaMPCv2KeyGenSendFn<T extends GenerateEddsaMPCv2KeyRequestResponse> = (round: MPCv2KeyGenState, payload: GenerateEddsaMPCv2KeyRequestBody) => Promise<T>;
5
+ export declare function KeyGenSenderForEnterprise<T extends GenerateEddsaMPCv2KeyRequestResponse>(bitgo: BitGoBase, enterprise: string): EddsaMPCv2KeyGenSendFn<T>;
6
+ //# sourceMappingURL=eddsaMPCv2KeyGenSender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eddsaMPCv2KeyGenSender.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gCAAgC,EAAE,oCAAoC,EAAE,MAAM,mBAAmB,CAAC;AAE3G,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,oCAAoC,IAAI,CACnF,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,gCAAgC,KACtC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,oCAAoC,EACtF,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,GACjB,sBAAsB,CAAC,CAAC,CAAC,CAO3B"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyGenSenderForEnterprise = KeyGenSenderForEnterprise;
4
+ const public_types_1 = require("@bitgo/public-types");
5
+ function KeyGenSenderForEnterprise(bitgo, enterprise) {
6
+ return (round, payload) => {
7
+ return bitgo
8
+ .post(bitgo.url('/mpc/generatekey', 2))
9
+ .send({ enterprise, type: public_types_1.KeyGenTypeEnum.MPCv2, curveType: public_types_1.KeyCurveEnum.EdDSA, round, payload })
10
+ .result();
11
+ };
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2FNUEN2MktleUdlblNlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvZWRkc2EvZWRkc2FNUEN2MktleUdlblNlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLDhEQVVDO0FBbkJELHNEQUFxRjtBQVNyRixTQUFnQix5QkFBeUIsQ0FDdkMsS0FBZ0IsRUFDaEIsVUFBa0I7SUFFbEIsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixPQUFPLEtBQUs7YUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN0QyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLDZCQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSwyQkFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7YUFDL0YsTUFBTSxFQUFFLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5Q3VydmVFbnVtLCBLZXlHZW5UeXBlRW51bSwgTVBDdjJLZXlHZW5TdGF0ZSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vLi4vLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IEdlbmVyYXRlRWRkc2FNUEN2MktleVJlcXVlc3RCb2R5LCBHZW5lcmF0ZUVkZHNhTVBDdjJLZXlSZXF1ZXN0UmVzcG9uc2UgfSBmcm9tICcuL3R5cGVzRWRkc2FNUEN2Mic7XG5cbmV4cG9ydCB0eXBlIEVkZHNhTVBDdjJLZXlHZW5TZW5kRm48VCBleHRlbmRzIEdlbmVyYXRlRWRkc2FNUEN2MktleVJlcXVlc3RSZXNwb25zZT4gPSAoXG4gIHJvdW5kOiBNUEN2MktleUdlblN0YXRlLFxuICBwYXlsb2FkOiBHZW5lcmF0ZUVkZHNhTVBDdjJLZXlSZXF1ZXN0Qm9keVxuKSA9PiBQcm9taXNlPFQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gS2V5R2VuU2VuZGVyRm9yRW50ZXJwcmlzZTxUIGV4dGVuZHMgR2VuZXJhdGVFZGRzYU1QQ3YyS2V5UmVxdWVzdFJlc3BvbnNlPihcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgZW50ZXJwcmlzZTogc3RyaW5nXG4pOiBFZGRzYU1QQ3YyS2V5R2VuU2VuZEZuPFQ+IHtcbiAgcmV0dXJuIChyb3VuZCwgcGF5bG9hZCkgPT4ge1xuICAgIHJldHVybiBiaXRnb1xuICAgICAgLnBvc3QoYml0Z28udXJsKCcvbXBjL2dlbmVyYXRla2V5JywgMikpXG4gICAgICAuc2VuZCh7IGVudGVycHJpc2UsIHR5cGU6IEtleUdlblR5cGVFbnVtLk1QQ3YyLCBjdXJ2ZVR5cGU6IEtleUN1cnZlRW51bS5FZERTQSwgcm91bmQsIHBheWxvYWQgfSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgfTtcbn1cbiJdfQ==
@@ -5,4 +5,7 @@ export * as EddsaUtilsTypes from './types';
5
5
  export default EddsaUtils;
6
6
  export { ITssUtils, IEddsaUtils, EddsaUnsignedTransaction } from './types';
7
7
  export { PrebuildTransactionWithIntentOptions, SignatureShareRecord, SignatureShareType, TxRequest, } from '../baseTypes';
8
+ export * from './eddsaMPCv2';
9
+ export * from './eddsaMPCv2KeyGenSender';
10
+ export * from './typesEddsaMPCv2';
8
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,sCAAsC;AACtC,OAAO,KAAK,aAAa,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,eAAe,MAAM,SAAS,CAAC;AAE3C,eAAe,UAAU,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EACL,oCAAoC,EACpC,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GACV,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,sCAAsC;AACtC,OAAO,KAAK,aAAa,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,eAAe,MAAM,SAAS,CAAC;AAE3C,eAAe,UAAU,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EACL,oCAAoC,EACpC,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GACV,MAAM,cAAc,CAAC;AAEtB,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -11,12 +15,25 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
11
15
  }) : function(o, v) {
12
16
  o["default"] = v;
13
17
  });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
37
  };
21
38
  Object.defineProperty(exports, "__esModule", { value: true });
22
39
  exports.SignatureShareType = exports.EddsaUtilsTypes = exports.TssUtilsTypes = void 0;
@@ -27,4 +44,7 @@ exports.EddsaUtilsTypes = __importStar(require("./types"));
27
44
  exports.default = eddsa_1.EddsaUtils;
28
45
  var baseTypes_1 = require("../baseTypes");
29
46
  Object.defineProperty(exports, "SignatureShareType", { enumerable: true, get: function () { return baseTypes_1.SignatureShareType; } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VkZHNhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBcUM7QUFDckMsc0NBQXNDO0FBQ3RDLHlEQUF5QztBQUN6QywyREFBMkM7QUFFM0Msa0JBQWUsa0JBQVUsQ0FBQztBQUkxQiwwQ0FLc0I7QUFGcEIsK0dBQUEsa0JBQWtCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGRzYVV0aWxzIH0gZnJvbSAnLi9lZGRzYSc7XG4vKiogQGRlcHJlY2F0ZWQgdXNlIEVkZHNhVXRpbHNUeXBlcyAqL1xuZXhwb3J0ICogYXMgVHNzVXRpbHNUeXBlcyBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGFzIEVkZHNhVXRpbHNUeXBlcyBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgRWRkc2FVdGlscztcblxuLy8gZXhwb3J0aW5nIHRoaXMgdHlwZXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG5leHBvcnQgeyBJVHNzVXRpbHMsIElFZGRzYVV0aWxzLCBFZGRzYVVuc2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7XG4gIFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyxcbiAgU2lnbmF0dXJlU2hhcmVSZWNvcmQsXG4gIFNpZ25hdHVyZVNoYXJlVHlwZSxcbiAgVHhSZXF1ZXN0LFxufSBmcm9tICcuLi9iYXNlVHlwZXMnO1xuIl19
47
+ __exportStar(require("./eddsaMPCv2"), exports);
48
+ __exportStar(require("./eddsaMPCv2KeyGenSender"), exports);
49
+ __exportStar(require("./typesEddsaMPCv2"), exports);
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VkZHNhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFxQztBQUNyQyxzQ0FBc0M7QUFDdEMseURBQXlDO0FBQ3pDLDJEQUEyQztBQUUzQyxrQkFBZSxrQkFBVSxDQUFDO0FBSTFCLDBDQUtzQjtBQUZwQiwrR0FBQSxrQkFBa0IsT0FBQTtBQUlwQiwrQ0FBNkI7QUFDN0IsMkRBQXlDO0FBQ3pDLG9EQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkZHNhVXRpbHMgfSBmcm9tICcuL2VkZHNhJztcbi8qKiBAZGVwcmVjYXRlZCB1c2UgRWRkc2FVdGlsc1R5cGVzICovXG5leHBvcnQgKiBhcyBUc3NVdGlsc1R5cGVzIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogYXMgRWRkc2FVdGlsc1R5cGVzIGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBFZGRzYVV0aWxzO1xuXG4vLyBleHBvcnRpbmcgdGhpcyB0eXBlcyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbmV4cG9ydCB7IElUc3NVdGlscywgSUVkZHNhVXRpbHMsIEVkZHNhVW5zaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IHtcbiAgUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICBTaWduYXR1cmVTaGFyZVJlY29yZCxcbiAgU2lnbmF0dXJlU2hhcmVUeXBlLFxuICBUeFJlcXVlc3QsXG59IGZyb20gJy4uL2Jhc2VUeXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZWRkc2FNUEN2Mic7XG5leHBvcnQgKiBmcm9tICcuL2VkZHNhTVBDdjJLZXlHZW5TZW5kZXInO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlc0VkZHNhTVBDdjInO1xuIl19