@bitgo-beta/sdk-core 8.2.1-beta.213 → 8.2.1-beta.2131

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 (809) 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 +43 -31
  9. package/dist/src/account-lib/baseCoin/enum.d.ts +59 -5
  10. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  11. package/dist/src/account-lib/baseCoin/enum.js +112 -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.d.ts +0 -1
  49. package/dist/src/account-lib/index.d.ts.map +1 -1
  50. package/dist/src/account-lib/index.js +23 -10
  51. package/dist/src/account-lib/mpc/index.d.ts +1 -1
  52. package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
  53. package/dist/src/account-lib/mpc/index.js +6 -2
  54. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +2 -3
  55. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  56. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +376 -354
  57. package/dist/src/account-lib/mpc/tss/ecdsa/index.js +23 -9
  58. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts +2 -2
  59. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts.map +1 -1
  60. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.js +3 -3
  61. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +46 -53
  62. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
  63. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
  64. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +0 -1
  65. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -1
  66. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +66 -69
  67. package/dist/src/account-lib/mpc/tss/eddsa/index.js +23 -9
  68. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +1 -1
  69. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
  70. package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
  71. package/dist/src/account-lib/mpc/tss/index.js +23 -9
  72. package/dist/src/account-lib/mpc/util.d.ts +7 -1
  73. package/dist/src/account-lib/mpc/util.d.ts.map +1 -1
  74. package/dist/src/account-lib/mpc/util.js +24 -1
  75. package/dist/src/account-lib/staking/index.js +6 -2
  76. package/dist/src/account-lib/staking/utils.js +3 -3
  77. package/dist/src/account-lib/util/crypto.d.ts +8 -2
  78. package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
  79. package/dist/src/account-lib/util/crypto.js +69 -38
  80. package/dist/src/api/bip32path.js +2 -3
  81. package/dist/src/api/index.js +6 -2
  82. package/dist/src/api/types.d.ts +37 -0
  83. package/dist/src/api/types.d.ts.map +1 -1
  84. package/dist/src/api/types.js +8 -1
  85. package/dist/src/bitgo/address-book/address-book.d.ts.map +1 -1
  86. package/dist/src/bitgo/address-book/address-book.js +20 -12
  87. package/dist/src/bitgo/address-book/index.js +6 -2
  88. package/dist/src/bitgo/address-book/types.d.ts +36 -36
  89. package/dist/src/bitgo/address-book/types.d.ts.map +1 -1
  90. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +123 -13
  91. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  92. package/dist/src/bitgo/baseCoin/baseCoin.js +200 -16
  93. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +337 -33
  94. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  95. package/dist/src/bitgo/baseCoin/iBaseCoin.js +14 -3
  96. package/dist/src/bitgo/baseCoin/index.js +6 -2
  97. package/dist/src/bitgo/bip32util.d.ts +3 -16
  98. package/dist/src/bitgo/bip32util.d.ts.map +1 -1
  99. package/dist/src/bitgo/bip32util.js +4 -56
  100. package/dist/src/bitgo/bitcoin.d.ts +0 -1
  101. package/dist/src/bitgo/bitcoin.d.ts.map +1 -1
  102. package/dist/src/bitgo/bitcoin.js +26 -13
  103. package/dist/src/bitgo/bitgoBase.d.ts +17 -4
  104. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  105. package/dist/src/bitgo/bitgoBase.js +1 -1
  106. package/dist/src/bitgo/coinFactory.d.ts +24 -3
  107. package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
  108. package/dist/src/bitgo/coinFactory.js +35 -3
  109. package/dist/src/bitgo/config.d.ts +3 -101
  110. package/dist/src/bitgo/config.d.ts.map +1 -1
  111. package/dist/src/bitgo/config.js +26 -15
  112. package/dist/src/bitgo/defi/defiVault.d.ts +171 -0
  113. package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -0
  114. package/dist/src/bitgo/defi/defiVault.js +445 -0
  115. package/dist/src/bitgo/defi/iDefiVault.d.ts +101 -0
  116. package/dist/src/bitgo/defi/iDefiVault.d.ts.map +1 -0
  117. package/dist/src/bitgo/defi/iDefiVault.js +6 -0
  118. package/dist/src/bitgo/defi/index.d.ts +3 -0
  119. package/dist/src/bitgo/defi/index.d.ts.map +1 -0
  120. package/dist/src/bitgo/defi/index.js +22 -0
  121. package/dist/src/bitgo/ecdh.d.ts +0 -1
  122. package/dist/src/bitgo/ecdh.d.ts.map +1 -1
  123. package/dist/src/bitgo/ecdh.js +26 -13
  124. package/dist/src/bitgo/enterprise/enterprise.d.ts +9 -4
  125. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  126. package/dist/src/bitgo/enterprise/enterprise.js +47 -21
  127. package/dist/src/bitgo/enterprise/enterprises.js +27 -13
  128. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +5 -3
  129. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  130. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  131. package/dist/src/bitgo/enterprise/index.js +6 -2
  132. package/dist/src/bitgo/environments.d.ts +74 -3
  133. package/dist/src/bitgo/environments.d.ts.map +1 -1
  134. package/dist/src/bitgo/environments.js +417 -34
  135. package/dist/src/bitgo/errors.d.ts +193 -1
  136. package/dist/src/bitgo/errors.d.ts.map +1 -1
  137. package/dist/src/bitgo/errors.js +194 -3
  138. package/dist/src/bitgo/evm/evmUtils.d.ts +26 -0
  139. package/dist/src/bitgo/evm/evmUtils.d.ts.map +1 -0
  140. package/dist/src/bitgo/evm/evmUtils.js +50 -0
  141. package/dist/src/bitgo/index.d.ts +6 -1
  142. package/dist/src/bitgo/index.d.ts.map +1 -1
  143. package/dist/src/bitgo/index.js +32 -11
  144. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts +3 -3
  145. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts.map +1 -1
  146. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.js +1 -1
  147. package/dist/src/bitgo/inscriptionBuilder/index.js +6 -2
  148. package/dist/src/bitgo/internal/index.js +6 -2
  149. package/dist/src/bitgo/internal/internal.js +5 -6
  150. package/dist/src/bitgo/internal/keycard.d.ts +13 -8
  151. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -1
  152. package/dist/src/bitgo/internal/keycard.js +63 -48
  153. package/dist/src/bitgo/keychain/decryptKeychain.d.ts +14 -0
  154. package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -0
  155. package/dist/src/bitgo/keychain/decryptKeychain.js +36 -0
  156. package/dist/src/bitgo/keychain/iKeychains.d.ts +180 -11
  157. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  158. package/dist/src/bitgo/keychain/iKeychains.js +2 -2
  159. package/dist/src/bitgo/keychain/index.d.ts +1 -0
  160. package/dist/src/bitgo/keychain/index.d.ts.map +1 -1
  161. package/dist/src/bitgo/keychain/index.js +7 -2
  162. package/dist/src/bitgo/keychain/keychains.d.ts +106 -13
  163. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  164. package/dist/src/bitgo/keychain/keychains.js +423 -72
  165. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +3 -3
  166. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  167. package/dist/src/bitgo/keychain/ovcJsonCodec.js +23 -9
  168. package/dist/src/bitgo/legacyBitcoin.d.ts +0 -1
  169. package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -1
  170. package/dist/src/bitgo/legacyBitcoin.js +27 -13
  171. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts +7 -0
  172. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts.map +1 -0
  173. package/dist/src/bitgo/lightning/lightningWalletUtil.js +25 -0
  174. package/dist/src/bitgo/market/iMarkets.d.ts +2 -2
  175. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -1
  176. package/dist/src/bitgo/market/index.js +6 -2
  177. package/dist/src/bitgo/market/markets.js +23 -9
  178. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +5 -1
  179. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  180. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +4 -4
  181. package/dist/src/bitgo/pendingApproval/index.js +6 -2
  182. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +20 -8
  183. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
  184. package/dist/src/bitgo/pendingApproval/pendingApproval.js +246 -111
  185. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +23 -9
  186. package/dist/src/bitgo/proofs/WalletProofs.d.ts +19 -0
  187. package/dist/src/bitgo/proofs/WalletProofs.d.ts.map +1 -0
  188. package/dist/src/bitgo/proofs/WalletProofs.js +37 -0
  189. package/dist/src/bitgo/proofs/index.d.ts +2 -0
  190. package/dist/src/bitgo/proofs/index.d.ts.map +1 -0
  191. package/dist/src/bitgo/proofs/index.js +6 -0
  192. package/dist/src/bitgo/proofs/types.d.ts +80 -0
  193. package/dist/src/bitgo/proofs/types.d.ts.map +1 -0
  194. package/dist/src/bitgo/proofs/types.js +80 -0
  195. package/dist/src/bitgo/recovery/index.js +6 -2
  196. package/dist/src/bitgo/recovery/initiate.d.ts +13 -3
  197. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  198. package/dist/src/bitgo/recovery/initiate.js +49 -41
  199. package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts +72 -0
  200. package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -0
  201. package/dist/src/bitgo/safe/derivableEd25519Pub.js +186 -0
  202. package/dist/src/bitgo/safe/iSafe.d.ts +124 -0
  203. package/dist/src/bitgo/safe/iSafe.d.ts.map +1 -0
  204. package/dist/src/bitgo/safe/iSafe.js +3 -0
  205. package/dist/src/bitgo/safe/iSafes.d.ts +94 -0
  206. package/dist/src/bitgo/safe/iSafes.d.ts.map +1 -0
  207. package/dist/src/bitgo/safe/iSafes.js +3 -0
  208. package/dist/src/bitgo/safe/index.d.ts +8 -0
  209. package/dist/src/bitgo/safe/index.d.ts.map +1 -0
  210. package/dist/src/bitgo/safe/index.js +24 -0
  211. package/dist/src/bitgo/safe/recovery.d.ts +192 -0
  212. package/dist/src/bitgo/safe/recovery.d.ts.map +1 -0
  213. package/dist/src/bitgo/safe/recovery.js +253 -0
  214. package/dist/src/bitgo/safe/rootCoin.d.ts +15 -0
  215. package/dist/src/bitgo/safe/rootCoin.d.ts.map +1 -0
  216. package/dist/src/bitgo/safe/rootCoin.js +47 -0
  217. package/dist/src/bitgo/safe/safe.d.ts +88 -0
  218. package/dist/src/bitgo/safe/safe.d.ts.map +1 -0
  219. package/dist/src/bitgo/safe/safe.js +417 -0
  220. package/dist/src/bitgo/safe/safes.d.ts +102 -0
  221. package/dist/src/bitgo/safe/safes.d.ts.map +1 -0
  222. package/dist/src/bitgo/safe/safes.js +281 -0
  223. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +136 -0
  224. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts.map +1 -0
  225. package/dist/src/bitgo/staking/goStakingInterfaces.js +3 -0
  226. package/dist/src/bitgo/staking/goStakingWallet.d.ts +62 -0
  227. package/dist/src/bitgo/staking/goStakingWallet.d.ts.map +1 -0
  228. package/dist/src/bitgo/staking/goStakingWallet.js +141 -0
  229. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts +17 -0
  230. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts.map +1 -0
  231. package/dist/src/bitgo/staking/iGoStakingWallet.js +3 -0
  232. package/dist/src/bitgo/staking/iStakingWallet.d.ts +161 -8
  233. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  234. package/dist/src/bitgo/staking/iStakingWallet.js +2 -2
  235. package/dist/src/bitgo/staking/index.d.ts +3 -0
  236. package/dist/src/bitgo/staking/index.d.ts.map +1 -1
  237. package/dist/src/bitgo/staking/index.js +9 -2
  238. package/dist/src/bitgo/staking/stakingWallet.d.ts +21 -8
  239. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  240. package/dist/src/bitgo/staking/stakingWallet.js +153 -7
  241. package/dist/src/bitgo/trading/iTradingAccount.d.ts +13 -1
  242. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -1
  243. package/dist/src/bitgo/trading/iTradingAccount.js +1 -1
  244. package/dist/src/bitgo/trading/index.d.ts +1 -0
  245. package/dist/src/bitgo/trading/index.d.ts.map +1 -1
  246. package/dist/src/bitgo/trading/index.js +7 -2
  247. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts +8 -0
  248. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts.map +1 -0
  249. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.js +31 -0
  250. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts +8 -0
  251. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts.map +1 -0
  252. package/dist/src/bitgo/trading/network/decrypt-rsa.js +23 -0
  253. package/dist/src/bitgo/trading/network/decrypt.d.ts +14 -0
  254. package/dist/src/bitgo/trading/network/decrypt.d.ts.map +1 -0
  255. package/dist/src/bitgo/trading/network/decrypt.js +23 -0
  256. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts +8 -0
  257. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts.map +1 -0
  258. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.js +25 -0
  259. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts +8 -0
  260. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts.map +1 -0
  261. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.js +65 -0
  262. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts +8 -0
  263. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts.map +1 -0
  264. package/dist/src/bitgo/trading/network/encrypt-rsa.js +23 -0
  265. package/dist/src/bitgo/trading/network/encrypt.d.ts +37 -0
  266. package/dist/src/bitgo/trading/network/encrypt.d.ts.map +1 -0
  267. package/dist/src/bitgo/trading/network/encrypt.js +58 -0
  268. package/dist/src/bitgo/trading/network/index.d.ts +2 -0
  269. package/dist/src/bitgo/trading/network/index.d.ts.map +1 -1
  270. package/dist/src/bitgo/trading/network/index.js +8 -2
  271. package/dist/src/bitgo/trading/network/network.d.ts +4 -3
  272. package/dist/src/bitgo/trading/network/network.d.ts.map +1 -1
  273. package/dist/src/bitgo/trading/network/network.js +24 -27
  274. package/dist/src/bitgo/trading/network/types.d.ts +79 -46
  275. package/dist/src/bitgo/trading/network/types.d.ts.map +1 -1
  276. package/dist/src/bitgo/trading/network/types.js +1 -1
  277. package/dist/src/bitgo/trading/network/utils.d.ts +20 -0
  278. package/dist/src/bitgo/trading/network/utils.d.ts.map +1 -0
  279. package/dist/src/bitgo/trading/network/utils.js +54 -0
  280. package/dist/src/bitgo/trading/tradingAccount.d.ts +15 -1
  281. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
  282. package/dist/src/bitgo/trading/tradingAccount.js +55 -7
  283. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts +49 -0
  284. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  285. package/dist/src/bitgo/tss/bitgoPubKeys.js +92 -0
  286. package/dist/src/bitgo/tss/common.d.ts +50 -6
  287. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  288. package/dist/src/bitgo/tss/common.js +139 -17
  289. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +6 -4
  290. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  291. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +78 -66
  292. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts +15 -0
  293. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  294. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.js +167 -0
  295. package/dist/src/bitgo/tss/ecdsa/index.d.ts +1 -0
  296. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -1
  297. package/dist/src/bitgo/tss/ecdsa/index.js +25 -10
  298. package/dist/src/bitgo/tss/ecdsa/types.d.ts +27 -27
  299. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  300. package/dist/src/bitgo/tss/ecdsa/types.js +3 -3
  301. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +15 -6
  302. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  303. package/dist/src/bitgo/tss/eddsa/eddsa.js +47 -40
  304. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +42 -0
  305. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  306. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +104 -0
  307. package/dist/src/bitgo/tss/eddsa/index.js +23 -9
  308. package/dist/src/bitgo/tss/eddsa/types.d.ts +4 -4
  309. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -1
  310. package/dist/src/bitgo/tss/index.d.ts +3 -2
  311. package/dist/src/bitgo/tss/index.d.ts.map +1 -1
  312. package/dist/src/bitgo/tss/index.js +26 -10
  313. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts +138 -0
  314. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  315. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.js +255 -0
  316. package/dist/src/bitgo/tss/types.d.ts +3 -3
  317. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  318. package/dist/src/bitgo/tss/types.js +2 -2
  319. package/dist/src/bitgo/types.d.ts +3 -3
  320. package/dist/src/bitgo/types.d.ts.map +1 -1
  321. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +10 -0
  322. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
  323. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +76 -14
  324. package/dist/src/bitgo/utils/codecProps.js +24 -11
  325. package/dist/src/bitgo/utils/codecs.d.ts +11 -0
  326. package/dist/src/bitgo/utils/codecs.d.ts.map +1 -0
  327. package/dist/src/bitgo/utils/codecs.js +59 -0
  328. package/dist/src/bitgo/utils/decode.d.ts.map +1 -1
  329. package/dist/src/bitgo/utils/decode.js +30 -16
  330. package/dist/src/bitgo/utils/index.d.ts +5 -2
  331. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  332. package/dist/src/bitgo/utils/index.js +28 -11
  333. package/dist/src/bitgo/utils/messageTypes.d.ts +46 -0
  334. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
  335. package/dist/src/bitgo/utils/messageTypes.js +23 -0
  336. package/dist/src/bitgo/utils/mpcUtils.d.ts +4 -4
  337. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  338. package/dist/src/bitgo/utils/mpcUtils.js +210 -14
  339. package/dist/src/bitgo/utils/notEmpty.d.ts +2 -0
  340. package/dist/src/bitgo/utils/notEmpty.d.ts.map +1 -0
  341. package/dist/src/bitgo/utils/notEmpty.js +7 -0
  342. package/dist/src/bitgo/utils/opengpgUtils.d.ts +11 -7
  343. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  344. package/dist/src/bitgo/utils/opengpgUtils.js +79 -62
  345. package/dist/src/bitgo/utils/postWithCodec.js +2 -3
  346. package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
  347. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
  348. package/dist/src/bitgo/utils/promise-utils.js +2 -3
  349. package/dist/src/bitgo/utils/siws.d.ts +17 -0
  350. package/dist/src/bitgo/utils/siws.d.ts.map +1 -0
  351. package/dist/src/bitgo/utils/siws.js +171 -0
  352. package/dist/src/bitgo/utils/transactionUtils.d.ts +9 -0
  353. package/dist/src/bitgo/utils/transactionUtils.d.ts.map +1 -0
  354. package/dist/src/bitgo/utils/transactionUtils.js +29 -0
  355. package/dist/src/bitgo/utils/triple.d.ts +1 -1
  356. package/dist/src/bitgo/utils/triple.d.ts.map +1 -1
  357. package/dist/src/bitgo/utils/triple.js +2 -3
  358. package/dist/src/bitgo/utils/tss/addressVerification.d.ts +62 -0
  359. package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  360. package/dist/src/bitgo/utils/tss/addressVerification.js +93 -0
  361. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +99 -17
  362. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  363. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +322 -45
  364. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +478 -55
  365. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  366. package/dist/src/bitgo/utils/tss/baseTypes.js +47 -22
  367. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts +23 -0
  368. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -0
  369. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +157 -0
  370. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts +28 -0
  371. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts.map +1 -0
  372. package/dist/src/bitgo/utils/tss/ecdsa/base.js +53 -0
  373. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +25 -51
  374. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  375. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +173 -246
  376. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +241 -0
  377. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  378. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1082 -0
  379. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +17 -0
  380. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -0
  381. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +39 -0
  382. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts +65 -0
  383. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts.map +1 -0
  384. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.js +439 -0
  385. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +5 -0
  386. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
  387. package/dist/src/bitgo/utils/tss/ecdsa/index.js +11 -2
  388. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +7 -10
  389. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  390. package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
  391. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +151 -0
  392. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -0
  393. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +55 -0
  394. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts +21 -0
  395. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts.map +1 -0
  396. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.js +119 -0
  397. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts +18 -0
  398. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts.map +1 -0
  399. package/dist/src/bitgo/utils/tss/eddsa/base.js +64 -0
  400. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +43 -11
  401. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  402. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +261 -96
  403. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +261 -0
  404. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  405. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +994 -0
  406. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts +14 -0
  407. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts.map +1 -0
  408. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.js +29 -0
  409. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +44 -0
  410. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
  411. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +268 -0
  412. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +5 -0
  413. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
  414. package/dist/src/bitgo/utils/tss/eddsa/index.js +30 -8
  415. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +15 -7
  416. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
  417. package/dist/src/bitgo/utils/tss/eddsa/types.js +1 -1
  418. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +75 -0
  419. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -0
  420. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +44 -0
  421. package/dist/src/bitgo/utils/tss/index.d.ts +7 -0
  422. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
  423. package/dist/src/bitgo/utils/tss/index.js +31 -10
  424. package/dist/src/bitgo/utils/tss/keyShareEnvelope.d.ts +40 -0
  425. package/dist/src/bitgo/utils/tss/keyShareEnvelope.d.ts.map +1 -0
  426. package/dist/src/bitgo/utils/tss/keyShareEnvelope.js +103 -0
  427. package/dist/src/bitgo/utils/tss/keyVerification.d.ts +45 -0
  428. package/dist/src/bitgo/utils/tss/keyVerification.d.ts.map +1 -0
  429. package/dist/src/bitgo/utils/tss/keyVerification.js +192 -0
  430. package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts +23 -0
  431. package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
  432. package/dist/src/bitgo/utils/tss/preHashedSignable.js +26 -0
  433. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts +42 -0
  434. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -0
  435. package/dist/src/bitgo/utils/tss/recipientUtils.js +179 -0
  436. package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.d.ts +29 -0
  437. package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.d.ts.map +1 -0
  438. package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.js +126 -0
  439. package/dist/src/bitgo/utils/tss/redpallas/index.d.ts +4 -0
  440. package/dist/src/bitgo/utils/tss/redpallas/index.d.ts.map +1 -0
  441. package/dist/src/bitgo/utils/tss/redpallas/index.js +20 -0
  442. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts +27 -0
  443. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  444. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.js +43 -0
  445. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts +45 -0
  446. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts.map +1 -0
  447. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.js +55 -0
  448. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts +8 -0
  449. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts.map +1 -0
  450. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.js +13 -0
  451. package/dist/src/bitgo/utils/tss/signableConsistency.d.ts +12 -0
  452. package/dist/src/bitgo/utils/tss/signableConsistency.d.ts.map +1 -0
  453. package/dist/src/bitgo/utils/tss/signableConsistency.js +9 -0
  454. package/dist/src/bitgo/utils/txRequest.d.ts +10 -0
  455. package/dist/src/bitgo/utils/txRequest.d.ts.map +1 -0
  456. package/dist/src/bitgo/utils/txRequest.js +49 -0
  457. package/dist/src/bitgo/utils/util.js +24 -10
  458. package/dist/src/bitgo/utils/wallet.d.ts +7 -0
  459. package/dist/src/bitgo/utils/wallet.d.ts.map +1 -0
  460. package/dist/src/bitgo/utils/wallet.js +48 -0
  461. package/dist/src/bitgo/v1Wallets.d.ts +170 -0
  462. package/dist/src/bitgo/v1Wallets.d.ts.map +1 -0
  463. package/dist/src/bitgo/v1Wallets.js +3 -0
  464. package/dist/src/bitgo/wallet/BuildParams.d.ts +92 -1
  465. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  466. package/dist/src/bitgo/wallet/BuildParams.js +97 -11
  467. package/dist/src/bitgo/wallet/iWallet.d.ts +647 -33
  468. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  469. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  470. package/dist/src/bitgo/wallet/iWallets.d.ts +311 -16
  471. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  472. package/dist/src/bitgo/wallet/iWallets.js +84 -3
  473. package/dist/src/bitgo/wallet/index.d.ts +1 -0
  474. package/dist/src/bitgo/wallet/index.d.ts.map +1 -1
  475. package/dist/src/bitgo/wallet/index.js +7 -2
  476. package/dist/src/bitgo/wallet/safeKeychain.d.ts +75 -0
  477. package/dist/src/bitgo/wallet/safeKeychain.d.ts.map +1 -0
  478. package/dist/src/bitgo/wallet/safeKeychain.js +152 -0
  479. package/dist/src/bitgo/wallet/wallet.d.ts +410 -27
  480. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  481. package/dist/src/bitgo/wallet/wallet.js +2525 -510
  482. package/dist/src/bitgo/wallet/wallets.d.ts +99 -4
  483. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  484. package/dist/src/bitgo/wallet/wallets.js +1256 -156
  485. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts +12 -0
  486. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts.map +1 -0
  487. package/dist/src/bitgo/walletUtil/iMessageProvider.js +3 -0
  488. package/dist/src/bitgo/walletUtil/index.d.ts +3 -0
  489. package/dist/src/bitgo/walletUtil/index.d.ts.map +1 -0
  490. package/dist/src/bitgo/walletUtil/index.js +19 -0
  491. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts +22 -0
  492. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts.map +1 -0
  493. package/dist/src/bitgo/walletUtil/midnightMessageProvider.js +95 -0
  494. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts +9 -0
  495. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts.map +1 -0
  496. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.js +72 -0
  497. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts +15 -0
  498. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts.map +1 -0
  499. package/dist/src/bitgo/walletUtil/utxoMessageProof.js +40 -0
  500. package/dist/src/bitgo/webauthn/base64url.d.ts +16 -0
  501. package/dist/src/bitgo/webauthn/base64url.d.ts.map +1 -0
  502. package/dist/src/bitgo/webauthn/base64url.js +27 -0
  503. package/dist/src/bitgo/webauthn/deriveEnterpriseSalt.d.ts +18 -0
  504. package/dist/src/bitgo/webauthn/deriveEnterpriseSalt.d.ts.map +1 -0
  505. package/dist/src/bitgo/webauthn/deriveEnterpriseSalt.js +26 -0
  506. package/dist/src/bitgo/webauthn/derivePassword.d.ts +11 -0
  507. package/dist/src/bitgo/webauthn/derivePassword.d.ts.map +1 -0
  508. package/dist/src/bitgo/webauthn/derivePassword.js +16 -0
  509. package/dist/src/bitgo/webauthn/index.d.ts +5 -0
  510. package/dist/src/bitgo/webauthn/index.d.ts.map +1 -0
  511. package/dist/src/bitgo/webauthn/index.js +21 -0
  512. package/dist/src/bitgo/webauthn/types.d.ts +18 -0
  513. package/dist/src/bitgo/webauthn/types.d.ts.map +1 -0
  514. package/dist/src/bitgo/webauthn/types.js +3 -0
  515. package/dist/src/bitgo/webhook/index.js +6 -2
  516. package/dist/src/bitgo/webhook/webhooks.js +23 -9
  517. package/dist/src/coins/fiat.d.ts +45 -0
  518. package/dist/src/coins/fiat.d.ts.map +1 -0
  519. package/dist/src/coins/fiat.js +94 -0
  520. package/dist/src/coins/index.d.ts +1 -6
  521. package/dist/src/coins/index.d.ts.map +1 -1
  522. package/dist/src/coins/index.js +7 -8
  523. package/dist/src/coins/ofc.d.ts +21 -2
  524. package/dist/src/coins/ofc.d.ts.map +1 -1
  525. package/dist/src/coins/ofc.js +29 -3
  526. package/dist/src/coins/ofcToken.d.ts +15 -4
  527. package/dist/src/coins/ofcToken.d.ts.map +1 -1
  528. package/dist/src/coins/ofcToken.js +43 -5
  529. package/dist/src/coins/susd.d.ts +3 -2
  530. package/dist/src/coins/susd.d.ts.map +1 -1
  531. package/dist/src/coins/susd.js +5 -1
  532. package/dist/src/common.js +27 -13
  533. package/dist/src/index.d.ts +9 -1
  534. package/dist/src/index.d.ts.map +1 -1
  535. package/dist/src/index.js +40 -11
  536. package/dist/src/lightning.d.ts +20 -0
  537. package/dist/src/lightning.d.ts.map +1 -0
  538. package/dist/src/lightning.js +13 -0
  539. package/dist/src/units.js +5 -6
  540. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
  541. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  542. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +207 -0
  543. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
  544. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  545. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +174 -0
  546. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
  547. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  548. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +108 -0
  549. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +46 -0
  550. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
  551. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +69 -0
  552. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +91 -29
  553. package/dist/test/unit/account-lib/mpc/util.d.ts +2 -0
  554. package/dist/test/unit/account-lib/mpc/util.d.ts.map +1 -0
  555. package/dist/test/unit/account-lib/mpc/util.js +53 -0
  556. package/dist/test/unit/bitgo/address-book/address-book.d.ts +2 -0
  557. package/dist/test/unit/bitgo/address-book/address-book.d.ts.map +1 -0
  558. package/dist/test/unit/bitgo/address-book/address-book.js +159 -0
  559. package/dist/test/unit/bitgo/defi/defiVault.d.ts +2 -0
  560. package/dist/test/unit/bitgo/defi/defiVault.d.ts.map +1 -0
  561. package/dist/test/unit/bitgo/defi/defiVault.js +863 -0
  562. package/dist/test/unit/bitgo/environment.d.ts +2 -0
  563. package/dist/test/unit/bitgo/environment.d.ts.map +1 -0
  564. package/dist/test/unit/bitgo/environment.js +38 -0
  565. package/dist/test/unit/bitgo/errors.d.ts +2 -0
  566. package/dist/test/unit/bitgo/errors.d.ts.map +1 -0
  567. package/dist/test/unit/bitgo/errors.js +276 -0
  568. package/dist/test/unit/bitgo/keychain/keychains.d.ts +2 -0
  569. package/dist/test/unit/bitgo/keychain/keychains.d.ts.map +1 -0
  570. package/dist/test/unit/bitgo/keychain/keychains.js +426 -0
  571. package/dist/test/unit/bitgo/recovery/initiate.d.ts +2 -0
  572. package/dist/test/unit/bitgo/recovery/initiate.d.ts.map +1 -0
  573. package/dist/test/unit/bitgo/recovery/initiate.js +159 -0
  574. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.d.ts +2 -0
  575. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -0
  576. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.js +257 -0
  577. package/dist/test/unit/bitgo/safe/fixtures/derivableEd25519Pub.json +72 -0
  578. package/dist/test/unit/bitgo/safe/fixtures/safeBip44Vectors.json +319 -0
  579. package/dist/test/unit/bitgo/safe/recovery.d.ts +2 -0
  580. package/dist/test/unit/bitgo/safe/recovery.d.ts.map +1 -0
  581. package/dist/test/unit/bitgo/safe/recovery.js +647 -0
  582. package/dist/test/unit/bitgo/safe/rootCoin.d.ts +2 -0
  583. package/dist/test/unit/bitgo/safe/rootCoin.d.ts.map +1 -0
  584. package/dist/test/unit/bitgo/safe/rootCoin.js +13 -0
  585. package/dist/test/unit/bitgo/safe/safe.d.ts +2 -0
  586. package/dist/test/unit/bitgo/safe/safe.d.ts.map +1 -0
  587. package/dist/test/unit/bitgo/safe/safe.js +607 -0
  588. package/dist/test/unit/bitgo/safe/safeBip44Vectors.d.ts +2 -0
  589. package/dist/test/unit/bitgo/safe/safeBip44Vectors.d.ts.map +1 -0
  590. package/dist/test/unit/bitgo/safe/safeBip44Vectors.js +189 -0
  591. package/dist/test/unit/bitgo/safe/safeDerivation.d.ts +2 -0
  592. package/dist/test/unit/bitgo/safe/safeDerivation.d.ts.map +1 -0
  593. package/dist/test/unit/bitgo/safe/safeDerivation.js +37 -0
  594. package/dist/test/unit/bitgo/safe/safes.d.ts +2 -0
  595. package/dist/test/unit/bitgo/safe/safes.d.ts.map +1 -0
  596. package/dist/test/unit/bitgo/safe/safes.js +376 -0
  597. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts +2 -0
  598. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts.map +1 -0
  599. package/dist/test/unit/bitgo/trading/network/encrypt.js +71 -0
  600. package/dist/test/unit/bitgo/trading/network/network.test.d.ts +2 -0
  601. package/dist/test/unit/bitgo/trading/network/network.test.d.ts.map +1 -0
  602. package/dist/test/unit/bitgo/trading/network/network.test.js +136 -0
  603. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts +2 -0
  604. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts.map +1 -0
  605. package/dist/test/unit/bitgo/trading/tradingAccount.js +192 -0
  606. package/dist/test/unit/bitgo/tss/bitgoPubKeys.d.ts +2 -0
  607. package/dist/test/unit/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  608. package/dist/test/unit/bitgo/tss/bitgoPubKeys.js +66 -0
  609. package/dist/test/unit/bitgo/tss/common.d.ts +2 -0
  610. package/dist/test/unit/bitgo/tss/common.d.ts.map +1 -0
  611. package/dist/test/unit/bitgo/tss/common.js +84 -0
  612. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.d.ts +2 -0
  613. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  614. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.js +370 -0
  615. package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +45 -4
  616. package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
  617. package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
  618. package/dist/test/unit/bitgo/utils/messageTypes.js +64 -0
  619. package/dist/test/unit/bitgo/utils/mpcUtils.unwrap.d.ts +2 -0
  620. package/dist/test/unit/bitgo/utils/mpcUtils.unwrap.d.ts.map +1 -0
  621. package/dist/test/unit/bitgo/utils/mpcUtils.unwrap.js +109 -0
  622. package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.d.ts +2 -0
  623. package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.d.ts.map +1 -0
  624. package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.js +106 -0
  625. package/dist/test/unit/bitgo/utils/notEmpty.d.ts +2 -0
  626. package/dist/test/unit/bitgo/utils/notEmpty.d.ts.map +1 -0
  627. package/dist/test/unit/bitgo/utils/notEmpty.js +15 -0
  628. package/dist/test/unit/bitgo/utils/postWithCodec.js +24 -10
  629. package/dist/test/unit/bitgo/utils/siws.d.ts +2 -0
  630. package/dist/test/unit/bitgo/utils/siws.d.ts.map +1 -0
  631. package/dist/test/unit/bitgo/utils/siws.js +206 -0
  632. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts +2 -0
  633. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  634. package/dist/test/unit/bitgo/utils/tss/addressVerification.js +251 -0
  635. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts +2 -0
  636. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -0
  637. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.js +348 -0
  638. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts +2 -0
  639. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts.map +1 -0
  640. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.js +94 -0
  641. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +2 -0
  642. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  643. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1246 -0
  644. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts +5 -0
  645. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts.map +1 -0
  646. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.js +36 -0
  647. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.d.ts +2 -0
  648. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.d.ts.map +1 -0
  649. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.js +158 -0
  650. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +2 -0
  651. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  652. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +2410 -0
  653. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +2 -0
  654. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
  655. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +553 -0
  656. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts +2 -0
  657. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts.map +1 -0
  658. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.js +376 -0
  659. package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.d.ts +2 -0
  660. package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.d.ts.map +1 -0
  661. package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.js +83 -0
  662. package/dist/test/unit/bitgo/utils/tss/keyVerification.d.ts +2 -0
  663. package/dist/test/unit/bitgo/utils/tss/keyVerification.d.ts.map +1 -0
  664. package/dist/test/unit/bitgo/utils/tss/keyVerification.js +229 -0
  665. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts +2 -0
  666. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
  667. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.js +55 -0
  668. package/dist/test/unit/bitgo/utils/tss/recipientUtils.d.ts +2 -0
  669. package/dist/test/unit/bitgo/utils/tss/recipientUtils.d.ts.map +1 -0
  670. package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +498 -0
  671. package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts +2 -0
  672. package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  673. package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.js +80 -0
  674. package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.d.ts +2 -0
  675. package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.d.ts.map +1 -0
  676. package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.js +279 -0
  677. package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.d.ts +2 -0
  678. package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.d.ts.map +1 -0
  679. package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.js +111 -0
  680. package/dist/test/unit/bitgo/utils/txRequest.d.ts +2 -0
  681. package/dist/test/unit/bitgo/utils/txRequest.d.ts.map +1 -0
  682. package/dist/test/unit/bitgo/utils/txRequest.js +179 -0
  683. package/dist/test/unit/bitgo/utils/wallet.d.ts +2 -0
  684. package/dist/test/unit/bitgo/utils/wallet.d.ts.map +1 -0
  685. package/dist/test/unit/bitgo/utils/wallet.js +55 -0
  686. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts +2 -0
  687. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts.map +1 -0
  688. package/dist/test/unit/bitgo/wallet/BuildParams.js +167 -0
  689. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +79 -9
  690. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts +2 -0
  691. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts.map +1 -0
  692. package/dist/test/unit/bitgo/wallet/getAccountResources.js +133 -0
  693. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.d.ts +2 -0
  694. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.d.ts.map +1 -0
  695. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.js +88 -0
  696. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts +2 -0
  697. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts.map +1 -0
  698. package/dist/test/unit/bitgo/wallet/getResourceDelegations.js +118 -0
  699. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts +2 -0
  700. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts.map +1 -0
  701. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.js +141 -0
  702. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts +2 -0
  703. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts.map +1 -0
  704. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.js +185 -0
  705. package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.d.ts +2 -0
  706. package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.d.ts.map +1 -0
  707. package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.js +20 -0
  708. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts +3 -0
  709. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts.map +1 -0
  710. package/dist/test/unit/bitgo/wallet/resourceManagement.js +441 -0
  711. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.d.ts +5 -0
  712. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.d.ts.map +1 -0
  713. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.js +651 -0
  714. package/dist/test/unit/bitgo/wallet/safeShareWallet.d.ts +9 -0
  715. package/dist/test/unit/bitgo/wallet/safeShareWallet.d.ts.map +1 -0
  716. package/dist/test/unit/bitgo/wallet/safeShareWallet.js +304 -0
  717. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts +2 -0
  718. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts.map +1 -0
  719. package/dist/test/unit/bitgo/wallet/tokenApproval.js +210 -0
  720. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts +2 -0
  721. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts.map +1 -0
  722. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.js +181 -0
  723. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts +2 -0
  724. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts.map +1 -0
  725. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +69 -0
  726. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts +2 -0
  727. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts.map +1 -0
  728. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.js +320 -0
  729. package/dist/test/unit/bitgo/wallet/walletVerifyKey.d.ts +2 -0
  730. package/dist/test/unit/bitgo/wallet/walletVerifyKey.d.ts.map +1 -0
  731. package/dist/test/unit/bitgo/wallet/walletVerifyKey.js +160 -0
  732. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts +2 -0
  733. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts.map +1 -0
  734. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.js +304 -0
  735. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts +2 -0
  736. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts.map +1 -0
  737. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.js +216 -0
  738. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts +2 -0
  739. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts.map +1 -0
  740. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.js +853 -0
  741. package/dist/test/unit/bitgo/wallet/walletsGoAccount.d.ts +2 -0
  742. package/dist/test/unit/bitgo/wallet/walletsGoAccount.d.ts.map +1 -0
  743. package/dist/test/unit/bitgo/wallet/walletsGoAccount.js +150 -0
  744. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts +2 -0
  745. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts.map +1 -0
  746. package/dist/test/unit/bitgo/wallet/walletsWebauthn.js +201 -0
  747. package/dist/test/unit/coins/ofc.d.ts +2 -0
  748. package/dist/test/unit/coins/ofc.d.ts.map +1 -0
  749. package/dist/test/unit/coins/ofc.js +124 -0
  750. package/dist/test/unit/lightning.d.ts +2 -0
  751. package/dist/test/unit/lightning.d.ts.map +1 -0
  752. package/dist/test/unit/lightning.js +23 -0
  753. package/dist/test/unit/units.d.ts.map +1 -1
  754. package/dist/test/unit/units.js +64 -64
  755. package/dist/tsconfig.tsbuildinfo +1 -1
  756. package/package.json +25 -22
  757. package/.eslintignore +0 -5
  758. package/CHANGELOG.md +0 -1866
  759. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +0 -77
  760. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +0 -1
  761. package/dist/src/account-lib/baseCoin/blsKeyPair.js +0 -209
  762. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +0 -49
  763. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +0 -1
  764. package/dist/src/account-lib/util/ed25519KeyDeriver.js +0 -87
  765. package/dist/src/bitgo/lightning/iLightning.d.ts +0 -186
  766. package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
  767. package/dist/src/bitgo/lightning/iLightning.js +0 -106
  768. package/dist/src/bitgo/lightning/index.d.ts +0 -5
  769. package/dist/src/bitgo/lightning/index.d.ts.map +0 -1
  770. package/dist/src/bitgo/lightning/index.js +0 -17
  771. package/dist/src/bitgo/lightning/lightning.d.ts +0 -25
  772. package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
  773. package/dist/src/bitgo/lightning/lightning.js +0 -111
  774. package/dist/src/bitgo/lightning/lightningUtils.d.ts +0 -46
  775. package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +0 -1
  776. package/dist/src/bitgo/lightning/lightningUtils.js +0 -133
  777. package/dist/src/bitgo/lightning/lnurlCodec.d.ts +0 -3
  778. package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
  779. package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
  780. package/dist/src/bitgo/utils/blsUtils.d.ts +0 -52
  781. package/dist/src/bitgo/utils/blsUtils.d.ts.map +0 -1
  782. package/dist/src/bitgo/utils/blsUtils.js +0 -237
  783. package/dist/src/bitgo/utils/iBlsUtils.d.ts +0 -14
  784. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +0 -1
  785. package/dist/src/bitgo/utils/iBlsUtils.js +0 -3
  786. package/dist/src/coins/fiateur.d.ts +0 -31
  787. package/dist/src/coins/fiateur.d.ts.map +0 -1
  788. package/dist/src/coins/fiateur.js +0 -57
  789. package/dist/src/coins/fiatgbp.d.ts +0 -31
  790. package/dist/src/coins/fiatgbp.d.ts.map +0 -1
  791. package/dist/src/coins/fiatgbp.js +0 -57
  792. package/dist/src/coins/fiatusd.d.ts +0 -31
  793. package/dist/src/coins/fiatusd.d.ts.map +0 -1
  794. package/dist/src/coins/fiatusd.js +0 -57
  795. package/dist/src/coins/tfiateur.d.ts +0 -11
  796. package/dist/src/coins/tfiateur.d.ts.map +0 -1
  797. package/dist/src/coins/tfiateur.js +0 -17
  798. package/dist/src/coins/tfiatgbp.d.ts +0 -11
  799. package/dist/src/coins/tfiatgbp.d.ts.map +0 -1
  800. package/dist/src/coins/tfiatgbp.js +0 -17
  801. package/dist/src/coins/tfiatusd.d.ts +0 -11
  802. package/dist/src/coins/tfiatusd.d.ts.map +0 -1
  803. package/dist/src/coins/tfiatusd.js +0 -17
  804. package/dist/src/openssl/index.d.ts +0 -5
  805. package/dist/src/openssl/index.d.ts.map +0 -1
  806. package/dist/src/openssl/index.js +0 -9
  807. package/dist/test/unit/openssl.d.ts +0 -2
  808. package/dist/test/unit/openssl.d.ts.map +0 -1
  809. package/dist/test/unit/openssl.js +0 -39
