@bitgo-beta/sdk-core 8.2.1-beta.180 → 8.2.1-beta.1801

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 (600) hide show
  1. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts +0 -1
  2. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts.map +1 -1
  3. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts +3 -3
  4. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts.map +1 -1
  5. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.js +4 -3
  6. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +1 -0
  7. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -1
  8. package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +41 -29
  9. package/dist/src/account-lib/baseCoin/enum.d.ts +50 -5
  10. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  11. package/dist/src/account-lib/baseCoin/enum.js +90 -10
  12. package/dist/src/account-lib/baseCoin/errors.d.ts +3 -0
  13. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -1
  14. package/dist/src/account-lib/baseCoin/errors.js +8 -2
  15. package/dist/src/account-lib/baseCoin/iface.d.ts +19 -35
  16. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
  17. package/dist/src/account-lib/baseCoin/iface.js +26 -18
  18. package/dist/src/account-lib/baseCoin/index.d.ts +1 -1
  19. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -1
  20. package/dist/src/account-lib/baseCoin/index.js +8 -5
  21. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts +88 -0
  22. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  23. package/dist/src/account-lib/baseCoin/messages/baseMessage.js +154 -0
  24. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +67 -0
  25. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  26. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +144 -0
  27. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +33 -0
  28. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  29. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +45 -0
  30. package/dist/src/account-lib/baseCoin/messages/iface.d.ts +164 -0
  31. package/dist/src/account-lib/baseCoin/messages/iface.d.ts.map +1 -0
  32. package/dist/src/account-lib/baseCoin/messages/iface.js +3 -0
  33. package/dist/src/account-lib/baseCoin/messages/index.d.ts +6 -0
  34. package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -0
  35. package/dist/src/account-lib/baseCoin/messages/index.js +22 -0
  36. package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts +3 -0
  37. package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts.map +1 -0
  38. package/dist/src/account-lib/baseCoin/messages/simple/index.js +19 -0
  39. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts +13 -0
  40. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts.map +1 -0
  41. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.js +28 -0
  42. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts +21 -0
  43. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts.map +1 -0
  44. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.js +28 -0
  45. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts +1 -2
  46. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +1 -1
  47. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +38 -26
  48. package/dist/src/account-lib/index.js +23 -9
  49. package/dist/src/account-lib/mpc/index.d.ts +1 -1
  50. package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
  51. package/dist/src/account-lib/mpc/index.js +6 -2
  52. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +2 -3
  53. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  54. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +376 -354
  55. package/dist/src/account-lib/mpc/tss/ecdsa/index.js +23 -9
  56. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts +2 -2
  57. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts.map +1 -1
  58. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.js +3 -3
  59. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +46 -53
  60. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
  61. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
  62. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +0 -1
  63. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -1
  64. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +66 -69
  65. package/dist/src/account-lib/mpc/tss/eddsa/index.js +23 -9
  66. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +1 -1
  67. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
  68. package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
  69. package/dist/src/account-lib/mpc/tss/index.js +23 -9
  70. package/dist/src/account-lib/mpc/util.d.ts +7 -1
  71. package/dist/src/account-lib/mpc/util.d.ts.map +1 -1
  72. package/dist/src/account-lib/mpc/util.js +24 -1
  73. package/dist/src/account-lib/staking/index.js +6 -2
  74. package/dist/src/account-lib/staking/utils.js +3 -3
  75. package/dist/src/account-lib/util/crypto.d.ts +8 -2
  76. package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
  77. package/dist/src/account-lib/util/crypto.js +69 -38
  78. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +2 -1
  79. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +1 -1
  80. package/dist/src/account-lib/util/ed25519KeyDeriver.js +5 -3
  81. package/dist/src/api/bip32path.js +2 -3
  82. package/dist/src/api/index.js +6 -2
  83. package/dist/src/api/types.d.ts +30 -0
  84. package/dist/src/api/types.d.ts.map +1 -1
  85. package/dist/src/api/types.js +1 -1
  86. package/dist/src/bitgo/address-book/address-book.d.ts +61 -0
  87. package/dist/src/bitgo/address-book/address-book.d.ts.map +1 -0
  88. package/dist/src/bitgo/address-book/address-book.js +139 -0
  89. package/dist/src/bitgo/address-book/index.d.ts +3 -0
  90. package/dist/src/bitgo/address-book/index.d.ts.map +1 -0
  91. package/dist/src/bitgo/address-book/index.js +19 -0
  92. package/dist/src/bitgo/address-book/types.d.ts +170 -0
  93. package/dist/src/bitgo/address-book/types.d.ts.map +1 -0
  94. package/dist/src/bitgo/address-book/types.js +3 -0
  95. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +99 -11
  96. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  97. package/dist/src/bitgo/baseCoin/baseCoin.js +168 -16
  98. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +192 -28
  99. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  100. package/dist/src/bitgo/baseCoin/iBaseCoin.js +14 -3
  101. package/dist/src/bitgo/baseCoin/index.js +6 -2
  102. package/dist/src/bitgo/bip32util.d.ts +3 -16
  103. package/dist/src/bitgo/bip32util.d.ts.map +1 -1
  104. package/dist/src/bitgo/bip32util.js +4 -56
  105. package/dist/src/bitgo/bitcoin.d.ts +0 -1
  106. package/dist/src/bitgo/bitcoin.d.ts.map +1 -1
  107. package/dist/src/bitgo/bitcoin.js +26 -13
  108. package/dist/src/bitgo/bitgoBase.d.ts +8 -1
  109. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  110. package/dist/src/bitgo/bitgoBase.js +1 -1
  111. package/dist/src/bitgo/coinFactory.d.ts +17 -3
  112. package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
  113. package/dist/src/bitgo/coinFactory.js +26 -3
  114. package/dist/src/bitgo/config.d.ts +3 -95
  115. package/dist/src/bitgo/config.d.ts.map +1 -1
  116. package/dist/src/bitgo/config.js +26 -15
  117. package/dist/src/bitgo/ecdh.d.ts +0 -1
  118. package/dist/src/bitgo/ecdh.d.ts.map +1 -1
  119. package/dist/src/bitgo/ecdh.js +26 -13
  120. package/dist/src/bitgo/enterprise/enterprise.d.ts +3 -4
  121. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  122. package/dist/src/bitgo/enterprise/enterprise.js +39 -21
  123. package/dist/src/bitgo/enterprise/enterprises.js +27 -13
  124. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +2 -3
  125. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  126. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  127. package/dist/src/bitgo/enterprise/index.js +6 -2
  128. package/dist/src/bitgo/environments.d.ts +69 -5
  129. package/dist/src/bitgo/environments.d.ts.map +1 -1
  130. package/dist/src/bitgo/environments.js +403 -40
  131. package/dist/src/bitgo/errors.d.ts +175 -0
  132. package/dist/src/bitgo/errors.d.ts.map +1 -1
  133. package/dist/src/bitgo/errors.js +166 -2
  134. package/dist/src/bitgo/evm/evmUtils.d.ts +26 -0
  135. package/dist/src/bitgo/evm/evmUtils.d.ts.map +1 -0
  136. package/dist/src/bitgo/evm/evmUtils.js +50 -0
  137. package/dist/src/bitgo/index.d.ts +3 -1
  138. package/dist/src/bitgo/index.d.ts.map +1 -1
  139. package/dist/src/bitgo/index.js +29 -11
  140. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts +3 -3
  141. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts.map +1 -1
  142. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.js +1 -1
  143. package/dist/src/bitgo/inscriptionBuilder/index.js +6 -2
  144. package/dist/src/bitgo/internal/index.js +6 -2
  145. package/dist/src/bitgo/internal/internal.js +5 -6
  146. package/dist/src/bitgo/internal/keycard.d.ts +18 -6
  147. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -1
  148. package/dist/src/bitgo/internal/keycard.js +102 -44
  149. package/dist/src/bitgo/keychain/decryptKeychain.d.ts +24 -0
  150. package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -0
  151. package/dist/src/bitgo/keychain/decryptKeychain.js +67 -0
  152. package/dist/src/bitgo/keychain/iKeychains.d.ts +93 -8
  153. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  154. package/dist/src/bitgo/keychain/iKeychains.js +2 -2
  155. package/dist/src/bitgo/keychain/index.d.ts +1 -0
  156. package/dist/src/bitgo/keychain/index.d.ts.map +1 -1
  157. package/dist/src/bitgo/keychain/index.js +7 -2
  158. package/dist/src/bitgo/keychain/keychains.d.ts +48 -6
  159. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  160. package/dist/src/bitgo/keychain/keychains.js +244 -46
  161. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +3 -3
  162. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  163. package/dist/src/bitgo/keychain/ovcJsonCodec.js +23 -9
  164. package/dist/src/bitgo/legacyBitcoin.d.ts +0 -1
  165. package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -1
  166. package/dist/src/bitgo/legacyBitcoin.js +27 -13
  167. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts +7 -0
  168. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts.map +1 -0
  169. package/dist/src/bitgo/lightning/lightningWalletUtil.js +25 -0
  170. package/dist/src/bitgo/market/iMarkets.d.ts +2 -2
  171. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -1
  172. package/dist/src/bitgo/market/index.js +6 -2
  173. package/dist/src/bitgo/market/markets.js +23 -9
  174. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +1 -0
  175. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  176. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +4 -4
  177. package/dist/src/bitgo/pendingApproval/index.js +6 -2
  178. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +20 -8
  179. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
  180. package/dist/src/bitgo/pendingApproval/pendingApproval.js +228 -110
  181. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +23 -9
  182. package/dist/src/bitgo/proofs/WalletProofs.d.ts +19 -0
  183. package/dist/src/bitgo/proofs/WalletProofs.d.ts.map +1 -0
  184. package/dist/src/bitgo/proofs/WalletProofs.js +37 -0
  185. package/dist/src/bitgo/proofs/index.d.ts +2 -0
  186. package/dist/src/bitgo/proofs/index.d.ts.map +1 -0
  187. package/dist/src/bitgo/proofs/index.js +6 -0
  188. package/dist/src/bitgo/proofs/types.d.ts +80 -0
  189. package/dist/src/bitgo/proofs/types.d.ts.map +1 -0
  190. package/dist/src/bitgo/proofs/types.js +80 -0
  191. package/dist/src/bitgo/recovery/index.js +6 -2
  192. package/dist/src/bitgo/recovery/initiate.d.ts +24 -1
  193. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  194. package/dist/src/bitgo/recovery/initiate.js +88 -40
  195. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +132 -0
  196. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts.map +1 -0
  197. package/dist/src/bitgo/staking/goStakingInterfaces.js +3 -0
  198. package/dist/src/bitgo/staking/goStakingWallet.d.ts +62 -0
  199. package/dist/src/bitgo/staking/goStakingWallet.d.ts.map +1 -0
  200. package/dist/src/bitgo/staking/goStakingWallet.js +141 -0
  201. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts +17 -0
  202. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts.map +1 -0
  203. package/dist/src/bitgo/staking/iGoStakingWallet.js +3 -0
  204. package/dist/src/bitgo/staking/iStakingWallet.d.ts +173 -7
  205. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  206. package/dist/src/bitgo/staking/iStakingWallet.js +2 -2
  207. package/dist/src/bitgo/staking/index.d.ts +3 -0
  208. package/dist/src/bitgo/staking/index.d.ts.map +1 -1
  209. package/dist/src/bitgo/staking/index.js +9 -2
  210. package/dist/src/bitgo/staking/stakingWallet.d.ts +21 -8
  211. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  212. package/dist/src/bitgo/staking/stakingWallet.js +140 -7
  213. package/dist/src/bitgo/trading/iTradingAccount.d.ts +15 -1
  214. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -1
  215. package/dist/src/bitgo/trading/iTradingAccount.js +1 -1
  216. package/dist/src/bitgo/trading/index.d.ts +1 -0
  217. package/dist/src/bitgo/trading/index.d.ts.map +1 -1
  218. package/dist/src/bitgo/trading/index.js +7 -2
  219. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts +8 -0
  220. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts.map +1 -0
  221. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.js +31 -0
  222. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts +8 -0
  223. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts.map +1 -0
  224. package/dist/src/bitgo/trading/network/decrypt-rsa.js +23 -0
  225. package/dist/src/bitgo/trading/network/decrypt.d.ts +14 -0
  226. package/dist/src/bitgo/trading/network/decrypt.d.ts.map +1 -0
  227. package/dist/src/bitgo/trading/network/decrypt.js +23 -0
  228. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts +8 -0
  229. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts.map +1 -0
  230. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.js +25 -0
  231. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts +8 -0
  232. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts.map +1 -0
  233. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.js +65 -0
  234. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts +8 -0
  235. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts.map +1 -0
  236. package/dist/src/bitgo/trading/network/encrypt-rsa.js +23 -0
  237. package/dist/src/bitgo/trading/network/encrypt.d.ts +37 -0
  238. package/dist/src/bitgo/trading/network/encrypt.d.ts.map +1 -0
  239. package/dist/src/bitgo/trading/network/encrypt.js +58 -0
  240. package/dist/src/bitgo/trading/network/index.d.ts +5 -0
  241. package/dist/src/bitgo/trading/network/index.d.ts.map +1 -0
  242. package/dist/src/bitgo/trading/network/index.js +21 -0
  243. package/dist/src/bitgo/trading/network/network.d.ts +36 -0
  244. package/dist/src/bitgo/trading/network/network.d.ts.map +1 -0
  245. package/dist/src/bitgo/trading/network/network.js +99 -0
  246. package/dist/src/bitgo/trading/network/types.d.ts +277 -0
  247. package/dist/src/bitgo/trading/network/types.d.ts.map +1 -0
  248. package/dist/src/bitgo/trading/network/types.js +3 -0
  249. package/dist/src/bitgo/trading/network/utils.d.ts +20 -0
  250. package/dist/src/bitgo/trading/network/utils.d.ts.map +1 -0
  251. package/dist/src/bitgo/trading/network/utils.js +54 -0
  252. package/dist/src/bitgo/trading/tradingAccount.d.ts +22 -1
  253. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
  254. package/dist/src/bitgo/trading/tradingAccount.js +64 -7
  255. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts +38 -0
  256. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  257. package/dist/src/bitgo/tss/bitgoPubKeys.js +72 -0
  258. package/dist/src/bitgo/tss/common.d.ts +39 -6
  259. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  260. package/dist/src/bitgo/tss/common.js +112 -17
  261. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +6 -4
  262. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  263. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +78 -66
  264. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts +15 -0
  265. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  266. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.js +167 -0
  267. package/dist/src/bitgo/tss/ecdsa/index.d.ts +1 -0
  268. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -1
  269. package/dist/src/bitgo/tss/ecdsa/index.js +25 -10
  270. package/dist/src/bitgo/tss/ecdsa/types.d.ts +27 -27
  271. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  272. package/dist/src/bitgo/tss/ecdsa/types.js +3 -3
  273. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +15 -6
  274. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  275. package/dist/src/bitgo/tss/eddsa/eddsa.js +47 -40
  276. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +37 -0
  277. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  278. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +95 -0
  279. package/dist/src/bitgo/tss/eddsa/index.js +23 -9
  280. package/dist/src/bitgo/tss/eddsa/types.d.ts +4 -4
  281. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -1
  282. package/dist/src/bitgo/tss/index.d.ts +3 -2
  283. package/dist/src/bitgo/tss/index.d.ts.map +1 -1
  284. package/dist/src/bitgo/tss/index.js +26 -10
  285. package/dist/src/bitgo/tss/types.d.ts +3 -3
  286. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  287. package/dist/src/bitgo/tss/types.js +2 -2
  288. package/dist/src/bitgo/types.d.ts +3 -3
  289. package/dist/src/bitgo/types.d.ts.map +1 -1
  290. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +8 -0
  291. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
  292. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +55 -13
  293. package/dist/src/bitgo/utils/codecProps.js +24 -11
  294. package/dist/src/bitgo/utils/codecs.d.ts +11 -0
  295. package/dist/src/bitgo/utils/codecs.d.ts.map +1 -0
  296. package/dist/src/bitgo/utils/codecs.js +59 -0
  297. package/dist/src/bitgo/utils/decode.d.ts.map +1 -1
  298. package/dist/src/bitgo/utils/decode.js +30 -16
  299. package/dist/src/bitgo/utils/index.d.ts +4 -2
  300. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  301. package/dist/src/bitgo/utils/index.js +27 -11
  302. package/dist/src/bitgo/utils/messageTypes.d.ts +38 -0
  303. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
  304. package/dist/src/bitgo/utils/messageTypes.js +15 -0
  305. package/dist/src/bitgo/utils/mpcUtils.d.ts +4 -4
  306. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  307. package/dist/src/bitgo/utils/mpcUtils.js +109 -14
  308. package/dist/src/bitgo/utils/notEmpty.d.ts +2 -0
  309. package/dist/src/bitgo/utils/notEmpty.d.ts.map +1 -0
  310. package/dist/src/bitgo/utils/notEmpty.js +7 -0
  311. package/dist/src/bitgo/utils/opengpgUtils.d.ts +12 -9
  312. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  313. package/dist/src/bitgo/utils/opengpgUtils.js +77 -64
  314. package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -1
  315. package/dist/src/bitgo/utils/postWithCodec.js +4 -38
  316. package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
  317. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
  318. package/dist/src/bitgo/utils/promise-utils.js +2 -3
  319. package/dist/src/bitgo/utils/transactionUtils.d.ts +9 -0
  320. package/dist/src/bitgo/utils/transactionUtils.d.ts.map +1 -0
  321. package/dist/src/bitgo/utils/transactionUtils.js +29 -0
  322. package/dist/src/bitgo/utils/triple.d.ts +1 -1
  323. package/dist/src/bitgo/utils/triple.d.ts.map +1 -1
  324. package/dist/src/bitgo/utils/triple.js +2 -3
  325. package/dist/src/bitgo/utils/tss/addressVerification.d.ts +37 -0
  326. package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  327. package/dist/src/bitgo/utils/tss/addressVerification.js +82 -0
  328. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +90 -17
  329. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  330. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +278 -45
  331. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +367 -44
  332. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  333. package/dist/src/bitgo/utils/tss/baseTypes.js +47 -22
  334. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts +23 -0
  335. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -0
  336. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +157 -0
  337. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts +28 -0
  338. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts.map +1 -0
  339. package/dist/src/bitgo/utils/tss/ecdsa/base.js +53 -0
  340. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +21 -51
  341. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  342. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +162 -246
  343. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +203 -0
  344. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  345. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1075 -0
  346. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +8 -0
  347. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -0
  348. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +13 -0
  349. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +4 -0
  350. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
  351. package/dist/src/bitgo/utils/tss/ecdsa/index.js +10 -2
  352. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +7 -10
  353. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  354. package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
  355. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +107 -0
  356. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -0
  357. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +55 -0
  358. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts +21 -0
  359. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts.map +1 -0
  360. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.js +118 -0
  361. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts +18 -0
  362. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts.map +1 -0
  363. package/dist/src/bitgo/utils/tss/eddsa/base.js +64 -0
  364. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +28 -11
  365. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  366. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +208 -103
  367. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +88 -0
  368. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  369. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +565 -0
  370. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts +6 -0
  371. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts.map +1 -0
  372. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.js +13 -0
  373. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +4 -0
  374. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
  375. package/dist/src/bitgo/utils/tss/eddsa/index.js +29 -8
  376. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +7 -7
  377. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
  378. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +40 -0
  379. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -0
  380. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +44 -0
  381. package/dist/src/bitgo/utils/tss/index.d.ts +1 -0
  382. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
  383. package/dist/src/bitgo/utils/tss/index.js +24 -9
  384. package/dist/src/bitgo/utils/txRequest.d.ts +10 -0
  385. package/dist/src/bitgo/utils/txRequest.d.ts.map +1 -0
  386. package/dist/src/bitgo/utils/txRequest.js +49 -0
  387. package/dist/src/bitgo/utils/util.js +24 -10
  388. package/dist/src/bitgo/utils/wallet.d.ts +7 -0
  389. package/dist/src/bitgo/utils/wallet.d.ts.map +1 -0
  390. package/dist/src/bitgo/utils/wallet.js +48 -0
  391. package/dist/src/bitgo/wallet/BuildParams.d.ts +50 -1
  392. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  393. package/dist/src/bitgo/wallet/BuildParams.js +58 -11
  394. package/dist/src/bitgo/wallet/iWallet.d.ts +474 -21
  395. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  396. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  397. package/dist/src/bitgo/wallet/iWallets.d.ts +145 -19
  398. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  399. package/dist/src/bitgo/wallet/iWallets.js +63 -3
  400. package/dist/src/bitgo/wallet/index.js +6 -2
  401. package/dist/src/bitgo/wallet/wallet.d.ts +363 -24
  402. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  403. package/dist/src/bitgo/wallet/wallet.js +1957 -415
  404. package/dist/src/bitgo/wallet/wallets.d.ts +100 -9
  405. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  406. package/dist/src/bitgo/wallet/wallets.js +1043 -206
  407. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts +12 -0
  408. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts.map +1 -0
  409. package/dist/src/bitgo/walletUtil/iMessageProvider.js +3 -0
  410. package/dist/src/bitgo/walletUtil/index.d.ts +3 -0
  411. package/dist/src/bitgo/walletUtil/index.d.ts.map +1 -0
  412. package/dist/src/bitgo/walletUtil/index.js +19 -0
  413. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts +22 -0
  414. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts.map +1 -0
  415. package/dist/src/bitgo/walletUtil/midnightMessageProvider.js +95 -0
  416. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts +9 -0
  417. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts.map +1 -0
  418. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.js +72 -0
  419. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts +15 -0
  420. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts.map +1 -0
  421. package/dist/src/bitgo/walletUtil/utxoMessageProof.js +40 -0
  422. package/dist/src/bitgo/webhook/index.js +6 -2
  423. package/dist/src/bitgo/webhook/webhooks.js +23 -9
  424. package/dist/src/coins/fiat.d.ts +45 -0
  425. package/dist/src/coins/fiat.d.ts.map +1 -0
  426. package/dist/src/coins/fiat.js +94 -0
  427. package/dist/src/coins/index.d.ts +1 -6
  428. package/dist/src/coins/index.d.ts.map +1 -1
  429. package/dist/src/coins/index.js +7 -8
  430. package/dist/src/coins/ofc.d.ts +17 -2
  431. package/dist/src/coins/ofc.d.ts.map +1 -1
  432. package/dist/src/coins/ofc.js +13 -2
  433. package/dist/src/coins/ofcToken.d.ts +15 -4
  434. package/dist/src/coins/ofcToken.d.ts.map +1 -1
  435. package/dist/src/coins/ofcToken.js +43 -5
  436. package/dist/src/coins/susd.d.ts +3 -2
  437. package/dist/src/coins/susd.d.ts.map +1 -1
  438. package/dist/src/coins/susd.js +5 -1
  439. package/dist/src/common.js +27 -13
  440. package/dist/src/index.d.ts +6 -1
  441. package/dist/src/index.d.ts.map +1 -1
  442. package/dist/src/index.js +32 -11
  443. package/dist/src/lightning.d.ts +20 -0
  444. package/dist/src/lightning.d.ts.map +1 -0
  445. package/dist/src/lightning.js +13 -0
  446. package/dist/src/units.js +5 -6
  447. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
  448. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  449. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +207 -0
  450. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
  451. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  452. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +174 -0
  453. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
  454. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  455. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +108 -0
  456. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +46 -0
  457. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
  458. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +69 -0
  459. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +91 -29
  460. package/dist/test/unit/account-lib/mpc/util.d.ts +2 -0
  461. package/dist/test/unit/account-lib/mpc/util.d.ts.map +1 -0
  462. package/dist/test/unit/account-lib/mpc/util.js +53 -0
  463. package/dist/test/unit/bitgo/environment.d.ts +2 -0
  464. package/dist/test/unit/bitgo/environment.d.ts.map +1 -0
  465. package/dist/test/unit/bitgo/environment.js +38 -0
  466. package/dist/test/unit/bitgo/errors.d.ts +2 -0
  467. package/dist/test/unit/bitgo/errors.d.ts.map +1 -0
  468. package/dist/test/unit/bitgo/errors.js +262 -0
  469. package/dist/test/unit/bitgo/recovery/initiate.d.ts +2 -0
  470. package/dist/test/unit/bitgo/recovery/initiate.d.ts.map +1 -0
  471. package/dist/test/unit/bitgo/recovery/initiate.js +230 -0
  472. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts +2 -0
  473. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts.map +1 -0
  474. package/dist/test/unit/bitgo/trading/network/encrypt.js +71 -0
  475. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts +2 -0
  476. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts.map +1 -0
  477. package/dist/test/unit/bitgo/trading/tradingAccount.js +192 -0
  478. package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +24 -4
  479. package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
  480. package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
  481. package/dist/test/unit/bitgo/utils/messageTypes.js +64 -0
  482. package/dist/test/unit/bitgo/utils/notEmpty.d.ts +2 -0
  483. package/dist/test/unit/bitgo/utils/notEmpty.d.ts.map +1 -0
  484. package/dist/test/unit/bitgo/utils/notEmpty.js +15 -0
  485. package/dist/test/unit/bitgo/utils/postWithCodec.js +32 -38
  486. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts +2 -0
  487. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  488. package/dist/test/unit/bitgo/utils/tss/addressVerification.js +203 -0
  489. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts +2 -0
  490. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -0
  491. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.js +316 -0
  492. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +2 -0
  493. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  494. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +826 -0
  495. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts +5 -0
  496. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts.map +1 -0
  497. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.js +36 -0
  498. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +2 -0
  499. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  500. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +1185 -0
  501. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts +2 -0
  502. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts.map +1 -0
  503. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.js +311 -0
  504. package/dist/test/unit/bitgo/utils/txRequest.d.ts +2 -0
  505. package/dist/test/unit/bitgo/utils/txRequest.d.ts.map +1 -0
  506. package/dist/test/unit/bitgo/utils/txRequest.js +179 -0
  507. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts +2 -0
  508. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts.map +1 -0
  509. package/dist/test/unit/bitgo/wallet/BuildParams.js +97 -0
  510. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +23 -9
  511. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts +2 -0
  512. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts.map +1 -0
  513. package/dist/test/unit/bitgo/wallet/getAccountResources.js +133 -0
  514. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts +2 -0
  515. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts.map +1 -0
  516. package/dist/test/unit/bitgo/wallet/getResourceDelegations.js +118 -0
  517. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts +2 -0
  518. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts.map +1 -0
  519. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.js +185 -0
  520. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts +3 -0
  521. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts.map +1 -0
  522. package/dist/test/unit/bitgo/wallet/resourceManagement.js +441 -0
  523. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts +2 -0
  524. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts.map +1 -0
  525. package/dist/test/unit/bitgo/wallet/tokenApproval.js +135 -0
  526. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts +2 -0
  527. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts.map +1 -0
  528. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.js +181 -0
  529. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts +2 -0
  530. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts.map +1 -0
  531. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +43 -0
  532. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts +2 -0
  533. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts.map +1 -0
  534. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.js +320 -0
  535. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts +2 -0
  536. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts.map +1 -0
  537. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.js +216 -0
  538. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts +2 -0
  539. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts.map +1 -0
  540. package/dist/test/unit/bitgo/wallet/walletsWebauthn.js +200 -0
  541. package/dist/test/unit/coins/ofc.d.ts +2 -0
  542. package/dist/test/unit/coins/ofc.d.ts.map +1 -0
  543. package/dist/test/unit/coins/ofc.js +124 -0
  544. package/dist/test/unit/lightning.d.ts +2 -0
  545. package/dist/test/unit/lightning.d.ts.map +1 -0
  546. package/dist/test/unit/lightning.js +23 -0
  547. package/dist/test/unit/units.d.ts.map +1 -1
  548. package/dist/test/unit/units.js +64 -64
  549. package/dist/tsconfig.tsbuildinfo +1 -1
  550. package/package.json +24 -21
  551. package/.eslintignore +0 -5
  552. package/CHANGELOG.md +0 -1433
  553. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +0 -77
  554. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +0 -1
  555. package/dist/src/account-lib/baseCoin/blsKeyPair.js +0 -209
  556. package/dist/src/bitgo/lightning/iLightning.d.ts +0 -186
  557. package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
  558. package/dist/src/bitgo/lightning/iLightning.js +0 -106
  559. package/dist/src/bitgo/lightning/index.d.ts +0 -5
  560. package/dist/src/bitgo/lightning/index.d.ts.map +0 -1
  561. package/dist/src/bitgo/lightning/index.js +0 -17
  562. package/dist/src/bitgo/lightning/lightning.d.ts +0 -25
  563. package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
  564. package/dist/src/bitgo/lightning/lightning.js +0 -111
  565. package/dist/src/bitgo/lightning/lightningUtils.d.ts +0 -46
  566. package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +0 -1
  567. package/dist/src/bitgo/lightning/lightningUtils.js +0 -133
  568. package/dist/src/bitgo/lightning/lnurlCodec.d.ts +0 -3
  569. package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
  570. package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
  571. package/dist/src/bitgo/utils/blsUtils.d.ts +0 -52
  572. package/dist/src/bitgo/utils/blsUtils.d.ts.map +0 -1
  573. package/dist/src/bitgo/utils/blsUtils.js +0 -237
  574. package/dist/src/bitgo/utils/iBlsUtils.d.ts +0 -14
  575. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +0 -1
  576. package/dist/src/bitgo/utils/iBlsUtils.js +0 -3
  577. package/dist/src/coins/fiateur.d.ts +0 -31
  578. package/dist/src/coins/fiateur.d.ts.map +0 -1
  579. package/dist/src/coins/fiateur.js +0 -57
  580. package/dist/src/coins/fiatgbp.d.ts +0 -31
  581. package/dist/src/coins/fiatgbp.d.ts.map +0 -1
  582. package/dist/src/coins/fiatgbp.js +0 -57
  583. package/dist/src/coins/fiatusd.d.ts +0 -31
  584. package/dist/src/coins/fiatusd.d.ts.map +0 -1
  585. package/dist/src/coins/fiatusd.js +0 -57
  586. package/dist/src/coins/tfiateur.d.ts +0 -11
  587. package/dist/src/coins/tfiateur.d.ts.map +0 -1
  588. package/dist/src/coins/tfiateur.js +0 -17
  589. package/dist/src/coins/tfiatgbp.d.ts +0 -11
  590. package/dist/src/coins/tfiatgbp.d.ts.map +0 -1
  591. package/dist/src/coins/tfiatgbp.js +0 -17
  592. package/dist/src/coins/tfiatusd.d.ts +0 -11
  593. package/dist/src/coins/tfiatusd.d.ts.map +0 -1
  594. package/dist/src/coins/tfiatusd.js +0 -17
  595. package/dist/src/openssl/index.d.ts +0 -5
  596. package/dist/src/openssl/index.d.ts.map +0 -1
  597. package/dist/src/openssl/index.js +0 -9
  598. package/dist/test/unit/openssl.d.ts +0 -2
  599. package/dist/test/unit/openssl.d.ts.map +0 -1
  600. package/dist/test/unit/openssl.js +0 -39