@@ -0,0 +1,14 @@
1
+ import { MPCv2KeyGenState } from '@bitgo/public-types';
2
+ import { BitGoBase } from '../../../bitgoBase';
3
+ import { GenerateEddsaMPCv2DeriveKeyRequest, GenerateEddsaMPCv2DeriveKeyRequestResponse, GenerateEddsaMPCv2KeyRequestBody, GenerateEddsaMPCv2KeyRequestResponse } from './typesEddsaMPCv2';
4
+ export type EddsaMPCv2KeyGenSendFn<T extends GenerateEddsaMPCv2KeyRequestResponse> = (round: MPCv2KeyGenState, payload: GenerateEddsaMPCv2KeyRequestBody & {
5
+ walletId?: string;
6
+ }) => Promise<T>;
7
+ export declare function KeyGenSenderForEnterprise<T extends GenerateEddsaMPCv2KeyRequestResponse>(bitgo: BitGoBase, enterprise: string, safeId?: string): EddsaMPCv2KeyGenSendFn<T>;
8
+ export type EddsaMPCv2DeriveKeySendFn<T extends GenerateEddsaMPCv2DeriveKeyRequestResponse> = (round: MPCv2KeyGenState, payload: GenerateEddsaMPCv2DeriveKeyRequest) => Promise<T>;
9
+ /**
10
+ * The EdDSA safe-child derive uses the keygen endpoint and a distinct two-round state family. `coin`
11
+ * selects the BIP44 coin type the service expects in the round 1 `path`.
12
+ */
13
+ export declare function KeyGenSenderForSafeChild<T extends GenerateEddsaMPCv2DeriveKeyRequestResponse>(bitgo: BitGoBase, enterprise: string, safeId: string, coin: string): EddsaMPCv2DeriveKeySendFn<T>;
14
+ //# 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,EACL,kCAAkC,EAClC,0CAA0C,EAC1C,gCAAgC,EAChC,oCAAoC,EACrC,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,oCAAoC,IAAI,CACnF,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,gCAAgC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAC9D,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,oCAAoC,EACtF,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAGlB,MAAM,CAAC,EAAE,MAAM,GACd,sBAAsB,CAAC,CAAC,CAAC,CAO3B;AAED,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,0CAA0C,IAAI,CAC5F,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,kCAAkC,KACxC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,0CAA0C,EAC3F,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,yBAAyB,CAAC,CAAC,CAAC,CAO9B"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyGenSenderForEnterprise = KeyGenSenderForEnterprise;
4
+ exports.KeyGenSenderForSafeChild = KeyGenSenderForSafeChild;
5
+ const public_types_1 = require("@bitgo/public-types");
6
+ function KeyGenSenderForEnterprise(bitgo, enterprise,
7
+ // Wallet Safes v1 (@experimental): when set, tags the resulting root keys with this safe. WP only reads it on
8
+ // round MPCv2-R1; passing it on a sender used solely for round 1 is sufficient.
9
+ safeId) {
10
+ return (round, payload) => {
11
+ return bitgo
12
+ .post(bitgo.url('/mpc/generatekey', 2))
13
+ .send({ enterprise, safeId, type: public_types_1.KeyGenTypeEnum.MPCv2, curveType: public_types_1.KeyCurveEnum.EdDSA, round, payload })
14
+ .result();
15
+ };
16
+ }
17
+ /**
18
+ * The EdDSA safe-child derive uses the keygen endpoint and a distinct two-round state family. `coin`
19
+ * selects the BIP44 coin type the service expects in the round 1 `path`.
20
+ */
21
+ function KeyGenSenderForSafeChild(bitgo, enterprise, safeId, coin) {
22
+ return (round, payload) => {
23
+ return bitgo
24
+ .post(bitgo.url('/mpc/generatekey', 2))
25
+ .send({ enterprise, safeId, coin, type: public_types_1.KeyGenTypeEnum.MPCv2, curveType: public_types_1.KeyCurveEnum.EdDSA, round, payload })
26
+ .result();
27
+ };
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2FNUEN2MktleUdlblNlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvZWRkc2EvZWRkc2FNUEN2MktleUdlblNlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLDhEQWFDO0FBV0QsNERBWUM7QUFsREQsc0RBQXFGO0FBY3JGLFNBQWdCLHlCQUF5QixDQUN2QyxLQUFnQixFQUNoQixVQUFrQjtBQUNsQiw4R0FBOEc7QUFDOUcsZ0ZBQWdGO0FBQ2hGLE1BQWU7SUFFZixPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLE9BQU8sS0FBSzthQUNULElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLDZCQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSwyQkFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7YUFDdkcsTUFBTSxFQUFFLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDO0FBT0Q7OztHQUdHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQ3RDLEtBQWdCLEVBQ2hCLFVBQWtCLEVBQ2xCLE1BQWMsRUFDZCxJQUFZO0lBRVosT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixPQUFPLEtBQUs7YUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN0QyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsNkJBQWMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLDJCQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQzthQUM3RyxNQUFNLEVBQUUsQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlDdXJ2ZUVudW0sIEtleUdlblR5cGVFbnVtLCBNUEN2MktleUdlblN0YXRlIH0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi8uLi8uLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGVFZGRzYU1QQ3YyRGVyaXZlS2V5UmVxdWVzdCxcbiAgR2VuZXJhdGVFZGRzYU1QQ3YyRGVyaXZlS2V5UmVxdWVzdFJlc3BvbnNlLFxuICBHZW5lcmF0ZUVkZHNhTVBDdjJLZXlSZXF1ZXN0Qm9keSxcbiAgR2VuZXJhdGVFZGRzYU1QQ3YyS2V5UmVxdWVzdFJlc3BvbnNlLFxufSBmcm9tICcuL3R5cGVzRWRkc2FNUEN2Mic7XG5cbmV4cG9ydCB0eXBlIEVkZHNhTVBDdjJLZXlHZW5TZW5kRm48VCBleHRlbmRzIEdlbmVyYXRlRWRkc2FNUEN2MktleVJlcXVlc3RSZXNwb25zZT4gPSAoXG4gIHJvdW5kOiBNUEN2MktleUdlblN0YXRlLFxuICBwYXlsb2FkOiBHZW5lcmF0ZUVkZHNhTVBDdjJLZXlSZXF1ZXN0Qm9keSAmIHsgd2FsbGV0SWQ/OiBzdHJpbmcgfVxuKSA9PiBQcm9taXNlPFQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gS2V5R2VuU2VuZGVyRm9yRW50ZXJwcmlzZTxUIGV4dGVuZHMgR2VuZXJhdGVFZGRzYU1QQ3YyS2V5UmVxdWVzdFJlc3BvbnNlPihcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgZW50ZXJwcmlzZTogc3RyaW5nLFxuICAvLyBXYWxsZXQgU2FmZXMgdjEgKEBleHBlcmltZW50YWwpOiB3aGVuIHNldCwgdGFncyB0aGUgcmVzdWx0aW5nIHJvb3Qga2V5cyB3aXRoIHRoaXMgc2FmZS4gV1Agb25seSByZWFkcyBpdCBvblxuICAvLyByb3VuZCBNUEN2Mi1SMTsgcGFzc2luZyBpdCBvbiBhIHNlbmRlciB1c2VkIHNvbGVseSBmb3Igcm91bmQgMSBpcyBzdWZmaWNpZW50LlxuICBzYWZlSWQ/OiBzdHJpbmdcbik6IEVkZHNhTVBDdjJLZXlHZW5TZW5kRm48VD4ge1xuICByZXR1cm4gKHJvdW5kLCBwYXlsb2FkKSA9PiB7XG4gICAgcmV0dXJuIGJpdGdvXG4gICAgICAucG9zdChiaXRnby51cmwoJy9tcGMvZ2VuZXJhdGVrZXknLCAyKSlcbiAgICAgIC5zZW5kKHsgZW50ZXJwcmlzZSwgc2FmZUlkLCB0eXBlOiBLZXlHZW5UeXBlRW51bS5NUEN2MiwgY3VydmVUeXBlOiBLZXlDdXJ2ZUVudW0uRWREU0EsIHJvdW5kLCBwYXlsb2FkIH0pXG4gICAgICAucmVzdWx0KCk7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEVkZHNhTVBDdjJEZXJpdmVLZXlTZW5kRm48VCBleHRlbmRzIEdlbmVyYXRlRWRkc2FNUEN2MkRlcml2ZUtleVJlcXVlc3RSZXNwb25zZT4gPSAoXG4gIHJvdW5kOiBNUEN2MktleUdlblN0YXRlLFxuICBwYXlsb2FkOiBHZW5lcmF0ZUVkZHNhTVBDdjJEZXJpdmVLZXlSZXF1ZXN0XG4pID0+IFByb21pc2U8VD47XG5cbi8qKlxuICogVGhlIEVkRFNBIHNhZmUtY2hpbGQgZGVyaXZlIHVzZXMgdGhlIGtleWdlbiBlbmRwb2ludCBhbmQgYSBkaXN0aW5jdCB0d28tcm91bmQgc3RhdGUgZmFtaWx5LiBgY29pbmBcbiAqIHNlbGVjdHMgdGhlIEJJUDQ0IGNvaW4gdHlwZSB0aGUgc2VydmljZSBleHBlY3RzIGluIHRoZSByb3VuZCAxIGBwYXRoYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEtleUdlblNlbmRlckZvclNhZmVDaGlsZDxUIGV4dGVuZHMgR2VuZXJhdGVFZGRzYU1QQ3YyRGVyaXZlS2V5UmVxdWVzdFJlc3BvbnNlPihcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgZW50ZXJwcmlzZTogc3RyaW5nLFxuICBzYWZlSWQ6IHN0cmluZyxcbiAgY29pbjogc3RyaW5nXG4pOiBFZGRzYU1QQ3YyRGVyaXZlS2V5U2VuZEZuPFQ+IHtcbiAgcmV0dXJuIChyb3VuZCwgcGF5bG9hZCkgPT4ge1xuICAgIHJldHVybiBiaXRnb1xuICAgICAgLnBvc3QoYml0Z28udXJsKCcvbXBjL2dlbmVyYXRla2V5JywgMikpXG4gICAgICAuc2VuZCh7IGVudGVycHJpc2UsIHNhZmVJZCwgY29pbiwgdHlwZTogS2V5R2VuVHlwZUVudW0uTVBDdjIsIGN1cnZlVHlwZTogS2V5Q3VydmVFbnVtLkVkRFNBLCByb3VuZCwgcGF5bG9hZCB9KVxuICAgICAgLnJlc3VsdCgpO1xuICB9O1xufVxuIl19
@@ -0,0 +1,44 @@
1
+ import { type MPSTypes } from '@bitgo-beta/sdk-lib-mpc';
2
+ import { EddsaMPCv2DeriveRound1Response, EddsaMPCv2DeriveRound2Response } from '@bitgo/public-types';
3
+ import { DerivedFromParentWithHardenedPath } from '@bitgo-beta/sdk-lib-safes';
4
+ import type { KeychainsTriplet } from '../../../baseCoin';
5
+ import type { DecryptedRetrofitPayload } from '../../../keychain/iKeychains';
6
+ import type { EncryptionVersion } from '../../../../api';
7
+ import type { WebauthnKeyEncryptionInfo } from '../../../keychain';
8
+ import { EddsaMPCv2Utils } from './eddsaMPCv2';
9
+ import { EddsaMPCv2DeriveKeySendFn } from './eddsaMPCv2KeyGenSender';
10
+ /**
11
+ * EdDSA MPCv2 key generation for safe roots. The two-round MPS VRF DKG rides
12
+ * the existing MPCv2-R1/R2 payloads and is only selected when safeId is set.
13
+ */
14
+ export declare class EddsaVrfMPCv2Utils extends EddsaMPCv2Utils {
15
+ /** @inheritdoc */
16
+ createKeychains(params: {
17
+ passphrase: string;
18
+ enterprise: string;
19
+ originalPasscodeEncryptionCode?: string;
20
+ retrofit?: DecryptedRetrofitPayload;
21
+ webauthnInfo?: WebauthnKeyEncryptionInfo;
22
+ encryptionVersion?: EncryptionVersion;
23
+ safeId: string;
24
+ }): Promise<KeychainsTriplet>;
25
+ sendDerivationRound1BySender(senderFn: EddsaMPCv2DeriveKeySendFn<EddsaMPCv2DeriveRound1Response>, userGpgPublicKey: string, userMsg1: MPSTypes.MPSSignedMessage, parentKeyId: string, path: string): Promise<EddsaMPCv2DeriveRound1Response>;
26
+ sendDerivationRound2BySender(senderFn: EddsaMPCv2DeriveKeySendFn<EddsaMPCv2DeriveRound2Response>, sessionId: string, userMsg2: MPSTypes.MPSSignedMessage): Promise<EddsaMPCv2DeriveRound2Response>;
27
+ /** Derives the user signing share with BitGo at the BIP44 `path` and registers all three safe children. */
28
+ createSafeChildKeychains(params: {
29
+ passphrase: string;
30
+ enterprise: string;
31
+ safeId: string;
32
+ parentKeyId: string;
33
+ /** Safe child path `m/44'/<coinType>'/<slot>'/<account>'`; every child is registered at it. */
34
+ path: DerivedFromParentWithHardenedPath;
35
+ userRootKeyId: string;
36
+ backupRootKeyId: string;
37
+ userRootKeyShare: Buffer;
38
+ userRootVrfKeyShare: Buffer;
39
+ originalPasscodeEncryptionCode?: string;
40
+ webauthnInfo?: WebauthnKeyEncryptionInfo;
41
+ encryptionVersion?: EncryptionVersion;
42
+ }): Promise<KeychainsTriplet>;
43
+ }
44
+ //# sourceMappingURL=eddsaVrfMPCv2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eddsaVrfMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAEL,8BAA8B,EAE9B,8BAA8B,EAK/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iCAAiC,EAAsB,MAAM,2BAA2B,CAAC;AAKlG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,yBAAyB,EAG1B,MAAM,0BAA0B,CAAC;AA6BlC;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,kBAAkB;IACZ,eAAe,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;QACpC,YAAY,CAAC,EAAE,yBAAyB,CAAC;QACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;QACtC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6NvB,4BAA4B,CAChC,QAAQ,EAAE,yBAAyB,CAAC,8BAA8B,CAAC,EACnE,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EACnC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,8BAA8B,CAAC;IAapC,4BAA4B,CAChC,QAAQ,EAAE,yBAAyB,CAAC,8BAA8B,CAAC,EACnE,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,GAClC,OAAO,CAAC,8BAA8B,CAAC;IAa1C,2GAA2G;IACrG,wBAAwB,CAAC,MAAM,EAAE;QACrC,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,+FAA+F;QAC/F,IAAI,EAAE,iCAAiC,CAAC;QACxC,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,YAAY,CAAC,EAAE,yBAAyB,CAAC;QACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAuG9B"}
@@ -0,0 +1,268 @@
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.EddsaVrfMPCv2Utils = void 0;
40
+ const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
41
+ const public_types_1 = require("@bitgo/public-types");
42
+ const sdk_lib_safes_1 = require("@bitgo-beta/sdk-lib-safes");
43
+ const assert_1 = __importDefault(require("assert"));
44
+ const pgp = __importStar(require("openpgp"));
45
+ const io_ts_types_1 = require("io-ts-types");
46
+ const opengpgUtils_1 = require("../../opengpgUtils");
47
+ const bitgoPubKeys_1 = require("../../../tss/bitgoPubKeys");
48
+ const codecs_1 = require("../../codecs");
49
+ const eddsaMPCv2_1 = require("./eddsaMPCv2");
50
+ const eddsaMPCv2KeyGenSender_1 = require("./eddsaMPCv2KeyGenSender");
51
+ const typesMPCv2_1 = require("../ecdsa/typesMPCv2");
52
+ const keyShareEnvelope_1 = require("../keyShareEnvelope");
53
+ /** Returns the single payload a VRF round produced, which is what the party signs for BitGo. */
54
+ function getSingleVrfPayload(messages, description) {
55
+ assert_1.default.equal(messages.length, 1, `${description} must produce exactly one message`);
56
+ return messages[0].payload;
57
+ }
58
+ /**
59
+ * Decrypts a BitGo VRF opening encrypted to a client party's GPG key and verifies BitGo's
60
+ * detached signature over the plaintext.
61
+ */
62
+ async function decryptBitgoVrfOpening(message, partyKey, bitgoKey) {
63
+ const { data } = await pgp.decrypt({
64
+ message: await pgp.readMessage({ armoredMessage: message.message }),
65
+ decryptionKeys: partyKey,
66
+ format: 'binary',
67
+ });
68
+ const plaintext = Buffer.from(data);
69
+ await sdk_lib_mpc_1.MPSComms.verifyMpsMessage({ message: plaintext.toString('base64'), signature: message.signature }, bitgoKey);
70
+ return new Uint8Array(plaintext);
71
+ }
72
+ /**
73
+ * EdDSA MPCv2 key generation for safe roots. The two-round MPS VRF DKG rides
74
+ * the existing MPCv2-R1/R2 payloads and is only selected when safeId is set.
75
+ */
76
+ class EddsaVrfMPCv2Utils extends eddsaMPCv2_1.EddsaMPCv2Utils {
77
+ /** @inheritdoc */
78
+ async createKeychains(params) {
79
+ const { userDkg, backupDkg } = await this.getUserAndBackupSession(params.retrofit);
80
+ const userVrfSession = new sdk_lib_mpc_1.MpsVrf.VrfDkg(3, 2, typesMPCv2_1.MPCv2PartiesEnum.USER);
81
+ const backupVrfSession = new sdk_lib_mpc_1.MpsVrf.VrfDkg(3, 2, typesMPCv2_1.MPCv2PartiesEnum.BACKUP);
82
+ const userKeyPair = await (0, opengpgUtils_1.generateGPGKeyPair)('ed25519');
83
+ const userGpgKey = await pgp.readPrivateKey({ armoredKey: userKeyPair.privateKey });
84
+ const userGpgPublicKey = userKeyPair.publicKey;
85
+ const [userPk, userSk] = await sdk_lib_mpc_1.MPSComms.extractEd25519KeyPair(userGpgKey);
86
+ const backupKeyPair = await (0, opengpgUtils_1.generateGPGKeyPair)('ed25519');
87
+ const backupGpgKey = await pgp.readPrivateKey({ armoredKey: backupKeyPair.privateKey });
88
+ const backupGpgPublicKey = backupKeyPair.publicKey;
89
+ const [backupPk, backupSk] = await sdk_lib_mpc_1.MPSComms.extractEd25519KeyPair(backupGpgKey);
90
+ const { eddsaMpcv2PublicKey } = await this.getBitgoGpgPubkeyBasedOnFeatureFlags(params.enterprise, true);
91
+ const bitgoPublicGpgKey = eddsaMpcv2PublicKey ?? this.bitgoEddsaMpcv2PublicGpgKey;
92
+ (0, assert_1.default)(bitgoPublicGpgKey, 'Failed to get BitGo EdDSA MPCv2 GPG public key');
93
+ const bitgoPublicGpgKeyArmored = bitgoPublicGpgKey.armor();
94
+ if ((0, bitgoPubKeys_1.envRequiresBitgoPubGpgKeyConfig)(this.bitgo.getEnv())) {
95
+ (0, assert_1.default)((0, bitgoPubKeys_1.isBitgoEddsaMpcv2PubKey)(bitgoPublicGpgKeyArmored), 'Invalid BitGo EdDSA MPCv2 GPG public key');
96
+ }
97
+ const bitgoKeyObj = await pgp.readKey({ armoredKey: bitgoPublicGpgKeyArmored });
98
+ const bitgoPk = await sdk_lib_mpc_1.MPSComms.extractEd25519PublicKey(bitgoKeyObj);
99
+ // #region round 1
100
+ await userDkg.initDkg(userSk, [backupPk, bitgoPk]);
101
+ await backupDkg.initDkg(backupSk, [userPk, bitgoPk]);
102
+ const userMsg1 = userDkg.getFirstMessage();
103
+ const backupMsg1 = backupDkg.getFirstMessage();
104
+ const userVrfMsg1 = await userVrfSession.initDkg();
105
+ const backupVrfMsg1 = await backupVrfSession.initDkg();
106
+ const userSignedMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(userMsg1.payload), userGpgKey);
107
+ const backupSignedMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(backupMsg1.payload), backupGpgKey);
108
+ const userSignedVrfMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(getSingleVrfPayload(userVrfMsg1.broadcastMessages, 'User VRF round 0'), userGpgKey);
109
+ const backupSignedVrfMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(getSingleVrfPayload(backupVrfMsg1.broadcastMessages, 'Backup VRF round 0'), backupGpgKey);
110
+ (0, assert_1.default)(io_ts_types_1.NonEmptyString.is(userGpgPublicKey), 'User GPG public key is required');
111
+ (0, assert_1.default)(io_ts_types_1.NonEmptyString.is(backupGpgPublicKey), 'Backup GPG public key is required');
112
+ const round1Sender = (0, eddsaMPCv2KeyGenSender_1.KeyGenSenderForEnterprise)(this.bitgo, params.enterprise, params.safeId);
113
+ const { sessionId, bitgoMsg1, bitgoVrfMsg1 } = await round1Sender(public_types_1.MPCv2KeyGenStateEnum['MPCv2-R1'], {
114
+ userGpgPublicKey,
115
+ backupGpgPublicKey,
116
+ userMsg1: userSignedMsg1,
117
+ backupMsg1: backupSignedMsg1,
118
+ userVrfMsg1: userSignedVrfMsg1,
119
+ backupVrfMsg1: backupSignedVrfMsg1,
120
+ ...(params.retrofit?.walletId ? { walletId: params.retrofit.walletId } : {}),
121
+ });
122
+ (0, assert_1.default)(bitgoVrfMsg1, 'BitGo VRF message 1 not found in round 1 response');
123
+ // #endregion
124
+ // #region round 2
125
+ const bitgoRawMsg1Bytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoMsg1, bitgoKeyObj);
126
+ const bitgoDeserializedMsg1 = {
127
+ from: typesMPCv2_1.MPCv2PartiesEnum.BITGO,
128
+ payload: new Uint8Array(bitgoRawMsg1Bytes),
129
+ };
130
+ const round1Messages = [userMsg1, backupMsg1, bitgoDeserializedMsg1];
131
+ const userRound2Msgs = userDkg.handleIncomingMessages(round1Messages);
132
+ const backupRound2Msgs = backupDkg.handleIncomingMessages(round1Messages);
133
+ (0, assert_1.default)(userRound2Msgs.length === 1, 'User round 1 should produce exactly one round 2 message');
134
+ (0, assert_1.default)(backupRound2Msgs.length === 1, 'Backup round 1 should produce exactly one round 2 message');
135
+ const userMsg2 = userRound2Msgs[0];
136
+ const backupMsg2 = backupRound2Msgs[0];
137
+ const userSignedMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(userMsg2.payload), userGpgKey);
138
+ const backupSignedMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(backupMsg2.payload), backupGpgKey);
139
+ const bitgoVrfRawMsg1Bytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoVrfMsg1, bitgoKeyObj);
140
+ const bitgoVrfDeserializedMsg1 = {
141
+ from: typesMPCv2_1.MPCv2PartiesEnum.BITGO,
142
+ payload: new Uint8Array(bitgoVrfRawMsg1Bytes),
143
+ };
144
+ const userVrfMsg2 = await userVrfSession.handleIncomingMessages({
145
+ broadcastMessages: [...backupVrfMsg1.broadcastMessages, bitgoVrfDeserializedMsg1],
146
+ p2pMessages: [],
147
+ });
148
+ const backupVrfMsg2 = await backupVrfSession.handleIncomingMessages({
149
+ broadcastMessages: [...userVrfMsg1.broadcastMessages, bitgoVrfDeserializedMsg1],
150
+ p2pMessages: [],
151
+ });
152
+ const userSignedVrfMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(getSingleVrfPayload(userVrfMsg2.p2pMessages.filter((message) => message.to === typesMPCv2_1.MPCv2PartiesEnum.BITGO), 'User VRF round 1 opening for BitGo'), userGpgKey);
153
+ const backupSignedVrfMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(getSingleVrfPayload(backupVrfMsg2.p2pMessages.filter((message) => message.to === typesMPCv2_1.MPCv2PartiesEnum.BITGO), 'Backup VRF round 1 opening for BitGo'), backupGpgKey);
154
+ const round2Sender = (0, eddsaMPCv2KeyGenSender_1.KeyGenSenderForEnterprise)(this.bitgo, params.enterprise);
155
+ const { sessionId: sessionIdRound2, commonPublicKeychain, bitgoMsg2, bitgoVrfMsgToUser, bitgoVrfMsgToBackup, } = await round2Sender(public_types_1.MPCv2KeyGenStateEnum['MPCv2-R2'], {
156
+ sessionId,
157
+ userMsg2: userSignedMsg2,
158
+ backupMsg2: backupSignedMsg2,
159
+ userVrfMsg2: userSignedVrfMsg2,
160
+ backupVrfMsg2: backupSignedVrfMsg2,
161
+ });
162
+ assert_1.default.equal(sessionId, sessionIdRound2, 'Round 1 and round 2 session IDs do not match');
163
+ (0, assert_1.default)(bitgoVrfMsgToUser, 'BitGo VRF message to user not found in round 2 response');
164
+ (0, assert_1.default)(bitgoVrfMsgToBackup, 'BitGo VRF message to backup not found in round 2 response');
165
+ // VRF finalizes locally after the second existing MPCv2 round. BitGo's openings are encrypted
166
+ // to the recipient party's GPG key and signed by BitGo's key.
167
+ const bitgoVrfOpeningToUser = await decryptBitgoVrfOpening(bitgoVrfMsgToUser, userGpgKey, bitgoKeyObj);
168
+ const bitgoVrfOpeningToBackup = await decryptBitgoVrfOpening(bitgoVrfMsgToBackup, backupGpgKey, bitgoKeyObj);
169
+ await userVrfSession.handleIncomingMessages({
170
+ broadcastMessages: [],
171
+ p2pMessages: [
172
+ ...backupVrfMsg2.p2pMessages.filter((message) => message.to === typesMPCv2_1.MPCv2PartiesEnum.USER),
173
+ { from: typesMPCv2_1.MPCv2PartiesEnum.BITGO, to: typesMPCv2_1.MPCv2PartiesEnum.USER, payload: bitgoVrfOpeningToUser },
174
+ ],
175
+ });
176
+ await backupVrfSession.handleIncomingMessages({
177
+ broadcastMessages: [],
178
+ p2pMessages: [
179
+ ...userVrfMsg2.p2pMessages.filter((message) => message.to === typesMPCv2_1.MPCv2PartiesEnum.BACKUP),
180
+ { from: typesMPCv2_1.MPCv2PartiesEnum.BITGO, to: typesMPCv2_1.MPCv2PartiesEnum.BACKUP, payload: bitgoVrfOpeningToBackup },
181
+ ],
182
+ });
183
+ // #endregion
184
+ // #region keychain creation
185
+ const bitgoRawMsg2Bytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoMsg2, bitgoKeyObj);
186
+ const bitgoDeserializedMsg2 = {
187
+ from: typesMPCv2_1.MPCv2PartiesEnum.BITGO,
188
+ payload: new Uint8Array(bitgoRawMsg2Bytes),
189
+ };
190
+ const round2Messages = [userMsg2, backupMsg2, bitgoDeserializedMsg2];
191
+ const userFinalMsgs = userDkg.handleIncomingMessages(round2Messages);
192
+ const backupFinalMsgs = backupDkg.handleIncomingMessages(round2Messages);
193
+ (0, assert_1.default)(userFinalMsgs.length === 0, 'WASM round 2 should produce no output messages for user');
194
+ (0, assert_1.default)(backupFinalMsgs.length === 0, 'WASM round 2 should produce no output messages for backup');
195
+ const userCommonKeychain = userDkg.getCommonKeychain();
196
+ const backupCommonKeychain = backupDkg.getCommonKeychain();
197
+ assert_1.default.equal(userCommonKeychain, commonPublicKeychain, 'User computed keychain does not match BitGo common keychain');
198
+ assert_1.default.equal(backupCommonKeychain, commonPublicKeychain, 'Backup computed keychain does not match BitGo common keychain');
199
+ const { envelope: userEnvelope, reducedEnvelope: userReducedEnvelope } = (0, keyShareEnvelope_1.buildSafeMpcKeyEnvelopes)(userDkg.getKeyShare(), userDkg.getReducedKeyShare(), userVrfSession.getKeyShare());
200
+ const { envelope: backupEnvelope, reducedEnvelope: backupReducedEnvelope } = (0, keyShareEnvelope_1.buildSafeMpcKeyEnvelopes)(backupDkg.getKeyShare(), backupDkg.getReducedKeyShare(), backupVrfSession.getKeyShare());
201
+ const userKeychainPromise = this.addUserKeychain(userCommonKeychain, userEnvelope, userReducedEnvelope, params.passphrase, params.originalPasscodeEncryptionCode, params.webauthnInfo, params.encryptionVersion, params.enterprise, params.safeId);
202
+ const backupKeychainPromise = this.addBackupKeychain(backupCommonKeychain, backupEnvelope, backupReducedEnvelope, params.passphrase, params.originalPasscodeEncryptionCode, params.encryptionVersion, params.enterprise, params.safeId);
203
+ const bitgoKeychainPromise = this.addBitgoKeychain(commonPublicKeychain, params.safeId);
204
+ const [userKeychain, backupKeychain, bitgoKeychain] = await Promise.all([
205
+ userKeychainPromise,
206
+ backupKeychainPromise,
207
+ bitgoKeychainPromise,
208
+ ]);
209
+ // #endregion
210
+ return { userKeychain, backupKeychain, bitgoKeychain };
211
+ }
212
+ async sendDerivationRound1BySender(senderFn, userGpgPublicKey, userMsg1, parentKeyId, path) {
213
+ const request = (0, codecs_1.decodeWithCodec)(public_types_1.EddsaMPCv2DeriveRound1Request, { userGpgPublicKey, userMsg1, parentKeyId, path }, 'EddsaMPCv2DeriveRound1Request');
214
+ return (0, codecs_1.decodeWithCodec)(public_types_1.EddsaMPCv2DeriveRound1Response, await senderFn(public_types_1.MPCv2KeyGenStateEnum['MPCv2Derive-R1'], request), 'EddsaMPCv2DeriveRound1Response');
215
+ }
216
+ async sendDerivationRound2BySender(senderFn, sessionId, userMsg2) {
217
+ const request = (0, codecs_1.decodeWithCodec)(public_types_1.EddsaMPCv2DeriveRound2Request, { sessionId, userMsg2 }, 'EddsaMPCv2DeriveRound2Request');
218
+ return (0, codecs_1.decodeWithCodec)(public_types_1.EddsaMPCv2DeriveRound2Response, await senderFn(public_types_1.MPCv2KeyGenStateEnum['MPCv2Derive-R2'], request), 'EddsaMPCv2DeriveRound2Response');
219
+ }
220
+ /** Derives the user signing share with BitGo at the BIP44 `path` and registers all three safe children. */
221
+ async createSafeChildKeychains(params) {
222
+ (0, assert_1.default)(io_ts_types_1.NonEmptyString.is(params.safeId), 'Safe ID is required for child derivation');
223
+ (0, assert_1.default)(io_ts_types_1.NonEmptyString.is(params.userRootKeyId), 'User root key ID is required for child derivation');
224
+ (0, assert_1.default)(io_ts_types_1.NonEmptyString.is(params.backupRootKeyId), 'Backup root key ID is required for child derivation');
225
+ (0, assert_1.default)(io_ts_types_1.NonEmptyString.is(params.parentKeyId), 'BitGo root key ID is required for child derivation');
226
+ const { path } = params;
227
+ // Reject a malformed path before any network call; the service re-validates it against its expected path.
228
+ (0, sdk_lib_safes_1.parseSafeBip44Path)(path);
229
+ const userKeyPair = await (0, opengpgUtils_1.generateGPGKeyPair)('ed25519');
230
+ const userGpgKey = await pgp.readPrivateKey({ armoredKey: userKeyPair.privateKey });
231
+ const { eddsaMpcv2PublicKey } = await this.getBitgoGpgPubkeyBasedOnFeatureFlags(params.enterprise, true);
232
+ const bitgoPublicGpgKey = eddsaMpcv2PublicKey ?? this.bitgoEddsaMpcv2PublicGpgKey;
233
+ (0, assert_1.default)(bitgoPublicGpgKey, 'Failed to get BitGo EdDSA MPCv2 GPG public key');
234
+ const bitgoPublicGpgKeyArmored = bitgoPublicGpgKey.armor();
235
+ if ((0, bitgoPubKeys_1.envRequiresBitgoPubGpgKeyConfig)(this.bitgo.getEnv())) {
236
+ (0, assert_1.default)((0, bitgoPubKeys_1.isBitgoEddsaMpcv2PubKey)(bitgoPublicGpgKeyArmored), 'Invalid BitGo GPG public key');
237
+ }
238
+ const bitgoKeyObj = await pgp.readKey({ armoredKey: bitgoPublicGpgKeyArmored });
239
+ const userDeriveSession = new sdk_lib_mpc_1.MpsDerive.Derive(3, 2, typesMPCv2_1.MPCv2PartiesEnum.USER, params.userRootKeyShare, params.userRootVrfKeyShare, path);
240
+ const userMsg1 = await userDeriveSession.initDerive();
241
+ const signedUserMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(userMsg1.payload, userGpgKey);
242
+ const { sessionId, bitgoMsg1 } = await this.sendDerivationRound1BySender((0, eddsaMPCv2KeyGenSender_1.KeyGenSenderForSafeChild)(this.bitgo, params.enterprise, params.safeId, this.baseCoin.getChain()), userKeyPair.publicKey, signedUserMsg1, params.parentKeyId, path);
243
+ const [userMsg2] = userDeriveSession.handleIncomingMessages([
244
+ { from: typesMPCv2_1.MPCv2PartiesEnum.BITGO, payload: await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoMsg1, bitgoKeyObj) },
245
+ ]);
246
+ (0, assert_1.default)(userMsg2, 'User derive round 1 must produce a round 2 message');
247
+ const signedUserMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(userMsg2.payload, userGpgKey);
248
+ const { sessionId: sessionIdRound2, commonPublicKeychain, bitgoMsg2, } = await this.sendDerivationRound2BySender((0, eddsaMPCv2KeyGenSender_1.KeyGenSenderForSafeChild)(this.bitgo, params.enterprise, params.safeId, this.baseCoin.getChain()), sessionId, signedUserMsg2);
249
+ assert_1.default.equal(sessionId, sessionIdRound2, 'Round 1 and 2 Session IDs do not match');
250
+ const finalMessages = userDeriveSession.handleIncomingMessages([
251
+ { from: typesMPCv2_1.MPCv2PartiesEnum.BITGO, payload: await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoMsg2, bitgoKeyObj) },
252
+ ]);
253
+ assert_1.default.equal(finalMessages.length, 0, 'MPS derive round 2 must not produce another message');
254
+ const commonKeychain = userDeriveSession.getCommonKeychain();
255
+ assert_1.default.equal(commonKeychain, commonPublicKeychain, 'User and BitGo common keychains do not match');
256
+ const [userKeychain, backupKeychain, bitgoKeychain] = await Promise.all([
257
+ this.addUserKeychain(commonKeychain, userDeriveSession.getKeyShare(), userDeriveSession.getReducedKeyShare(), params.passphrase, params.originalPasscodeEncryptionCode, params.webauthnInfo, params.encryptionVersion, params.enterprise, params.safeId, { parentKeyId: params.userRootKeyId, path }),
258
+ this.addBackupKeychain(commonKeychain, undefined, undefined, params.passphrase, params.originalPasscodeEncryptionCode, params.encryptionVersion, params.enterprise, params.safeId, { parentKeyId: params.backupRootKeyId, path }),
259
+ this.addBitgoKeychain(commonKeychain, params.safeId, {
260
+ parentKeyId: params.parentKeyId,
261
+ path,
262
+ }),
263
+ ]);
264
+ return { userKeychain, backupKeychain, bitgoKeychain };
265
+ }
266
+ }
267
+ exports.EddsaVrfMPCv2Utils = EddsaVrfMPCv2Utils;
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2FWcmZNUEN2Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvZWRkc2EvZWRkc2FWcmZNUEN2Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBcUY7QUFDckYsc0RBUzZCO0FBQzdCLDZEQUFrRztBQUNsRyxvREFBNEI7QUFDNUIsNkNBQStCO0FBQy9CLDZDQUE2QztBQUs3QyxxREFBd0Q7QUFFeEQsNERBQXFHO0FBQ3JHLHlDQUErQztBQUMvQyw2Q0FBK0M7QUFDL0MscUVBSWtDO0FBQ2xDLG9EQUF1RDtBQUN2RCwwREFBK0Q7QUFFL0QsZ0dBQWdHO0FBQ2hHLFNBQVMsbUJBQW1CLENBQUMsUUFBbUMsRUFBRSxXQUFtQjtJQUNuRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLFdBQVcsbUNBQW1DLENBQUMsQ0FBQztJQUNwRixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxzQkFBc0IsQ0FDbkMsT0FBZ0MsRUFDaEMsUUFBd0IsRUFDeEIsUUFBaUI7SUFFakIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUNqQyxPQUFPLEVBQUUsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuRSxjQUFjLEVBQUUsUUFBUTtRQUN4QixNQUFNLEVBQUUsUUFBUTtLQUNqQixDQUFDLENBQUM7SUFDSCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sc0JBQVEsQ0FBQyxnQkFB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QUksRUFBRSxDQUM5QztZQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDbkQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixJQUFJO2FBQ0wsQ0FBQztTQUNILENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQWpZRCxnREFpWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNUFNDb21tcywgTXBzRGVyaXZlLCBNcHNWcmYsIHR5cGUgTVBTVHlwZXMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5pbXBvcnQge1xuICBFZGRzYU1QQ3YyRGVyaXZlUm91bmQxUmVxdWVzdCxcbiAgRWRkc2FNUEN2MkRlcml2ZVJvdW5kMVJlc3BvbnNlLFxuICBFZGRzYU1QQ3YyRGVyaXZlUm91bmQyUmVxdWVzdCxcbiAgRWRkc2FNUEN2MkRlcml2ZVJvdW5kMlJlc3BvbnNlLFxuICBNUEN2MktleUdlblN0YXRlRW51bSxcbiAgdHlwZSBFZGRzYU1QQ3YyS2V5R2VuUm91bmQxUmVzcG9uc2UsXG4gIHR5cGUgRWRkc2FNUEN2MktleUdlblJvdW5kMlJlc3BvbnNlLFxuICB0eXBlIEVkZHNhTVBDdjJTaWduZWRNZXNzYWdlLFxufSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcbmltcG9ydCB7IERlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCwgcGFyc2VTYWZlQmlwNDRQYXRoIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1zYWZlcyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyBwZ3AgZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBOb25FbXB0eVN0cmluZyB9IGZyb20gJ2lvLXRzLXR5cGVzJztcblxuaW1wb3J0IHR5cGUgeyBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnLi4vLi4vLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHR5cGUgeyBEZWNyeXB0ZWRSZXRyb2ZpdFBheWxvYWQgfSBmcm9tICcuLi8uLi8uLi9rZXljaGFpbi9pS2V5Y2hhaW5zJztcbmltcG9ydCB0eXBlIHsgRW5jcnlwdGlvblZlcnNpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hcGknO1xuaW1wb3J0IHsgZ2VuZXJhdGVHUEdLZXlQYWlyIH0gZnJvbSAnLi4vLi4vb3BlbmdwZ1V0aWxzJztcbmltcG9ydCB0eXBlIHsgV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uL2tleWNoYWluJztcbmltcG9ydCB7IGVudlJlcXVpcmVzQml0Z29QdWJHcGdLZXlDb25maWcsIGlzQml0Z29FZGRzYU1wY3YyUHViS2V5IH0gZnJvbSAnLi4vLi4vLi4vdHNzL2JpdGdvUHViS2V5cyc7XG5pbXBvcnQgeyBkZWNvZGVXaXRoQ29kZWMgfSBmcm9tICcuLi8uLi9jb2RlY3MnO1xuaW1wb3J0IHsgRWRkc2FNUEN2MlV0aWxzIH0gZnJvbSAnLi9lZGRzYU1QQ3YyJztcbmltcG9ydCB7XG4gIEVkZHNhTVBDdjJEZXJpdmVLZXlTZW5kRm4sXG4gIEtleUdlblNlbmRlckZvckVudGVycHJpc2UsXG4gIEtleUdlblNlbmRlckZvclNhZmVDaGlsZCxcbn0gZnJvbSAnLi9lZGRzYU1QQ3YyS2V5R2VuU2VuZGVyJztcbmltcG9ydCB7IE1QQ3YyUGFydGllc0VudW0gfSBmcm9tICcuLi9lY2RzYS90eXBlc01QQ3YyJztcbmltcG9ydCB7IGJ1aWxkU2FmZU1wY0tleUVudmVsb3BlcyB9IGZyb20gJy4uL2tleVNoYXJlRW52ZWxvcGUnO1xuXG4vKiogUmV0dXJucyB0aGUgc2luZ2xlIHBheWxvYWQgYSBWUkYgcm91bmQgcHJvZHVjZWQsIHdoaWNoIGlzIHdoYXQgdGhlIHBhcnR5IHNpZ25zIGZvciBCaXRHby4gKi9cbmZ1bmN0aW9uIGdldFNpbmdsZVZyZlBheWxvYWQobWVzc2FnZXM6IHsgcGF5bG9hZDogVWludDhBcnJheSB9W10sIGRlc2NyaXB0aW9uOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgYXNzZXJ0LmVxdWFsKG1lc3NhZ2VzLmxlbmd0aCwgMSwgYCR7ZGVzY3JpcHRpb259IG11c3QgcHJvZHVjZSBleGFjdGx5IG9uZSBtZXNzYWdlYCk7XG4gIHJldHVybiBtZXNzYWdlc1swXS5wYXlsb2FkO1xufVxuXG4vKipcbiAqIERlY3J5cHRzIGEgQml0R28gVlJGIG9wZW5pbmcgZW5jcnlwdGVkIHRvIGEgY2xpZW50IHBhcnR5J3MgR1BHIGtleSBhbmQgdmVyaWZpZXMgQml0R28nc1xuICogZGV0YWNoZWQgc2lnbmF0dXJlIG92ZXIgdGhlIHBsYWludGV4dC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZGVjcnlwdEJpdGdvVnJmT3BlbmluZyhcbiAgbWVzc2FnZTogRWRkc2FNUEN2MlNpZ25lZE1lc3NhZ2UsXG4gIHBhcnR5S2V5OiBwZ3AuUHJpdmF0ZUtleSxcbiAgYml0Z29LZXk6IHBncC5LZXlcbik6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHBncC5kZWNyeXB0KHtcbiAgICBtZXNzYWdlOiBhd2FpdCBwZ3AucmVhZE1lc3NhZ2UoeyBhcm1vcmVkTWVzc2FnZTogbWVzc2FnZS5tZXNzYWdlIH0pLFxuICAgIGRlY3J5cHRpb25LZXlzOiBwYXJ0eUtleSxcbiAgICBmb3JtYXQ6ICdiaW5hcnknLFxuICB9KTtcbiAgY29uc3QgcGxhaW50ZXh0ID0gQnVmZmVyLmZyb20oZGF0YSk7XG4gIGF3YWl0IE1QU0NvbW1zLnZlcmlmeU1wc01lc3NhZ2UoeyBtZXNzYWdlOiBwbGFpbnRleHQudG9TdHJpbmcoJ2Jhc2U2NCcpLCBzaWduYXR1cmU6IG1lc3NhZ2Uuc2lnbmF0dXJlIH0sIGJpdGdvS2V5KTtcbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHBsYWludGV4dCk7XG59XG5cbi8qKlxuICogRWREU0EgTVBDdjIga2V5IGdlbmVyYXRpb24gZm9yIHNhZmUgcm9vdHMuIFRoZSB0d28tcm91bmQgTVBTIFZSRiBES0cgcmlkZXNcbiAqIHRoZSBleGlzdGluZyBNUEN2Mi1SMS9SMiBwYXlsb2FkcyBhbmQgaXMgb25seSBzZWxlY3RlZCB3aGVuIHNhZmVJZCBpcyBzZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFZGRzYVZyZk1QQ3YyVXRpbHMgZXh0ZW5kcyBFZGRzYU1QQ3YyVXRpbHMge1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgYXN5bmMgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlOiBzdHJpbmc7XG4gICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICAgIHJldHJvZml0PzogRGVjcnlwdGVkUmV0cm9maXRQYXlsb2FkO1xuICAgIHdlYmF1dGhuSW5mbz86IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm87XG4gICAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbiAgICBzYWZlSWQ6IHN0cmluZztcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD4ge1xuICAgIGNvbnN0IHsgdXNlckRrZywgYmFja3VwRGtnIH0gPSBhd2FpdCB0aGlzLmdldFVzZXJBbmRCYWNrdXBTZXNzaW9uKHBhcmFtcy5yZXRyb2ZpdCk7XG4gICAgY29uc3QgdXNlclZyZlNlc3Npb24gPSBuZXcgTXBzVnJmLlZyZkRrZygzLCAyLCBNUEN2MlBhcnRpZXNFbnVtLlVTRVIpO1xuICAgIGNvbnN0IGJhY2t1cFZyZlNlc3Npb24gPSBuZXcgTXBzVnJmLlZyZkRrZygzLCAyLCBNUEN2MlBhcnRpZXNFbnVtLkJBQ0tVUCk7XG5cbiAgICBjb25zdCB1c2VyS2V5UGFpciA9IGF3YWl0IGdlbmVyYXRlR1BHS2V5UGFpcignZWQyNTUxOScpO1xuICAgIGNvbnN0IHVzZXJHcGdLZXkgPSBhd2FpdCBwZ3AucmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiB1c2VyS2V5UGFpci5wcml2YXRlS2V5IH0pO1xuICAgIGNvbnN0IHVzZXJHcGdQdWJsaWNLZXkgPSB1c2VyS2V5UGFpci5wdWJsaWNLZXk7XG4gICAgY29uc3QgW3VzZXJQaywgdXNlclNrXSA9IGF3YWl0IE1QU0NvbW1zLmV4dHJhY3RFZDI1NTE5S2V5UGFpcih1c2VyR3BnS2V5KTtcblxuICAgIGNvbnN0IGJhY2t1cEtleVBhaXIgPSBhd2FpdCBnZW5lcmF0ZUdQR0tleVBhaXIoJ2VkMjU1MTknKTtcbiAgICBjb25zdCBiYWNrdXBHcGdLZXkgPSBhd2FpdCBwZ3AucmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiBiYWNrdXBLZXlQYWlyLnByaXZhdGVLZXkgfSk7XG4gICAgY29uc3QgYmFja3VwR3BnUHVibGljS2V5ID0gYmFja3VwS2V5UGFpci5wdWJsaWNLZXk7XG4gICAgY29uc3QgW2JhY2t1cFBrLCBiYWNrdXBTa10gPSBhd2FpdCBNUFNDb21tcy5leHRyYWN0RWQyNTUxOUtleVBhaXIoYmFja3VwR3BnS2V5KTtcblxuICAgIGNvbnN0IHsgZWRkc2FNcGN2MlB1YmxpY0tleSB9ID0gYXdhaXQgdGhpcy5nZXRCaXRnb0dwZ1B1YmtleUJhc2VkT25GZWF0dXJlRmxhZ3MocGFyYW1zLmVudGVycHJpc2UsIHRydWUpO1xuICAgIGNvbnN0IGJpdGdvUHVibGljR3BnS2V5ID0gZWRkc2FNcGN2MlB1YmxpY0tleSA/PyB0aGlzLmJpdGdvRWRkc2FNcGN2MlB1YmxpY0dwZ0tleTtcbiAgICBhc3NlcnQoYml0Z29QdWJsaWNHcGdLZXksICdGYWlsZWQgdG8gZ2V0IEJpdEdvIEVkRFNBIE1QQ3YyIEdQRyBwdWJsaWMga2V5Jyk7XG4gICAgY29uc3QgYml0Z29QdWJsaWNHcGdLZXlBcm1vcmVkID0gYml0Z29QdWJsaWNHcGdLZXkuYXJtb3IoKTtcblxuICAgIGlmIChlbnZSZXF1aXJlc0JpdGdvUHViR3BnS2V5Q29uZmlnKHRoaXMuYml0Z28uZ2V0RW52KCkpKSB7XG4gICAgICBhc3NlcnQoaXNCaXRnb0VkZHNhTXBjdjJQdWJLZXkoYml0Z29QdWJsaWNHcGdLZXlBcm1vcmVkKSwgJ0ludmFsaWQgQml0R28gRWREU0EgTVBDdjIgR1BHIHB1YmxpYyBrZXknKTtcbiAgICB9XG5cbiAgICBjb25zdCBiaXRnb0tleU9iaiA9IGF3YWl0IHBncC5yZWFkS2V5KHsgYXJtb3JlZEtleTogYml0Z29QdWJsaWNHcGdLZXlBcm1vcmVkIH0pO1xuICAgIGNvbnN0IGJpdGdvUGsgPSBhd2FpdCBNUFNDb21tcy5leHRyYWN0RWQyNTUxOVB1YmxpY0tleShiaXRnb0tleU9iaik7XG5cbiAgICAvLyAjcmVnaW9uIHJvdW5kIDFcbiAgICBhd2FpdCB1c2VyRGtnLmluaXREa2codXNlclNrLCBbYmFja3VwUGssIGJpdGdvUGtdKTtcbiAgICBhd2FpdCBiYWNrdXBEa2cuaW5pdERrZyhiYWNrdXBTaywgW3VzZXJQaywgYml0Z29Qa10pO1xuXG4gICAgY29uc3QgdXNlck1zZzEgPSB1c2VyRGtnLmdldEZpcnN0TWVzc2FnZSgpO1xuICAgIGNvbnN0IGJhY2t1cE1zZzEgPSBiYWNrdXBEa2cuZ2V0Rmlyc3RNZXNzYWdlKCk7XG4gICAgY29uc3QgdXNlclZyZk1zZzEgPSBhd2FpdCB1c2VyVnJmU2Vzc2lvbi5pbml0RGtnKCk7XG4gICAgY29uc3QgYmFja3VwVnJmTXNnMSA9IGF3YWl0IGJhY2t1cFZyZlNlc3Npb24uaW5pdERrZygpO1xuXG4gICAgY29uc3QgdXNlclNpZ25lZE1zZzEgPSBhd2FpdCBNUFNDb21tcy5kZXRhY2hTaWduTXBzTWVzc2FnZShCdWZmZXIuZnJvbSh1c2VyTXNnMS5wYXlsb2FkKSwgdXNlckdwZ0tleSk7XG4gICAgY29uc3QgYmFja3VwU2lnbmVkTXNnMSA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKEJ1ZmZlci5mcm9tKGJhY2t1cE1zZzEucGF5bG9hZCksIGJhY2t1cEdwZ0tleSk7XG4gICAgY29uc3QgdXNlclNpZ25lZFZyZk1zZzEgPSBhd2FpdCBNUFNDb21tcy5kZXRhY2hTaWduTXBzTWVzc2FnZShcbiAgICAgIGdldFNpbmdsZVZyZlBheWxvYWQodXNlclZyZk1zZzEuYnJvYWRjYXN0TWVzc2FnZXMsICdVc2VyIFZSRiByb3VuZCAwJyksXG4gICAgICB1c2VyR3BnS2V5XG4gICAgKTtcbiAgICBjb25zdCBiYWNrdXBTaWduZWRWcmZNc2cxID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UoXG4gICAgICBnZXRTaW5nbGVWcmZQYXlsb2FkKGJhY2t1cFZyZk1zZzEuYnJvYWRjYXN0TWVzc2FnZXMsICdCYWNrdXAgVlJGIHJvdW5kIDAnKSxcbiAgICAgIGJhY2t1cEdwZ0tleVxuICAgICk7XG5cbiAgICBhc3NlcnQoTm9uRW1wdHlTdHJpbmcuaXModXNlckdwZ1B1YmxpY0tleSksICdVc2VyIEdQRyBwdWJsaWMga2V5IGlzIHJlcXVpcmVkJyk7XG4gICAgYXNzZXJ0KE5vbkVtcHR5U3RyaW5nLmlzKGJhY2t1cEdwZ1B1YmxpY0tleSksICdCYWNrdXAgR1BHIHB1YmxpYyBrZXkgaXMgcmVxdWlyZWQnKTtcblxuICAgIGNvbnN0IHJvdW5kMVNlbmRlciA9IEtleUdlblNlbmRlckZvckVudGVycHJpc2U8RWRkc2FNUEN2MktleUdlblJvdW5kMVJlc3BvbnNlPihcbiAgICAgIHRoaXMuYml0Z28sXG4gICAgICBwYXJhbXMuZW50ZXJwcmlzZSxcbiAgICAgIHBhcmFtcy5zYWZlSWRcbiAgICApO1xuICAgIGNvbnN0IHsgc2Vzc2lvbklkLCBiaXRnb01zZzEsIGJpdGdvVnJmTXNnMSB9ID0gYXdhaXQgcm91bmQxU2VuZGVyKE1QQ3YyS2V5R2VuU3RhdGVFbnVtWydNUEN2Mi1SMSddLCB7XG4gICAgICB1c2VyR3BnUHVibGljS2V5LFxuICAgICAgYmFja3VwR3BnUHVibGljS2V5LFxuICAgICAgdXNlck1zZzE6IHVzZXJTaWduZWRNc2cxLFxuICAgICAgYmFja3VwTXNnMTogYmFja3VwU2lnbmVkTXNnMSxcbiAgICAgIHVzZXJWcmZNc2cxOiB1c2VyU2lnbmVkVnJmTXNnMSxcbiAgICAgIGJhY2t1cFZyZk1zZzE6IGJhY2t1cFNpZ25lZFZyZk1zZzEsXG4gICAgICAuLi4ocGFyYW1zLnJldHJvZml0Py53YWxsZXRJZCA/IHsgd2FsbGV0SWQ6IHBhcmFtcy5yZXRyb2ZpdC53YWxsZXRJZCB9IDoge30pLFxuICAgIH0pO1xuICAgIGFzc2VydChiaXRnb1ZyZk1zZzEsICdCaXRHbyBWUkYgbWVzc2FnZSAxIG5vdCBmb3VuZCBpbiByb3VuZCAxIHJlc3BvbnNlJyk7XG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgLy8gI3JlZ2lvbiByb3VuZCAyXG4gICAgY29uc3QgYml0Z29SYXdNc2cxQnl0ZXMgPSBhd2FpdCBNUFNDb21tcy52ZXJpZnlNcHNNZXNzYWdlKGJpdGdvTXNnMSwgYml0Z29LZXlPYmopO1xuICAgIGNvbnN0IGJpdGdvRGVzZXJpYWxpemVkTXNnMTogTVBTVHlwZXMuRGVzZXJpYWxpemVkTWVzc2FnZSA9IHtcbiAgICAgIGZyb206IE1QQ3YyUGFydGllc0VudW0uQklUR08sXG4gICAgICBwYXlsb2FkOiBuZXcgVWludDhBcnJheShiaXRnb1Jhd01zZzFCeXRlcyksXG4gICAgfTtcbiAgICBjb25zdCByb3VuZDFNZXNzYWdlczogTVBTVHlwZXMuRGVzZXJpYWxpemVkTWVzc2FnZXMgPSBbdXNlck1zZzEsIGJhY2t1cE1zZzEsIGJpdGdvRGVzZXJpYWxpemVkTXNnMV07XG5cbiAgICBjb25zdCB1c2VyUm91bmQyTXNncyA9IHVzZXJEa2cuaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhyb3VuZDFNZXNzYWdlcyk7XG4gICAgY29uc3QgYmFja3VwUm91bmQyTXNncyA9IGJhY2t1cERrZy5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKHJvdW5kMU1lc3NhZ2VzKTtcbiAgICBhc3NlcnQodXNlclJvdW5kMk1zZ3MubGVuZ3RoID09PSAxLCAnVXNlciByb3VuZCAxIHNob3VsZCBwcm9kdWNlIGV4YWN0bHkgb25lIHJvdW5kIDIgbWVzc2FnZScpO1xuICAgIGFzc2VydChiYWNrdXBSb3VuZDJNc2dzLmxlbmd0aCA9PT0gMSwgJ0JhY2t1cCByb3VuZCAxIHNob3VsZCBwcm9kdWNlIGV4YWN0bHkgb25lIHJvdW5kIDIgbWVzc2FnZScpO1xuXG4gICAgY29uc3QgdXNlck1zZzIgPSB1c2VyUm91bmQyTXNnc1swXTtcbiAgICBjb25zdCBiYWNrdXBNc2cyID0gYmFja3VwUm91bmQyTXNnc1swXTtcbiAgICBjb25zdCB1c2VyU2lnbmVkTXNnMiA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKEJ1ZmZlci5mcm9tKHVzZXJNc2cyLnBheWxvYWQpLCB1c2VyR3BnS2V5KTtcbiAgICBjb25zdCBiYWNrdXBTaWduZWRNc2cyID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UoQnVmZmVyLmZyb20oYmFja3VwTXNnMi5wYXlsb2FkKSwgYmFja3VwR3BnS2V5KTtcblxuICAgIGNvbnN0IGJpdGdvVnJmUmF3TXNnMUJ5dGVzID0gYXdhaXQgTVBTQ29tbXMudmVyaWZ5TXBzTWVzc2FnZShiaXRnb1ZyZk1zZzEsIGJpdGdvS2V5T2JqKTtcbiAgICBjb25zdCBiaXRnb1ZyZkRlc2VyaWFsaXplZE1zZzE6IE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2UgPSB7XG4gICAgICBmcm9tOiBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPLFxuICAgICAgcGF5bG9hZDogbmV3IFVpbnQ4QXJyYXkoYml0Z29WcmZSYXdNc2cxQnl0ZXMpLFxuICAgIH07XG4gICAgY29uc3QgdXNlclZyZk1zZzIgPSBhd2FpdCB1c2VyVnJmU2Vzc2lvbi5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKHtcbiAgICAgIGJyb2FkY2FzdE1lc3NhZ2VzOiBbLi4uYmFja3VwVnJmTXNnMS5icm9hZGNhc3RNZXNzYWdlcywgYml0Z29WcmZEZXNlcmlhbGl6ZWRNc2cxXSxcbiAgICAgIHAycE1lc3NhZ2VzOiBbXSxcbiAgICB9KTtcbiAgICBjb25zdCBiYWNrdXBWcmZNc2cyID0gYXdhaXQgYmFja3VwVnJmU2Vzc2lvbi5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKHtcbiAgICAgIGJyb2FkY2FzdE1lc3NhZ2VzOiBbLi4udXNlclZyZk1zZzEuYnJvYWRjYXN0TWVzc2FnZXMsIGJpdGdvVnJmRGVzZXJpYWxpemVkTXNnMV0sXG4gICAgICBwMnBNZXNzYWdlczogW10sXG4gICAgfSk7XG4gICAgY29uc3QgdXNlclNpZ25lZFZyZk1zZzIgPSBhd2FpdCBNUFNDb21tcy5kZXRhY2hTaWduTXBzTWVzc2FnZShcbiAgICAgIGdldFNpbmdsZVZyZlBheWxvYWQoXG4gICAgICAgIHVzZXJWcmZNc2cyLnAycE1lc3NhZ2VzLmZpbHRlcigobWVzc2FnZSkgPT4gbWVzc2FnZS50byA9PT0gTVBDdjJQYXJ0aWVzRW51bS5CSVRHTyksXG4gICAgICAgICdVc2VyIFZSRiByb3VuZCAxIG9wZW5pbmcgZm9yIEJpdEdvJ1xuICAgICAgKSxcbiAgICAgIHVzZXJHcGdLZXlcbiAgICApO1xuICAgIGNvbnN0IGJhY2t1cFNpZ25lZFZyZk1zZzIgPSBhd2FpdCBNUFNDb21tcy5kZXRhY2hTaWduTXBzTWVzc2FnZShcbiAgICAgIGdldFNpbmdsZVZyZlBheWxvYWQoXG4gICAgICAgIGJhY2t1cFZyZk1zZzIucDJwTWVzc2FnZXMuZmlsdGVyKChtZXNzYWdlKSA9PiBtZXNzYWdlLnRvID09PSBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPKSxcbiAgICAgICAgJ0JhY2t1cCBWUkYgcm91bmQgMSBvcGVuaW5nIGZvciBCaXRHbydcbiAgICAgICksXG4gICAgICBiYWNrdXBHcGdLZXlcbiAgICApO1xuXG4gICAgY29uc3Qgcm91bmQyU2VuZGVyID0gS2V5R2VuU2VuZGVyRm9yRW50ZXJwcmlzZTxFZGRzYU1QQ3YyS2V5R2VuUm91bmQyUmVzcG9uc2U+KHRoaXMuYml0Z28sIHBhcmFtcy5lbnRlcnByaXNlKTtcbiAgICBjb25zdCB7XG4gICAgICBzZXNzaW9uSWQ6IHNlc3Npb25JZFJvdW5kMixcbiAgICAgIGNvbW1vblB1YmxpY0tleWNoYWluLFxuICAgICAgYml0Z29Nc2cyLFxuICAgICAgYml0Z29WcmZNc2dUb1VzZXIsXG4gICAgICBiaXRnb1ZyZk1zZ1RvQmFja3VwLFxuICAgIH0gPSBhd2FpdCByb3VuZDJTZW5kZXIoTVBDdjJLZXlHZW5TdGF0ZUVudW1bJ01QQ3YyLVIyJ10sIHtcbiAgICAgIHNlc3Npb25JZCxcbiAgICAgIHVzZXJNc2cyOiB1c2VyU2lnbmVkTXNnMixcbiAgICAgIGJhY2t1cE1zZzI6IGJhY2t1cFNpZ25lZE1zZzIsXG4gICAgICB1c2VyVnJmTXNnMjogdXNlclNpZ25lZFZyZk1zZzIsXG4gICAgICBiYWNrdXBWcmZNc2cyOiBiYWNrdXBTaWduZWRWcmZNc2cyLFxuICAgIH0pO1xuICAgIGFzc2VydC5lcXVhbChzZXNzaW9uSWQsIHNlc3Npb25JZFJvdW5kMiwgJ1JvdW5kIDEgYW5kIHJvdW5kIDIgc2Vzc2lvbiBJRHMgZG8gbm90IG1hdGNoJyk7XG4gICAgYXNzZXJ0KGJpdGdvVnJmTXNnVG9Vc2VyLCAnQml0R28gVlJGIG1lc3NhZ2UgdG8gdXNlciBub3QgZm91bmQgaW4gcm91bmQgMiByZXNwb25zZScpO1xuICAgIGFzc2VydChiaXRnb1ZyZk1zZ1RvQmFja3VwLCAnQml0R28gVlJGIG1lc3NhZ2UgdG8gYmFja3VwIG5vdCBmb3VuZCBpbiByb3VuZCAyIHJlc3BvbnNlJyk7XG5cbiAgICAvLyBWUkYgZmluYWxpemVzIGxvY2FsbHkgYWZ0ZXIgdGhlIHNlY29uZCBleGlzdGluZyBNUEN2MiByb3VuZC4gQml0R28ncyBvcGVuaW5ncyBhcmUgZW5jcnlwdGVkXG4gICAgLy8gdG8gdGhlIHJlY2lwaWVudCBwYXJ0eSdzIEdQRyBrZXkgYW5kIHNpZ25lZCBieSBCaXRHbydzIGtleS5cbiAgICBjb25zdCBiaXRnb1ZyZk9wZW5pbmdUb1VzZXIgPSBhd2FpdCBkZWNyeXB0Qml0Z29WcmZPcGVuaW5nKGJpdGdvVnJmTXNnVG9Vc2VyLCB1c2VyR3BnS2V5LCBiaXRnb0tleU9iaik7XG4gICAgY29uc3QgYml0Z29WcmZPcGVuaW5nVG9CYWNrdXAgPSBhd2FpdCBkZWNyeXB0Qml0Z29WcmZPcGVuaW5nKGJpdGdvVnJmTXNnVG9CYWNrdXAsIGJhY2t1cEdwZ0tleSwgYml0Z29LZXlPYmopO1xuICAgIGF3YWl0IHVzZXJWcmZTZXNzaW9uLmhhbmRsZUluY29taW5nTWVzc2FnZXMoe1xuICAgICAgYnJvYWRjYXN0TWVzc2FnZXM6IFtdLFxuICAgICAgcDJwTWVzc2FnZXM6IFtcbiAgICAgICAgLi4uYmFja3VwVnJmTXNnMi5wMnBNZXNzYWdlcy5maWx0ZXIoKG1lc3NhZ2UpID0+IG1lc3NhZ2UudG8gPT09IE1QQ3YyUGFydGllc0VudW0uVVNFUiksXG4gICAgICAgIHsgZnJvbTogTVBDdjJQYXJ0aWVzRW51bS5CSVRHTywgdG86IE1QQ3YyUGFydGllc0VudW0uVVNFUiwgcGF5bG9hZDogYml0Z29WcmZPcGVuaW5nVG9Vc2VyIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICAgIGF3YWl0IGJhY2t1cFZyZlNlc3Npb24uaGFuZGxlSW5jb21pbmdNZXNzYWdlcyh7XG4gICAgICBicm9hZGNhc3RNZXNzYWdlczogW10sXG4gICAgICBwMnBNZXNzYWdlczogW1xuICAgICAgICAuLi51c2VyVnJmTXNnMi5wMnBNZXNzYWdlcy5maWx0ZXIoKG1lc3NhZ2UpID0+IG1lc3NhZ2UudG8gPT09IE1QQ3YyUGFydGllc0VudW0uQkFDS1VQKSxcbiAgICAgICAgeyBmcm9tOiBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPLCB0bzogTVBDdjJQYXJ0aWVzRW51bS5CQUNLVVAsIHBheWxvYWQ6IGJpdGdvVnJmT3BlbmluZ1RvQmFja3VwIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24ga2V5Y2hhaW4gY3JlYXRpb25cbiAgICBjb25zdCBiaXRnb1Jhd01zZzJCeXRlcyA9IGF3YWl0IE1QU0NvbW1zLnZlcmlmeU1wc01lc3NhZ2UoYml0Z29Nc2cyLCBiaXRnb0tleU9iaik7XG4gICAgY29uc3QgYml0Z29EZXNlcmlhbGl6ZWRNc2cyOiBNUFNUeXBlcy5EZXNlcmlhbGl6ZWRNZXNzYWdlID0ge1xuICAgICAgZnJvbTogTVBDdjJQYXJ0aWVzRW51bS5CSVRHTyxcbiAgICAgIHBheWxvYWQ6IG5ldyBVaW50OEFycmF5KGJpdGdvUmF3TXNnMkJ5dGVzKSxcbiAgICB9O1xuICAgIGNvbnN0IHJvdW5kMk1lc3NhZ2VzOiBNUFNUeXBlcy5EZXNlcmlhbGl6ZWRNZXNzYWdlcyA9IFt1c2VyTXNnMiwgYmFja3VwTXNnMiwgYml0Z29EZXNlcmlhbGl6ZWRNc2cyXTtcblxuICAgIGNvbnN0IHVzZXJGaW5hbE1zZ3MgPSB1c2VyRGtnLmhhbmRsZUluY29taW5nTWVzc2FnZXMocm91bmQyTWVzc2FnZXMpO1xuICAgIGNvbnN0IGJhY2t1cEZpbmFsTXNncyA9IGJhY2t1cERrZy5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKHJvdW5kMk1lc3NhZ2VzKTtcbiAgICBhc3NlcnQodXNlckZpbmFsTXNncy5sZW5ndGggPT09IDAsICdXQVNNIHJvdW5kIDIgc2hvdWxkIHByb2R1Y2Ugbm8gb3V0cHV0IG1lc3NhZ2VzIGZvciB1c2VyJyk7XG4gICAgYXNzZXJ0KGJhY2t1cEZpbmFsTXNncy5sZW5ndGggPT09IDAsICdXQVNNIHJvdW5kIDIgc2hvdWxkIHByb2R1Y2Ugbm8gb3V0cHV0IG1lc3NhZ2VzIGZvciBiYWNrdXAnKTtcblxuICAgIGNvbnN0IHVzZXJDb21tb25LZXljaGFpbiA9IHVzZXJEa2cuZ2V0Q29tbW9uS2V5Y2hhaW4oKTtcbiAgICBjb25zdCBiYWNrdXBDb21tb25LZXljaGFpbiA9IGJhY2t1cERrZy5nZXRDb21tb25LZXljaGFpbigpO1xuICAgIGFzc2VydC5lcXVhbChcbiAgICAgIHVzZXJDb21tb25LZXljaGFpbixcbiAgICAgIGNvbW1vblB1YmxpY0tleWNoYWluLFxuICAgICAgJ1VzZXIgY29tcHV0ZWQga2V5Y2hhaW4gZG9lcyBub3QgbWF0Y2ggQml0R28gY29tbW9uIGtleWNoYWluJ1xuICAgICk7XG4gICAgYXNzZXJ0LmVxdWFsKFxuICAgICAgYmFja3VwQ29tbW9uS2V5Y2hhaW4sXG4gICAgICBjb21tb25QdWJsaWNLZXljaGFpbixcbiAgICAgICdCYWNrdXAgY29tcHV0ZWQga2V5Y2hhaW4gZG9lcyBub3QgbWF0Y2ggQml0R28gY29tbW9uIGtleWNoYWluJ1xuICAgICk7XG5cbiAgICBjb25zdCB7IGVudmVsb3BlOiB1c2VyRW52ZWxvcGUsIHJlZHVjZWRFbnZlbG9wZTogdXNlclJlZHVjZWRFbnZlbG9wZSB9ID0gYnVpbGRTYWZlTXBjS2V5RW52ZWxvcGVzKFxuICAgICAgdXNlckRrZy5nZXRLZXlTaGFyZSgpLFxuICAgICAgdXNlckRrZy5nZXRSZWR1Y2VkS2V5U2hhcmUoKSxcbiAgICAgIHVzZXJWcmZTZXNzaW9uLmdldEtleVNoYXJlKClcbiAgICApO1xuICAgIGNvbnN0IHsgZW52ZWxvcGU6IGJhY2t1cEVudmVsb3BlLCByZWR1Y2VkRW52ZWxvcGU6IGJhY2t1cFJlZHVjZWRFbnZlbG9wZSB9ID0gYnVpbGRTYWZlTXBjS2V5RW52ZWxvcGVzKFxuICAgICAgYmFja3VwRGtnLmdldEtleVNoYXJlKCksXG4gICAgICBiYWNrdXBEa2cuZ2V0UmVkdWNlZEtleVNoYXJlKCksXG4gICAgICBiYWNrdXBWcmZTZXNzaW9uLmdldEtleVNoYXJlKClcbiAgICApO1xuXG4gICAgY29uc3QgdXNlcktleWNoYWluUHJvbWlzZSA9IHRoaXMuYWRkVXNlcktleWNoYWluKFxuICAgICAgdXNlckNvbW1vbktleWNoYWluLFxuICAgICAgdXNlckVudmVsb3BlLFxuICAgICAgdXNlclJlZHVjZWRFbnZlbG9wZSxcbiAgICAgIHBhcmFtcy5wYXNzcGhyYXNlLFxuICAgICAgcGFyYW1zLm9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICAgIHBhcmFtcy53ZWJhdXRobkluZm8sXG4gICAgICBwYXJhbXMuZW5jcnlwdGlvblZlcnNpb24sXG4gICAgICBwYXJhbXMuZW50ZXJwcmlzZSxcbiAgICAgIHBhcmFtcy5zYWZlSWRcbiAgICApO1xuICAgIGNvbnN0IGJhY2t1cEtleWNoYWluUHJvbWlzZSA9IHRoaXMuYWRkQmFja3VwS2V5Y2hhaW4oXG4gICAgICBiYWNrdXBDb21tb25LZXljaGFpbixcbiAgICAgIGJhY2t1cEVudmVsb3BlLFxuICAgICAgYmFja3VwUmVkdWNlZEVudmVsb3BlLFxuICAgICAgcGFyYW1zLnBhc3NwaHJhc2UsXG4gICAgICBwYXJhbXMub3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlLFxuICAgICAgcGFyYW1zLmVuY3J5cHRpb25WZXJzaW9uLFxuICAgICAgcGFyYW1zLmVudGVycHJpc2UsXG4gICAgICBwYXJhbXMuc2FmZUlkXG4gICAgKTtcbiAgICBjb25zdCBiaXRnb0tleWNoYWluUHJvbWlzZSA9IHRoaXMuYWRkQml0Z29LZXljaGFpbihjb21tb25QdWJsaWNLZXljaGFpbiwgcGFyYW1zLnNhZmVJZCk7XG5cbiAgICBjb25zdCBbdXNlcktleWNoYWluLCBiYWNrdXBLZXljaGFpbiwgYml0Z29LZXljaGFpbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICB1c2VyS2V5Y2hhaW5Qcm9taXNlLFxuICAgICAgYmFja3VwS2V5Y2hhaW5Qcm9taXNlLFxuICAgICAgYml0Z29LZXljaGFpblByb21pc2UsXG4gICAgXSk7XG4gICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgcmV0dXJuIHsgdXNlcktleWNoYWluLCBiYWNrdXBLZXljaGFpbiwgYml0Z29LZXljaGFpbiB9O1xuICB9XG5cbiAgYXN5bmMgc2VuZERlcml2YXRpb25Sb3VuZDFCeVNlbmRlcihcbiAgICBzZW5kZXJGbjogRWRkc2FNUEN2MkRlcml2ZUtleVNlbmRGbjxFZGRzYU1QQ3YyRGVyaXZlUm91bmQxUmVzcG9uc2U+LFxuICAgIHVzZXJHcGdQdWJsaWNLZXk6IHN0cmluZyxcbiAgICB1c2VyTXNnMTogTVBTVHlwZXMuTVBTU2lnbmVkTWVzc2FnZSxcbiAgICBwYXJlbnRLZXlJZDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZ1xuICApOiBQcm9taXNlPEVkZHNhTVBDdjJEZXJpdmVSb3VuZDFSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBkZWNvZGVXaXRoQ29kZWMoXG4gICAgICBFZGRzYU1QQ3YyRGVyaXZlUm91bmQxUmVxdWVzdCxcbiAgICAgIHsgdXNlckdwZ1B1YmxpY0tleSwgdXNlck1zZzEsIHBhcmVudEtleUlkLCBwYXRoIH0sXG4gICAgICAnRWRkc2FNUEN2MkRlcml2ZVJvdW5kMVJlcXVlc3QnXG4gICAgKTtcbiAgICByZXR1cm4gZGVjb2RlV2l0aENvZGVjKFxuICAgICAgRWRkc2FNUEN2MkRlcml2ZVJvdW5kMVJlc3BvbnNlLFxuICAgICAgYXdhaXQgc2VuZGVyRm4oTVBDdjJLZXlHZW5TdGF0ZUVudW1bJ01QQ3YyRGVyaXZlLVIxJ10sIHJlcXVlc3QpLFxuICAgICAgJ0VkZHNhTVBDdjJEZXJpdmVSb3VuZDFSZXNwb25zZSdcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2VuZERlcml2YXRpb25Sb3VuZDJCeVNlbmRlcihcbiAgICBzZW5kZXJGbjogRWRkc2FNUEN2MkRlcml2ZUtleVNlbmRGbjxFZGRzYU1QQ3YyRGVyaXZlUm91bmQyUmVzcG9uc2U+LFxuICAgIHNlc3Npb25JZDogc3RyaW5nLFxuICAgIHVzZXJNc2cyOiBNUFNUeXBlcy5NUFNTaWduZWRNZXNzYWdlXG4gICk6IFByb21pc2U8RWRkc2FNUEN2MkRlcml2ZVJvdW5kMlJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGRlY29kZVdpdGhDb2RlYyhcbiAgICAgIEVkZHNhTVBDdjJEZXJpdmVSb3VuZDJSZXF1ZXN0LFxuICAgICAgeyBzZXNzaW9uSWQsIHVzZXJNc2cyIH0sXG4gICAgICAnRWRkc2FNUEN2MkRlcml2ZVJvdW5kMlJlcXVlc3QnXG4gICAgKTtcbiAgICByZXR1cm4gZGVjb2RlV2l0aENvZGVjKFxuICAgICAgRWRkc2FNUEN2MkRlcml2ZVJvdW5kMlJlc3BvbnNlLFxuICAgICAgYXdhaXQgc2VuZGVyRm4oTVBDdjJLZXlHZW5TdGF0ZUVudW1bJ01QQ3YyRGVyaXZlLVIyJ10sIHJlcXVlc3QpLFxuICAgICAgJ0VkZHNhTVBDdjJEZXJpdmVSb3VuZDJSZXNwb25zZSdcbiAgICApO1xuICB9XG5cbiAgLyoqIERlcml2ZXMgdGhlIHVzZXIgc2lnbmluZyBzaGFyZSB3aXRoIEJpdEdvIGF0IHRoZSBCSVA0NCBgcGF0aGAgYW5kIHJlZ2lzdGVycyBhbGwgdGhyZWUgc2FmZSBjaGlsZHJlbi4gKi9cbiAgYXN5bmMgY3JlYXRlU2FmZUNoaWxkS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlOiBzdHJpbmc7XG4gICAgc2FmZUlkOiBzdHJpbmc7XG4gICAgcGFyZW50S2V5SWQ6IHN0cmluZztcbiAgICAvKiogU2FmZSBjaGlsZCBwYXRoIGBtLzQ0Jy88Y29pblR5cGU+Jy88c2xvdD4nLzxhY2NvdW50PidgOyBldmVyeSBjaGlsZCBpcyByZWdpc3RlcmVkIGF0IGl0LiAqL1xuICAgIHBhdGg6IERlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aDtcbiAgICB1c2VyUm9vdEtleUlkOiBzdHJpbmc7XG4gICAgYmFja3VwUm9vdEtleUlkOiBzdHJpbmc7XG4gICAgdXNlclJvb3RLZXlTaGFyZTogQnVmZmVyO1xuICAgIHVzZXJSb290VnJmS2V5U2hhcmU6IEJ1ZmZlcjtcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gICAgd2ViYXV0aG5JbmZvPzogV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbztcbiAgICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xuICB9KTogUHJvbWlzZTxLZXljaGFpbnNUcmlwbGV0PiB7XG4gICAgYXNzZXJ0KE5vbkVtcHR5U3RyaW5nLmlzKHBhcmFtcy5zYWZlSWQpLCAnU2FmZSBJRCBpcyByZXF1aXJlZCBmb3IgY2hpbGQgZGVyaXZhdGlvbicpO1xuICAgIGFzc2VydChOb25FbXB0eVN0cmluZy5pcyhwYXJhbXMudXNlclJvb3RLZXlJZCksICdVc2VyIHJvb3Qga2V5IElEIGlzIHJlcXVpcmVkIGZvciBjaGlsZCBkZXJpdmF0aW9uJyk7XG4gICAgYXNzZXJ0KE5vbkVtcHR5U3RyaW5nLmlzKHBhcmFtcy5iYWNrdXBSb290S2V5SWQpLCAnQmFja3VwIHJvb3Qga2V5IElEIGlzIHJlcXVpcmVkIGZvciBjaGlsZCBkZXJpdmF0aW9uJyk7XG4gICAgYXNzZXJ0KE5vbkVtcHR5U3RyaW5nLmlzKHBhcmFtcy5wYXJlbnRLZXlJZCksICdCaXRHbyByb290IGtleSBJRCBpcyByZXF1aXJlZCBmb3IgY2hpbGQgZGVyaXZhdGlvbicpO1xuICAgIGNvbnN0IHsgcGF0aCB9ID0gcGFyYW1zO1xuICAgIC8vIFJlamVjdCBhIG1hbGZvcm1lZCBwYXRoIGJlZm9yZSBhbnkgbmV0d29yayBjYWxsOyB0aGUgc2VydmljZSByZS12YWxpZGF0ZXMgaXQgYWdhaW5zdCBpdHMgZXhwZWN0ZWQgcGF0aC5cbiAgICBwYXJzZVNhZmVCaXA0NFBhdGgocGF0aCk7XG5cbiAgICBjb25zdCB1c2VyS2V5UGFpciA9IGF3YWl0IGdlbmVyYXRlR1BHS2V5UGFpcignZWQyNTUxOScpO1xuICAgIGNvbnN0IHVzZXJHcGdLZXkgPSBhd2FpdCBwZ3AucmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiB1c2VyS2V5UGFpci5wcml2YXRlS2V5IH0pO1xuICAgIGNvbnN0IHsgZWRkc2FNcGN2MlB1YmxpY0tleSB9ID0gYXdhaXQgdGhpcy5nZXRCaXRnb0dwZ1B1YmtleUJhc2VkT25GZWF0dXJlRmxhZ3MocGFyYW1zLmVudGVycHJpc2UsIHRydWUpO1xuICAgIGNvbnN0IGJpdGdvUHVibGljR3BnS2V5ID0gZWRkc2FNcGN2MlB1YmxpY0tleSA/PyB0aGlzLmJpdGdvRWRkc2FNcGN2MlB1YmxpY0dwZ0tleTtcbiAgICBhc3NlcnQoYml0Z29QdWJsaWNHcGdLZXksICdGYWlsZWQgdG8gZ2V0IEJpdEdvIEVkRFNBIE1QQ3YyIEdQRyBwdWJsaWMga2V5Jyk7XG4gICAgY29uc3QgYml0Z29QdWJsaWNHcGdLZXlBcm1vcmVkID0gYml0Z29QdWJsaWNHcGdLZXkuYXJtb3IoKTtcbiAgICBpZiAoZW52UmVxdWlyZXNCaXRnb1B1YkdwZ0tleUNvbmZpZyh0aGlzLmJpdGdvLmdldEVudigpKSkge1xuICAgICAgYXNzZXJ0KGlzQml0Z29FZGRzYU1wY3YyUHViS2V5KGJpdGdvUHVibGljR3BnS2V5QXJtb3JlZCksICdJbnZhbGlkIEJpdEdvIEdQRyBwdWJsaWMga2V5Jyk7XG4gICAgfVxuICAgIGNvbnN0IGJpdGdvS2V5T2JqID0gYXdhaXQgcGdwLnJlYWRLZXkoeyBhcm1vcmVkS2V5OiBiaXRnb1B1YmxpY0dwZ0tleUFybW9yZWQgfSk7XG5cbiAgICBjb25zdCB1c2VyRGVyaXZlU2Vzc2lvbiA9IG5ldyBNcHNEZXJpdmUuRGVyaXZlKFxuICAgICAgMyxcbiAgICAgIDIsXG4gICAgICBNUEN2MlBhcnRpZXNFbnVtLlVTRVIsXG4gICAgICBwYXJhbXMudXNlclJvb3RLZXlTaGFyZSxcbiAgICAgIHBhcmFtcy51c2VyUm9vdFZyZktleVNoYXJlLFxuICAgICAgcGF0aFxuICAgICk7XG5cbiAgICBjb25zdCB1c2VyTXNnMSA9IGF3YWl0IHVzZXJEZXJpdmVTZXNzaW9uLmluaXREZXJpdmUoKTtcbiAgICBjb25zdCBzaWduZWRVc2VyTXNnMSA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKHVzZXJNc2cxLnBheWxvYWQsIHVzZXJHcGdLZXkpO1xuICAgIGNvbnN0IHsgc2Vzc2lvbklkLCBiaXRnb01zZzEgfSA9IGF3YWl0IHRoaXMuc2VuZERlcml2YXRpb25Sb3VuZDFCeVNlbmRlcihcbiAgICAgIEtleUdlblNlbmRlckZvclNhZmVDaGlsZDxFZGRzYU1QQ3YyRGVyaXZlUm91bmQxUmVzcG9uc2U+KFxuICAgICAgICB0aGlzLmJpdGdvLFxuICAgICAgICBwYXJhbXMuZW50ZXJwcmlzZSxcbiAgICAgICAgcGFyYW1zLnNhZmVJZCxcbiAgICAgICAgdGhpcy5iYXNlQ29pbi5nZXRDaGFpbigpXG4gICAgICApLFxuICAgICAgdXNlcktleVBhaXIucHVibGljS2V5LFxuICAgICAgc2lnbmVkVXNlck1zZzEsXG4gICAgICBwYXJhbXMucGFyZW50S2V5SWQsXG4gICAgICBwYXRoXG4gICAgKTtcblxuICAgIGNvbnN0IFt1c2VyTXNnMl0gPSB1c2VyRGVyaXZlU2Vzc2lvbi5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKFtcbiAgICAgIHsgZnJvbTogTVBDdjJQYXJ0aWVzRW51bS5CSVRHTywgcGF5bG9hZDogYXdhaXQgTVBTQ29tbXMudmVyaWZ5TXBzTWVzc2FnZShiaXRnb01zZzEsIGJpdGdvS2V5T2JqKSB9LFxuICAgIF0pO1xuICAgIGFzc2VydCh1c2VyTXNnMiwgJ1VzZXIgZGVyaXZlIHJvdW5kIDEgbXVzdCBwcm9kdWNlIGEgcm91bmQgMiBtZXNzYWdlJyk7XG4gICAgY29uc3Qgc2lnbmVkVXNlck1zZzIgPSBhd2FpdCBNUFNDb21tcy5kZXRhY2hTaWduTXBzTWVzc2FnZSh1c2VyTXNnMi5wYXlsb2FkLCB1c2VyR3BnS2V5KTtcbiAgICBjb25zdCB7XG4gICAgICBzZXNzaW9uSWQ6IHNlc3Npb25JZFJvdW5kMixcbiAgICAgIGNvbW1vblB1YmxpY0tleWNoYWluLFxuICAgICAgYml0Z29Nc2cyLFxuICAgIH0gPSBhd2FpdCB0aGlzLnNlbmREZXJpdmF0aW9uUm91bmQyQnlTZW5kZXIoXG4gICAgICBLZXlHZW5TZW5kZXJGb3JTYWZlQ2hpbGQ8RWRkc2FNUEN2MkRlcml2ZVJvdW5kMlJlc3BvbnNlPihcbiAgICAgICAgdGhpcy5iaXRnbyxcbiAgICAgICAgcGFyYW1zLmVudGVycHJpc2UsXG4gICAgICAgIHBhcmFtcy5zYWZlSWQsXG4gICAgICAgIHRoaXMuYmFzZUNvaW4uZ2V0Q2hhaW4oKVxuICAgICAgKSxcbiAgICAgIHNlc3Npb25JZCxcbiAgICAgIHNpZ25lZFVzZXJNc2cyXG4gICAgKTtcbiAgICBhc3NlcnQuZXF1YWwoc2Vzc2lvbklkLCBzZXNzaW9uSWRSb3VuZDIsICdSb3VuZCAxIGFuZCAyIFNlc3Npb24gSURzIGRvIG5vdCBtYXRjaCcpO1xuXG4gICAgY29uc3QgZmluYWxNZXNzYWdlcyA9IHVzZXJEZXJpdmVTZXNzaW9uLmhhbmRsZUluY29taW5nTWVzc2FnZXMoW1xuICAgICAgeyBmcm9tOiBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPLCBwYXlsb2FkOiBhd2FpdCBNUFNDb21tcy52ZXJpZnlNcHNNZXNzYWdlKGJpdGdvTXNnMiwgYml0Z29LZXlPYmopIH0sXG4gICAgXSk7XG4gICAgYXNzZXJ0LmVxdWFsKGZpbmFsTWVzc2FnZXMubGVuZ3RoLCAwLCAnTVBTIGRlcml2ZSByb3VuZCAyIG11c3Qgbm90IHByb2R1Y2UgYW5vdGhlciBtZXNzYWdlJyk7XG4gICAgY29uc3QgY29tbW9uS2V5Y2hhaW4gPSB1c2VyRGVyaXZlU2Vzc2lvbi5nZXRDb21tb25LZXljaGFpbigpO1xuICAgIGFzc2VydC5lcXVhbChjb21tb25LZXljaGFpbiwgY29tbW9uUHVibGljS2V5Y2hhaW4sICdVc2VyIGFuZCBCaXRHbyBjb21tb24ga2V5Y2hhaW5zIGRvIG5vdCBtYXRjaCcpO1xuXG4gICAgY29uc3QgW3VzZXJLZXljaGFpbiwgYmFja3VwS2V5Y2hhaW4sIGJpdGdvS2V5Y2hhaW5dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5hZGRVc2VyS2V5Y2hhaW4oXG4gICAgICAgIGNvbW1vbktleWNoYWluLFxuICAgICAgICB1c2VyRGVyaXZlU2Vzc2lvbi5nZXRLZXlTaGFyZSgpLFxuICAgICAgICB1c2VyRGVyaXZlU2Vzc2lvbi5nZXRSZWR1Y2VkS2V5U2hhcmUoKSxcbiAgICAgICAgcGFyYW1zLnBhc3NwaHJhc2UsXG4gICAgICAgIHBhcmFtcy5vcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gICAgICAgIHBhcmFtcy53ZWJhdXRobkluZm8sXG4gICAgICAgIHBhcmFtcy5lbmNyeXB0aW9uVmVyc2lvbixcbiAgICAgICAgcGFyYW1zLmVudGVycHJpc2UsXG4gICAgICAgIHBhcmFtcy5zYWZlSWQsXG4gICAgICAgIHsgcGFyZW50S2V5SWQ6IHBhcmFtcy51c2VyUm9vdEtleUlkLCBwYXRoIH1cbiAgICAgICksXG4gICAgICB0aGlzLmFkZEJhY2t1cEtleWNoYWluKFxuICAgICAgICBjb21tb25LZXljaGFpbixcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHBhcmFtcy5wYXNzcGhyYXNlLFxuICAgICAgICBwYXJhbXMub3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlLFxuICAgICAgICBwYXJhbXMuZW5jcnlwdGlvblZlcnNpb24sXG4gICAgICAgIHBhcmFtcy5lbnRlcnByaXNlLFxuICAgICAgICBwYXJhbXMuc2FmZUlkLFxuICAgICAgICB7IHBhcmVudEtleUlkOiBwYXJhbXMuYmFja3VwUm9vdEtleUlkLCBwYXRoIH1cbiAgICAgICksXG4gICAgICB0aGlzLmFkZEJpdGdvS2V5Y2hhaW4oY29tbW9uS2V5Y2hhaW4sIHBhcmFtcy5zYWZlSWQsIHtcbiAgICAgICAgcGFyZW50S2V5SWQ6IHBhcmFtcy5wYXJlbnRLZXlJZCxcbiAgICAgICAgcGF0aCxcbiAgICAgIH0pLFxuICAgIF0pO1xuICAgIHJldHVybiB7IHVzZXJLZXljaGFpbiwgYmFja3VwS2V5Y2hhaW4sIGJpdGdvS2V5Y2hhaW4gfTtcbiAgfVxufVxuIl19
@@ -5,4 +5,9 @@ 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 './eddsaVrfMPCv2';
10
+ export * from './eddsaMPCv2KeyGenSender';
11
+ export * from './typesEddsaMPCv2';
12
+ export * from './SMC/utils';
8
13
  //# 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,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,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,9 @@ 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("./eddsaVrfMPCv2"), exports);
49
+ __exportStar(require("./eddsaMPCv2KeyGenSender"), exports);
50
+ __exportStar(require("./typesEddsaMPCv2"), exports);
51
+ __exportStar(require("./SMC/utils"), exports);
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VkZHNhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFxQztBQUNyQyxzQ0FBc0M7QUFDdEMseURBQXlDO0FBQ3pDLDJEQUEyQztBQUUzQyxrQkFBZSxrQkFBVSxDQUFDO0FBSTFCLDBDQUtzQjtBQUZwQiwrR0FBQSxrQkFBa0IsT0FBQTtBQUlwQiwrQ0FBNkI7QUFDN0Isa0RBQWdDO0FBQ2hDLDJEQUF5QztBQUN6QyxvREFBa0M7QUFDbEMsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRkc2FVdGlscyB9IGZyb20gJy4vZWRkc2EnO1xuLyoqIEBkZXByZWNhdGVkIHVzZSBFZGRzYVV0aWxzVHlwZXMgKi9cbmV4cG9ydCAqIGFzIFRzc1V0aWxzVHlwZXMgZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBhcyBFZGRzYVV0aWxzVHlwZXMgZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IEVkZHNhVXRpbHM7XG5cbi8vIGV4cG9ydGluZyB0aGlzIHR5cGVzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuZXhwb3J0IHsgSVRzc1V0aWxzLCBJRWRkc2FVdGlscywgRWRkc2FVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQge1xuICBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMsXG4gIFNpZ25hdHVyZVNoYXJlUmVjb3JkLFxuICBTaWduYXR1cmVTaGFyZVR5cGUsXG4gIFR4UmVxdWVzdCxcbn0gZnJvbSAnLi4vYmFzZVR5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9lZGRzYU1QQ3YyJztcbmV4cG9ydCAqIGZyb20gJy4vZWRkc2FWcmZNUEN2Mic7XG5leHBvcnQgKiBmcm9tICcuL2VkZHNhTVBDdjJLZXlHZW5TZW5kZXInO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlc0VkZHNhTVBDdjInO1xuZXhwb3J0ICogZnJvbSAnLi9TTUMvdXRpbHMnO1xuIl19
@@ -2,18 +2,26 @@ import { EDDSA } from '../../../../account-lib/mpc/tss';
2
2
  import BaseTSSUtils from '../baseTSSUtils';