@@ -3,28 +3,44 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getTxRequestChallenge = exports.commonVerifyWalletSignature = exports.exchangeEddsaCommitments = exports.sendSignatureShare = exports.getTxRequest = void 0;
6
+ exports.getBitgoSignatureShare = getBitgoSignatureShare;
7
+ exports.getTxRequest = getTxRequest;
8
+ exports.sendSignatureShare = sendSignatureShare;
9
+ exports.sendSignatureShareV2 = sendSignatureShareV2;
10
+ exports.sendTxRequest = sendTxRequest;
11
+ exports.exchangeEddsaCommitments = exchangeEddsaCommitments;
12
+ exports.commonVerifyWalletSignature = commonVerifyWalletSignature;
13
+ exports.getTxRequestChallenge = getTxRequestChallenge;
7
14
  const assert_1 = __importDefault(require("assert"));
8
15
  const utils_1 = require("../utils");
16
+ const debug = require('debug')('bitgo:tss:common');
17
+ function getBitgoSignatureShare(signatureShares, signerShareType) {
18
+ const bitgoShare = signatureShares.find((share) => share.from === utils_1.SignatureShareType.BITGO && share.to === signerShareType);
19
+ (0, assert_1.default)(bitgoShare, 'Missing BitGo signature share');
20
+ return bitgoShare;
21
+ }
9
22
  /**
10
23
  * Gets the latest Tx Request by id
11
24
  *
12
25
  * @param {BitGoBase} bitgo - the bitgo instance
13
26
  * @param {String} walletId - the wallet id
14
- * @param {String} txRequestId - the txRequest Id
27
+ * @param {String} txRequestId - the txRequest id
28
+ * @param {IRequestTracer} reqId - the request tracer request id
15
29
  * @returns {Promise<TxRequest>}
16
30
  */