3
3
  import { CreateKeychainParamsBase, UnsignedTransactionTss } from '../baseTypes';
4
4
  import { SerializedKeyPair } from 'openpgp';
5
- export declare type KeyShare = EDDSA.KeyShare;
6
- export declare type YShare = EDDSA.YShare;
5
+ export type KeyShare = EDDSA.KeyShare;
6
+ export type YShare = EDDSA.YShare;
7
7
  /** @deprected use UnsignedTransactionTss from baseTypes */
8
- export declare type EddsaUnsignedTransaction = UnsignedTransactionTss;
9
- export declare type IEddsaUtils = BaseTSSUtils<KeyShare>;
8
+ export type EddsaUnsignedTransaction = UnsignedTransactionTss;
9
+ export type IEddsaUtils = BaseTSSUtils<KeyShare>;
10
10
  /** @deprecated Use IEddsaUtils */
11
- export declare type ITssUtils = IEddsaUtils;
12
- export declare type CreateEddsaKeychainParams = CreateKeychainParamsBase & {
11
+ export type ITssUtils = IEddsaUtils;
12
+ export type CreateEddsaKeychainParams = CreateKeychainParamsBase & {
13
13
  userKeyShare: EDDSA.KeyShare;
14
14
  backupGpgKey: SerializedKeyPair<string>;
15
15
  backupKeyShare: EDDSA.KeyShare;
16
16
  };
17
- export declare type CreateEddsaBitGoKeychainParams = Omit<CreateEddsaKeychainParams, 'bitgoKeychain'>;
17
+ export interface EddsaMPCv2RecoveryKeyShares {
18
+ userKeyShare: Buffer;
19
+ backupKeyShare: Buffer;
20
+ commonKeyChain: string;
21
+ /** Serialized VRF keyshares from safe-root envelopes, when present. */
22
+ userVrfKeyShare?: Buffer;
23
+ backupVrfKeyShare?: Buffer;
24
+ }
25
+ export type CreateEddsaBitGoKeychainParams = Omit<CreateEddsaKeychainParams, 'bitgoKeychain'>;
18
26
  export { PrebuildTransactionWithIntentOptions, TxRequestVersion, TxRequestState, TransactionState, SignatureShareRecord, SignatureShareType, } from '../baseTypes';
19
27
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,oBAAY,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACtC,oBAAY,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAClC,2DAA2D;AAC3D,oBAAY,wBAAwB,GAAG,sBAAsB,CAAC;AAE9D,oBAAY,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AACjD,kCAAkC;AAClC,oBAAY,SAAS,GAAG,WAAW,CAAC;AAEpC,oBAAY,yBAAyB,GAAG,wBAAwB,GAAG;IACjE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC7B,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC;CAChC,CAAC;AAEF,oBAAY,8BAA8B,GAAG,IAAI,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;AAG9F,OAAO,EACL,oCAAoC,EACpC,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACtC,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAClC,2DAA2D;AAC3D,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AACjD,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC;AAEpC,MAAM,MAAM,yBAAyB,GAAG,wBAAwB,GAAG;IACjE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC7B,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC;CAChC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;AAG9F,OAAO,EACL,oCAAoC,EACpC,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
@@ -4,4 +4,4 @@ exports.SignatureShareType = void 0;
4
4
  // For backward compatibility
5
5
  var baseTypes_1 = require("../baseTypes");
6
6
  Object.defineProperty(exports, "SignatureShareType", { enumerable: true, get: function () { return baseTypes_1.SignatureShareType; } });
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VkZHNhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXNCQSw2QkFBNkI7QUFDN0IsMENBT3NCO0FBRHBCLCtHQUFBLGtCQUFrQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRUREU0EgfSBmcm9tICcuLi8uLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCBCYXNlVFNTVXRpbHMgZnJvbSAnLi4vYmFzZVRTU1V0aWxzJztcbmltcG9ydCB7IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSwgVW5zaWduZWRUcmFuc2FjdGlvblRzcyB9IGZyb20gJy4uL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBTZXJpYWxpemVkS2V5UGFpciB9IGZyb20gJ29wZW5wZ3AnO1xuXG5leHBvcnQgdHlwZSBLZXlTaGFyZSA9IEVERFNBLktleVNoYXJlO1xuZXhwb3J0IHR5cGUgWVNoYXJlID0gRUREU0EuWVNoYXJlO1xuLyoqIEBkZXByZWN0ZWQgdXNlIFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3MgZnJvbSBiYXNlVHlwZXMgKi9cbmV4cG9ydCB0eXBlIEVkZHNhVW5zaWduZWRUcmFuc2FjdGlvbiA9IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3M7XG5cbmV4cG9ydCB0eXBlIElFZGRzYVV0aWxzID0gQmFzZVRTU1V0aWxzPEtleVNoYXJlPjtcbi8qKiBAZGVwcmVjYXRlZCBVc2UgSUVkZHNhVXRpbHMgKi9cbmV4cG9ydCB0eXBlIElUc3NVdGlscyA9IElFZGRzYVV0aWxzO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVFZGRzYUtleWNoYWluUGFyYW1zID0gQ3JlYXRlS2V5Y2hhaW5QYXJhbXNCYXNlICYge1xuICB1c2VyS2V5U2hhcmU6IEVERFNBLktleVNoYXJlO1xuICBiYWNrdXBHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz47XG4gIGJhY2t1cEtleVNoYXJlOiBFRERTQS5LZXlTaGFyZTtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUVkZHNhQml0R29LZXljaGFpblBhcmFtcyA9IE9taXQ8Q3JlYXRlRWRkc2FLZXljaGFpblBhcmFtcywgJ2JpdGdvS2V5Y2hhaW4nPjtcblxuLy8gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbmV4cG9ydCB7XG4gIFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyxcbiAgVHhSZXF1ZXN0VmVyc2lvbixcbiAgVHhSZXF1ZXN0U3RhdGUsXG4gIFRyYW5zYWN0aW9uU3RhdGUsXG4gIFNpZ25hdHVyZVNoYXJlUmVjb3JkLFxuICBTaWduYXR1cmVTaGFyZVR5cGUsXG59IGZyb20gJy4uL2Jhc2VUeXBlcyc7XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VkZHNhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQStCQSw2QkFBNkI7QUFDN0IsMENBT3NCO0FBRHBCLCtHQUFBLGtCQUFrQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRUREU0EgfSBmcm9tICcuLi8uLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCBCYXNlVFNTVXRpbHMgZnJvbSAnLi4vYmFzZVRTU1V0aWxzJztcbmltcG9ydCB7IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSwgVW5zaWduZWRUcmFuc2FjdGlvblRzcyB9IGZyb20gJy4uL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBTZXJpYWxpemVkS2V5UGFpciB9IGZyb20gJ29wZW5wZ3AnO1xuXG5leHBvcnQgdHlwZSBLZXlTaGFyZSA9IEVERFNBLktleVNoYXJlO1xuZXhwb3J0IHR5cGUgWVNoYXJlID0gRUREU0EuWVNoYXJlO1xuLyoqIEBkZXByZWN0ZWQgdXNlIFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3MgZnJvbSBiYXNlVHlwZXMgKi9cbmV4cG9ydCB0eXBlIEVkZHNhVW5zaWduZWRUcmFuc2FjdGlvbiA9IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3M7XG5cbmV4cG9ydCB0eXBlIElFZGRzYVV0aWxzID0gQmFzZVRTU1V0aWxzPEtleVNoYXJlPjtcbi8qKiBAZGVwcmVjYXRlZCBVc2UgSUVkZHNhVXRpbHMgKi9cbmV4cG9ydCB0eXBlIElUc3NVdGlscyA9IElFZGRzYVV0aWxzO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVFZGRzYUtleWNoYWluUGFyYW1zID0gQ3JlYXRlS2V5Y2hhaW5QYXJhbXNCYXNlICYge1xuICB1c2VyS2V5U2hhcmU6IEVERFNBLktleVNoYXJlO1xuICBiYWNrdXBHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz47XG4gIGJhY2t1cEtleVNoYXJlOiBFRERTQS5LZXlTaGFyZTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRkc2FNUEN2MlJlY292ZXJ5S2V5U2hhcmVzIHtcbiAgdXNlcktleVNoYXJlOiBCdWZmZXI7XG4gIGJhY2t1cEtleVNoYXJlOiBCdWZmZXI7XG4gIGNvbW1vbktleUNoYWluOiBzdHJpbmc7XG4gIC8qKiBTZXJpYWxpemVkIFZSRiBrZXlzaGFyZXMgZnJvbSBzYWZlLXJvb3QgZW52ZWxvcGVzLCB3aGVuIHByZXNlbnQuICovXG4gIHVzZXJWcmZLZXlTaGFyZT86IEJ1ZmZlcjtcbiAgYmFja3VwVnJmS2V5U2hhcmU/OiBCdWZmZXI7XG59XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUVkZHNhQml0R29LZXljaGFpblBhcmFtcyA9IE9taXQ8Q3JlYXRlRWRkc2FLZXljaGFpblBhcmFtcywgJ2JpdGdvS2V5Y2hhaW4nPjtcblxuLy8gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbmV4cG9ydCB7XG4gIFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyxcbiAgVHhSZXF1ZXN0VmVyc2lvbixcbiAgVHhSZXF1ZXN0U3RhdGUsXG4gIFRyYW5zYWN0aW9uU3RhdGUsXG4gIFNpZ25hdHVyZVNoYXJlUmVjb3JkLFxuICBTaWduYXR1cmVTaGFyZVR5cGUsXG59IGZyb20gJy4uL2Jhc2VUeXBlcyc7XG4iXX0=