17
- async function getTxRequest(bitgo, walletId, txRequestId) {
31
+ async function getTxRequest(bitgo, walletId, txRequestId, reqId) {
32
+ const reqTracer = reqId || new utils_1.RequestTracer();
33
+ bitgo.setRequestTracer(reqTracer);
18
34
  const txRequestRes = await bitgo
19
35
  .get(bitgo.url('/wallet/' + walletId + '/txrequests', 2))
20
36
  .query({ txRequestIds: txRequestId, latest: 'true' })
37
+ .retry(3)
21
38
  .result();
22
39
  if (txRequestRes.txRequests.length <= 0) {
23
40
  throw new Error(`Unable to find TxRequest with id ${txRequestId}`);
24
41
  }
25
42
  return txRequestRes.txRequests[0];
26
43
  }
27
- exports.getTxRequest = getTxRequest;
28
44
  /**
29
45
  * Sends a Signature Share
30
46
  *
@@ -36,9 +52,10 @@ exports.getTxRequest = getTxRequest;
36
52
  * @param signerShare
37
53
  * @param mpcAlgorithm
38
54
  * @param apiMode
55
+ * @param {IRequestTracer} reqId - the request tracer request id
39
56
  * @returns {Promise<SignatureShareRecord>} - a Signature Share
40
57
  */
41
- async function sendSignatureShare(bitgo, walletId, txRequestId, signatureShare, requestType, signerShare, mpcAlgorithm = 'eddsa', apiMode = 'lite', userPublicGpgKey) {
58
+ async function sendSignatureShare(bitgo, walletId, txRequestId, signatureShare, requestType, signerShare, mpcAlgorithm = 'eddsa', apiMode = 'lite', userPublicGpgKey, reqId) {
42
59
  let addendum = '';
43
60
  switch (requestType) {
44
61
  case utils_1.RequestType.tx:
@@ -53,6 +70,8 @@ async function sendSignatureShare(bitgo, walletId, txRequestId, signatureShare,
53
70
  break;
54
71
  }
55
72
  const urlPath = '/wallet/' + walletId + '/txrequests/' + txRequestId + addendum + '/signatureshares';
73
+ const reqTracer = reqId || new utils_1.RequestTracer();
74
+ bitgo.setRequestTracer(reqTracer);
56
75
  return bitgo
57
76
  .post(bitgo.url(urlPath, 2))
58
77
  .send({
@@ -62,7 +81,80 @@ async function sendSignatureShare(bitgo, walletId, txRequestId, signatureShare,
62
81
  })
63
82
  .result();
64
83
  }
65
- exports.sendSignatureShare = sendSignatureShare;
84
+ /**
85
+ * Sends a Signature Share using the sign txRequest route
86
+ *
87
+ * @param {BitGoBase} bitgo - the bitgo instance
88
+ * @param {String} walletId - the wallet id *
89
+ * @param {String} txRequestId - the txRequest Id
90
+ * @param signatureShares
91
+ * @param requestType - The type of request being submitted (either tx or message for signing)
92
+ * @param signerShare
93
+ * @param mpcAlgorithm
94
+ * @param multisigTypeVersion
95
+ * @param signerGpgPublicKey
96
+ * @param reqId
97
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
98
+ */
99
+ async function sendSignatureShareV2(bitgo, walletId, txRequestId, signatureShares, requestType, mpcAlgorithm, signerGpgPublicKey, signerShare, multisigTypeVersion, reqId) {
100
+ const addendum = requestType === utils_1.RequestType.tx ? '/transactions/0' : '/messages/0';
101
+ const urlPath = '/wallet/' + walletId + '/txrequests/' + txRequestId + addendum + '/sign';
102
+ let type = '';
103
+ if (multisigTypeVersion === 'MPCv2' && mpcAlgorithm === 'ecdsa') {
104
+ type = 'ecdsaMpcV2';
105
+ }
106
+ else if (multisigTypeVersion === 'MPCv2' && mpcAlgorithm === 'eddsa') {
107
+ type = 'eddsaMpcV2';
108
+ }
109
+ else if (multisigTypeVersion === undefined && mpcAlgorithm === 'eddsa') {
110
+ type = 'eddsaMpcV1';
111
+ }
112
+ const requestBody = {
113
+ type,
114
+ signatureShares,
115
+ signerShare,
116
+ signerGpgPublicKey,
117
+ };
118
+ const reqTracer = reqId || new utils_1.RequestTracer();
119
+ bitgo.setRequestTracer(reqTracer);
120
+ let attempts = 0;
121
+ const maxAttempts = 3;
122
+ while (attempts < maxAttempts) {
123
+ try {
124
+ return await bitgo.post(bitgo.url(urlPath, 2)).send(requestBody).result();
125
+ }
126
+ catch (err) {
127
+ if (err?.status === 429) {
128
+ const sleepTime = 1000 * (attempts + 1);
129
+ debug(`MPC Signing rate limit error - retrying in ${sleepTime / 1000} seconds`);
130
+ // sleep for a bit before retrying
131
+ await new Promise((resolve) => setTimeout(resolve, sleepTime));
132
+ attempts++;
133
+ }
134
+ else {
135
+ throw err;
136
+ }
137
+ }
138
+ }
139
+ return await bitgo.post(bitgo.url(urlPath, 2)).send(requestBody).result();
140
+ }
141
+ /**
142
+ * Sends a Transaction Request for broadcast once signing is complete
143
+ *
144
+ * @param {BitGoBase} bitgo - the bitgo instance
145
+ * @param {String} walletId - the wallet id *
146
+ * @param {String} txRequestId - the txRequest Id
147
+ * @param requestType - The type of request being submitted (either tx or message for signing)
148
+ * @param {IRequestTracer} reqId - request tracer request id
149
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
150
+ */
151
+ async function sendTxRequest(bitgo, walletId, txRequestId, requestType, reqId) {
152
+ const addendum = requestType === utils_1.RequestType.tx ? '/transactions/0' : '/messages/0';
153
+ const urlPath = '/wallet/' + walletId + '/txrequests/' + txRequestId + addendum + '/send';
154
+ const reqTracer = reqId || new utils_1.RequestTracer();
155
+ bitgo.setRequestTracer(reqTracer);
156
+ return bitgo.post(bitgo.url(urlPath, 2)).send().result();
157
+ }
66
158
  /**
67
159
  * Sends the client commitment and encrypted signer share to the server, getting back the server commitment
68
160
  * @param {BitGoBase} bitgo - the bitgo instance
@@ -71,17 +163,19 @@ exports.sendSignatureShare = sendSignatureShare;
71
163
  * @param {CommitmentShareRecord} commitmentShare - the client commitment share
72
164
  * @param {EncryptedSignerShareRecord} encryptedSignerShare - the client encrypted signer share
73
165
  * @param {string} [apiMode] - the txRequest api mode (full or lite) - defaults to lite
166
+ * @param {IRequestTracer} reqId - the request tracer request Id
74
167
  * @returns {Promise<ExchangeCommitmentResponse>} - the server commitment share
75
168
  */
76
- async function exchangeEddsaCommitments(bitgo, walletId, txRequestId, commitmentShare, encryptedSignerShare, apiMode = 'lite') {
169
+ async function exchangeEddsaCommitments(bitgo, walletId, txRequestId, commitmentShare, encryptedSignerShare, apiMode = 'lite', reqId) {
77
170
  let addendum = '';
78
171
  if (apiMode === 'full') {
79
172
  addendum = '/transactions/0';
80
173
  }
81
174
  const urlPath = '/wallet/' + walletId + '/txrequests/' + txRequestId + addendum + '/commit';
175
+ const reqTracer = reqId || new utils_1.RequestTracer();
176
+ bitgo.setRequestTracer(reqTracer);
82
177
  return await bitgo.post(bitgo.url(urlPath, 2)).send({ commitmentShare, encryptedSignerShare }).result();
83
178
  }
84
- exports.exchangeEddsaCommitments = exchangeEddsaCommitments;
85
179
  /**
86
180
  * Verifies that a TSS wallet signature was produced with the expected key and that the signed data contains the
87
181
  * expected common keychain as well as the expected user and backup key ids
@@ -94,7 +188,7 @@ async function commonVerifyWalletSignature(params) {
94
188
  if (walletSignature.keyPacket.getFingerprint() === bitgoPub.keyPacket.getFingerprint()) {
95
189
  throw new Error('Invalid HSM GPG signature');
96
190
  }
97
- const verificationResult = await utils_1.verifyPrimaryUserWrapper(walletSignature, bitgoPub, false);
191
+ const verificationResult = await (0, utils_1.verifyPrimaryUserWrapper)(walletSignature, bitgoPub, false);
98
192
  const isValid = verificationResult.some((result) => result.valid);
99
193
  if (!isValid) {
100
194
  throw new Error('Invalid HSM GPG signature');
@@ -103,13 +197,12 @@ async function commonVerifyWalletSignature(params) {
103
197
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
104
198
  // @ts-ignore the rawNotations property is missing from the type but it actually exists
105
199
  const rawNotations = primaryUser.user.otherCertifications[0].rawNotations;
106
- assert_1.default(rawNotations.length === 5, 'invalid wallet signatures');
107
- assert_1.default(commonKeychain === Buffer.from(rawNotations[0].value).toString(), 'wallet signature does not match common keychain');
108
- assert_1.default(userKeyId === Buffer.from(rawNotations[1].value).toString(), `wallet signature does not match user key id`);
109
- assert_1.default(backupKeyId === Buffer.from(rawNotations[2].value).toString(), 'wallet signature does not match backup key id');
200
+ (0, assert_1.default)(rawNotations.length === 5, 'invalid wallet signatures');
201
+ (0, assert_1.default)(commonKeychain === Buffer.from(rawNotations[0].value).toString(), 'wallet signature does not match common keychain');
202
+ (0, assert_1.default)(userKeyId === Buffer.from(rawNotations[1].value).toString(), `wallet signature does not match user key id`);
203
+ (0, assert_1.default)(backupKeyId === Buffer.from(rawNotations[2].value).toString(), 'wallet signature does not match backup key id');
110
204
  return rawNotations;
111
205
  }
112
- exports.commonVerifyWalletSignature = commonVerifyWalletSignature;
113
206
  /**
114
207
  * Gets challenge for a tx request from BitGo
115
208
  * supports Message and regular Transaction
@@ -119,8 +212,9 @@ exports.commonVerifyWalletSignature = commonVerifyWalletSignature;
119
212
  * @param index
120
213
  * @param requestType
121
214
  * @param paillierModulus
215
+ * @param reqId
122
216
  */
123
- async function getTxRequestChallenge(bitgo, walletId, txRequestId, index, requestType, paillierModulus) {
217
+ async function getTxRequestChallenge(bitgo, walletId, txRequestId, index, requestType, paillierModulus, reqId) {
124
218
  let addendum = '';
125
219
  switch (requestType) {
126
220
  case utils_1.RequestType.tx:
@@ -131,7 +225,8 @@ async function getTxRequestChallenge(bitgo, walletId, txRequestId, index, reques
131
225
  break;
132
226
  }
133
227
  const urlPath = '/wallet/' + walletId + '/txrequests/' + txRequestId + addendum + '/challenge';
228
+ const reqTracer = reqId || new utils_1.RequestTracer();
229
+ bitgo.setRequestTracer(reqTracer);
134
230
  return await bitgo.post(bitgo.url(urlPath, 2)).send({ paillierModulus }).result();
135
231
  }
136
- exports.getTxRequestChallenge = getTxRequestChallenge;
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3Rzcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBSzVCLG9DQVFrQjtBQUVsQjs7Ozs7OztHQU9HO0FBQ0ksS0FBSyxVQUFVLFlBQVksQ0FBQyxLQUFnQixFQUFFLFFBQWdCLEVBQUUsV0FBbUI7SUFDeEYsTUFBTSxZQUFZLEdBQUcsTUFBTSxLQUFLO1NBQzdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxRQUFRLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3hELEtBQUssQ0FBQyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ3BELE1BQU0sRUFBRSxDQUFDO0lBRVosSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsV0FBVyxFQUFFLENBQUMsQ0FBQztLQUNwRTtJQUVELE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBWEQsb0NBV0M7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSSxLQUFLLFVBQVUsa0JBQWtCLENBQ3RDLEtBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLGNBQW9DLEVBQ3BDLFdBQXdCLEVBQ3hCLFdBQW9CLEVBQ3BCLGVBQWtDLE9BQU8sRUFDekMsVUFBMkIsTUFBTSxFQUNqQyxnQkFBeUI7SUFFekIsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFFBQVEsV0FBVyxFQUFFO1FBQ25CLEtBQUssbUJBQVcsQ0FBQyxFQUFFO1lBQ2pCLElBQUksWUFBWSxLQUFLLE9BQU8sSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFO2dCQUNsRCxRQUFR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QUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ25ILGdCQUFNLENBQ0osV0FBVyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUM3RCwrQ0FBK0MsQ0FDaEQsQ0FBQztJQUVGLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUF4Q0Qsa0VBd0NDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0ksS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxLQUFnQixFQUNoQixRQUFnQixFQUNoQixXQUFtQixFQUNuQixLQUFhLEVBQ2IsV0FBd0IsRUFDeEIsZUFBdUI7SUFFdkIsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFFBQVEsV0FBVyxFQUFFO1FBQ25CLEtBQUssbUJBQVcsQ0FBQyxFQUFFO1lBQ2pCLFFBQVEsR0FBRyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7WUFDcEMsTUFBTTtRQUNSLEtBQUssbUJBQVcsQ0FBQyxPQUFPO1lBQ3RCLFFBQVEsR0FBRyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLE1BQU07S0FDVDtJQUNELE1BQU0sT0FBTyxHQUFHLFVBQVUsR0FBRyxRQUFRLEdBQUcsY0FBYyxHQUFHLFdBQVcsR0FBRyxRQUFRLEdBQUcsWUFBWSxDQUFDO0lBQy9GLE9BQU8sTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNwRixDQUFDO0FBbkJELHNEQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBvcGVucGdwIGZyb20gJ29wZW5wZ3AnO1xuXG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgVHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2UgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIFJlcXVlc3RUeXBlLFxuICBUeFJlcXVlc3QsXG4gIHZlcmlmeVByaW1hcnlVc2VyV3JhcHBlcixcbiAgU2lnbmF0dXJlU2hhcmVSZWNvcmQsXG4gIENvbW1pdG1lbnRTaGFyZVJlY29yZCxcbiAgRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQsXG4gIEV4Y2hhbmdlQ29tbWl0bWVudFJlc3BvbnNlLFxufSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogR2V0cyB0aGUgbGF0ZXN0IFR4IFJlcXVlc3QgYnkgaWRcbiAqXG4gKiBAcGFyYW0ge0JpdEdvQmFzZX0gYml0Z28gLSB0aGUgYml0Z28gaW5zdGFuY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSB3YWxsZXRJZCAtIHRoZSB3YWxsZXQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUeFJlcXVlc3QoYml0Z286IEJpdEdvQmFzZSwgd2FsbGV0SWQ6IHN0cmluZywgdHhSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gIGNvbnN0IHR4UmVxdWVzdFJlcyA9IGF3YWl0IGJpdGdvXG4gICAgLmdldChiaXRnby51cmwoJy93YWxsZXQvJyArIHdhbGxldElkICsgJy90eHJlcXVlc3RzJywgMikpXG4gICAgLnF1ZXJ5KHsgdHhSZXF1ZXN0SWRzOiB0eFJlcXVlc3RJZCwgbGF0ZXN0OiAndHJ1ZScgfSlcbiAgICAucmVzdWx0KCk7XG5cbiAgaWYgKHR4UmVxdWVzdFJlcy50eFJlcXVlc3RzLmxlbmd0aCA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZmluZCBUeFJlcXVlc3Qgd2l0aCBpZCAke3R4UmVxdWVzdElkfWApO1xuICB9XG5cbiAgcmV0dXJuIHR4UmVxdWVzdFJlcy50eFJlcXVlc3RzWzBdO1xufVxuXG4vKipcbiAqIFNlbmRzIGEgU2lnbmF0dXJlIFNoYXJlXG4gKlxuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkICAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcGFyYW0ge1NpZ25hdHVyZVNoYXJlUmVjb3JkfSBzaWduYXR1cmVTaGFyZSAtIGEgU2lnbmF0dXJlIFNoYXJlXG4gKiBAcGFyYW0gcmVxdWVzdFR5cGUgLSBUaGUgdHlwZSBvZiByZXF1ZXN0IGJlaW5nIHN1Ym1pdHRlZCAoZWl0aGVyIHR4IG9yIG1lc3NhZ2UgZm9yIHNpZ25pbmcpXG4gKiBAcGFyYW0gc2lnbmVyU2hhcmVcbiAqIEBwYXJhbSBtcGNBbGdvcml0aG1cbiAqIEBwYXJhbSBhcGlNb2RlXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZD59IC0gYSBTaWduYXR1cmUgU2hhcmVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRTaWduYXR1cmVTaGFyZShcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgd2FsbGV0SWQ6IHN0cmluZyxcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgc2lnbmF0dXJlU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkLFxuICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGUsXG4gIHNpZ25lclNoYXJlPzogc3RyaW5nLFxuICBtcGNBbGdvcml0aG06ICdlZGRzYScgfCAnZWNkc2EnID0gJ2VkZHNhJyxcbiAgYXBpTW9kZTogJ2Z1bGwnIHwgJ2xpdGUnID0gJ2xpdGUnLFxuICB1c2VyUHVibGljR3BnS2V5Pzogc3RyaW5nXG4pOiBQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkPiB7XG4gIGxldCBhZGRlbmR1bSA9ICcnO1xuICBzd2l0Y2ggKHJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSBSZXF1ZXN0VHlwZS50eDpcbiAgICAgIGlmIChtcGNBbGdvcml0aG0gPT09ICdlY2RzYScgfHwgYXBpTW9kZSA9PT0gJ2Z1bGwnKSB7XG4gICAgICAgIGFkZGVuZHVtID0gJy90cmFuc2FjdGlvbnMvMCc7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFJlcXVlc3RUeXBlLm1lc3NhZ2U6XG4gICAgICBpZiAobXBjQWxnb3JpdGhtID09PSAnZWNkc2EnIHx8IGFwaU1vZGUgPT09ICdmdWxsJykge1xuICAgICAgICBhZGRlbmR1bSA9ICcvbWVzc2FnZXMvMCc7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgfVxuICBjb25zdCB1cmxQYXRoID0gJy93YWxsZXQvJyArIHdhbGxldElkICsgJy90eHJlcXVlc3RzLycgKyB0eFJlcXVlc3RJZCArIGFkZGVuZHVtICsgJy9zaWduYXR1cmVzaGFyZXMnO1xuICByZXR1cm4gYml0Z29cbiAgICAucG9zdChiaXRnby51cmwodXJsUGF0aCwgMikpXG4gICAgLnNlbmQoe1xuICAgICAgc2lnbmF0dXJlU2hhcmUsXG4gICAgICBzaWduZXJTaGFyZSxcbiAgICAgIHVzZXJQdWJsaWNHcGdLZXksXG4gICAgfSlcbiAgICAucmVzdWx0KCk7XG59XG5cbi8qKlxuICogU2VuZHMgdGhlIGNsaWVudCBjb21taXRtZW50IGFuZCBlbmNyeXB0ZWQgc2lnbmVyIHNoYXJlIHRvIHRoZSBzZXJ2ZXIsIGdldHRpbmcgYmFjayB0aGUgc2VydmVyIGNvbW1pdG1lbnRcbiAqIEBwYXJhbSB7Qml0R29CYXNlfSBiaXRnbyAtIHRoZSBiaXRnbyBpbnN0YW5jZVxuICogQHBhcmFtIHtzdHJpbmd9IHdhbGxldElkIC0gdGhlIHdhbGxldCBpZFxuICogQHBhcmFtIHtzdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICogQHBhcmFtIHtDb21taXRtZW50U2hhcmVSZWNvcmR9IGNvbW1pdG1lbnRTaGFyZSAtIHRoZSBjbGllbnQgY29tbWl0bWVudCBzaGFyZVxuICogQHBhcmFtIHtFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZH0gZW5jcnlwdGVkU2lnbmVyU2hhcmUgLSB0aGUgY2xpZW50IGVuY3J5cHRlZCBzaWduZXIgc2hhcmVcbiAqIEBwYXJhbSB7c3RyaW5nfSBbYXBpTW9kZV0gLSB0aGUgdHhSZXF1ZXN0IGFwaSBtb2RlIChmdWxsIG9yIGxpdGUpIC0gZGVmYXVsdHMgdG8gbGl0ZVxuICogQHJldHVybnMge1Byb21pc2U8RXhjaGFuZ2VDb21taXRtZW50UmVzcG9uc2U+fSAtIHRoZSBzZXJ2ZXIgY29tbWl0bWVudCBzaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VFZGRzYUNvbW1pdG1lbnRzKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICBjb21taXRtZW50U2hhcmU6IENvbW1pdG1lbnRTaGFyZVJlY29yZCxcbiAgZW5jcnlwdGVkU2lnbmVyU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkLFxuICBhcGlNb2RlOiAnZnVsbCcgfCAnbGl0ZScgPSAnbGl0ZSdcbik6IFByb21pc2U8RXhjaGFuZ2VDb21taXRtZW50UmVzcG9uc2U+IHtcbiAgbGV0IGFkZGVuZHVtID0gJyc7XG4gIGlmIChhcGlNb2RlID09PSAnZnVsbCcpIHtcbiAgICBhZGRlbmR1bSA9ICcvdHJhbnNhY3Rpb25zLzAnO1xuICB9XG4gIGNvbnN0IHVybFBhdGggPSAnL3dhbGxldC8nICsgd2FsbGV0SWQgKyAnL3R4cmVxdWVzdHMvJyArIHR4UmVxdWVzdElkICsgYWRkZW5kdW0gKyAnL2NvbW1pdCc7XG4gIHJldHVybiBhd2FpdCBiaXRnby5wb3N0KGJpdGdvLnVybCh1cmxQYXRoLCAyKSkuc2VuZCh7IGNvbW1pdG1lbnRTaGFyZSwgZW5jcnlwdGVkU2lnbmVyU2hhcmUgfSkucmVzdWx0KCk7XG59XG5cbi8qKlxuICogVmVyaWZpZXMgdGhhdCBhIFRTUyB3YWxsZXQgc2lnbmF0dXJlIHdhcyBwcm9kdWNlZCB3aXRoIHRoZSBleHBlY3RlZCBrZXkgYW5kIHRoYXQgdGhlIHNpZ25lZCBkYXRhIGNvbnRhaW5zIHRoZVxuICogZXhwZWN0ZWQgY29tbW9uIGtleWNoYWluIGFzIHdlbGwgYXMgdGhlIGV4cGVjdGVkIHVzZXIgYW5kIGJhY2t1cCBrZXkgaWRzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb21tb25WZXJpZnlXYWxsZXRTaWduYXR1cmUocGFyYW1zOiB7XG4gIHdhbGxldFNpZ25hdHVyZTogb3BlbnBncC5LZXk7XG4gIGJpdGdvUHViOiBvcGVucGdwLktleTtcbiAgY29tbW9uS2V5Y2hhaW46IHN0cmluZztcbiAgdXNlcktleUlkOiBzdHJpbmc7XG4gIGJhY2t1cEtleUlkOiBzdHJpbmc7XG59KTogUHJvbWlzZTx7IHZhbHVlOiBBcnJheUJ1ZmZlciB9W10+IHtcbiAgY29uc3QgeyB3YWxsZXRTaWduYXR1cmUsIGJpdGdvUHViLCBjb21tb25LZXljaGFpbiwgdXNlcktleUlkLCBiYWNrdXBLZXlJZCB9ID0gcGFyYW1zO1xuXG4gIC8vIEJ5IGVuc3VyaW5nIHRoYXQgdGhlIGZpbmdlcnByaW50cyBvZiB0aGUgd2FsbGV0U2lnbmF0dXJlIGFuZCB0aGUgYml0Z29QdWIgYXJlIGRpZmZlcmVudCBhbmQgdGhhdCBhbnkgb2YgdGhlIHJlc3VsdHNcbiAgLy8gZnJvbSBjYWxsaW5nIHZlcmlmeVByaW1hcnlVc2VyIGlzIHZhbGlkIHdlIGtub3cgdGhhdCB0aGUgc2lnbmF0dXJlIHdhcyBhY3R1YWxseSBwcm9kdWNlZCBieSB0aGUgcHJpdmF0ZSBrZXlcbiAgLy8gYmVsb25naW5nIHRvIHRoZSBiaXRnb1B1Yi5cbiAgaWYgKHdhbGxldFNpZ25hdHVyZS5rZXlQYWNrZXQuZ2V0RmluZ2VycHJpbnQoKSA9PT0gYml0Z29QdWIua2V5UGFja2V0LmdldEZpbmdlcnByaW50KCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgSFNNIEdQRyBzaWduYXR1cmUnKTtcbiAgfVxuXG4gIGNvbnN0IHZlcmlmaWNhdGlvblJlc3VsdCA9IGF3YWl0IHZlcmlmeVByaW1hcnlVc2VyV3JhcHBlcih3YWxsZXRTaWduYXR1cmUsIGJpdGdvUHViLCBmYWxzZSk7XG4gIGNvbnN0IGlzVmFsaWQgPSB2ZXJpZmljYXRpb25SZXN1bHQuc29tZSgocmVzdWx0KSA9PiByZXN1bHQudmFsaWQpO1xuICBpZiAoIWlzVmFsaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgSFNNIEdQRyBzaWduYXR1cmUnKTtcbiAgfVxuICBjb25zdCBwcmltYXJ5VXNlciA9IGF3YWl0IHdhbGxldFNpZ25hdHVyZS5nZXRQcmltYXJ5VXNlcigpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgLy8gQHRzLWlnbm9yZSB0aGUgcmF3Tm90YXRpb25zIHByb3BlcnR5IGlzIG1pc3NpbmcgZnJvbSB0aGUgdHlwZSBidXQgaXQgYWN0dWFsbHkgZXhpc3RzXG4gIGNvbnN0IHJhd05vdGF0aW9uczogeyB2YWx1ZTogVWludDhBcnJheSB9W10gPSBwcmltYXJ5VXNlci51c2VyLm90aGVyQ2VydGlmaWNhdGlvbnNbMF0ucmF3Tm90YXRpb25zO1xuXG4gIGFzc2VydChyYXdOb3RhdGlvbnMubGVuZ3RoID09PSA1LCAnaW52YWxpZCB3YWxsZXQgc2lnbmF0dXJlcycpO1xuXG4gIGFzc2VydChcbiAgICBjb21tb25LZXljaGFpbiA9PT0gQnVmZmVyLmZyb20ocmF3Tm90YXRpb25zWzBdLnZhbHVlKS50b1N0cmluZygpLFxuICAgICd3YWxsZXQgc2lnbmF0dXJlIGRvZXMgbm90IG1hdGNoIGNvbW1vbiBrZXljaGFpbidcbiAgKTtcbiAgYXNzZXJ0KHVzZXJLZXlJZCA9PT0gQnVmZmVyLmZyb20ocmF3Tm90YXRpb25zWzFdLnZhbHVlKS50b1N0cmluZygpLCBgd2FsbGV0IHNpZ25hdHVyZSBkb2VzIG5vdCBtYXRjaCB1c2VyIGtleSBpZGApO1xuICBhc3NlcnQoXG4gICAgYmFja3VwS2V5SWQgPT09IEJ1ZmZlci5mcm9tKHJhd05vdGF0aW9uc1syXS52YWx1ZSkudG9TdHJpbmcoKSxcbiAgICAnd2FsbGV0IHNpZ25hdHVyZSBkb2VzIG5vdCBtYXRjaCBiYWNrdXAga2V5IGlkJ1xuICApO1xuXG4gIHJldHVybiByYXdOb3RhdGlvbnM7XG59XG5cbi8qKlxuICogR2V0cyBjaGFsbGVuZ2UgZm9yIGEgdHggcmVxdWVzdCBmcm9tIEJpdEdvXG4gKiBzdXBwb3J0cyBNZXNzYWdlIGFuZCByZWd1bGFyIFRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gYml0Z29cbiAqIEBwYXJhbSB3YWxsZXRJZFxuICogQHBhcmFtIHR4UmVxdWVzdElkXG4gKiBAcGFyYW0gaW5kZXhcbiAqIEBwYXJhbSByZXF1ZXN0VHlwZVxuICogQHBhcmFtIHBhaWxsaWVyTW9kdWx1c1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VHhSZXF1ZXN0Q2hhbGxlbmdlKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICBpbmRleDogc3RyaW5nLFxuICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGUsXG4gIHBhaWxsaWVyTW9kdWx1czogc3RyaW5nXG4pOiBQcm9taXNlPFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlPiB7XG4gIGxldCBhZGRlbmR1bSA9ICcnO1xuICBzd2l0Y2ggKHJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSBSZXF1ZXN0VHlwZS50eDpcbiAgICAgIGFkZGVuZHVtID0gJy90cmFuc2FjdGlvbnMvJyArIGluZGV4O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBSZXF1ZXN0VHlwZS5tZXNzYWdlOlxuICAgICAgYWRkZW5kdW0gPSAnL21lc3NhZ2VzLycgKyBpbmRleDtcbiAgICAgIGJyZWFrO1xuICB9XG4gIGNvbnN0IHVybFBhdGggPSAnL3dhbGxldC8nICsgd2FsbGV0SWQgKyAnL3R4cmVxdWVzdHMvJyArIHR4UmVxdWVzdElkICsgYWRkZW5kdW0gKyAnL2NoYWxsZW5nZSc7XG4gIHJldHVybiBhd2FpdCBiaXRnby5wb3N0KGJpdGdvLnVybCh1cmxQYXRoLCAyKSkuc2VuZCh7IHBhaWxsaWVyTW9kdWx1cyB9KS5yZXN1bHQoKTtcbn1cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3Rzcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFvQkEsd0RBU0M7QUFXRCxvQ0FtQkM7QUFnQkQsZ0RBb0NDO0FBaUJELG9EQWtEQztBQVlELHNDQVlDO0FBYUQsNERBaUJDO0FBTUQsa0VBd0NDO0FBYUQsc0RBc0JDO0FBelRELG9EQUE0QjtBQUs1QixvQ0FVa0I7QUFHbEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFbkQsU0FBZ0Isc0JBQXNCLENBQ3BDLGVBQXVDLEVBQ3ZDLGVBQW1DO0lBRW5DLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQ3JDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLDBCQUFrQixDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLGVBQWUsQ0FDbkYsQ0FBQztJQUNGLElBQUEsZ0JBQU0sRUFBQyxVQUFVLEVBQUUsK0JBQStCLENBQUMsQ0FBQztJQUNwRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsWUFBWSxDQUNoQyxLQUFnQixFQUNoQixRQUFnQixFQUNoQixXQUFtQixFQUNuQixLQUFzQjtJQUV0QixNQUFNLFNBQVMsR0FBRyxLQUFLLElBQUksSUFBSSxxQkFBYSxFQUFFLENBQUM7SUFDL0MsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sWUFBWSxHQUFHLE1BQU0sS0FBSztTQUM3QixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsUUFBUSxHQUFHLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN4RCxLQUFLLENBQUMsRUFBRSxZQUFZLEVB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SSxJQUFJLHFCQUFhLEVBQUUsQ0FBQztJQUMvQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsT0FBTyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3BGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgb3BlbnBncCBmcm9tICdvcGVucGdwJztcblxuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBSZXF1ZXN0VHlwZSxcbiAgVHhSZXF1ZXN0LFxuICB2ZXJpZnlQcmltYXJ5VXNlcldyYXBwZXIsXG4gIFNpZ25hdHVyZVNoYXJlUmVjb3JkLFxuICBTaWduYXR1cmVTaGFyZVR5cGUsXG4gIENvbW1pdG1lbnRTaGFyZVJlY29yZCxcbiAgRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQsXG4gIEV4Y2hhbmdlQ29tbWl0bWVudFJlc3BvbnNlLFxuICBSZXF1ZXN0VHJhY2VyLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uL2FwaSc7XG5cbmNvbnN0IGRlYnVnID0gcmVxdWlyZSgnZGVidWcnKSgnYml0Z286dHNzOmNvbW1vbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qml0Z29TaWduYXR1cmVTaGFyZShcbiAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdLFxuICBzaWduZXJTaGFyZVR5cGU6IFNpZ25hdHVyZVNoYXJlVHlwZVxuKTogU2lnbmF0dXJlU2hhcmVSZWNvcmQge1xuICBjb25zdCBiaXRnb1NoYXJlID0gc2lnbmF0dXJlU2hhcmVzLmZpbmQoXG4gICAgKHNoYXJlKSA9PiBzaGFyZS5mcm9tID09PSBTaWduYXR1cmVTaGFyZVR5cGUuQklUR08gJiYgc2hhcmUudG8gPT09IHNpZ25lclNoYXJlVHlwZVxuICApO1xuICBhc3NlcnQoYml0Z29TaGFyZSwgJ01pc3NpbmcgQml0R28gc2lnbmF0dXJlIHNoYXJlJyk7XG4gIHJldHVybiBiaXRnb1NoYXJlO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGxhdGVzdCBUeCBSZXF1ZXN0IGJ5IGlkXG4gKlxuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IGlkXG4gKiBAcGFyYW0ge0lSZXF1ZXN0VHJhY2VyfSByZXFJZCAtIHRoZSByZXF1ZXN0IHRyYWNlciByZXF1ZXN0IGlkXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxUeFJlcXVlc3Q+fVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VHhSZXF1ZXN0KFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyXG4pOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICBjb25zdCByZXFUcmFjZXIgPSByZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICBiaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gIGNvbnN0IHR4UmVxdWVzdFJlcyA9IGF3YWl0IGJpdGdvXG4gICAgLmdldChiaXRnby51cmwoJy93YWxsZXQvJyArIHdhbGxldElkICsgJy90eHJlcXVlc3RzJywgMikpXG4gICAgLnF1ZXJ5KHsgdHhSZXF1ZXN0SWRzOiB0eFJlcXVlc3RJZCwgbGF0ZXN0OiAndHJ1ZScgfSlcbiAgICAucmV0cnkoMylcbiAgICAucmVzdWx0KCk7XG5cbiAgaWYgKHR4UmVxdWVzdFJlcy50eFJlcXVlc3RzLmxlbmd0aCA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZmluZCBUeFJlcXVlc3Qgd2l0aCBpZCAke3R4UmVxdWVzdElkfWApO1xuICB9XG5cbiAgcmV0dXJuIHR4UmVxdWVzdFJlcy50eFJlcXVlc3RzWzBdO1xufVxuXG4vKipcbiAqIFNlbmRzIGEgU2lnbmF0dXJlIFNoYXJlXG4gKlxuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkICAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcGFyYW0ge1NpZ25hdHVyZVNoYXJlUmVjb3JkfSBzaWduYXR1cmVTaGFyZSAtIGEgU2lnbmF0dXJlIFNoYXJlXG4gKiBAcGFyYW0gcmVxdWVzdFR5cGUgLSBUaGUgdHlwZSBvZiByZXF1ZXN0IGJlaW5nIHN1Ym1pdHRlZCAoZWl0aGVyIHR4IG9yIG1lc3NhZ2UgZm9yIHNpZ25pbmcpXG4gKiBAcGFyYW0gc2lnbmVyU2hhcmVcbiAqIEBwYXJhbSBtcGNBbGdvcml0aG1cbiAqIEBwYXJhbSBhcGlNb2RlXG4gKiBAcGFyYW0ge0lSZXF1ZXN0VHJhY2VyfSByZXFJZCAtIHRoZSByZXF1ZXN0IHRyYWNlciByZXF1ZXN0IGlkXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZD59IC0gYSBTaWduYXR1cmUgU2hhcmVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRTaWduYXR1cmVTaGFyZShcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgd2FsbGV0SWQ6IHN0cmluZyxcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgc2lnbmF0dXJlU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkLFxuICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGUsXG4gIHNpZ25lclNoYXJlPzogc3RyaW5nLFxuICBtcGNBbGdvcml0aG06ICdlZGRzYScgfCAnZWNkc2EnID0gJ2VkZHNhJyxcbiAgYXBpTW9kZTogJ2Z1bGwnIHwgJ2xpdGUnID0gJ2xpdGUnLFxuICB1c2VyUHVibGljR3BnS2V5Pzogc3RyaW5nLFxuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyXG4pOiBQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkPiB7XG4gIGxldCBhZGRlbmR1bSA9ICcnO1xuICBzd2l0Y2ggKHJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSBSZXF1ZXN0VHlwZS50eDpcbiAgICAgIGlmIChtcGNBbGdvcml0aG0gPT09ICdlY2RzYScgfHwgYXBpTW9kZSA9PT0gJ2Z1bGwnKSB7XG4gICAgICAgIGFkZGVuZHVtID0gJy90cmFuc2FjdGlvbnMvMCc7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFJlcXVlc3RUeXBlLm1lc3NhZ2U6XG4gICAgICBpZiAobXBjQWxnb3JpdGhtID09PSAnZWNkc2EnIHx8IGFwaU1vZGUgPT09ICdmdWxsJykge1xuICAgICAgICBhZGRlbmR1bSA9ICcvbWVzc2FnZXMvMCc7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgfVxuICBjb25zdCB1cmxQYXRoID0gJy93YWxsZXQvJyArIHdhbGxldElkICsgJy90eHJlcXVlc3RzLycgKyB0eFJlcXVlc3RJZCArIGFkZGVuZHVtICsgJy9zaWduYXR1cmVzaGFyZXMnO1xuICBjb25zdCByZXFUcmFjZXIgPSByZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICBiaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gIHJldHVybiBiaXRnb1xuICAgIC5wb3N0KGJpdGdvLnVybCh1cmxQYXRoLCAyKSlcbiAgICAuc2VuZCh7XG4gICAgICBzaWduYXR1cmVTaGFyZSxcbiAgICAgIHNpZ25lclNoYXJlLFxuICAgICAgdXNlclB1YmxpY0dwZ0tleSxcbiAgICB9KVxuICAgIC5yZXN1bHQoKTtcbn1cblxuLyoqXG4gKiBTZW5kcyBhIFNpZ25hdHVyZSBTaGFyZSB1c2luZyB0aGUgc2lnbiB0eFJlcXVlc3Qgcm91dGVcbiAqXG4gKiBAcGFyYW0ge0JpdEdvQmFzZX0gYml0Z28gLSB0aGUgYml0Z28gaW5zdGFuY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSB3YWxsZXRJZCAtIHRoZSB3YWxsZXQgaWQgICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWRcbiAqIEBwYXJhbSBzaWduYXR1cmVTaGFyZXNcbiAqIEBwYXJhbSByZXF1ZXN0VHlwZSAtIFRoZSB0eXBlIG9mIHJlcXVlc3QgYmVpbmcgc3VibWl0dGVkIChlaXRoZXIgdHggb3IgbWVzc2FnZSBmb3Igc2lnbmluZylcbiAqIEBwYXJhbSBzaWduZXJTaGFyZVxuICogQHBhcmFtIG1wY0FsZ29yaXRobVxuICogQHBhcmFtIG11bHRpc2lnVHlwZVZlcnNpb25cbiAqIEBwYXJhbSBzaWduZXJHcGdQdWJsaWNLZXlcbiAqIEBwYXJhbSByZXFJZFxuICogQHJldHVybnMge1Byb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+fSAtIGEgU2lnbmF0dXJlIFNoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kU2lnbmF0dXJlU2hhcmVWMihcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgd2FsbGV0SWQ6IHN0cmluZyxcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdLFxuICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGUsXG4gIG1wY0FsZ29yaXRobTogJ2VkZHNhJyB8ICdlY2RzYScsXG4gIHNpZ25lckdwZ1B1YmxpY0tleTogc3RyaW5nLFxuICBzaWduZXJTaGFyZT86IHN0cmluZyxcbiAgbXVsdGlzaWdUeXBlVmVyc2lvbj86ICdNUEN2MicgfCB1bmRlZmluZWQsXG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXJcbik6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gIGNvbnN0IGFkZGVuZHVtID0gcmVxdWVzdFR5cGUgPT09IFJlcXVlc3RUeXBlLnR4ID8gJy90cmFuc2FjdGlvbnMvMCcgOiAnL21lc3NhZ2VzLzAnO1xuICBjb25zdCB1cmxQYXRoID0gJy93YWxsZXQvJyArIHdhbGxldElkICsgJy90eHJlcXVlc3RzLycgKyB0eFJlcXVlc3RJZCArIGFkZGVuZHVtICsgJy9zaWduJztcbiAgbGV0IHR5cGUgPSAnJztcbiAgaWYgKG11bHRpc2lnVHlwZVZlcnNpb24gPT09ICdNUEN2MicgJiYgbXBjQWxnb3JpdGhtID09PSAnZWNkc2EnKSB7XG4gICAgdHlwZSA9ICdlY2RzYU1wY1YyJztcbiAgfSBlbHNlIGlmIChtdWx0aXNpZ1R5cGVWZXJzaW9uID09PSAnTVBDdjInICYmIG1wY0FsZ29yaXRobSA9PT0gJ2VkZHNhJykge1xuICAgIHR5cGUgPSAnZWRkc2FNcGNWMic7XG4gIH0gZWxzZSBpZiAobXVsdGlzaWdUeXBlVmVyc2lvbiA9PT0gdW5kZWZpbmVkICYmIG1wY0FsZ29yaXRobSA9PT0gJ2VkZHNhJykge1xuICAgIHR5cGUgPSAnZWRkc2FNcGNWMSc7XG4gIH1cbiAgY29uc3QgcmVxdWVzdEJvZHkgPSB7XG4gICAgdHlwZSxcbiAgICBzaWduYXR1cmVTaGFyZXMsXG4gICAgc2lnbmVyU2hhcmUsXG4gICAgc2lnbmVyR3BnUHVibGljS2V5LFxuICB9O1xuICBjb25zdCByZXFUcmFjZXIgPSByZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICBiaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG5cbiAgbGV0IGF0dGVtcHRzID0gMDtcbiAgY29uc3QgbWF4QXR0ZW1wdHMgPSAzO1xuXG4gIHdoaWxlIChhdHRlbXB0cyA8IG1heEF0dGVtcHRzKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBiaXRnby5wb3N0KGJpdGdvLnVybCh1cmxQYXRoLCAyKSkuc2VuZChyZXF1ZXN0Qm9keSkucmVzdWx0KCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoZXJyPy5zdGF0dXMgPT09IDQyOSkge1xuICAgICAgICBjb25zdCBzbGVlcFRpbWUgPSAxMDAwICogKGF0dGVtcHRzICsgMSk7XG4gICAgICAgIGRlYnVnKGBNUEMgU2lnbmluZyByYXRlIGxpbWl0IGVycm9yIC0gcmV0cnlpbmcgaW4gJHtzbGVlcFRpbWUgLyAxMDAwfSBzZWNvbmRzYCk7XG4gICAgICAgIC8vIHNsZWVwIGZvciBhIGJpdCBiZWZvcmUgcmV0cnlpbmdcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgc2xlZXBUaW1lKSk7XG4gICAgICAgIGF0dGVtcHRzKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBhd2FpdCBiaXRnby5wb3N0KGJpdGdvLnVybCh1cmxQYXRoLCAyKSkuc2VuZChyZXF1ZXN0Qm9keSkucmVzdWx0KCk7XG59XG5cbi8qKlxuICogU2VuZHMgYSBUcmFuc2FjdGlvbiBSZXF1ZXN0IGZvciBicm9hZGNhc3Qgb25jZSBzaWduaW5nIGlzIGNvbXBsZXRlXG4gKlxuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkICAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcGFyYW0gcmVxdWVzdFR5cGUgLSBUaGUgdHlwZSBvZiByZXF1ZXN0IGJlaW5nIHN1Ym1pdHRlZCAoZWl0aGVyIHR4IG9yIG1lc3NhZ2UgZm9yIHNpZ25pbmcpXG4gKiBAcGFyYW0ge0lSZXF1ZXN0VHJhY2VyfSByZXFJZCAtIHJlcXVlc3QgdHJhY2VyIHJlcXVlc3QgaWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkPn0gLSBhIFNpZ25hdHVyZSBTaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFR4UmVxdWVzdChcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgd2FsbGV0SWQ6IHN0cmluZyxcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlLFxuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyXG4pOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICBjb25zdCBhZGRlbmR1bSA9IHJlcXVlc3RUeXBlID09PSBSZXF1ZXN0VHlwZS50eCA/ICcvdHJhbnNhY3Rpb25zLzAnIDogJy9tZXNzYWdlcy8wJztcbiAgY29uc3QgdXJsUGF0aCA9ICcvd2FsbGV0LycgKyB3YWxsZXRJZCArICcvdHhyZXF1ZXN0cy8nICsgdHhSZXF1ZXN0SWQgKyBhZGRlbmR1bSArICcvc2VuZCc7XG4gIGNvbnN0IHJlcVRyYWNlciA9IHJlcUlkIHx8IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gIGJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxVHJhY2VyKTtcbiAgcmV0dXJuIGJpdGdvLnBvc3QoYml0Z28udXJsKHVybFBhdGgsIDIpKS5zZW5kKCkucmVzdWx0KCk7XG59XG5cbi8qKlxuICogU2VuZHMgdGhlIGNsaWVudCBjb21taXRtZW50IGFuZCBlbmNyeXB0ZWQgc2lnbmVyIHNoYXJlIHRvIHRoZSBzZXJ2ZXIsIGdldHRpbmcgYmFjayB0aGUgc2VydmVyIGNvbW1pdG1lbnRcbiAqIEBwYXJhbSB7Qml0R29CYXNlfSBiaXRnbyAtIHRoZSBiaXRnbyBpbnN0YW5jZVxuICogQHBhcmFtIHtzdHJpbmd9IHdhbGxldElkIC0gdGhlIHdhbGxldCBpZFxuICogQHBhcmFtIHtzdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICogQHBhcmFtIHtDb21taXRtZW50U2hhcmVSZWNvcmR9IGNvbW1pdG1lbnRTaGFyZSAtIHRoZSBjbGllbnQgY29tbWl0bWVudCBzaGFyZVxuICogQHBhcmFtIHtFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZH0gZW5jcnlwdGVkU2lnbmVyU2hhcmUgLSB0aGUgY2xpZW50IGVuY3J5cHRlZCBzaWduZXIgc2hhcmVcbiAqIEBwYXJhbSB7c3RyaW5nfSBbYXBpTW9kZV0gLSB0aGUgdHhSZXF1ZXN0IGFwaSBtb2RlIChmdWxsIG9yIGxpdGUpIC0gZGVmYXVsdHMgdG8gbGl0ZVxuICogQHBhcmFtIHtJUmVxdWVzdFRyYWNlcn0gcmVxSWQgLSB0aGUgcmVxdWVzdCB0cmFjZXIgcmVxdWVzdCBJZFxuICogQHJldHVybnMge1Byb21pc2U8RXhjaGFuZ2VDb21taXRtZW50UmVzcG9uc2U+fSAtIHRoZSBzZXJ2ZXIgY29tbWl0bWVudCBzaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VFZGRzYUNvbW1pdG1lbnRzKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICBjb21taXRtZW50U2hhcmU6IENvbW1pdG1lbnRTaGFyZVJlY29yZCxcbiAgZW5jcnlwdGVkU2lnbmVyU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkLFxuICBhcGlNb2RlOiAnZnVsbCcgfCAnbGl0ZScgPSAnbGl0ZScsXG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXJcbik6IFByb21pc2U8RXhjaGFuZ2VDb21taXRtZW50UmVzcG9uc2U+IHtcbiAgbGV0IGFkZGVuZHVtID0gJyc7XG4gIGlmIChhcGlNb2RlID09PSAnZnVsbCcpIHtcbiAgICBhZGRlbmR1bSA9ICcvdHJhbnNhY3Rpb25zLzAnO1xuICB9XG4gIGNvbnN0IHVybFBhdGggPSAnL3dhbGxldC8nICsgd2FsbGV0SWQgKyAnL3R4cmVxdWVzdHMvJyArIHR4UmVxdWVzdElkICsgYWRkZW5kdW0gKyAnL2NvbW1pdCc7XG4gIGNvbnN0IHJlcVRyYWNlciA9IHJlcUlkIHx8IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gIGJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxVHJhY2VyKTtcbiAgcmV0dXJuIGF3YWl0IGJpdGdvLnBvc3QoYml0Z28udXJsKHVybFBhdGgsIDIpKS5zZW5kKHsgY29tbWl0bWVudFNoYXJlLCBlbmNyeXB0ZWRTaWduZXJTaGFyZSB9KS5yZXN1bHQoKTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyB0aGF0IGEgVFNTIHdhbGxldCBzaWduYXR1cmUgd2FzIHByb2R1Y2VkIHdpdGggdGhlIGV4cGVjdGVkIGtleSBhbmQgdGhhdCB0aGUgc2lnbmVkIGRhdGEgY29udGFpbnMgdGhlXG4gKiBleHBlY3RlZCBjb21tb24ga2V5Y2hhaW4gYXMgd2VsbCBhcyB0aGUgZXhwZWN0ZWQgdXNlciBhbmQgYmFja3VwIGtleSBpZHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbW1vblZlcmlmeVdhbGxldFNpZ25hdHVyZShwYXJhbXM6IHtcbiAgd2FsbGV0U2lnbmF0dXJlOiBvcGVucGdwLktleTtcbiAgYml0Z29QdWI6IG9wZW5wZ3AuS2V5O1xuICBjb21tb25LZXljaGFpbjogc3RyaW5nO1xuICB1c2VyS2V5SWQ6IHN0cmluZztcbiAgYmFja3VwS2V5SWQ6IHN0cmluZztcbn0pOiBQcm9taXNlPHsgdmFsdWU6IEFycmF5QnVmZmVyIH1bXT4ge1xuICBjb25zdCB7IHdhbGxldFNpZ25hdHVyZSwgYml0Z29QdWIsIGNvbW1vbktleWNoYWluLCB1c2VyS2V5SWQsIGJhY2t1cEtleUlkIH0gPSBwYXJhbXM7XG5cbiAgLy8gQnkgZW5zdXJpbmcgdGhhdCB0aGUgZmluZ2VycHJpbnRzIG9mIHRoZSB3YWxsZXRTaWduYXR1cmUgYW5kIHRoZSBiaXRnb1B1YiBhcmUgZGlmZmVyZW50IGFuZCB0aGF0IGFueSBvZiB0aGUgcmVzdWx0c1xuICAvLyBmcm9tIGNhbGxpbmcgdmVyaWZ5UHJpbWFyeVVzZXIgaXMgdmFsaWQgd2Uga25vdyB0aGF0IHRoZSBzaWduYXR1cmUgd2FzIGFjdHVhbGx5IHByb2R1Y2VkIGJ5IHRoZSBwcml2YXRlIGtleVxuICAvLyBiZWxvbmdpbmcgdG8gdGhlIGJpdGdvUHViLlxuICBpZiAod2FsbGV0U2lnbmF0dXJlLmtleVBhY2tldC5nZXRGaW5nZXJwcmludCgpID09PSBiaXRnb1B1Yi5rZXlQYWNrZXQuZ2V0RmluZ2VycHJpbnQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBIU00gR1BHIHNpZ25hdHVyZScpO1xuICB9XG5cbiAgY29uc3QgdmVyaWZpY2F0aW9uUmVzdWx0ID0gYXdhaXQgdmVyaWZ5UHJpbWFyeVVzZXJXcmFwcGVyKHdhbGxldFNpZ25hdHVyZSwgYml0Z29QdWIsIGZhbHNlKTtcbiAgY29uc3QgaXNWYWxpZCA9IHZlcmlmaWNhdGlvblJlc3VsdC5zb21lKChyZXN1bHQpID0+IHJlc3VsdC52YWxpZCk7XG4gIGlmICghaXNWYWxpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBIU00gR1BHIHNpZ25hdHVyZScpO1xuICB9XG4gIGNvbnN0IHByaW1hcnlVc2VyID0gYXdhaXQgd2FsbGV0U2lnbmF0dXJlLmdldFByaW1hcnlVc2VyKCk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAvLyBAdHMtaWdub3JlIHRoZSByYXdOb3RhdGlvbnMgcHJvcGVydHkgaXMgbWlzc2luZyBmcm9tIHRoZSB0eXBlIGJ1dCBpdCBhY3R1YWxseSBleGlzdHNcbiAgY29uc3QgcmF3Tm90YXRpb25zOiB7IHZhbHVlOiBVaW50OEFycmF5IH1bXSA9IHByaW1hcnlVc2VyLnVzZXIub3RoZXJDZXJ0aWZpY2F0aW9uc1swXS5yYXdOb3RhdGlvbnM7XG5cbiAgYXNzZXJ0KHJhd05vdGF0aW9ucy5sZW5ndGggPT09IDUsICdpbnZhbGlkIHdhbGxldCBzaWduYXR1cmVzJyk7XG5cbiAgYXNzZXJ0KFxuICAgIGNvbW1vbktleWNoYWluID09PSBCdWZmZXIuZnJvbShyYXdOb3RhdGlvbnNbMF0udmFsdWUpLnRvU3RyaW5nKCksXG4gICAgJ3dhbGxldCBzaWduYXR1cmUgZG9lcyBub3QgbWF0Y2ggY29tbW9uIGtleWNoYWluJ1xuICApO1xuICBhc3NlcnQodXNlcktleUlkID09PSBCdWZmZXIuZnJvbShyYXdOb3RhdGlvbnNbMV0udmFsdWUpLnRvU3RyaW5nKCksIGB3YWxsZXQgc2lnbmF0dXJlIGRvZXMgbm90IG1hdGNoIHVzZXIga2V5IGlkYCk7XG4gIGFzc2VydChcbiAgICBiYWNrdXBLZXlJZCA9PT0gQnVmZmVyLmZyb20ocmF3Tm90YXRpb25zWzJdLnZhbHVlKS50b1N0cmluZygpLFxuICAgICd3YWxsZXQgc2lnbmF0dXJlIGRvZXMgbm90IG1hdGNoIGJhY2t1cCBrZXkgaWQnXG4gICk7XG5cbiAgcmV0dXJuIHJhd05vdGF0aW9ucztcbn1cblxuLyoqXG4gKiBHZXRzIGNoYWxsZW5nZSBmb3IgYSB0eCByZXF1ZXN0IGZyb20gQml0R29cbiAqIHN1cHBvcnRzIE1lc3NhZ2UgYW5kIHJlZ3VsYXIgVHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBiaXRnb1xuICogQHBhcmFtIHdhbGxldElkXG4gKiBAcGFyYW0gdHhSZXF1ZXN0SWRcbiAqIEBwYXJhbSBpbmRleFxuICogQHBhcmFtIHJlcXVlc3RUeXBlXG4gKiBAcGFyYW0gcGFpbGxpZXJNb2R1bHVzXG4gKiBAcGFyYW0gcmVxSWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFR4UmVxdWVzdENoYWxsZW5nZShcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgd2FsbGV0SWQ6IHN0cmluZyxcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgaW5kZXg6IHN0cmluZyxcbiAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlLFxuICBwYWlsbGllck1vZHVsdXM6IHN0cmluZyxcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlclxuKTogUHJvbWlzZTxUeFJlcXVlc3RDaGFsbGVuZ2VSZXNwb25zZT4ge1xuICBsZXQgYWRkZW5kdW0gPSAnJztcbiAgc3dpdGNoIChyZXF1ZXN0VHlwZSkge1xuICAgIGNhc2UgUmVxdWVzdFR5cGUudHg6XG4gICAgICBhZGRlbmR1bSA9ICcvdHJhbnNhY3Rpb25zLycgKyBpbmRleDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgUmVxdWVzdFR5cGUubWVzc2FnZTpcbiAgICAgIGFkZGVuZHVtID0gJy9tZXNzYWdlcy8nICsgaW5kZXg7XG4gICAgICBicmVhaztcbiAgfVxuICBjb25zdCB1cmxQYXRoID0gJy93YWxsZXQvJyArIHdhbGxldElkICsgJy90eHJlcXVlc3RzLycgKyB0eFJlcXVlc3RJZCArIGFkZGVuZHVtICsgJy9jaGFsbGVuZ2UnO1xuICBjb25zdCByZXFUcmFjZXIgPSByZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICBiaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gIHJldHVybiBhd2FpdCBiaXRnby5wb3N0KGJpdGdvLnVybCh1cmxQYXRoLCAyKSkuc2VuZCh7IHBhaWxsaWVyTW9kdWx1cyB9KS5yZXN1bHQoKTtcbn1cbiJdfQ==
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { AShare, BShare, CombinedKey, CreateUserOmicronAndDeltaShareRT, DecryptableNShare, DShare, EncryptedNShare, GShare, KeyShare, NShare, OShare, ReceivedShareType, SendShareToBitgoRT, SendShareType, Signature, SignatureShare, SignShare, WShare, XShareWithChallenges, YShareWithChallenges } from './types';
3
2
  import { RequestType, SignatureShareRecord, SignatureShareType } from '../../utils';
4
3
  import { ShareKeyPosition } from '../types';
@@ -7,6 +6,7 @@ import { KShare, MUShare, SignConvertStep2Response, SShare } from '../../../acco
7
6
  import * as pgp from 'openpgp';
8
7
  import { ApiKeyShare } from '../../keychain';
9
8
  import { Hash } from 'crypto';
9
+ import { IRequestTracer } from '../../../api';
10
10
  /**
11
11
  * Combines NShares to combine the final TSS key
12
12
  * This can only be used to create the User or Backup key since it requires the common keychain from BitGo first
@@ -45,7 +45,7 @@ export declare function createUserOmicronAndDeltaShare(gShare: GShare): Promise<
45
45
  * @returns {Promise<createUserSignShareRT>}
46
46
  */
47
47
  export declare function createUserSignatureShare(oShare: OShare, dShare: DShare, message: Buffer, hash?: Hash): Promise<SignatureShare>;
48
- export declare type MuDShare = {
48
+ export type MuDShare = {
49
49
  muShare: MUShare;
50
50
  dShare: DShare;
51
51
  i: ShareKeyPosition;
@@ -63,18 +63,20 @@ export declare type MuDShare = {
63
63
  * @param privateShareProof - the uSig of the share
64
64
  * @param publicShare - the y value of the share
65
65
  * @param userPublicGpgKey - the public key of the gpg key used for creating the privateShareProof
66
+ * @param reqId - request tracer request id
66
67
  * @returns {Promise<SignatureShareRecord>} - a Signature Share
67
68
  */
68
- export declare function sendShareToBitgo(bitgo: BitGoBase, walletId: string, txRequestId: string, requestType: RequestType, shareType: SendShareType, share: SShare | MuDShare | KShare, signerShare?: string, vssProof?: string, privateShareProof?: string, publicShare?: string, userPublicGpgKey?: string): Promise<SendShareToBitgoRT>;
69
+ export declare function sendShareToBitgo(bitgo: BitGoBase, walletId: string, txRequestId: string, requestType: RequestType, shareType: SendShareType, share: SShare | MuDShare | KShare, signerShare?: string, vssProof?: string, privateShareProof?: string, publicShare?: string, userPublicGpgKey?: string, reqId?: IRequestTracer): Promise<SendShareToBitgoRT>;
69
70
  /**
70
71
  * Gets the latest user's share from bitgo needed to continue signing flow
71
72
  * @param {BitGoBase} bitgo - the bitgo instance
72
73
  * @param {String} walletId - the wallet id *
73
74
  * @param {String} txRequestId - the txRequest Id
74
75
  * @param {ReceivedShareType} shareType - the excpected share type
76
+ * @param {IRequestTracer} reqId - request tracer request id
75
77
  * @returns {Promise<SendShareToBitgoRT>} - share from bitgo to user
76
78
  */
77
- export declare function getBitgoToUserLatestShare(bitgo: BitGoBase, walletId: string, txRequestId: string, shareType: ReceivedShareType, requestType: RequestType): Promise<SendShareToBitgoRT>;
79
+ export declare function getBitgoToUserLatestShare(bitgo: BitGoBase, walletId: string, txRequestId: string, shareType: ReceivedShareType, requestType: RequestType, reqId?: IRequestTracer): Promise<SendShareToBitgoRT>;
78
80
  /**
79
81
  * Prepares a NShare to be exchanged with other key holders.
80
82
  * Output is in a format that is usable within BitGo's ecosystem.
@@ -1 +1 @@
1
- {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}