@bitgo-beta/sdk-core 8.2.1-beta.182 → 8.2.1-beta.1821

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 (621) 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 +31 -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/defi/defiVault.d.ts +80 -0
  118. package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -0
  119. package/dist/src/bitgo/defi/defiVault.js +201 -0
  120. package/dist/src/bitgo/defi/iDefiVault.d.ts +59 -0
  121. package/dist/src/bitgo/defi/iDefiVault.d.ts.map +1 -0
  122. package/dist/src/bitgo/defi/iDefiVault.js +6 -0
  123. package/dist/src/bitgo/defi/index.d.ts +3 -0
  124. package/dist/src/bitgo/defi/index.d.ts.map +1 -0
  125. package/dist/src/bitgo/defi/index.js +22 -0
  126. package/dist/src/bitgo/ecdh.d.ts +0 -1
  127. package/dist/src/bitgo/ecdh.d.ts.map +1 -1
  128. package/dist/src/bitgo/ecdh.js +26 -13
  129. package/dist/src/bitgo/enterprise/enterprise.d.ts +3 -4
  130. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  131. package/dist/src/bitgo/enterprise/enterprise.js +39 -21
  132. package/dist/src/bitgo/enterprise/enterprises.js +27 -13
  133. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +2 -3
  134. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  135. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  136. package/dist/src/bitgo/enterprise/index.js +6 -2
  137. package/dist/src/bitgo/environments.d.ts +69 -5
  138. package/dist/src/bitgo/environments.d.ts.map +1 -1
  139. package/dist/src/bitgo/environments.js +403 -40
  140. package/dist/src/bitgo/errors.d.ts +175 -0
  141. package/dist/src/bitgo/errors.d.ts.map +1 -1
  142. package/dist/src/bitgo/errors.js +166 -2
  143. package/dist/src/bitgo/evm/evmUtils.d.ts +26 -0
  144. package/dist/src/bitgo/evm/evmUtils.d.ts.map +1 -0
  145. package/dist/src/bitgo/evm/evmUtils.js +50 -0
  146. package/dist/src/bitgo/index.d.ts +4 -1
  147. package/dist/src/bitgo/index.d.ts.map +1 -1
  148. package/dist/src/bitgo/index.js +30 -11
  149. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts +3 -3
  150. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts.map +1 -1
  151. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.js +1 -1
  152. package/dist/src/bitgo/inscriptionBuilder/index.js +6 -2
  153. package/dist/src/bitgo/internal/index.js +6 -2
  154. package/dist/src/bitgo/internal/internal.js +5 -6
  155. package/dist/src/bitgo/internal/keycard.d.ts +19 -6
  156. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -1
  157. package/dist/src/bitgo/internal/keycard.js +105 -44
  158. package/dist/src/bitgo/keychain/decryptKeychain.d.ts +24 -0
  159. package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -0
  160. package/dist/src/bitgo/keychain/decryptKeychain.js +67 -0
  161. package/dist/src/bitgo/keychain/iKeychains.d.ts +96 -8
  162. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  163. package/dist/src/bitgo/keychain/iKeychains.js +2 -2
  164. package/dist/src/bitgo/keychain/index.d.ts +1 -0
  165. package/dist/src/bitgo/keychain/index.d.ts.map +1 -1
  166. package/dist/src/bitgo/keychain/index.js +7 -2
  167. package/dist/src/bitgo/keychain/keychains.d.ts +49 -6
  168. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  169. package/dist/src/bitgo/keychain/keychains.js +249 -46
  170. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +3 -3
  171. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  172. package/dist/src/bitgo/keychain/ovcJsonCodec.js +23 -9
  173. package/dist/src/bitgo/legacyBitcoin.d.ts +0 -1
  174. package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -1
  175. package/dist/src/bitgo/legacyBitcoin.js +27 -13
  176. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts +7 -0
  177. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts.map +1 -0
  178. package/dist/src/bitgo/lightning/lightningWalletUtil.js +25 -0
  179. package/dist/src/bitgo/market/iMarkets.d.ts +2 -2
  180. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -1
  181. package/dist/src/bitgo/market/index.js +6 -2
  182. package/dist/src/bitgo/market/markets.js +23 -9
  183. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +1 -0
  184. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  185. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +4 -4
  186. package/dist/src/bitgo/pendingApproval/index.js +6 -2
  187. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +20 -8
  188. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
  189. package/dist/src/bitgo/pendingApproval/pendingApproval.js +228 -110
  190. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +23 -9
  191. package/dist/src/bitgo/proofs/WalletProofs.d.ts +19 -0
  192. package/dist/src/bitgo/proofs/WalletProofs.d.ts.map +1 -0
  193. package/dist/src/bitgo/proofs/WalletProofs.js +37 -0
  194. package/dist/src/bitgo/proofs/index.d.ts +2 -0
  195. package/dist/src/bitgo/proofs/index.d.ts.map +1 -0
  196. package/dist/src/bitgo/proofs/index.js +6 -0
  197. package/dist/src/bitgo/proofs/types.d.ts +80 -0
  198. package/dist/src/bitgo/proofs/types.d.ts.map +1 -0
  199. package/dist/src/bitgo/proofs/types.js +80 -0
  200. package/dist/src/bitgo/recovery/index.js +6 -2
  201. package/dist/src/bitgo/recovery/initiate.d.ts +24 -1
  202. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  203. package/dist/src/bitgo/recovery/initiate.js +88 -40
  204. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +132 -0
  205. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts.map +1 -0
  206. package/dist/src/bitgo/staking/goStakingInterfaces.js +3 -0
  207. package/dist/src/bitgo/staking/goStakingWallet.d.ts +62 -0
  208. package/dist/src/bitgo/staking/goStakingWallet.d.ts.map +1 -0
  209. package/dist/src/bitgo/staking/goStakingWallet.js +141 -0
  210. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts +17 -0
  211. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts.map +1 -0
  212. package/dist/src/bitgo/staking/iGoStakingWallet.js +3 -0
  213. package/dist/src/bitgo/staking/iStakingWallet.d.ts +173 -7
  214. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  215. package/dist/src/bitgo/staking/iStakingWallet.js +2 -2
  216. package/dist/src/bitgo/staking/index.d.ts +3 -0
  217. package/dist/src/bitgo/staking/index.d.ts.map +1 -1
  218. package/dist/src/bitgo/staking/index.js +9 -2
  219. package/dist/src/bitgo/staking/stakingWallet.d.ts +21 -8
  220. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  221. package/dist/src/bitgo/staking/stakingWallet.js +140 -7
  222. package/dist/src/bitgo/trading/iTradingAccount.d.ts +15 -1
  223. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -1
  224. package/dist/src/bitgo/trading/iTradingAccount.js +1 -1
  225. package/dist/src/bitgo/trading/index.d.ts +1 -0
  226. package/dist/src/bitgo/trading/index.d.ts.map +1 -1
  227. package/dist/src/bitgo/trading/index.js +7 -2
  228. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts +8 -0
  229. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts.map +1 -0
  230. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.js +31 -0
  231. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts +8 -0
  232. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts.map +1 -0
  233. package/dist/src/bitgo/trading/network/decrypt-rsa.js +23 -0
  234. package/dist/src/bitgo/trading/network/decrypt.d.ts +14 -0
  235. package/dist/src/bitgo/trading/network/decrypt.d.ts.map +1 -0
  236. package/dist/src/bitgo/trading/network/decrypt.js +23 -0
  237. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts +8 -0
  238. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts.map +1 -0
  239. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.js +25 -0
  240. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts +8 -0
  241. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts.map +1 -0
  242. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.js +65 -0
  243. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts +8 -0
  244. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts.map +1 -0
  245. package/dist/src/bitgo/trading/network/encrypt-rsa.js +23 -0
  246. package/dist/src/bitgo/trading/network/encrypt.d.ts +37 -0
  247. package/dist/src/bitgo/trading/network/encrypt.d.ts.map +1 -0
  248. package/dist/src/bitgo/trading/network/encrypt.js +58 -0
  249. package/dist/src/bitgo/trading/network/index.d.ts +5 -0
  250. package/dist/src/bitgo/trading/network/index.d.ts.map +1 -0
  251. package/dist/src/bitgo/trading/network/index.js +21 -0
  252. package/dist/src/bitgo/trading/network/network.d.ts +36 -0
  253. package/dist/src/bitgo/trading/network/network.d.ts.map +1 -0
  254. package/dist/src/bitgo/trading/network/network.js +99 -0
  255. package/dist/src/bitgo/trading/network/types.d.ts +277 -0
  256. package/dist/src/bitgo/trading/network/types.d.ts.map +1 -0
  257. package/dist/src/bitgo/trading/network/types.js +3 -0
  258. package/dist/src/bitgo/trading/network/utils.d.ts +20 -0
  259. package/dist/src/bitgo/trading/network/utils.d.ts.map +1 -0
  260. package/dist/src/bitgo/trading/network/utils.js +54 -0
  261. package/dist/src/bitgo/trading/tradingAccount.d.ts +22 -1
  262. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
  263. package/dist/src/bitgo/trading/tradingAccount.js +64 -7
  264. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts +38 -0
  265. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  266. package/dist/src/bitgo/tss/bitgoPubKeys.js +72 -0
  267. package/dist/src/bitgo/tss/common.d.ts +40 -6
  268. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  269. package/dist/src/bitgo/tss/common.js +122 -17
  270. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +6 -4
  271. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  272. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +78 -66
  273. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts +15 -0
  274. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  275. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.js +167 -0
  276. package/dist/src/bitgo/tss/ecdsa/index.d.ts +1 -0
  277. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -1
  278. package/dist/src/bitgo/tss/ecdsa/index.js +25 -10
  279. package/dist/src/bitgo/tss/ecdsa/types.d.ts +27 -27
  280. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  281. package/dist/src/bitgo/tss/ecdsa/types.js +3 -3
  282. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +15 -6
  283. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  284. package/dist/src/bitgo/tss/eddsa/eddsa.js +47 -40
  285. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +37 -0
  286. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  287. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +95 -0
  288. package/dist/src/bitgo/tss/eddsa/index.js +23 -9
  289. package/dist/src/bitgo/tss/eddsa/types.d.ts +4 -4
  290. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -1
  291. package/dist/src/bitgo/tss/index.d.ts +3 -2
  292. package/dist/src/bitgo/tss/index.d.ts.map +1 -1
  293. package/dist/src/bitgo/tss/index.js +26 -10
  294. package/dist/src/bitgo/tss/types.d.ts +3 -3
  295. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  296. package/dist/src/bitgo/tss/types.js +2 -2
  297. package/dist/src/bitgo/types.d.ts +3 -3
  298. package/dist/src/bitgo/types.d.ts.map +1 -1
  299. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +8 -0
  300. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
  301. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +55 -13
  302. package/dist/src/bitgo/utils/codecProps.js +24 -11
  303. package/dist/src/bitgo/utils/codecs.d.ts +11 -0
  304. package/dist/src/bitgo/utils/codecs.d.ts.map +1 -0
  305. package/dist/src/bitgo/utils/codecs.js +59 -0
  306. package/dist/src/bitgo/utils/decode.d.ts.map +1 -1
  307. package/dist/src/bitgo/utils/decode.js +30 -16
  308. package/dist/src/bitgo/utils/index.d.ts +4 -2
  309. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  310. package/dist/src/bitgo/utils/index.js +27 -11
  311. package/dist/src/bitgo/utils/messageTypes.d.ts +40 -0
  312. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
  313. package/dist/src/bitgo/utils/messageTypes.js +17 -0
  314. package/dist/src/bitgo/utils/mpcUtils.d.ts +4 -4
  315. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  316. package/dist/src/bitgo/utils/mpcUtils.js +129 -14
  317. package/dist/src/bitgo/utils/notEmpty.d.ts +2 -0
  318. package/dist/src/bitgo/utils/notEmpty.d.ts.map +1 -0
  319. package/dist/src/bitgo/utils/notEmpty.js +7 -0
  320. package/dist/src/bitgo/utils/opengpgUtils.d.ts +12 -9
  321. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  322. package/dist/src/bitgo/utils/opengpgUtils.js +77 -64
  323. package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -1
  324. package/dist/src/bitgo/utils/postWithCodec.js +4 -38
  325. package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
  326. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
  327. package/dist/src/bitgo/utils/promise-utils.js +2 -3
  328. package/dist/src/bitgo/utils/transactionUtils.d.ts +9 -0
  329. package/dist/src/bitgo/utils/transactionUtils.d.ts.map +1 -0
  330. package/dist/src/bitgo/utils/transactionUtils.js +29 -0
  331. package/dist/src/bitgo/utils/triple.d.ts +1 -1
  332. package/dist/src/bitgo/utils/triple.d.ts.map +1 -1
  333. package/dist/src/bitgo/utils/triple.js +2 -3
  334. package/dist/src/bitgo/utils/tss/addressVerification.d.ts +37 -0
  335. package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  336. package/dist/src/bitgo/utils/tss/addressVerification.js +82 -0
  337. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +90 -17
  338. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  339. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +278 -45
  340. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +380 -45
  341. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  342. package/dist/src/bitgo/utils/tss/baseTypes.js +47 -22
  343. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts +23 -0
  344. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -0
  345. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +157 -0
  346. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts +28 -0
  347. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts.map +1 -0
  348. package/dist/src/bitgo/utils/tss/ecdsa/base.js +53 -0
  349. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +24 -51
  350. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  351. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +171 -246
  352. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +203 -0
  353. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  354. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1082 -0
  355. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +8 -0
  356. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -0
  357. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +13 -0
  358. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +4 -0
  359. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
  360. package/dist/src/bitgo/utils/tss/ecdsa/index.js +10 -2
  361. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +7 -10
  362. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  363. package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
  364. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +107 -0
  365. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -0
  366. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +55 -0
  367. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts +21 -0
  368. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts.map +1 -0
  369. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.js +118 -0
  370. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts +18 -0
  371. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts.map +1 -0
  372. package/dist/src/bitgo/utils/tss/eddsa/base.js +64 -0
  373. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +28 -11
  374. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  375. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +218 -103
  376. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +90 -0
  377. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  378. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +561 -0
  379. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts +6 -0
  380. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts.map +1 -0
  381. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.js +13 -0
  382. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +4 -0
  383. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
  384. package/dist/src/bitgo/utils/tss/eddsa/index.js +29 -8
  385. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +7 -7
  386. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
  387. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +40 -0
  388. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -0
  389. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +44 -0
  390. package/dist/src/bitgo/utils/tss/index.d.ts +1 -0
  391. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
  392. package/dist/src/bitgo/utils/tss/index.js +24 -9
  393. package/dist/src/bitgo/utils/txRequest.d.ts +10 -0
  394. package/dist/src/bitgo/utils/txRequest.d.ts.map +1 -0
  395. package/dist/src/bitgo/utils/txRequest.js +49 -0
  396. package/dist/src/bitgo/utils/util.js +24 -10
  397. package/dist/src/bitgo/utils/wallet.d.ts +7 -0
  398. package/dist/src/bitgo/utils/wallet.d.ts.map +1 -0
  399. package/dist/src/bitgo/utils/wallet.js +48 -0
  400. package/dist/src/bitgo/wallet/BuildParams.d.ts +50 -1
  401. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  402. package/dist/src/bitgo/wallet/BuildParams.js +58 -11
  403. package/dist/src/bitgo/wallet/iWallet.d.ts +480 -22
  404. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  405. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  406. package/dist/src/bitgo/wallet/iWallets.d.ts +157 -16
  407. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  408. package/dist/src/bitgo/wallet/iWallets.js +63 -3
  409. package/dist/src/bitgo/wallet/index.js +6 -2
  410. package/dist/src/bitgo/wallet/wallet.d.ts +369 -24
  411. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  412. package/dist/src/bitgo/wallet/wallet.js +2017 -408
  413. package/dist/src/bitgo/wallet/wallets.d.ts +88 -4
  414. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  415. package/dist/src/bitgo/wallet/wallets.js +1054 -158
  416. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts +12 -0
  417. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts.map +1 -0
  418. package/dist/src/bitgo/walletUtil/iMessageProvider.js +3 -0
  419. package/dist/src/bitgo/walletUtil/index.d.ts +3 -0
  420. package/dist/src/bitgo/walletUtil/index.d.ts.map +1 -0
  421. package/dist/src/bitgo/walletUtil/index.js +19 -0
  422. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts +22 -0
  423. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts.map +1 -0
  424. package/dist/src/bitgo/walletUtil/midnightMessageProvider.js +95 -0
  425. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts +9 -0
  426. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts.map +1 -0
  427. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.js +72 -0
  428. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts +15 -0
  429. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts.map +1 -0
  430. package/dist/src/bitgo/walletUtil/utxoMessageProof.js +40 -0
  431. package/dist/src/bitgo/webhook/index.js +6 -2
  432. package/dist/src/bitgo/webhook/webhooks.js +23 -9
  433. package/dist/src/coins/fiat.d.ts +45 -0
  434. package/dist/src/coins/fiat.d.ts.map +1 -0
  435. package/dist/src/coins/fiat.js +94 -0
  436. package/dist/src/coins/index.d.ts +1 -6
  437. package/dist/src/coins/index.d.ts.map +1 -1
  438. package/dist/src/coins/index.js +7 -8
  439. package/dist/src/coins/ofc.d.ts +21 -2
  440. package/dist/src/coins/ofc.d.ts.map +1 -1
  441. package/dist/src/coins/ofc.js +29 -3
  442. package/dist/src/coins/ofcToken.d.ts +15 -4
  443. package/dist/src/coins/ofcToken.d.ts.map +1 -1
  444. package/dist/src/coins/ofcToken.js +43 -5
  445. package/dist/src/coins/susd.d.ts +3 -2
  446. package/dist/src/coins/susd.d.ts.map +1 -1
  447. package/dist/src/coins/susd.js +5 -1
  448. package/dist/src/common.js +27 -13
  449. package/dist/src/index.d.ts +6 -1
  450. package/dist/src/index.d.ts.map +1 -1
  451. package/dist/src/index.js +32 -11
  452. package/dist/src/lightning.d.ts +20 -0
  453. package/dist/src/lightning.d.ts.map +1 -0
  454. package/dist/src/lightning.js +13 -0
  455. package/dist/src/units.js +5 -6
  456. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
  457. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  458. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +207 -0
  459. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
  460. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  461. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +174 -0
  462. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
  463. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  464. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +108 -0
  465. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +46 -0
  466. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
  467. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +69 -0
  468. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +91 -29
  469. package/dist/test/unit/account-lib/mpc/util.d.ts +2 -0
  470. package/dist/test/unit/account-lib/mpc/util.d.ts.map +1 -0
  471. package/dist/test/unit/account-lib/mpc/util.js +53 -0
  472. package/dist/test/unit/bitgo/defi/defiVault.d.ts +2 -0
  473. package/dist/test/unit/bitgo/defi/defiVault.d.ts.map +1 -0
  474. package/dist/test/unit/bitgo/defi/defiVault.js +283 -0
  475. package/dist/test/unit/bitgo/environment.d.ts +2 -0
  476. package/dist/test/unit/bitgo/environment.d.ts.map +1 -0
  477. package/dist/test/unit/bitgo/environment.js +38 -0
  478. package/dist/test/unit/bitgo/errors.d.ts +2 -0
  479. package/dist/test/unit/bitgo/errors.d.ts.map +1 -0
  480. package/dist/test/unit/bitgo/errors.js +262 -0
  481. package/dist/test/unit/bitgo/recovery/initiate.d.ts +2 -0
  482. package/dist/test/unit/bitgo/recovery/initiate.d.ts.map +1 -0
  483. package/dist/test/unit/bitgo/recovery/initiate.js +230 -0
  484. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts +2 -0
  485. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts.map +1 -0
  486. package/dist/test/unit/bitgo/trading/network/encrypt.js +71 -0
  487. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts +2 -0
  488. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts.map +1 -0
  489. package/dist/test/unit/bitgo/trading/tradingAccount.js +192 -0
  490. package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +24 -4
  491. package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
  492. package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
  493. package/dist/test/unit/bitgo/utils/messageTypes.js +64 -0
  494. package/dist/test/unit/bitgo/utils/notEmpty.d.ts +2 -0
  495. package/dist/test/unit/bitgo/utils/notEmpty.d.ts.map +1 -0
  496. package/dist/test/unit/bitgo/utils/notEmpty.js +15 -0
  497. package/dist/test/unit/bitgo/utils/postWithCodec.js +32 -38
  498. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts +2 -0
  499. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  500. package/dist/test/unit/bitgo/utils/tss/addressVerification.js +203 -0
  501. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts +2 -0
  502. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -0
  503. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.js +316 -0
  504. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts +2 -0
  505. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts.map +1 -0
  506. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.js +94 -0
  507. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +2 -0
  508. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  509. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +875 -0
  510. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts +5 -0
  511. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts.map +1 -0
  512. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.js +36 -0
  513. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +2 -0
  514. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  515. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +1211 -0
  516. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts +2 -0
  517. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts.map +1 -0
  518. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.js +311 -0
  519. package/dist/test/unit/bitgo/utils/txRequest.d.ts +2 -0
  520. package/dist/test/unit/bitgo/utils/txRequest.d.ts.map +1 -0
  521. package/dist/test/unit/bitgo/utils/txRequest.js +179 -0
  522. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts +2 -0
  523. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts.map +1 -0
  524. package/dist/test/unit/bitgo/wallet/BuildParams.js +97 -0
  525. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +23 -9
  526. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts +2 -0
  527. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts.map +1 -0
  528. package/dist/test/unit/bitgo/wallet/getAccountResources.js +133 -0
  529. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts +2 -0
  530. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts.map +1 -0
  531. package/dist/test/unit/bitgo/wallet/getResourceDelegations.js +118 -0
  532. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts +2 -0
  533. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts.map +1 -0
  534. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.js +185 -0
  535. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts +3 -0
  536. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts.map +1 -0
  537. package/dist/test/unit/bitgo/wallet/resourceManagement.js +441 -0
  538. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts +2 -0
  539. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts.map +1 -0
  540. package/dist/test/unit/bitgo/wallet/tokenApproval.js +135 -0
  541. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts +2 -0
  542. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts.map +1 -0
  543. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.js +181 -0
  544. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts +2 -0
  545. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts.map +1 -0
  546. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +43 -0
  547. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts +2 -0
  548. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts.map +1 -0
  549. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.js +320 -0
  550. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts +2 -0
  551. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts.map +1 -0
  552. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.js +228 -0
  553. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts +2 -0
  554. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts.map +1 -0
  555. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.js +216 -0
  556. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts +2 -0
  557. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts.map +1 -0
  558. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.js +320 -0
  559. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts +2 -0
  560. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts.map +1 -0
  561. package/dist/test/unit/bitgo/wallet/walletsWebauthn.js +204 -0
  562. package/dist/test/unit/coins/ofc.d.ts +2 -0
  563. package/dist/test/unit/coins/ofc.d.ts.map +1 -0
  564. package/dist/test/unit/coins/ofc.js +124 -0
  565. package/dist/test/unit/lightning.d.ts +2 -0
  566. package/dist/test/unit/lightning.d.ts.map +1 -0
  567. package/dist/test/unit/lightning.js +23 -0
  568. package/dist/test/unit/units.d.ts.map +1 -1
  569. package/dist/test/unit/units.js +64 -64
  570. package/dist/tsconfig.tsbuildinfo +1 -1
  571. package/package.json +24 -21
  572. package/.eslintignore +0 -5
  573. package/CHANGELOG.md +0 -1499
  574. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +0 -77
  575. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +0 -1
  576. package/dist/src/account-lib/baseCoin/blsKeyPair.js +0 -209
  577. package/dist/src/bitgo/lightning/iLightning.d.ts +0 -186
  578. package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
  579. package/dist/src/bitgo/lightning/iLightning.js +0 -106
  580. package/dist/src/bitgo/lightning/index.d.ts +0 -5
  581. package/dist/src/bitgo/lightning/index.d.ts.map +0 -1
  582. package/dist/src/bitgo/lightning/index.js +0 -17
  583. package/dist/src/bitgo/lightning/lightning.d.ts +0 -25
  584. package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
  585. package/dist/src/bitgo/lightning/lightning.js +0 -111
  586. package/dist/src/bitgo/lightning/lightningUtils.d.ts +0 -46
  587. package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +0 -1
  588. package/dist/src/bitgo/lightning/lightningUtils.js +0 -133
  589. package/dist/src/bitgo/lightning/lnurlCodec.d.ts +0 -3
  590. package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
  591. package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
  592. package/dist/src/bitgo/utils/blsUtils.d.ts +0 -52
  593. package/dist/src/bitgo/utils/blsUtils.d.ts.map +0 -1
  594. package/dist/src/bitgo/utils/blsUtils.js +0 -237
  595. package/dist/src/bitgo/utils/iBlsUtils.d.ts +0 -14
  596. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +0 -1
  597. package/dist/src/bitgo/utils/iBlsUtils.js +0 -3
  598. package/dist/src/coins/fiateur.d.ts +0 -31
  599. package/dist/src/coins/fiateur.d.ts.map +0 -1
  600. package/dist/src/coins/fiateur.js +0 -57
  601. package/dist/src/coins/fiatgbp.d.ts +0 -31
  602. package/dist/src/coins/fiatgbp.d.ts.map +0 -1
  603. package/dist/src/coins/fiatgbp.js +0 -57
  604. package/dist/src/coins/fiatusd.d.ts +0 -31
  605. package/dist/src/coins/fiatusd.d.ts.map +0 -1
  606. package/dist/src/coins/fiatusd.js +0 -57
  607. package/dist/src/coins/tfiateur.d.ts +0 -11
  608. package/dist/src/coins/tfiateur.d.ts.map +0 -1
  609. package/dist/src/coins/tfiateur.js +0 -17
  610. package/dist/src/coins/tfiatgbp.d.ts +0 -11
  611. package/dist/src/coins/tfiatgbp.d.ts.map +0 -1
  612. package/dist/src/coins/tfiatgbp.js +0 -17
  613. package/dist/src/coins/tfiatusd.d.ts +0 -11
  614. package/dist/src/coins/tfiatusd.d.ts.map +0 -1
  615. package/dist/src/coins/tfiatusd.js +0 -17
  616. package/dist/src/openssl/index.d.ts +0 -5
  617. package/dist/src/openssl/index.d.ts.map +0 -1
  618. package/dist/src/openssl/index.js +0 -9
  619. package/dist/test/unit/openssl.d.ts +0 -2
  620. package/dist/test/unit/openssl.d.ts.map +0 -1
  621. package/dist/test/unit/openssl.js +0 -39
@@ -1,31 +1,88 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TradingAccount = void 0;
4
+ const network_1 = require("./network");
4
5
  class TradingAccount {
5
6
  constructor(enterpriseId, wallet, bitgo) {
6
7
  this.enterpriseId = enterpriseId;
7
8
  this.wallet = wallet;
8
9
  this.bitgo = bitgo;
10
+ const walletData = this.wallet.toJSON();
11
+ this.userKeySigningRequired =
12
+ walletData.coinSpecific?.userKeySigningRequired ?? walletData.userKeySigningRequired ?? true;
9
13
  }
10
14
  get id() {
11
15
  return this.wallet.id();
12
16
  }
13
17
  /**
14
- * Signs an arbitrary payload with the user key on this trading account
18
+ * Signs an arbitrary payload. Use the user key if passphrase/prv is provided, or the BitGo key if not.
15
19
  * @param params
16
20
  * @param params.payload arbitrary payload object (string | Record<string, unknown>)
17
21
  * @param params.walletPassphrase passphrase on this trading account, used to unlock the account user key
22
+ * @param params.prv user private key, used to sign the payload locally
18
23
  * @returns hex-encoded signature of the payload
19
24
  */
20
25
  async signPayload(params) {
21
- const key = (await this.wallet.baseCoin.keychains().get({ id: this.wallet.keyIds()[0] }));
22
- const prv = this.wallet.bitgo.decrypt({
23
- input: key.encryptedPrv,
24
- password: params.walletPassphrase,
25
- });
26
+ // if no passphrase is provided, attempt to sign using the wallet's bitgo key remotely
27
+ if (!params.walletPassphrase && !params.prv) {
28
+ return this.signPayloadByBitGoKey(params);
29
+ }
30
+ // if a passphrase is provided, we must be trying to sign using the user private key - decrypt and sign locally
31
+ return this.signPayloadByUserKey(params);
32
+ }
33
+ /**
34
+ * Signs the payload of a trading account via the trading account BitGo key
35
+ * @param params
36
+ * @private
37
+ */
38
+ async signPayloadByBitGoKey(params) {
39
+ const walletData = this.wallet.toJSON();
40
+ if (this.userKeySigningRequired) {
41
+ throw new Error('Wallet must use user key to sign ofc transaction, please provide the wallet passphrase, the private key, or visit your wallet settings page to configure one.');
42
+ }
43
+ if (walletData.keys.length < 2) {
44
+ throw new Error('Wallet does not support BitGo signing. Please reach out to support@bitgo.com to resolve this issue.');
45
+ }
46
+ // we do not parse the payload here, we instead sends the payload as a stringified JSON to be signed, just like how we process it locally
47
+ const url = this.bitgo.coin('ofc').url('/wallet/' + this.wallet.id() + '/tx/sign');
48
+ const payload = typeof params.payload !== 'string' ? JSON.stringify(params.payload) : params.payload;
49
+ const { signature } = await this.wallet.bitgo.post(url).send({ payload }).result();
50
+ return signature;
51
+ }
52
+ /**
53
+ * Signs the payload of a trading account locally by fetching the user's encrypted private key and decrypt using passphrase
54
+ * @param params
55
+ * @private
56
+ */
57
+ async signPayloadByUserKey(params) {
58
+ if (!params.prv && !params.walletPassphrase) {
59
+ throw new Error('Must provide either prv or walletPassphrase to sign payload using user key. Please provide the wallet passphrase or visit your wallet settings page to configure one.');
60
+ }
61
+ let prv;
62
+ if (params.prv) {
63
+ prv = params.prv;
64
+ }
65
+ else {
66
+ const key = await this.wallet.baseCoin.keychains().get({ id: this.wallet.keyIds()[0] });
67
+ if (!key.encryptedPrv) {
68
+ throw new Error('Expected encryptedPrv to be present on user keychain.');
69
+ }
70
+ prv = await this.wallet.bitgo.decryptAsync({
71
+ input: key.encryptedPrv,
72
+ password: params.walletPassphrase,
73
+ });
74
+ }
26
75
  const payload = typeof params.payload === 'string' ? params.payload : JSON.stringify(params.payload);
27
76
  return (await this.wallet.baseCoin.signMessage({ prv }, payload)).toString('hex');
28
77
  }
78
+ /**
79
+ * Get Trade Network
80
+ * To enable Off Exchange Allocation & Settlement, contact support@bitgo.com.
81
+ * BitGo provides a UI experience for clients at: https://app.bitgo.com/web/enterprises/<enterpriseId>/allocate
82
+ */
83
+ toNetwork() {
84
+ return new network_1.TradingNetwork(this.enterpriseId, this.wallet, this.bitgo);
85
+ }
29
86
  }
30
87
  exports.TradingAccount = TradingAccount;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhZGluZ0FjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdHJhZGluZy90cmFkaW5nQWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFPQSxNQUFhLGNBQWM7SUFNekIsWUFBWSxZQUFvQixFQUFFLE1BQWUsRUFBRSxLQUFnQjtRQUNqRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQTZCO1FBQzdDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQVEsQ0FBQztRQUNqRyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDcEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxZQUFZO1lBQ3ZCLFFBQVEsRUFBRSxNQUFNLENBQUMsZ0JBQWdCO1NBQ2xDLENBQUMsQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JHLE9BQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdGLENBQUM7Q0FDRjtBQWhDRCx3Q0FnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSVRyYWRpbmdBY2NvdW50LCBTaWduUGF5bG9hZFBhcmFtZXRlcnMgfSBmcm9tICcuLi90cmFkaW5nJztcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi93YWxsZXQnO1xuXG5leHBvcnQgY2xhc3MgVHJhZGluZ0FjY291bnQgaW1wbGVtZW50cyBJVHJhZGluZ0FjY291bnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW50ZXJwcmlzZUlkOiBzdHJpbmc7XG5cbiAgcHVibGljIHdhbGxldDogSVdhbGxldDtcblxuICBjb25zdHJ1Y3RvcihlbnRlcnByaXNlSWQ6IHN0cmluZywgd2FsbGV0OiBJV2FsbGV0LCBiaXRnbzogQml0R29CYXNlKSB7XG4gICAgdGhpcy5lbnRlcnByaXNlSWQgPSBlbnRlcnByaXNlSWQ7XG4gICAgdGhpcy53YWxsZXQgPSB3YWxsZXQ7XG4gICAgdGhpcy5iaXRnbyA9IGJpdGdvO1xuICB9XG5cbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LmlkKCk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgYW4gYXJiaXRyYXJ5IHBheWxvYWQgd2l0aCB0aGUgdXNlciBrZXkgb24gdGhpcyB0cmFkaW5nIGFjY291bnRcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0gcGFyYW1zLnBheWxvYWQgYXJiaXRyYXJ5IHBheWxvYWQgb2JqZWN0IChzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICogQHBhcmFtIHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIHBhc3NwaHJhc2Ugb24gdGhpcyB0cmFkaW5nIGFjY291bnQsIHVzZWQgdG8gdW5sb2NrIHRoZSBhY2NvdW50IHVzZXIga2V5XG4gICAqIEByZXR1cm5zIGhleC1lbmNvZGVkIHNpZ25hdHVyZSBvZiB0aGUgcGF5bG9hZFxuICAgKi9cbiAgYXN5bmMgc2lnblBheWxvYWQocGFyYW1zOiBTaWduUGF5bG9hZFBhcmFtZXRlcnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGtleSA9IChhd2FpdCB0aGlzLndhbGxldC5iYXNlQ29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogdGhpcy53YWxsZXQua2V5SWRzKClbMF0gfSkpIGFzIGFueTtcbiAgICBjb25zdCBwcnYgPSB0aGlzLndhbGxldC5iaXRnby5kZWNyeXB0KHtcbiAgICAgIGlucHV0OiBrZXkuZW5jcnlwdGVkUHJ2LFxuICAgICAgcGFzc3dvcmQ6IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlLFxuICAgIH0pO1xuICAgIGNvbnN0IHBheWxvYWQgPSB0eXBlb2YgcGFyYW1zLnBheWxvYWQgPT09ICdzdHJpbmcnID8gcGFyYW1zLnBheWxvYWQgOiBKU09OLnN0cmluZ2lmeShwYXJhbXMucGF5bG9hZCk7XG4gICAgcmV0dXJuICgoYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4uc2lnbk1lc3NhZ2UoeyBwcnYgfSwgcGF5bG9hZCkpIGFzIGFueSkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG59XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhZGluZ0FjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdHJhZGluZy90cmFkaW5nQWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSx1Q0FBMkM7QUFFM0MsTUFBYSxjQUFjO0lBT3pCLFlBQVksWUFBb0IsRUFBRSxNQUFlLEVBQUUsS0FBZ0I7UUFDakUsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsc0JBQXNCO1lBQ3pCLFVBQVUsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLElBQUksVUFBVSxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQztJQUNqRyxDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUE2QjtRQUM3QyxzRkFBc0Y7UUFDdEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsK0dBQStHO1FBQy9HLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssS0FBSyxDQUFDLHFCQUFxQixDQUNqQyxNQUErRDtRQUUvRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0s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biAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSVRyYWRpbmdBY2NvdW50LCBTaWduUGF5bG9hZFBhcmFtZXRlcnMgfSBmcm9tICcuLi90cmFkaW5nJztcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi93YWxsZXQnO1xuaW1wb3J0IHsgVHJhZGluZ05ldHdvcmsgfSBmcm9tICcuL25ldHdvcmsnO1xuXG5leHBvcnQgY2xhc3MgVHJhZGluZ0FjY291bnQgaW1wbGVtZW50cyBJVHJhZGluZ0FjY291bnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW50ZXJwcmlzZUlkOiBzdHJpbmc7XG5cbiAgcHVibGljIHdhbGxldDogSVdhbGxldDtcbiAgcHVibGljIHJlYWRvbmx5IHVzZXJLZXlTaWduaW5nUmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoZW50ZXJwcmlzZUlkOiBzdHJpbmcsIHdhbGxldDogSVdhbGxldCwgYml0Z286IEJpdEdvQmFzZSkge1xuICAgIHRoaXMuZW50ZXJwcmlzZUlkID0gZW50ZXJwcmlzZUlkO1xuICAgIHRoaXMud2FsbGV0ID0gd2FsbGV0O1xuICAgIHRoaXMuYml0Z28gPSBiaXRnbztcblxuICAgIGNvbnN0IHdhbGxldERhdGEgPSB0aGlzLndhbGxldC50b0pTT04oKTtcbiAgICB0aGlzLnVzZXJLZXlTaWduaW5nUmVxdWlyZWQgPVxuICAgICAgd2FsbGV0RGF0YS5jb2luU3BlY2lmaWM/LnVzZXJLZXlTaWduaW5nUmVxdWlyZWQgPz8gd2FsbGV0RGF0YS51c2VyS2V5U2lnbmluZ1JlcXVpcmVkID8/IHRydWU7XG4gIH1cblxuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy53YWxsZXQuaWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBhbiBhcmJpdHJhcnkgcGF5bG9hZC4gVXNlIHRoZSB1c2VyIGtleSBpZiBwYXNzcGhyYXNlL3BydiBpcyBwcm92aWRlZCwgb3IgdGhlIEJpdEdvIGtleSBpZiBub3QuXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHBhcmFtIHBhcmFtcy5wYXlsb2FkIGFyYml0cmFyeSBwYXlsb2FkIG9iamVjdCAoc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pXG4gICAqIEBwYXJhbSBwYXJhbXMud2FsbGV0UGFzc3BocmFzZSBwYXNzcGhyYXNlIG9uIHRoaXMgdHJhZGluZyBhY2NvdW50LCB1c2VkIHRvIHVubG9jayB0aGUgYWNjb3VudCB1c2VyIGtleVxuICAgKiBAcGFyYW0gcGFyYW1zLnBydiB1c2VyIHByaXZhdGUga2V5LCB1c2VkIHRvIHNpZ24gdGhlIHBheWxvYWQgbG9jYWxseVxuICAgKiBAcmV0dXJucyBoZXgtZW5jb2RlZCBzaWduYXR1cmUgb2YgdGhlIHBheWxvYWRcbiAgICovXG4gIGFzeW5jIHNpZ25QYXlsb2FkKHBhcmFtczogU2lnblBheWxvYWRQYXJhbWV0ZXJzKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAvLyBpZiBubyBwYXNzcGhyYXNlIGlzIHByb3ZpZGVkLCBhdHRlbXB0IHRvIHNpZ24gdXNpbmcgdGhlIHdhbGxldCdzIGJpdGdvIGtleSByZW1vdGVseVxuICAgIGlmICghcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgJiYgIXBhcmFtcy5wcnYpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25QYXlsb2FkQnlCaXRHb0tleShwYXJhbXMpO1xuICAgIH1cbiAgICAvLyBpZiBhIHBhc3NwaHJhc2UgaXMgcHJvdmlkZWQsIHdlIG11c3QgYmUgdHJ5aW5nIHRvIHNpZ24gdXNpbmcgdGhlIHVzZXIgcHJpdmF0ZSBrZXkgLSBkZWNyeXB0IGFuZCBzaWduIGxvY2FsbHlcbiAgICByZXR1cm4gdGhpcy5zaWduUGF5bG9hZEJ5VXNlcktleShwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIHRoZSBwYXlsb2FkIG9mIGEgdHJhZGluZyBhY2NvdW50IHZpYSB0aGUgdHJhZGluZyBhY2NvdW50IEJpdEdvIGtleVxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHNpZ25QYXlsb2FkQnlCaXRHb0tleShcbiAgICBwYXJhbXM6IE9taXQ8U2lnblBheWxvYWRQYXJhbWV0ZXJzLCAnd2FsbGV0UGFzc3BocmFzZScgfCAncHJ2Jz5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB3YWxsZXREYXRhID0gdGhpcy53YWxsZXQudG9KU09OKCk7XG4gICAgaWYgKHRoaXMudXNlcktleVNpZ25pbmdSZXF1aXJlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnV2FsbGV0IG11c3QgdXNlIHVzZXIga2V5IHRvIHNpZ24gb2ZjIHRyYW5zYWN0aW9uLCBwbGVhc2UgcHJvdmlkZSB0aGUgd2FsbGV0IHBhc3NwaHJhc2UsIHRoZSBwcml2YXRlIGtleSwgb3IgdmlzaXQgeW91ciB3YWxsZXQgc2V0dGluZ3MgcGFnZSB0byBjb25maWd1cmUgb25lLidcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh3YWxsZXREYXRhLmtleXMubGVuZ3RoIDwgMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnV2FsbGV0IGRvZXMgbm90IHN1cHBvcnQgQml0R28gc2lnbmluZy4gUGxlYXNlIHJlYWNoIG91dCB0byBzdXBwb3J0QGJpdGdvLmNvbSB0byByZXNvbHZlIHRoaXMgaXNzdWUuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyB3ZSBkbyBub3QgcGFyc2UgdGhlIHBheWxvYWQgaGVyZSwgd2UgaW5zdGVhZCBzZW5kcyB0aGUgcGF5bG9hZCBhcyBhIHN0cmluZ2lmaWVkIEpTT04gdG8gYmUgc2lnbmVkLCBqdXN0IGxpa2UgaG93IHdlIHByb2Nlc3MgaXQgbG9jYWxseVxuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28uY29pbignb2ZjJykudXJsKCcvd2FsbGV0LycgKyB0aGlzLndhbGxldC5pZCgpICsgJy90eC9zaWduJyk7XG4gICAgY29uc3QgcGF5bG9hZCA9IHR5cGVvZiBwYXJhbXMucGF5bG9hZCAhPT0gJ3N0cmluZycgPyBKU09OLnN0cmluZ2lmeShwYXJhbXMucGF5bG9hZCkgOiBwYXJhbXMucGF5bG9hZDtcbiAgICBjb25zdCB7IHNpZ25hdHVyZSB9ID0gYXdhaXQgdGhpcy53YWxsZXQuYml0Z28ucG9zdCh1cmwpLnNlbmQoeyBwYXlsb2FkIH0pLnJlc3VsdCgpO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyB0aGUgcGF5bG9hZCBvZiBhIHRyYWRpbmcgYWNjb3VudCBsb2NhbGx5IGJ5IGZldGNoaW5nIHRoZSB1c2VyJ3MgZW5jcnlwdGVkIHByaXZhdGUga2V5IGFuZCBkZWNyeXB0IHVzaW5nIHBhc3NwaHJhc2VcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBzaWduUGF5bG9hZEJ5VXNlcktleShwYXJhbXM6IFNpZ25QYXlsb2FkUGFyYW1ldGVycyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCFwYXJhbXMucHJ2ICYmICFwYXJhbXMud2FsbGV0UGFzc3BocmFzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnTXVzdCBwcm92aWRlIGVpdGhlciBwcnYgb3Igd2FsbGV0UGFzc3BocmFzZSB0byBzaWduIHBheWxvYWQgdXNpbmcgdXNlciBrZXkuIFBsZWFzZSBwcm92aWRlIHRoZSB3YWxsZXQgcGFzc3BocmFzZSBvciB2aXNpdCB5b3VyIHdhbGxldCBzZXR0aW5ncyBwYWdlIHRvIGNvbmZpZ3VyZSBvbmUuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgcHJ2OiBzdHJpbmc7XG4gICAgaWYgKHBhcmFtcy5wcnYpIHtcbiAgICAgIHBydiA9IHBhcmFtcy5wcnY7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMud2FsbGV0LmJhc2VDb2luLmtleWNoYWlucygpLmdldCh7IGlkOiB0aGlzLndhbGxldC5rZXlJZHMoKVswXSB9KTtcbiAgICAgIGlmICgha2V5LmVuY3J5cHRlZFBydikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGVuY3J5cHRlZFBydiB0byBiZSBwcmVzZW50IG9uIHVzZXIga2V5Y2hhaW4uJyk7XG4gICAgICB9XG4gICAgICBwcnYgPSBhd2FpdCB0aGlzLndhbGxldC5iaXRnby5kZWNyeXB0QXN5bmMoe1xuICAgICAgICBpbnB1dDoga2V5LmVuY3J5cHRlZFBydixcbiAgICAgICAgcGFzc3dvcmQ6IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHBheWxvYWQgPSB0eXBlb2YgcGFyYW1zLnBheWxvYWQgPT09ICdzdHJpbmcnID8gcGFyYW1zLnBheWxvYWQgOiBKU09OLnN0cmluZ2lmeShwYXJhbXMucGF5bG9hZCk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLndhbGxldC5iYXNlQ29pbi5zaWduTWVzc2FnZSh7IHBydiB9LCBwYXlsb2FkKSkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBUcmFkZSBOZXR3b3JrXG4gICAqIFRvIGVuYWJsZSBPZmYgRXhjaGFuZ2UgQWxsb2NhdGlvbiAmIFNldHRsZW1lbnQsIGNvbnRhY3Qgc3VwcG9ydEBiaXRnby5jb20uXG4gICAqIEJpdEdvIHByb3ZpZGVzIGEgVUkgZXhwZXJpZW5jZSBmb3IgY2xpZW50cyBhdDogaHR0cHM6Ly9hcHAuYml0Z28uY29tL3dlYi9lbnRlcnByaXNlcy88ZW50ZXJwcmlzZUlkPi9hbGxvY2F0ZVxuICAgKi9cbiAgdG9OZXR3b3JrKCk6IFRyYWRpbmdOZXR3b3JrIHtcbiAgICByZXR1cm4gbmV3IFRyYWRpbmdOZXR3b3JrKHRoaXMuZW50ZXJwcmlzZUlkLCB0aGlzLndhbGxldCwgdGhpcy5iaXRnbyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { EnvironmentName } from '../environments';
2
+ export declare const bitgoMpcGpgPubKeys: {
3
+ mpcv1: {
4
+ nitro: {
5
+ test: string;
6
+ prod: string;
7
+ };
8
+ onprem: {
9
+ test: string;
10
+ prod: string;
11
+ };
12
+ };
13
+ mpcv2: {
14
+ nitro: {
15
+ test: string;
16
+ prod: string;
17
+ };
18
+ onprem: {
19
+ test: string;
20
+ prod: string;
21
+ };
22
+ };
23
+ eddsaMpcv2: {
24
+ nitro: {
25
+ test: string;
26
+ prod: string;
27
+ };
28
+ onprem: {
29
+ test: string;
30
+ prod: string;
31
+ };
32
+ };
33
+ };
34
+ export declare function getBitgoMpcGpgPubKey(env: EnvironmentName, pubKeyType: 'nitro' | 'onprem', mpcVersion: 'mpcv1' | 'mpcv2' | 'eddsaMpcv2'): string;
35
+ export declare function isBitgoMpcPubKey(key: string, mpcvVersion: 'mpcv1' | 'mpcv2'): boolean;
36
+ export declare function isBitgoEddsaMpcv2PubKey(key: string): boolean;
37
+ export declare function envRequiresBitgoPubGpgKeyConfig(env: EnvironmentName): boolean;
38
+ //# sourceMappingURL=bitgoPubKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitgoPubKeys.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/tss/bitgoPubKeys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B9B,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,eAAe,EACpB,UAAU,EAAE,OAAO,GAAG,QAAQ,EAC9B,UAAU,EAAE,OAAO,GAAG,OAAO,GAAG,YAAY,GAC3C,MAAM,CAwBR;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAErF;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAE7E"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.bitgoMpcGpgPubKeys = void 0;
7
+ exports.getBitgoMpcGpgPubKey = getBitgoMpcGpgPubKey;
8
+ exports.isBitgoMpcPubKey = isBitgoMpcPubKey;
9
+ exports.isBitgoEddsaMpcv2PubKey = isBitgoEddsaMpcv2PubKey;
10
+ exports.envRequiresBitgoPubGpgKeyConfig = envRequiresBitgoPubGpgKeyConfig;
11
+ const assert_1 = __importDefault(require("assert"));
12
+ exports.bitgoMpcGpgPubKeys = {
13
+ mpcv1: {
14
+ nitro: {
15
+ test: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxk8EYqEU5hMFK4EEAAoCAwQDdbAIZrsblEXIavyg2go6p9oG0SqWTgFsdHTc\nBhqdIS/WjQ8pj75q+vLqFtV9hlImYGInsIWh97fsigzB2owyzRhoc20gPGhz\nbUB0ZXN0LmJpdGdvLmNvbT7ChAQTEwgAFQUCYqEU5wILCQIVCAIWAAIbAwIe\nAQAhCRCJNRsIDGunexYhBHRL5D/8nRM3opQnXok1GwgMa6d7tg8A/24A9awq\nSCJx7RddiUzFHcKhVvvo3R5N7bHaOGP3TP79AP0TavF2WzhUXmZSjt3IK23O\n7/aknbijVeq52ghbWb1SwsJ1BBATCAAGBQJioRTnACEJEAWuA35KJgtgFiEE\nZttLPR0KcYvjgvJCBa4DfkomC2BsrwD/Z+43zOw+WpfPHxe+ypyVog5fnOKl\nXwleH6zDvqUWmWkA/iaHC6ullYkSG4Mv68k6qbtgR/pms/X7rkfa0QQFJy5p\nzlMEYqEU5hIFK4EEAAoCAwSsLqmfonjMF3o0nZ5JHvLpmfTA1RIVDsAEoRON\ntZA6rAA23pGl6s3Iyt4/fX9Adzoh3EElOjMsgi8Aj3dFpuqiAwEIB8J4BBgT\nCAAJBQJioRTnAhsMACEJEIk1GwgMa6d7FiEEdEvkP/ydEzeilCdeiTUbCAxr\np3vM7AD9GPp6HhYNEh2VVCDtFSt14Bni5FVM5icpVDo6w9ibvWAA/2Ti3Jv4\nIhIxl81/wqAgqigIblrz6vjtagr9/ykXQCW3\n=skCo\n-----END PGP PUBLIC KEY BLOCK-----\n',
16
+ prod: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxk8EY4m6ZBMFK4EEAAoCAwRSTwdXgiY+EBNj2JgNzisUygcVGVxp1Fv+pT64\nTsJ64y9Fr5h9ljqMIsmM0MWn9hczpmdAEHpkSg264wAPNcIWzQtCaXRHbyBO\naXRyb8KEBBMTCAA2BQJjibpmAgsJCRDHgvrWqx65HwIVCAIWAAIbAwIeARYh\nBLgnzI9Cn6UamNlJ2MeC+tarHrkfAABEwgD/W0+LXpHEMtSnShf7rSg7tQfG\n1Bb6be2Y1utd+auj/EcA/jGJO8MtejxcVGBpH/ZrODL+D0yS/I2YD3nveLtD\nD5z3wnUEEBMIACcFAmOJumkJEHuS1voAd5fJFiEE1Xxbfbbr5zLGqNJ7e5LW\n+gB3l8kAAPtmAP0WZnW/cgGCWzG1NYbAU1sJUwYdspM1WDLByjmo5JkCrQD+\nOK/6U8zvmQEcoOq0YXArhb+yWQDDHDEkLxRptB+KO8nOUwRjibpkEgUrgQQA\nCgIDBOUvn/oNKZnjEMtnAbB6hoos8vDf8mqyIbtGRjDil1T3t19q2Ke6xFFo\nJ+U2w4gtFxjDER8igas+ja4P3u7EFlMDAQgHwngEGBMIACoFAmOJumgJEMeC\n+tarHrkfAhsMFiEEuCfMj0KfpRqY2UnYx4L61qseuR8AANHPAP96lvwGT3A0\nNNz1WAr+Sn13mR3k8arfeqcvZ1FCmioMogD9GzJIaJlbAbdsRB4QnLkRcKJO\nnMH13PKq9qM6tg4UQFM=\n=SD0h\n-----END PGP PUBLIC KEY BLOCK-----\n',
17
+ },
18
+ onprem: {
19
+ test: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxk8EYqEU5hMFK4EEAAoCAwQDdbAIZrsblEXIavyg2go6p9oG0SqWTgFsdHTc\nBhqdIS/WjQ8pj75q+vLqFtV9hlImYGInsIWh97fsigzB2owyzRhoc20gPGhz\nbUB0ZXN0LmJpdGdvLmNvbT7ChAQTEwgAFQUCYqEU5wILCQIVCAIWAAIbAwIe\nAQAhCRCJNRsIDGunexYhBHRL5D/8nRM3opQnXok1GwgMa6d7tg8A/24A9awq\nSCJx7RddiUzFHcKhVvvo3R5N7bHaOGP3TP79AP0TavF2WzhUXmZSjt3IK23O\n7/aknbijVeq52ghbWb1SwsJ1BBATCAAGBQJioRTnACEJEAWuA35KJgtgFiEE\nZttLPR0KcYvjgvJCBa4DfkomC2BsrwD/Z+43zOw+WpfPHxe+ypyVog5fnOKl\nXwleH6zDvqUWmWkA/iaHC6ullYkSG4Mv68k6qbtgR/pms/X7rkfa0QQFJy5p\nzlMEYqEU5hIFK4EEAAoCAwSsLqmfonjMF3o0nZ5JHvLpmfTA1RIVDsAEoRON\ntZA6rAA23pGl6s3Iyt4/fX9Adzoh3EElOjMsgi8Aj3dFpuqiAwEIB8J4BBgT\nCAAJBQJioRTnAhsMACEJEIk1GwgMa6d7FiEEdEvkP/ydEzeilCdeiTUbCAxr\np3vM7AD9GPp6HhYNEh2VVCDtFSt14Bni5FVM5icpVDo6w9ibvWAA/2Ti3Jv4\nIhIxl81/wqAgqigIblrz6vjtagr9/ykXQCW3\n=skCo\n-----END PGP PUBLIC KEY BLOCK-----\n',
20
+ prod: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxk8EYqKKQRMFK4EEAAoCAwROWJbH3UCPdZTPEJXpPZcktwtDJwil4QHlXZEL\ncUbFETboq/cY22w+uG0IlRypdbo6+sDuaeg3dfja2ioq6TtJzQVCaXRHb8KE\nBBMTCAAVBQJioopDAgsJAhUIAhYAAhsDAh4BACEJEFXOMjZat5vMFiEEFYS/\nXvdht8iMtmyPVc4yNlq3m8ym1AD+P9clE3kj764YmrHDOcRPl/+tX2CoUD0r\nbdSYyJyfCwAA/As0F0UFbPzlxPSaZhV/jQxB+PsF4LViwDdh4V4pUtn9zlME\nYqKKQRIFK4EEAAoCAwQh5wBrOktqJe4G5sbSOdyw1rn1/1EvkO4hj8R4C3UA\nK7Apz599Xbi6jt3pD2rhduL1FnS5zhziYSBkko/B2Iw8AwEIB8J4BBgTCAAJ\nBQJioopEAhsMACEJEFXOMjZat5vMFiEEFYS/Xvdht8iMtmyPVc4yNlq3m8ym\nVwD8DwKddfZG+VgQtXrzh523Rwk0jl+EwdcV2h6AiKoV/3AA/jV+yS3+KTHk\n6Q89TGR2QftpckwcUTKON9puGe9+ulan\n=OqZu\n-----END PGP PUBLIC KEY BLOCK-----\n',
21
+ },
22
+ },
23
+ mpcv2: {
24
+ nitro: {
25
+ test: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxk8EZiF3CBMFK4EEAAoCAwQWD7Pa752fAl4z0PxfWVC05d89vfo80PyUQ3Er\nLXlhGLkik+NkAl/DBd8diN7i4kTvRoIo0xrHU+lZgdgt+ct5zRhoc20gPGhz\nbUB0ZXN0LmJpdGdvLmNvbT7ChAQTEwgANgUCZiF3CAILCQkQ5ycuezbbVOkC\nFQgCFgACGwMCHgEWIQRPr6GNiE7tRv0p4afnJy57NttU6QAAbAYA+wRvSLOa\ne0iREOx00HhYWP030GhN98BcZtehT9iTZMV8AP97Otkrtq6jby2f7PdEV7uv\nd4aikTa5BgnpKvl8yqL4ccKEBBATCAA2BQJmIXcKAgsJCRCZRBfch5MUcwIV\nCAIWAAIbAwIeARYhBAmXBS0TYEvmC/3L9JlEF9yHkxRzAABJ1wD+KyI1j9nu\nYWvDxwDB+JBGMt7mic77ajBOgaCabEZ0j1MA/2RCOiV2cOL3x1AOzosqofsh\niA1s9BpS14xAwrKJPwY+zlMEZiF3CBIFK4EEAAoCAwSgLs60kLzhHD3o1sDg\n0fQ/QHw6hgq9PQ5LvilUvuIGYDR79sPwrMuwy7wUcOQgJvwIOJHommDq5nj+\nKfgAtE6uAwEIB8KEBBgTCAA2BQJmIXcJAgsJCRDnJy57NttU6QIVCAIWAAIb\nDAIeARYhBE+voY2ITu1G/Snhp+cnLns221TpAADWmQD/bV9sBkwyYfYfJYTS\nqvTmubCesQDY5Ranv9wYvv7RiLQA/iwX6ZHwdbvQFVui0GrvV2iFaCHut1pn\nF4YCDqpUKidwzk8EZiF3CBMFK4EEAAoCAwTfm/HZxwvubP/rr2KOU88mkDL9\njcWjfQx1uFZ9mlIgMBV3++OgtkVE0eEe+lNWpwgksGOGrBWeQ3K0XRF0YlUp\nwsBKBBgTCAC8BQJmIXcJAgsJCRDnJy57NttU6QIVCAIWAAIbAgIeAYUgBBgT\nCAA2BQJmIXcJAgsJCRBrEMTq2oOYhgIVCAIWAAIbAgIeARYhBLFg1zIcwAmc\nRhGdOmsQxOrag5iGAAAxoAD/YNPhMmf3l4Qh7fprkmOjoU0CvFiiP+kcxTr9\nm9luVhUA/RvhIB4sqrAcSD7ZGVIQcEI14rdAFeok4Higz2cGf9R6FiEET6+h\njYhO7Ub9KeGn5ycuezbbVOkAAPnaAP0dYpya7EzvN5Q6RpIzqLFN9izyGt4Q\n6keZsvnVbW9qJAD9Fj7tAAMUbbstz/Kx9RY8qoIOFTuSwaeDXnJMrI9v84w=\n=uzVB\n-----END PGP PUBLIC KEY BLOCK-----\n',
26
+ prod: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxk8EafH3LxMFK4EEAAoCAwSVLDw8XVCpWSVGFLxzMEW56mzRbmZmiLWjIl9q\nOhmG/i0nkSCmxnowBmqHngdcYqE8kCai3gcsAkRTygEQrXRvzQtCaXRHbyBO\naXRyb8KEBBMTCAA2BYJp8fcvAgsJCZCVcRbVwItpswIVCAIWAAKbAwIeARYh\nBDBXFcEOXYUR5GMouZVxFtXAi2mzAACQeAD/avqhaGt3w1KL2fW1BYdyc47S\nhcY8YnpdX+O/30JOYREA/Avafk+pTXoSdp0cWGHx5bBdcPREYMnoBYN9uXb8\nnc1awoQEEBMIADYFgmnx9y8CCwkJkDATpt3yhw2zAhUIAhYAApsDAh4BFiEE\ncU0Mx7xoQtr1J81MMBOm3fKHDbMAALbnAQDn5WYQPpEgtgy+sz3A18EvTAGU\nTgkwsIQEBaXDgRgyBgD/X1CzZ0M0S5XtE98u/9pexQ5zwF9G5FdL7uN57oil\nROjOUwRp8fcvEgUrgQQACgIDBOWzubQ3/hHATx61NK994zAI3xfO3GYhoAOA\nxPfF4LIlClvGzcGP7tcFnC1vtGPZzn4oMx5x7lTuC+kRjgd7n6oDAQgHwoUE\nGBMIADcFgmnx9y8CCwkJkJVxFtXAi2mzAhUKAhYAA5sECAIeARYhBDBXFcEO\nXYUR5GMouZVxFtXAi2mzAAAuZQD/eAsCXRZY5gJEAvxQq+Fve9Bqte99RCCp\no89hf9J0NA0A/RtfiuXjnyShdpEsOizP7O60m4COdmUvbOr6HbqjUpJOzk8E\nafH3LxMFK4EEAAoCAwQuHCxnqr8X6w+7fhlb9qJo/19yxG2/qwuxgGjo+l51\nUrBCkZB/zyZqyjwYXiQSep7Myy1QEFIgWBVA6Hkj/9jPwsBKBBgTCAC8BYJp\n8fcvAgsJCZCVcRbVwItpswIVCAIWAAKbAgIeAYWgBBgTCAA2BYJp8fcvAgsJ\nCZBbFtkmrHDeSQIVCAIWAAKbAgIeARYhBAzGWoUe9fPldCwLdFsW2SascN5J\nAAAqZgD+NrwfkoIy+OSyvP99c3d5k0c7H6gKwkDGTdtlXOmcBDEA/3WBR8Vs\nY8pIaHkCJFrHBRy12QaLLVTmNxJ51hIy2RH4FiEEMFcVwQ5dhRHkYyi5lXEW\n1cCLabMAAPBHAP4pMkRWIQADeSPra8F9ulfSj0rAvz1R0kOxZttZ2BXblgD/\nctZOLemjoq+jAgLs/jlUym82g0FKCgkiL6eGwrhTH4U=\n=L+Kj\n-----END PGP PUBLIC KEY BLOCK-----\n',
27
+ },
28
+ onprem: {
29
+ test: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxk8EZiF3CBMFK4EEAAoCAwQWD7Pa752fAl4z0PxfWVC05d89vfo80PyUQ3Er\nLXlhGLkik+NkAl/DBd8diN7i4kTvRoIo0xrHU+lZgdgt+ct5zRhoc20gPGhz\nbUB0ZXN0LmJpdGdvLmNvbT7ChAQTEwgANgUCZiF3CAILCQkQ5ycuezbbVOkC\nFQgCFgACGwMCHgEWIQRPr6GNiE7tRv0p4afnJy57NttU6QAAbAYA+wRvSLOa\ne0iREOx00HhYWP030GhN98BcZtehT9iTZMV8AP97Otkrtq6jby2f7PdEV7uv\nd4aikTa5BgnpKvl8yqL4ccKEBBATCAA2BQJmIXcKAgsJCRCZRBfch5MUcwIV\nCAIWAAIbAwIeARYhBAmXBS0TYEvmC/3L9JlEF9yHkxRzAABJ1wD+KyI1j9nu\nYWvDxwDB+JBGMt7mic77ajBOgaCabEZ0j1MA/2RCOiV2cOL3x1AOzosqofsh\niA1s9BpS14xAwrKJPwY+zlMEZiF3CBIFK4EEAAoCAwSgLs60kLzhHD3o1sDg\n0fQ/QHw6hgq9PQ5LvilUvuIGYDR79sPwrMuwy7wUcOQgJvwIOJHommDq5nj+\nKfgAtE6uAwEIB8KEBBgTCAA2BQJmIXcJAgsJCRDnJy57NttU6QIVCAIWAAIb\nDAIeARYhBE+voY2ITu1G/Snhp+cnLns221TpAADWmQD/bV9sBkwyYfYfJYTS\nqvTmubCesQDY5Ranv9wYvv7RiLQA/iwX6ZHwdbvQFVui0GrvV2iFaCHut1pn\nF4YCDqpUKidwzk8EZiF3CBMFK4EEAAoCAwTfm/HZxwvubP/rr2KOU88mkDL9\njcWjfQx1uFZ9mlIgMBV3++OgtkVE0eEe+lNWpwgksGOGrBWeQ3K0XRF0YlUp\nwsBKBBgTCAC8BQJmIXcJAgsJCRDnJy57NttU6QIVCAIWAAIbAgIeAYUgBBgT\nCAA2BQJmIXcJAgsJCRBrEMTq2oOYhgIVCAIWAAIbAgIeARYhBLFg1zIcwAmc\nRhGdOmsQxOrag5iGAAAxoAD/YNPhMmf3l4Qh7fprkmOjoU0CvFiiP+kcxTr9\nm9luVhUA/RvhIB4sqrAcSD7ZGVIQcEI14rdAFeok4Higz2cGf9R6FiEET6+h\njYhO7Ub9KeGn5ycuezbbVOkAAPnaAP0dYpya7EzvN5Q6RpIzqLFN9izyGt4Q\n6keZsvnVbW9qJAD9Fj7tAAMUbbstz/Kx9RY8qoIOFTuSwaeDXnJMrI9v84w=\n=uzVB\n-----END PGP PUBLIC KEY BLOCK-----\n',
30
+ prod: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxk8EZmHyKBMFK4EEAAoCAwS+tBY/2P47G0mgYRhq90jK475f02f3f3W4VbKA\nSwd9s6aI5spk7GeYsjRvP6rBf4vFIjLj7Ty7K2V03rZPQc8bzQVCaXRHb8KE\nBBMTCAA2BQJmYfIpAgsJCRAKMB4ATA5V7QIVCAIWAAIbAwIeARYhBAIdflLB\nK4deHok+gQowHgBMDlXtAACRpAD/UUbTsFEkjt+CCJmVq2v5l6oocR9hXXkT\nzhRQKQIwSigA/RVvS2RsoZLkaL68GUHLy63XVHtG149pN3BYPwb63EcQwoQE\nEBMIADYFAmZh8ioCCwkJEFlh2DLM6IVNAhUIAhYAAhsDAh4BFiEEsb9f1VA0\n9rOLgFM+WWHYMszohU0AAFC8AP4wH0ndmzCSg2O/a+ZfqW2yA465BFvDM1ij\nvMtCJYSxzAD/RjcfDfkN4Ipjaa2LRuHxfHZbvgCgoOChsJLv4KQLTafOUwRm\nYfIoEgUrgQQACgIDBM+W01KEUaAm8a3hMBWG9EShyNrZxbtv9ryd8JIIxeEb\nEckLTVQvIer3YvDUyjeY/v83VCRdm6H5cahV92sydrIDAQgHwoQEGBMIADYF\nAmZh8ikCCwkJEAowHgBMDlXtAhUIAhYAAhsMAh4BFiEEAh1+UsErh14eiT6B\nCjAeAEwOVe0AAEcSAP9H96t/z9uKe9lAoq2d9Dt3Hrq9eM6sLQ2+cVblngP+\nDQD/dCqHYQzDdsuc9Y3HmWbhCK1Um6ewppkct1v5lmbaJ1bOTwRmYfIoEwUr\ngQQACgIDBJDIofWOLj/JkBFkZDh3a++LNEH8TBNlDZvU7tNfURXWApxV2VAb\nFBKYddN03Q1SBpMR0GkPl42rH7whYdeaEBHCwEoEGBMIALwFAmZh8ioCCwkJ\nEAowHgBMDlXtAhUIAhYAAhsCAh4BhSAEGBMIADYFAmZh8ioCCwkJEGAfBsMT\nFzVjAhUIAhYAAhsCAh4BFiEE2zAGHSaLnswqIvBrYB8GwxMXNWMAANroAP0f\ntFPumKFwQrCf7OMHQWsesrQYpKT6Z65VbewBoGaGigD/UkeeygTtlyzTV2YF\nNAjWAzaQtXWmmzRgnOj0IKub39MWIQQCHX5SwSuHXh6JPoEKMB4ATA5V7QAA\nTjMA/jDSVXJNblr/kSLNFTordgDjKP0nN1aElvFUFh/QEVT0AP9lmf2Fc/o7\nyYOGPPg4OvvU6odrTsuNgljvPqBlaCc2EA==\n=ZLkt\n-----END PGP PUBLIC KEY BLOCK-----\n',
31
+ },
32
+ },
33
+ eddsaMpcv2: {
34
+ nitro: {
35
+ test: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEae9GZBYJKwYBBAHaRw8BAQdASKNi5MpJRAvINROrOEYFGmJcYKzW3WM7\nkIPow2z0P/bNGGhzbSA8aHNtQHRlc3QuYml0Z28uY29tPsKEBBMWCgA2BYJp\n70Z8AgsJCZDqsFQZg1ASRAIVCgIWAAKbAwIeARYhBLHdfJtdM3kc4o7/wuqw\nVBmDUBJEAAB6WgD/XYI8GR6BZl32N4fu6VZiJ4Ean7ahPCZ+eKYuc8qnJeMB\nAIYqc0Tw9QcqvgrrZtqizUfbYzJDZjNY2R51LrszLFAOwoQEEBMIADYFgmnv\nRnwCCwkJkJsMk/69BgLvAhUKAhYAApsDAh4BFiEE1QB10qpW/55I4JfamwyT\n/r0GAu8AAGVbAP9l4Ffwk1MRYwMSgsXQdJIY8srwSrWaJqFavRZi2tl0iwD+\nJaJdr2DcPP6Pb/zq4kh7YnhjrEgHv2Ta4qTTJtEEq+bOOARp70ZkEgorBgEE\nAZdVAQUBAQdA7gOSvYvpCo8TmgPBHeTqlPDJpohcuPXYMRQ5g228WRgDAQgH\nwoUEGBYKADcFgmnvRnwCCwkJkOqwVBmDUBJEAhUKAhYAA5sECAIeARYhBLHd\nfJtdM3kc4o7/wuqwVBmDUBJEAADrrQD+N+V+lJLtaC3W6E1pHQhr9I+0FsdJ\n5+dQFcacKPls3k0A/0Jp6WA+BUcErw4ahkm4hkbbjbuwRLG9H4PSJfoFgccH\nzjMEae9GZBYJKwYBBAHaRw8BAQdAa3z6M5sueZ+yaWp6jQ5GCqo53k4dkGxg\npj1kB9XTYvTCwEoEGBYKALwFgmnvRnwCCwkJkOqwVBmDUBJEAhUKAhYAApsC\nAh4BhaAEGBYKADYFgmnvRnwCCwkJkA35LiZC8HBmAhUKAhYAApsCAh4BFiEE\n0Xa0VhKDLiNQVIiaDfkuJkLwcGYAAIODAQD+YEcJeL0Wi8jY5bdJXzE8lRkE\noikaQMn3pR6dPtL9SwD/eXJamcMAS6L59dawdD0gwCZn9GlKXmj6FFXEJdcd\nOQoWIQSx3XybXTN5HOKO/8LqsFQZg1ASRAAAiU4A/ji0YOT8ceTgDQn3a5P4\nRz9Fv+OUZxj9hMc8K1lB0N/FAQDgv6gXtzEnpGOjtiwPNuuRynnh9OeXzhgL\nPcQIOmW6DA==\n=FAug\n-----END PGP PUBLIC KEY BLOCK-----\n',
36
+ prod: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEae97HxYJKwYBBAHaRw8BAQdAkqY/gBSnHQ0bJv6Yik473lXLulCWdhW2\nyEjNq+YEf1bNC0JpdEdvIE5pdHJvwoQEExYKADYFgmnveyICCwkJkKw4yRSD\nFu2mAhUKAhYAApsDAh4BFiEEropjTBjLvFsKdb8ErDjJFIMW7aYAACjjAQC7\n5Sc9kjLdScHTbzsM4l90i9lyHFdTVbruSYvmZrHQAAEAusZMX2qpIJdOdtB7\nyiXeCEMxBm1PcdfdvDSGnUruRQ7ChAQQEwgANgWCae97IgILCQmQtCPvhcuG\nfK8CFQoCFgACmwMCHgEWIQSH0CHgaKWZ1TGhqs+0I++Fy4Z8rwAAM9QA/Ap9\n6YjnvCrv1nO0XT/mqUgSMirGzF6AIk//AfqC8kKHAPsH5I9fKTz8i8vWo6ES\nDSVilnIaEyV6sczxZ2drsLV0Ms44BGnvex8SCisGAQQBl1UBBQEBB0DzGVFB\n74c3y9lShX5DG8or1nJoyjpmb7+aZ710EO7YQwMBCAfChQQYFgoANwWCae97\nIgILCQmQrDjJFIMW7aYCFQoCFgADmwQIAh4BFiEEropjTBjLvFsKdb8ErDjJ\nFIMW7aYAAHthAQCPwozH6edvb4G6JRLFrX8i0rEqCje1yty9sXcwI6XQdwD/\nTm38FbU3qGPop4tePWBTEQYEhE5ams9MIWyvX5P0TA7OMwRp73sfFgkrBgEE\nAdpHDwEBB0AMfvO8IOn4Y9TEtx7IQeutQkgFKapa+jZlVcSmGm8yBsLASgQY\nFgoAvAWCae97IgILCQmQrDjJFIMW7aYCFQoCFgACmwICHgGFoAQYFgoANgWC\nae97IgILCQmQVobXdL8ULVQCFQoCFgACmwICHgEWIQQ+ApqjNkpq4BvXiLdW\nhtd0vxQtVAAAzL8A/2ZASI7HhAAYTmNXvTBRSkfGlgPrurY9cXnwvaUN3Mss\nAP9dCqsaPx6XY5z4GGpGMLVJx4gOu9kpLIonHnZVI6idDhYhBK6KY0wYy7xb\nCnW/BKw4yRSDFu2mAACiPAEA1lDVNbiG0nZFbgatcFF5xKd0urF0f9CpOfpB\ntrIGGbUBAOD7FkKLVXWGFYICYipOUzzGzpFiMNaJl1qbCpa9m1kN\n=R6r4\n-----END PGP PUBLIC KEY BLOCK-----\n',
37
+ },
38
+ onprem: {
39
+ test: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEad+QCxYJKwYBBAHaRw8BAQdAG0FBM/1JRvo7KlLvhp1Mwi6IWmV3V9xy\nZZcByg0fDQ3NGGhzbSA8aHNtQHRlc3QuYml0Z28uY29tPsKEBBMWCgA2BYJp\n35AMAgsJCZCuV6d9sal31QIVCgIWAAKbAwIeARYhBKSiXcKo4xMT5wwfh65X\np32xqXfVAAA2sAEAgmk543UetoUoOoOvEAhOrRBbF4h6VwcH9cyR9UGSwygA\n/2KJJadiAvaepqFZxyE77rFM7ZfqhRMsoAc2MfslvuQMwoQEEBMIADYFgmnf\nkA0CCwkJkN2vJwOOuE03AhUKAhYAApsDAh4BFiEEjMSQwTRbUtG1fSvR3a8n\nA464TTcAANNVAQD1RTu/bJmPBRvWbvuIiuT1WUxYsSuoXWwki1YImN1gMAD+\nOPU+v056hkdoD8Rcd8D+HhoNlJAbRbZWg/qjxr+S6lLOOARp35AMEgorBgEE\nAZdVAQUBAQdAgqwA9UhQGuseztLr2ZM189pBjrW6sAJ5m6icDYOWMHEDAQgH\nwoUEGBYKADcFgmnfkAwCCwkJkK5Xp32xqXfVAhUKAhYAA5sECAIeARYhBKSi\nXcKo4xMT5wwfh65Xp32xqXfVAAC4uwEAlkVzGDPJYETIV4pXYpCdaeGLBjm9\ny1sRb2nx9ET7m+4BANpb0vKKBrKZTAx/+rINgWoxKPnKPsycOE8bYHY3zKAN\nzjMEad+QDBYJKwYBBAHaRw8BAQdAanwKEY5QEAPafbhM5/BIJZRyLmyNpBTo\ntntTIq0nOt/CwEoEGBYKALwFgmnfkA0CCwkJkK5Xp32xqXfVAhUKAhYAApsC\nAh4BhaAEGBYKADYFgmnfkA0CCwkJkAuXAU6A6KYvAhUKAhYAApsCAh4BFiEE\neaGtxZYsjWFFYrD6C5cBToDopi8AAEp3AQCP4bCSYbhjNJfGnCCOq24DaozR\nUFg0hNlpfSA9NYZ3bwD/fdtV5m5a1QyvcyGEnv37l1H7UGbQlG1Zp8roqZh3\nqwMWIQSkol3CqOMTE+cMH4euV6d9sal31QAAMegA/i3sBuAwvrBsp8ozp7O2\nzQlIbjuvDBMomIXj1rRmgoOkAQDRqsQpAvITd0LMFN2dCqCBIGAeIqznFX0C\nyqvU0m8sCQ==\n=/R3k\n-----END PGP PUBLIC KEY BLOCK-----\n',
40
+ prod: '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEafDHRxYJKwYBBAHaRw8BAQdA4veo9hvphbH0gq+YFo8AwdtTR6SQN4tJ\nOWiA++eBqMvNBUJpdEdvwoQEExYKADYFgmnwx1UCCwkJkM4UKK9zJ+KPAhUK\nAhYAApsDAh4BFiEEB3Cyce1GqKAWbPdJzhQor3Mn4o8AAKS2AQDSo5ubHHyx\nvlAyRUgiyzVvupK8x1Jl/fPf54CHsWlIfgD+OIi8v+73cUoHTW3YxC3B9aPO\nqzAEV58w76dgZ2qeTgjChAQQEwgANgWCafDHVgILCQmQjcXpcUn3c9gCFQoC\nFgACmwMCHgEWIQS4vN2O383+kvuFGdaNxelxSfdz2AAAoVUA/A6NI89QMuvO\ngtX65BnmHP+D8vBJbwTwazDHpS0H62/SAPwJVaRXrRNkOTzc6bcAxg97sFBw\nhxJFzcFpAY0BaT5ods44BGnwx0gSCisGAQQBl1UBBQEBB0DZ18qpCkv6tiua\nCCf4Ct9Yfas7EilWG8LPNevujNh7EAMBCAfChQQYFgoANwWCafDHVgILCQmQ\nzhQor3Mn4o8CFQoCFgADmwQIAh4BFiEEB3Cyce1GqKAWbPdJzhQor3Mn4o8A\nAPBxAQD9MYbwZ6NxRabvF1lFMOAofAM4N8htqy6T0ZItfIt6KgEA9K3sycqT\nnWEFPCkJ1hl6QeCnp0qjGcbLxLRVGTWwxwrOMwRp8MdIFgkrBgEEAdpHDwEB\nB0DYMGRlbkTErdLqeeroxGghkYpoTNPHmgb5barxfnu2oMLASgQYFgoAvAWC\nafDHVgILCQmQzhQor3Mn4o8CFQoCFgACmwICHgGFoAQYFgoANgWCafDHVgIL\nCQmQU3o2I0o7U2YCFQoCFgACmwICHgEWIQRREfH7DgNjyYJM1c9TejYjSjtT\nZgAAa4ABAIPcFd0PzHQIQiMW/mvk57vQeOTSJmnY+/aXZ58ba3ykAP4oC5Mv\nRlTjUAmQdd67FX/Kmm49ayKKExrbUxMCHopGDBYhBAdwsnHtRqigFmz3Sc4U\nKK9zJ+KPAACetAEA0KpGMATxFZto3zinmPaHJAmc33RShm9mQJ7XkN8eIPMB\nAMK9J0qdW9jR7iOmJvLmULqUEAYWHAKJ1Ey9PWDSmUwM\n=REv+\n-----END PGP PUBLIC KEY BLOCK-----\n',
41
+ },
42
+ },
43
+ };
44
+ function getBitgoMpcGpgPubKey(env, pubKeyType, mpcVersion) {
45
+ (0, assert_1.default)(mpcVersion in exports.bitgoMpcGpgPubKeys, `Invalid mpcVersion in getBitgoMpcGpgPubKey, got: ${mpcVersion}, expected: mpcv1, mpcv2, or eddsaMpcv2`);
46
+ (0, assert_1.default)(pubKeyType in exports.bitgoMpcGpgPubKeys[mpcVersion], `Invalid pubKeyType in getBitgoMpcGpgPubKey, got: ${pubKeyType}, expected: nitro or onprem`);
47
+ if (env !== 'prod' && env !== 'test' && env !== 'staging' && env !== 'adminProd' && env !== 'adminTest') {
48
+ throw new Error('Invalid environment to get a BitGo MPC GPG public key');
49
+ }
50
+ if (env !== 'prod' && env !== 'adminProd') {
51
+ // default to test gpg keys if not in prod
52
+ env = 'test';
53
+ }
54
+ if (env === 'adminProd') {
55
+ env = 'prod';
56
+ }
57
+ if (pubKeyType !== 'nitro') {
58
+ // This will be the default key type
59
+ pubKeyType = 'onprem';
60
+ }
61
+ return exports.bitgoMpcGpgPubKeys[mpcVersion][pubKeyType][env];
62
+ }
63
+ function isBitgoMpcPubKey(key, mpcvVersion) {
64
+ return Object.values(exports.bitgoMpcGpgPubKeys[mpcvVersion]).some((envKeys) => Object.values(envKeys).includes(key));
65
+ }
66
+ function isBitgoEddsaMpcv2PubKey(key) {
67
+ return Object.values(exports.bitgoMpcGpgPubKeys.eddsaMpcv2).some((envKeys) => Object.values(envKeys).includes(key));
68
+ }
69
+ function envRequiresBitgoPubGpgKeyConfig(env) {
70
+ return env === 'prod' || env === 'test' || env === 'staging' || env === 'adminProd' || env === 'adminTest';
71
+ }
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0Z29QdWJLZXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3Rzcy9iaXRnb1B1YktleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBb0NBLG9EQTRCQztBQUVELDRDQUVDO0FBRUQsMERBRUM7QUFFRCwwRUFFQztBQTVFRCxvREFBNEI7QUFHZixRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxtMkJBQW0yQjtZQUN6MkIsSUFBSSxFQUFFLG0xQkFBbTFCO1NBQzExQjtRQUNELE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxtMkJBQW0yQjtZQUN6MkIsSUFBSSxFQUFFLHFxQkFBcXFCO1NBQzVxQjtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLDIyQ0FBMjJDO1lBQ2ozQyxJQUFJLEVBQUUsMjFDQUEyMUM7U0FDbDJDO1FBQ0QsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLDIyQ0FBMjJDO1lBQ2ozQyxJQUFJLEVBQUUsbTFDQUFtMUM7U0FDMTFDO0tBQ0Y7SUFDRCxVQUFVLEVBQUU7UUFDVixLQUFLLEVBQUU7WUFDTCxJQUFJLEVBQUUsNnZDQUE2dkM7WUFDbndDLElBQUksRUFBRSx1dUNBQXV1QztTQUM5dUM7UUFDRCxNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUUsNnZDQUE2dkM7WUFDbndDLElBQUksRUFBRSwrdENBQSt0QztTQUN0dUM7S0FDRjtDQUNGLENBQUM7QUFFRixTQUFnQixvQkFBb0IsQ0FDbEMsR0FBb0IsRUFDcEIsVUFBOEIsRUFDOUIsVUFBNEM7SUFFNUMsSUFBQSxnQkFBTSxFQUNKLFVBQVUsSUFBSSwwQkFBa0IsRUFDaEMsb0RBQW9ELFVBQVUseUNBQXlDLENBQ3hHLENBQUM7SUFDRixJQUFBLGdCQUFNLEVBQ0osVUFBVSxJQUFJLDBCQUFrQixDQUFDLFVBQVUsQ0FBQyxFQUM1QyxvREFBb0QsVUFBVSw2QkFBNkIsQ0FDNUYsQ0FBQztJQUNGLElBQUksR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLFdBQVcsSUFBSSxHQUFHLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDeEcsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxJQUFJLEdBQUcsS0FBSyxNQUFNLElBQUksR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQzFDLDBDQUEwQztRQUMxQyxHQUFHLEdBQUcsTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLEdBQUcsR0FBRyxNQUFNLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxVQUFVLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDM0Isb0NBQW9DO1FBQ3BDLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDeEIsQ0FBQztJQUNELE9BQU8sMEJBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEdBQVcsRUFBRSxXQUE4QjtJQUMxRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDaEgsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLEdBQVc7SUFDakQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLDBCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5RyxDQUFDO0FBRUQsU0FBZ0IsK0JBQStCLENBQUMsR0FBb0I7SUFDbEUsT0FBTyxHQUFHLEtBQUssTUFBTSxJQUFJLEdBQUcsS0FBSyxNQUFNLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssV0FBVyxJQUFJLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDN0csQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEVudmlyb25tZW50TmFtZSB9IGZyb20gJy4uL2Vudmlyb25tZW50cyc7XG5cbmV4cG9ydCBjb25zdCBiaXRnb01wY0dwZ1B1YktleXMgPSB7XG4gIG1wY3YxOiB7XG4gICAgbml0cm86IHtcbiAgICAgIHRlc3Q6ICctLS0tLUJFR0lOIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS1cXG5cXG54azhFWXFFVTVoTUZLNEVFQUFvQ0F3UURkYkFJWnJzYmxFWElhdnlnMmdvNnA5b0cwU3FXVGdGc2RIVGNcXG5CaHFkSVMvV2pROHBqNzVxK3ZMcUZ0VjlobEltWUdJbnNJV2g5N2ZzaWd6QjJvd3l6UmhvYzIwZ1BHaHpcXG5iVUIwWlhOMExtSnBkR2R2TG1OdmJUN0NoQVFURXdnQUZRVUNZcUVVNXdJTENRSVZDQUlXQUFJYkF3SWVcXG5BUUFoQ1JDSk5Sc0lER3VuZXhZaEJIUkw1RC84blJNM29wUW5Yb2sxR3dnTWE2ZDd0ZzhBLzI0QTlhd3FcXG5TQ0p4N1JkZGlVekZIY0toVnZ2bzNSNU43YkhhT0dQM1RQNzlBUDBUYXZGMld6aFVYbVpTanQzSUsyM09cXG43L2FrbmJpalZlcTUyZ2hiV2IxU3dzSjFCQkFUQ0FBR0JRSmlvUlRuQUNFSkVBV3VBMzVLSmd0Z0ZpRUVcXG5adHRMUFIwS2NZdmpndkpDQmE0RGZrb21DMkJzcndEL1orNDN6T3crV3BmUEh4ZSt5cHlWb2c1Zm5PS2xcXG5Yd2xlSDZ6RHZxVVdtV2tBL2lhSEM2dWxsWWtTRzRNdjY4azZxYnRnUi9wbXMvWDdya2ZhMFFRRkp5NXBcXG56bE1FWXFFVTVoSUZLNEVFQUFvQ0F3U3NMcW1mb25qTUYzbzBuWjVKSHZMcG1mVEExUklWRHNBRW9ST05cXG50WkE2ckFBMjNwR2w2czNJeXQ0L2ZYOUFkem9oM0VFbE9qTXNnaThBajNkRnB1cWlBd0VJQjhKNEJCZ1RcXG5DQUFKQlFKaW9SVG5BaHNNQUNFSkVJazFHd2dNYTZkN0ZpRUVkRXZrUC95ZEV6ZWlsQ2RlaVRVYkNBeHJcXG5wM3ZNN0FEOUdQcDZIaFlORWgyVlZDRHRGU3QxNEJuaTVGVk01aWNwVkRvNnc5aWJ2V0FBLzJUaTNKdjRcXG5JaEl4bDgxL3dxQWdxaWdJYmxyejZ2anRhZ3I5L3lrWFFDVzNcXG49c2tDb1xcbi0tLS0tRU5EIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS1cXG4nLFxuICAgICAgcHJvZDogJy0tLS0tQkVHSU4gUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLVxcblxcbnhrOEVZNG02WkJNRks0RUVBQW9DQXdSU1R3ZFhnaVkrRUJOajJKZ056aXNVeWdjVkdWeHAxRnYrcFQ2NFxcblRzSjY0eTlGcjVoOWxqcU1Jc21NME1XbjloY3pwbWRBRUhwa1NnMjY0d0FQTmNJV3pRdENhWFJIYnlCT1xcbmFYUnliOEtFQkJNVENBQTJCUUpqaWJwbUFnc0pDUkRIZ3ZyV3F4NjVId0lWQ0FJV0FBSWJBd0llQVJZaFxcbkJMZ256STlDbjZVYW1ObEoyTWVDK3Rhckhya2ZBQUJFd2dEL1cwK0xYcEhFTXRTblNoZjdyU2c3dFFmR1xcbjFCYjZiZTJZMXV0ZCthdWovRWNBL2pHSk84TXRlanhjVkdCcEgvWnJPREwrRDB5Uy9JMllEM252ZUx0RFxcbkQ1ejN3blVFRUJNSUFDY0ZBbU9KdW1rSkVIdVMxdm9BZDVmSkZpRUUxWHhiZmJicjV6TEdxTko3ZTVMV1xcbitnQjNsOGtBQVB0bUFQMFdablcvY2dHQ1d6RzFOWWJBVTFzSlV3WWRzcE0xV0RMQnlqbW81SmtDclFEK1xcbk9LLzZVOHp2bVFFY29PcTBZWEFyaGIreVdRRERIREVrTHhScHRCK0tPOG5PVXdSamlicGtFZ1VyZ1FRQVxcbkNnSURCT1V2bi9vTktabmpFTXRuQWJCNmhvb3M4dkRmOG1xeUlidEdSakRpbDFUM3QxOXEyS2U2eEZGb1xcbkorVTJ3NGd0RnhqREVSOGlnYXMramE0UDN1N0VGbE1EQVFnSHduZ0VHQk1JQUNvRkFtT0p1bWdKRU1lQ1xcbit0YXJIcmtmQWhzTUZpRUV1Q2ZNajBLZnBScVkyVW5ZeDRMNjFxc2V1UjhBQU5IUEFQOTZsdndHVDNBMFxcbk5OejFXQXIrU24xM21SM2s4YXJmZXFjdloxRkNtaW9Nb2dEOUd6SklhSmxiQWJkc1JCNFFuTGtSY0tKT1xcbm5NSDEzUEtxOXFNNnRnNFVRRk09XFxuPVNEMGhcXG4tLS0tLUVORCBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tXFxuJyxcbiAgICB9LFxuICAgIG9ucHJlbToge1xuICAgICAgdGVzdDogJy0tLS0tQkVHSU4gUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLVxcblxcbnhrOEVZcUVVNWhNRks0RUVBQW9DQXdRRGRiQUlacnNibEVYSWF2eWcyZ282cDlvRzBTcVdUZ0ZzZEhUY1xcbkJocWRJUy9XalE4cGo3NXErdkxxRnRWOWhsSW1ZR0luc0lXaDk3ZnNpZ3pCMm93eXpSaG9jMjBnUEdoelxcbmJVQjBaWE4wTG1KcGRHZHZMbU52YlQ3Q2hBUVRFd2dBRlFVQ1lxRVU1d0lMQ1FJVkNBSVdBQUliQXdJZVxcbkFRQWhDUkNKTlJzSURHdW5leFloQkhSTDVELzhuUk0zb3BRblhvazFHd2dNYTZkN3RnOEEvMjRBOWF3cVxcblNDSng3UmRkaVV6RkhjS2hWdnZvM1I1TjdiSGFPR1AzVFA3OUFQMFRhdkYyV3poVVhtWlNqdDNJSzIzT1xcbjcvYWtuYmlqVmVxNTJnaGJXYjFTd3NKMUJCQVRDQUFHQlFKaW9SVG5BQ0VKRUFXdUEzNUtKZ3RnRmlFRVxcblp0dExQUjBLY1l2amd2SkNCYTREZmtvbUMyQnNyd0QvWis0M3pPdytXcGZQSHhlK3lweVZvZzVmbk9LbFxcblh3bGVINnpEdnFVV21Xa0EvaWFIQzZ1bGxZa1NHNE12NjhrNnFidGdSL3Btcy9YN3JrZmEwUVFGSnk1cFxcbnpsTUVZcUVVNWhJRks0RUVBQW9DQXdTc0xxbWZvbmpNRjNvMG5aNUpIdkxwbWZUQTFSSVZEc0FFb1JPTlxcbnRaQTZyQUEyM3BHbDZzM0l5dDQvZlg5QWR6b2gzRUVsT2pNc2dpOEFqM2RGcHVxaUF3RUlCOEo0QkJnVFxcbkNBQUpCUUppb1JUbkFoc01BQ0VKRUlrMUd3Z01hNmQ3RmlFRWRFdmtQL3lkRXplaWxDZGVpVFViQ0F4clxcbnAzdk03QUQ5R1BwNkhoWU5FaDJWVkNEdEZTdDE0Qm5pNUZWTTVpY3BWRG82dzlpYnZXQUEvMlRpM0p2NFxcbkloSXhsODEvd3FBZ3FpZ0libHJ6NnZqdGFncjkveWtYUUNXM1xcbj1za0NvXFxuLS0tLS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLVxcbicsXG4gICAgICBwcm9kOiAnLS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tXFxuXFxueGs4RVlxS0tRUk1GSzRFRUFBb0NBd1JPV0piSDNVQ1BkWlRQRUpYcFBaY2t0d3RESndpbDRRSGxYWkVMXFxuY1ViRkVUYm9xL2NZMjJ3K3VHMElsUnlwZGJvNitzRHVhZWczZGZqYTJpb3E2VHRKelFWQ2FYUkhiOEtFXFxuQkJNVENBQVZCUUppb29wREFnc0pBaFVJQWhZQUFoc0RBaDRCQUNFSkVGWE9NalphdDV2TUZpRUVGWVMvXFxuWHZkaHQ4aU10bXlQVmM0eU5scTNtOHltMUFEK1A5Y2xFM2tqNzY0WW1ySERPY1JQbC8rdFgyQ29VRDByXFxuYmRTWXlKeWZDd0FBL0FzMEYwVUZiUHpseFBTYVpoVi9qUXhCK1BzRjRMVml3RGRoNFY0cFV0bjl6bE1FXFxuWXFLS1FSSUZLNEVFQUFvQ0F3UWg1d0JyT2t0cUplNEc1c2JTT2R5dzFybjEvMUV2a080aGo4UjRDM1VBXFxuSzdBcHo1OTlYYmk2anQzcEQycmhkdUwxRm5TNXpoemlZU0Jra28vQjJJdzhBd0VJQjhKNEJCZ1RDQUFKXFxuQlFKaW9vcEVBaHNNQUNFSkVGWE9NalphdDV2TUZpRUVGWVMvWHZkaHQ4aU10bXlQVmM0eU5scTNtOHltXFxuVndEOER3S2RkZlpHK1ZnUXRYcnpoNTIzUndrMGpsK0V3ZGNWMmg2QWlLb1YvM0FBL2pWK3lTMytLVEhrXFxuNlE4OVRHUjJRZnRwY2t3Y1VUS09OOXB1R2U5K3VsYW5cXG49T3FadVxcbi0tLS0tRU5EIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS1cXG4nLFxuICAgIH0sXG4gIH0sXG4gIG1wY3YyOiB7XG4gICAgbml0cm86IHtcbiAgICAgIHRlc3Q6ICctLS0tLUJFR0lOIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS1cXG5cXG54azhFWmlGM0NCTUZLNEVFQUFvQ0F3UVdEN1BhNzUyZkFsNHowUHhmV1ZDMDVkODl2Zm84MFB5VVEzRXJcXG5MWGxoR0xraWsrTmtBbC9EQmQ4ZGlON2k0a1R2Um9JbzB4ckhVK2xaZ2RndCtjdDV6UmhvYzIwZ1BHaHpcXG5iVUIwWlhOMExtSnBkR2R2TG1OdmJUN0NoQVFURXdnQU5nVUNaaUYzQ0FJTENRa1E1eWN1ZXpiYlZPa0NcXG5GUWdDRmdBQ0d3TUNIZ0VXSVFSUHI2R05pRTd0UnYwcDRhZm5KeTU3TnR0VTZRQUFiQVlBK3dSdlNMT2FcXG5lMGlSRU94MDBIaFlXUDAzMEdoTjk4QmNadGVoVDlpVFpNVjhBUDk3T3RrcnRxNmpieTJmN1BkRVY3dXZcXG5kNGFpa1RhNUJnbnBLdmw4eXFMNGNjS0VCQkFUQ0FBMkJRSm1JWGNLQWdzSkNSQ1pSQmZjaDVNVWN3SVZcXG5DQUlXQUFJYkF3SWVBUlloQkFtWEJTMFRZRXZtQy8zTDlKbEVGOXlIa3hSekFBQkoxd0QrS3lJMWo5bnVcXG5ZV3ZEeHdEQitKQkdNdDdtaWM3N2FqQk9nYUNhYkVaMGoxTUEvMlJDT2lWMmNPTDN4MUFPem9zcW9mc2hcXG5pQTFzOUJwUzE0eEF3cktKUHdZK3psTUVaaUYzQ0JJRks0RUVBQW9DQXdTZ0xzNjBrTHpoSEQzbzFzRGdcXG4wZlEvUUh3NmhncTlQUTVMdmlsVXZ1SUdZRFI3OXNQd3JNdXd5N3dVY09RZ0p2d0lPSkhvbW1EcTVuaitcXG5LZmdBdEU2dUF3RUlCOEtFQkJnVENBQTJCUUptSVhjSkFnc0pDUkRuSnk1N050dFU2UUlWQ0FJV0FBSWJcXG5EQUllQVJZaEJFK3ZvWTJJVHUxRy9TbmhwK2NuTG5zMjIxVHBBQURXbVFEL2JWOXNCa3d5WWZZZkpZVFNcXG5xdlRtdWJDZXNRRFk1UmFudjl3WXZ2N1JpTFFBL2l3WDZaSHdkYnZRRlZ1aTBHcnZWMmlGYUNIdXQxcG5cXG5GNFlDRHFwVUtpZHd6azhFWmlGM0NCTUZLNEVFQUFvQ0F3VGZtL0haeHd2dWJQL3JyMktPVTg4bWtETDlcXG5qY1dqZlF4MXVGWjltbElnTUJWMysrT2d0a1ZFMGVFZStsTldwd2drc0dPR3JCV2VRM0swWFJGMFlsVXBcXG53c0JLQkJnVENBQzhCUUptSVhjSkFnc0pDUkRuSnk1N050dFU2UUlWQ0FJV0FBSWJBZ0llQVlVZ0JCZ1RcXG5DQUEyQlFKbUlYY0pBZ3NKQ1JCckVNVHEyb09ZaGdJVkNBSVdBQUliQWdJZUFSWWhCTEZnMXpJY3dBbWNcXG5SaEdkT21zUXhPcmFnNWlHQUFBeG9BRC9ZTlBoTW1mM2w0UWg3ZnBya21Pam9VMEN2RmlpUCtrY3hUcjlcXG5tOWx1VmhVQS9SdmhJQjRzcXJBY1NEN1pHVklRY0VJMTRyZEFGZW9rNEhpZ3oyY0dmOVI2RmlFRVQ2K2hcXG5qWWhPN1ViOUtlR241eWN1ZXpiYlZPa0FBUG5hQVAwZFlweWE3RXp2TjVRNlJwSXpxTEZOOWl6eUd0NFFcXG42a2Vac3ZuVmJXOXFKQUQ5Rmo3dEFBTVViYnN0ei9LeDlSWThxb0lPRlR1U3dhZURYbkpNckk5djg0dz1cXG49dXpWQlxcbi0tLS0tRU5EIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS1cXG4nLFxuICAgICAgcHJvZDogJy0tLS0tQkVHSU4gUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLVxcblxcbnhrOEVhZkgzTHhNRks0RUVBQW9DQXdTVkxEdzhYVkNwV1NWR0ZMeHpNRVc1Nm16UmJtWm1pTFdqSWw5cVxcbk9obUcvaTBua1NDbXhub3dCbXFIbmdkY1lxRThrQ2FpM2djc0FrUlR5Z0VRclhSdnpRdENhWFJIYnlCT1xcbmFYUnliOEtFQkJNVENBQTJCWUpwOGZjdkFnc0pDWkNWY1JiVndJdHBzd0lWQ0FJV0FBS2JBd0llQVJZaFxcbkJEQlhGY0VPWFlVUjVHTW91WlZ4RnRYQWkybXpBQUNRZUFEL2F2cWhhR3QzdzFLTDJmVzFCWWR5YzQ3U1xcbmhjWThZbnBkWCtPLzMwSk9ZUkVBL0F2YWZrK3BUWG9TZHAwY1dHSHg1YkJkY1BSRVlNbm9CWU45dVhiOFxcbm5jMWF3b1FFRUJNSUFEWUZnbW54OXk4Q0N3a0prREFUcHQzeWh3MnpBaFVJQWhZQUFwc0RBaDRCRmlFRVxcbmNVME14N3hvUXRyMUo4MU1NQk9tM2ZLSERiTUFBTGJuQVFEbjVXWVFQcEVndGd5K3N6M0ExOEV2VEFHVVxcblRna3dzSVFFQmFYRGdSZ3lCZ0QvWDFDelowTTBTNVh0RTk4dS85cGV4UTV6d0Y5RzVGZEw3dU41N29pbFxcblJPak9Vd1JwOGZjdkVnVXJnUVFBQ2dJREJPV3p1YlEzL2hIQVR4NjFOSzk5NHpBSTN4Zk8zR1lob0FPQVxcbnhQZkY0TElsQ2x2R3pjR1A3dGNGbkMxdnRHUFp6bjRvTXg1eDdsVHVDK2tSamdkN242b0RBUWdId29VRVxcbkdCTUlBRGNGZ21ueDl5OENDd2tKa0pWeEZ0WEFpMm16QWhVS0FoWUFBNXNFQ0FJZUFSWWhCREJYRmNFT1xcblhZVVI1R01vdVpWeEZ0WEFpMm16QUFBdVpRRC9lQXNDWFJaWTVnSkVBdnhRcStGdmU5QnF0ZTk5UkNDcFxcbm84OWhmOUowTkEwQS9SdGZpdVhqbnlTaGRwRXNPaXpQN082MG00Q09kbVV2Yk9yNkhicWpVcEpPems4RVxcbmFmSDNMeE1GSzRFRUFBb0NBd1F1SEN4bnFyOFg2dys3ZmhsYjlxSm8vMTl5eEcyL3F3dXhnR2pvK2w1MVxcblVyQkNrWkIvenlacXlqd1lYaVFTZXA3TXl5MVFFRklnV0JWQTZIa2ovOWpQd3NCS0JCZ1RDQUM4QllKcFxcbjhmY3ZBZ3NKQ1pDVmNSYlZ3SXRwc3dJVkNBSVdBQUtiQWdJZUFZV2dCQmdUQ0FBMkJZSnA4ZmN2QWdzSlxcbkNaQmJGdGttckhEZVNRSVZDQUlXQUFLYkFnSWVBUlloQkF6R1dvVWU5ZlBsZEN3TGRGc1cyU2FzY041SlxcbkFBQXFaZ0QrTnJ3ZmtvSXkrT1N5dlA5OWMzZDVrMGM3SDZnS3drREdUZHRsWE9tY0JERUEvM1dCUjhWc1xcblk4cElhSGtDSkZySEJSeTEyUWFMTFZUbU54SjUxaEl5MlJINEZpRUVNRmNWd1E1ZGhSSGtZeWk1bFhFV1xcbjFjQ0xhYk1BQVBCSEFQNHBNa1JXSVFBRGVTUHJhOEY5dWxmU2owckF2ejFSMGtPeFp0dFoyQlhibGdEL1xcbmN0Wk9MZW1qb3ErakFnTHMvamxVeW04MmcwRktDZ2tpTDZlR3dyaFRINFU9XFxuPUwrS2pcXG4tLS0tLUVORCBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tXFxuJyxcbiAgICB9LFxuICAgIG9ucHJlbToge1xuICAgICAgdGVzdDogJy0tLS0tQkVHSU4gUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLVxcblxcbnhrOEVaaUYzQ0JNRks0RUVBQW9DQXdRV0Q3UGE3NTJmQWw0ejBQeGZXVkMwNWQ4OXZmbzgwUHlVUTNFclxcbkxYbGhHTGtpaytOa0FsL0RCZDhkaU43aTRrVHZSb0lvMHhySFUrbFpnZGd0K2N0NXpSaG9jMjBnUEdoelxcbmJVQjBaWE4wTG1KcGRHZHZMbU52YlQ3Q2hBUVRFd2dBTmdVQ1ppRjNDQUlMQ1FrUTV5Y3VlemJiVk9rQ1xcbkZRZ0NGZ0FDR3dNQ0hnRVdJUVJQcjZHTmlFN3RSdjBwNGFmbkp5NTdOdHRVNlFBQWJBWUErd1J2U0xPYVxcbmUwaVJFT3gwMEhoWVdQMDMwR2hOOThCY1p0ZWhUOWlUWk1WOEFQOTdPdGtydHE2amJ5MmY3UGRFVjd1dlxcbmQ0YWlrVGE1QmducEt2bDh5cUw0Y2NLRUJCQVRDQUEyQlFKbUlYY0tBZ3NKQ1JDWlJCZmNoNU1VY3dJVlxcbkNBSVdBQUliQXdJZUFSWWhCQW1YQlMwVFlFdm1DLzNMOUpsRUY5eUhreFJ6QUFCSjF3RCtLeUkxajludVxcbllXdkR4d0RCK0pCR010N21pYzc3YWpCT2dhQ2FiRVowajFNQS8yUkNPaVYyY09MM3gxQU96b3Nxb2ZzaFxcbmlBMXM5QnBTMTR4QXdyS0pQd1kremxNRVppRjNDQklGSzRFRUFBb0NBd1NnTHM2MGtMemhIRDNvMXNEZ1xcbjBmUS9RSHc2aGdxOVBRNUx2aWxVdnVJR1lEUjc5c1B3ck11d3k3d1VjT1FnSnZ3SU9KSG9tbURxNW5qK1xcbktmZ0F0RTZ1QXdFSUI4S0VCQmdUQ0FBMkJRSm1JWGNKQWdzSkNSRG5KeTU3TnR0VTZRSVZDQUlXQUFJYlxcbkRBSWVBUlloQkUrdm9ZMklUdTFHL1NuaHArY25MbnMyMjFUcEFBRFdtUUQvYlY5c0Jrd3lZZllmSllUU1xcbnF2VG11YkNlc1FEWTVSYW52OXdZdnY3UmlMUUEvaXdYNlpId2RidlFGVnVpMEdydlYyaUZhQ0h1dDFwblxcbkY0WUNEcXBVS2lkd3prOEVaaUYzQ0JNRks0RUVBQW9DQXdUZm0vSFp4d3Z1YlAvcnIyS09VODhta0RMOVxcbmpjV2pmUXgxdUZaOW1sSWdNQlYzKytPZ3RrVkUwZUVlK2xOV3B3Z2tzR09HckJXZVEzSzBYUkYwWWxVcFxcbndzQktCQmdUQ0FDOEJRSm1JWGNKQWdzSkNSRG5KeTU3TnR0VTZRSVZDQUlXQUFJYkFnSWVBWVVnQkJnVFxcbkNBQTJCUUptSVhjSkFnc0pDUkJyRU1UcTJvT1loZ0lWQ0FJV0FBSWJBZ0llQVJZaEJMRmcxekljd0FtY1xcblJoR2RPbXNReE9yYWc1aUdBQUF4b0FEL1lOUGhNbWYzbDRRaDdmcHJrbU9qb1UwQ3ZGaWlQK2tjeFRyOVxcbm05bHVWaFVBL1J2aElCNHNxckFjU0Q3WkdWSVFjRUkxNHJkQUZlb2s0SGlnejJjR2Y5UjZGaUVFVDYraFxcbmpZaE83VWI5S2VHbjV5Y3VlemJiVk9rQUFQbmFBUDBkWXB5YTdFenZONVE2UnBJenFMRk45aXp5R3Q0UVxcbjZrZVpzdm5WYlc5cUpBRDlGajd0QUFNVWJic3R6L0t4OVJZOHFvSU9GVHVTd2FlRFhuSk1ySTl2ODR3PVxcbj11elZCXFxuLS0tLS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLVxcbicsXG4gICAgICBwcm9kOiAnLS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tXFxuXFxueGs4RVptSHlLQk1GSzRFRUFBb0NBd1MrdEJZLzJQNDdHMG1nWVJocTkwaks0NzVmMDJmM2YzVzRWYktBXFxuU3dkOXM2YUk1c3BrN0dlWXNqUnZQNnJCZjR2RklqTGo3VHk3SzJWMDNyWlBRYzhielFWQ2FYUkhiOEtFXFxuQkJNVENBQTJCUUptWWZJcEFnc0pDUkFLTUI0QVRBNVY3UUlWQ0FJV0FBSWJBd0llQVJZaEJBSWRmbExCXFxuSzRkZUhvaytnUW93SGdCTURsWHRBQUNScEFEL1VVYlRzRkVranQrQ0NKbVZxMnY1bDZvb2NSOWhYWGtUXFxuemhSUUtRSXdTaWdBL1JWdlMyUnNvWkxrYUw2OEdVSEx5NjNYVkh0RzE0OXBOM0JZUHdiNjNFY1F3b1FFXFxuRUJNSUFEWUZBbVpoOGlvQ0N3a0pFRmxoMkRMTTZJVk5BaFVJQWhZQUFoc0RBaDRCRmlFRXNiOWYxVkEwXFxuOXJPTGdGTStXV0hZTXN6b2hVMEFBRkM4QVA0d0gwbmRtekNTZzJPL2ErWmZxVzJ5QTQ2NUJGdkRNMWlqXFxudk10Q0pZU3h6QUQvUmpjZkRma040SXBqYWEyTFJ1SHhmSFpidmdDZ29PQ2hzSkx2NEtRTFRhZk9Vd1JtXFxuWWZJb0VnVXJnUVFBQ2dJREJNK1cwMUtFVWFBbThhM2hNQldHOUVTaHlOclp4YnR2OXJ5ZDhKSUl4ZUViXFxuRWNrTFRWUXZJZXIzWXZEVXlqZVkvdjgzVkNSZG02SDVjYWhWOTJzeWRySURBUWdId29RRUdCTUlBRFlGXFxuQW1aaDhpa0NDd2tKRUFvd0hnQk1EbFh0QWhVSUFoWUFBaHNNQWg0QkZpRUVBaDErVXNFcmgxNGVpVDZCXFxuQ2pBZUFFd09WZTBBQUVjU0FQOUg5NnQvejl1S2U5bEFvcTJkOUR0M0hycTllTTZzTFEyK2NWYmxuZ1ArXFxuRFFEL2RDcUhZUXpEZHN1YzlZM0htV2JoQ0sxVW02ZXdwcGtjdDF2NWxtYmFKMWJPVHdSbVlmSW9Fd1VyXFxuZ1FRQUNnSURCSkRJb2ZXT0xqL0prQkZrWkRoM2ErK0xORUg4VEJObERadlU3dE5mVVJYV0FweFYyVkFiXFxuRkJLWWRkTjAzUTFTQnBNUjBHa1BsNDJySDd3aFlkZWFFQkhDd0VvRUdCTUlBTHdGQW1aaDhpb0NDd2tKXFxuRUFvd0hnQk1EbFh0QWhVSUFoWUFBaHNDQWg0QmhTQUVHQk1JQURZRkFtWmg4aW9DQ3drSkVHQWZCc01UXFxuRnpWakFoVUlBaFlBQWhzQ0FoNEJGaUVFMnpBR0hTYUxuc3dxSXZCcllCOEd3eE1YTldNQUFOcm9BUDBmXFxudEZQdW1LRndRckNmN09NSFFXc2VzclFZcEtUNlo2NVZiZXdCb0dhR2lnRC9Va2VleWdUdGx5elRWMllGXFxuTkFqV0F6YVF0WFdtbXpSZ25PajBJS3ViMzlNV0lRUUNIWDVTd1N1SFhoNkpQb0VLTUI0QVRBNVY3UUFBXFxuVGpNQS9qRFNWWEpOYmxyL2tTTE5GVG9yZGdEaktQMG5OMWFFbHZGVUZoL1FFVlQwQVA5bG1mMkZjL283XFxueVlPR1BQZzRPdnZVNm9kclRzdU5nbGp2UHFCbGFDYzJFQT09XFxuPVpMa3RcXG4tLS0tLUVORCBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tXFxuJyxcbiAgICB9LFxuICB9LFxuICBlZGRzYU1wY3YyOiB7XG4gICAgbml0cm86IHtcbiAgICAgIHRlc3Q6ICctLS0tLUJFR0lOIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS1cXG5cXG54ak1FYWU5R1pCWUpLd1lCQkFIYVJ3OEJBUWRBU0tOaTVNcEpSQXZJTlJPck9FWUZHbUpjWUt6VzNXTTdcXG5rSVBvdzJ6MFAvYk5HR2h6YlNBOGFITnRRSFJsYzNRdVltbDBaMjh1WTI5dFBzS0VCQk1XQ2dBMkJZSnBcXG43MFo4QWdzSkNaRHFzRlFaZzFBU1JBSVZDZ0lXQUFLYkF3SWVBUlloQkxIZGZKdGRNM2tjNG83L3d1cXdcXG5WQm1EVUJKRUFBQjZXZ0QvWFlJOEdSNkJabDMyTjRmdTZWWmlKNEVhbjdhaFBDWitlS1l1YzhxbkplTUJcXG5BSVlxYzBUdzlRY3F2Z3JyWnRxaXpVZmJZekpEWmpOWTJSNTFMcnN6TEZBT3dvUUVFQk1JQURZRmdtbnZcXG5SbndDQ3drSmtKc01rLzY5QmdMdkFoVUtBaFlBQXBzREFoNEJGaUVFMVFCMTBxcFcvNTVJNEpmYW13eVRcXG4vcjBHQXU4QUFHVmJBUDlsNEZmd2sxTVJZd01TZ3NYUWRKSVk4c3J3U3JXYUpxRmF2UlppMnRsMGl3RCtcXG5KYUpkcjJEY1BQNlBiL3pxNGtoN1luaGpyRWdIdjJUYTRxVFRKdEVFcStiT09BUnA3MFprRWdvckJnRUVcXG5BWmRWQVFVQkFRZEE3Z09Tdll2cENvOFRtZ1BCSGVUcWxQREpwb2hjdVBYWU1SUTVnMjI4V1JnREFRZ0hcXG53b1VFR0JZS0FEY0ZnbW52Um53Q0N3a0prT3F3VkJtRFVCSkVBaFVLQWhZQUE1c0VDQUllQVJZaEJMSGRcXG5mSnRkTTNrYzRvNy93dXF3VkJtRFVCSkVBQURyclFEK04rVitsSkx0YUMzVzZFMXBIUWhyOUkrMEZzZEpcXG41K2RRRmNhY0tQbHMzazBBLzBKcDZXQStCVWNFcnc0YWhrbTRoa2JiamJ1d1JMRzlINFBTSmZvRmdjY0hcXG56ak1FYWU5R1pCWUpLd1lCQkFIYVJ3OEJBUWRBYTN6Nk01c3VlWit5YVdwNmpRNUdDcW81M2s0ZGtHeGdcXG5wajFrQjlYVFl2VEN3RW9FR0JZS0FMd0ZnbW52Um53Q0N3a0prT3F3VkJtRFVCSkVBaFVLQWhZQUFwc0NcXG5BaDRCaGFBRUdCWUtBRFlGZ21udlJud0NDd2tKa0EzNUxpWkM4SEJtQWhVS0FoWUFBcHNDQWg0QkZpRUVcXG4wWGEwVmhLRExpTlFWSWlhRGZrdUprTHdjR1lBQUlPREFRRCtZRWNKZUwwV2k4alk1YmRKWHpFOGxSa0VcXG5vaWthUU1uM3BSNmRQdEw5U3dEL2VYSmFtY01BUzZMNTlkYXdkRDBnd0NabjlHbEtYbWo2RkZYRUpkY2RcXG5PUW9XSVFTeDNYeWJYVE41SE9LTy84THFzRlFaZzFBU1JBQUFpVTRBL2ppMFlPVDhjZVRnRFFuM2E1UDRcXG5SejlGditPVVp4ajloTWM4SzFsQjBOL0ZBUURndjZnWHR6RW5wR09qdGl3UE51dVJ5bm5oOU9lWHpoZ0xcXG5QY1FJT21XNkRBPT1cXG49RkF1Z1xcbi0tLS0tRU5EIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS1cXG4nLFxuICAgICAgcHJvZDogJy0tLS0tQkVHSU4gUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLVxcblxcbnhqTUVhZTk3SHhZSkt3WUJCQUhhUnc4QkFRZEFrcVkvZ0JTbkhRMGJKdjZZaWs0NzNsWEx1bENXZGhXMlxcbnlFak5xK1lFZjFiTkMwSnBkRWR2SUU1cGRISnZ3b1FFRXhZS0FEWUZnbW52ZXlJQ0N3a0prS3c0eVJTRFxcbkZ1Mm1BaFVLQWhZQUFwc0RBaDRCRmlFRXJvcGpUQmpMdkZzS2RiOEVyRGpKRklNVzdhWUFBQ2pqQVFDN1xcbjVTYzlrakxkU2NIVGJ6c000bDkwaTlseUhGZFRWYnJ1U1l2bVpySFFBQUVBdXNaTVgycXBJSmRPZHRCN1xcbnlpWGVDRU14Qm0xUGNkZmR2RFNHblVydVJRN0NoQVFRRXdnQU5nV0NhZTk3SWdJTENRbVF0Q1B2aGN1R1xcbmZLOENGUW9DRmdBQ213TUNIZ0VXSVFTSDBDSGdhS1daMVRHaHFzKzBJKytGeTRaOHJ3QUFNOVFBL0FwOVxcbjZZam52Q3J2MW5PMFhUL21xVWdTTWlyR3pGNkFJay8vQWZxQzhrS0hBUHNINUk5ZktUejhpOHZXbzZFU1xcbkRTVmlsbklhRXlWNnNjenhaMmRyc0xWME1zNDRCR252ZXg4U0Npc0dBUVFCbDFVQkJRRUJCMER6R1ZGQlxcbjc0YzN5OWxTaFg1REc4b3IxbkpveWpwbWI3K2FaNzEwRU83WVF3TUJDQWZDaFFRWUZnb0FOd1dDYWU5N1xcbklnSUxDUW1RckRqSkZJTVc3YVlDRlFvQ0ZnQURtd1FJQWg0QkZpRUVyb3BqVEJqTHZGc0tkYjhFckRqSlxcbkZJTVc3YVlBQUh0aEFRQ1B3b3pINmVkdmI0RzZKUkxGclg4aTByRXFDamUxeXR5OXNYY3dJNlhRZHdEL1xcblRtMzhGYlUzcUdQb3A0dGVQV0JURVFZRWhFNWFtczlNSVd5dlg1UDBUQTdPTXdScDczc2ZGZ2tyQmdFRVxcbkFkcEhEd0VCQjBBTWZ2TzhJT240WTlURXR4N0lRZXV0UWtnRkthcGEralpsVmNTbUdtOHlCc0xBU2dRWVxcbkZnb0F2QVdDYWU5N0lnSUxDUW1RckRqSkZJTVc3YVlDRlFvQ0ZnQUNtd0lDSGdHRm9BUVlGZ29BTmdXQ1xcbmFlOTdJZ0lMQ1FtUVZvYlhkTDhVTFZRQ0ZRb0NGZ0FDbXdJQ0hnRVdJUVErQXBxak5rcHE0QnZYaUxkV1xcbmh0ZDB2eFF0VkFBQXpMOEEvMlpBU0k3SGhBQVlUbU5YdlRCUlNrZkdsZ1BydXJZOWNYbnd2YVVOM01zc1xcbkFQOWRDcXNhUHg2WFk1ejRHR3BHTUxWSng0Z091OWtwTElvbkhuWlZJNmlkRGhZaEJLNktZMHdZeTd4YlxcbkNuVy9CS3c0eVJTREZ1Mm1BQUNpUEFFQTFsRFZOYmlHMG5aRmJnYXRjRkY1eEtkMHVyRjBmOUNwT2ZwQlxcbnRySUdHYlVCQU9EN0ZrS0xWWFdHRllJQ1lpcE9VenpHenBGaU1OYUpsMXFiQ3BhOW0xa05cXG49UjZyNFxcbi0tLS0tRU5EIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS1cXG4nLFxuICAgIH0sXG4gICAgb25wcmVtOiB7XG4gICAgICB0ZXN0OiAnLS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tXFxuXFxueGpNRWFkK1FDeFlKS3dZQkJBSGFSdzhCQVFkQUcwRkJNLzFKUnZvN0tsTHZocDFNd2k2SVdtVjNWOXh5XFxuWlpjQnlnMGZEUTNOR0doemJTQThhSE50UUhSbGMzUXVZbWwwWjI4dVkyOXRQc0tFQkJNV0NnQTJCWUpwXFxuMzVBTUFnc0pDWkN1VjZkOXNhbDMxUUlWQ2dJV0FBS2JBd0llQVJZaEJLU2lYY0tvNHhNVDV3d2ZoNjVYXFxucDMyeHFYZlZBQUEyc0FFQWdtazU0M1VldG9Vb09vT3ZFQWhPclJCYkY0aDZWd2NIOWN5UjlVR1N3eWdBXFxuLzJLSkphZGlBdmFlcHFGWnh5RTc3ckZNN1pmcWhSTXNvQWMyTWZzbHZ1UU13b1FFRUJNSUFEWUZnbW5mXFxua0EwQ0N3a0prTjJ2SndPT3VFMDNBaFVLQWhZQUFwc0RBaDRCRmlFRWpNU1F3VFJiVXRHMWZTdlIzYThuXFxuQTQ2NFRUY0FBTk5WQVFEMVJUdS9iSm1QQlJ2V2J2dUlpdVQxV1V4WXNTdW9YV3draTFZSW1OMWdNQUQrXFxuT1BVK3YwNTZoa2RvRDhSY2Q4RCtIaG9ObEpBYlJiWldnL3FqeHIrUzZsTE9PQVJwMzVBTUVnb3JCZ0VFXFxuQVpkVkFRVUJBUWRBZ3F3QTlVaFFHdXNlenRMcjJaTTE4OXBCanJXNnNBSjVtNmljRFlPV01IRURBUWdIXFxud29VRUdCWUtBRGNGZ21uZmtBd0NDd2tKa0s1WHAzMnhxWGZWQWhVS0FoWUFBNXNFQ0FJZUFSWWhCS1NpXFxuWGNLbzR4TVQ1d3dmaDY1WHAzMnhxWGZWQUFDNHV3RUFsa1Z6R0RQSllFVElWNHBYWXBDZGFlR0xCam05XFxueTFzUmIybng5RVQ3bSs0QkFOcGIwdktLQnJLWlRBeC8rcklOZ1dveEtQbktQc3ljT0U4YllIWTN6S0FOXFxuempNRWFkK1FEQllKS3dZQkJBSGFSdzhCQVFkQWFud0tFWTVRRUFQYWZiaE01L0JJSlpSeUxteU5wQlRvXFxudG50VElxMG5PdC9Dd0VvRUdCWUtBTHdGZ21uZmtBMENDd2tKa0s1WHAzMnhxWGZWQWhVS0FoWUFBcHNDXFxuQWg0QmhhQUVHQllLQURZRmdtbmZrQTBDQ3drSmtBdVhBVTZBNktZdkFoVUtBaFlBQXBzQ0FoNEJGaUVFXFxuZWFHdHhaWXNqV0ZGWXJENkM1Y0JUb0RvcGk4QUFFcDNBUUNQNGJDU1liaGpOSmZHbkNDT3EyNERhb3pSXFxuVUZnMGhObHBmU0E5TllaM2J3RC9mZHRWNW01YTFReXZjeUdFbnYzN2wxSDdVR2JRbEcxWnA4cm9xWmgzXFxucXdNV0lRU2tvbDNDcU9NVEUrY01INGV1VjZkOXNhbDMxUUFBTWVnQS9pM3NCdUF3dnJCc3A4b3pwN08yXFxuelFsSWJqdXZEQk1vbUlYajFyUm1nb09rQVFEUnFzUXBBdklUZDBMTUZOMmRDcUNCSUdBZUlxem5GWDBDXFxueXF2VTBtOHNDUT09XFxuPS9SM2tcXG4tLS0tLUVORCBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tXFxuJyxcbiAgICAgIHByb2Q6ICctLS0tLUJFR0lOIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS1cXG5cXG54ak1FYWZESFJ4WUpLd1lCQkFIYVJ3OEJBUWRBNHZlbzlodnBoYkgwZ3ErWUZvOEF3ZHRUUjZTUU40dEpcXG5PV2lBKytlQnFNdk5CVUpwZEVkdndvUUVFeFlLQURZRmdtbnd4MVVDQ3drSmtNNFVLSzl6SitLUEFoVUtcXG5BaFlBQXBzREFoNEJGaUVFQjNDeWNlMUdxS0FXYlBkSnpoUW9yM01uNG84QUFLUzJBUURTbzV1YkhIeXhcXG52bEF5UlVnaXl6VnZ1cEs4eDFKbC9mUGY1NENIc1dsSWZnRCtPSWk4dis3M2NVb0hUVzNZeEMzQjlhUE9cXG5xekFFVjU4dzc2ZGdaMnFlVGdqQ2hBUVFFd2dBTmdXQ2FmREhWZ0lMQ1FtUWpjWHBjVW4zYzlnQ0ZRb0NcXG5GZ0FDbXdNQ0hnRVdJUVM0dk4yTzM4MytrdnVGR2RhTnhlbHhTZmR6MkFBQW9WVUEvQTZOSTg5UU11dk9cXG5ndFg2NUJubUhQK0Q4dkJKYndUd2F6REhwUzBINjIvU0FQd0pWYVJYclJOa09UemM2YmNBeGc5N3NGQndcXG5oeEpGemNGcEFZMEJhVDVvZHM0NEJHbnd4MGdTQ2lzR0FRUUJsMVVCQlFFQkIwRFoxOHFwQ2t2NnRpdWFcXG5DQ2Y0Q3Q5WWZhczdFaWxXRzhMUE5ldnVqTmg3RUFNQkNBZkNoUVFZRmdvQU53V0NhZkRIVmdJTENRbVFcXG56aFFvcjNNbjRvOENGUW9DRmdBRG13UUlBaDRCRmlFRUIzQ3ljZTFHcUtBV2JQZEp6aFFvcjNNbjRvOEFcXG5BUEJ4QVFEOU1ZYndaNk54UmFidkYxbEZNT0FvZkFNNE44aHRxeTZUMFpJdGZJdDZLZ0VBOUszc3ljcVRcXG5uV0VGUENrSjFobDZRZUNucDBxakdjYkx4TFJWR1RXd3h3ck9Nd1JwOE1kSUZna3JCZ0VFQWRwSER3RUJcXG5CMERZTUdSbGJrVEVyZExxZWVyb3hHZ2hrWXBvVE5QSG1nYjViYXJ4Zm51Mm9NTEFTZ1FZRmdvQXZBV0NcXG5hZkRIVmdJTENRbVF6aFFvcjNNbjRvOENGUW9DRmdBQ213SUNIZ0dGb0FRWUZnb0FOZ1dDYWZESFZnSUxcXG5DUW1RVTNvMkkwbzdVMllDRlFvQ0ZnQUNtd0lDSGdFV0lRUlJFZkg3RGdOanlZSk0xYzlUZWpZalNqdFRcXG5aZ0FBYTRBQkFJUGNGZDBQekhRSVFpTVcvbXZrNTd2UWVPVFNKbW5ZKy9hWFo1OGJhM3lrQVA0b0M1TXZcXG5SbFRqVUFtUWRkNjdGWC9LbW00OWF5S0tFeHJiVXhNQ0hvcEdEQlloQkFkd3NuSHRScWlnRm16M1NjNFVcXG5LSzl6SitLUEFBQ2V0QUVBMEtwR01BVHhGWnRvM3ppbm1QYUhKQW1jMzNSU2htOW1RSjdYa044ZUlQTUJcXG5BTUs5SjBxZFc5alI3aU9tSnZMbVVMcVVFQVlXSEFLSjFFeTlQV0RTbVV3TVxcbj1SRXYrXFxuLS0tLS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLVxcbicsXG4gICAgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCaXRnb01wY0dwZ1B1YktleShcbiAgZW52OiBFbnZpcm9ubWVudE5hbWUsXG4gIHB1YktleVR5cGU6ICduaXRybycgfCAnb25wcmVtJyxcbiAgbXBjVmVyc2lvbjogJ21wY3YxJyB8ICdtcGN2MicgfCAnZWRkc2FNcGN2Midcbik6IHN0cmluZyB7XG4gIGFzc2VydChcbiAgICBtcGNWZXJzaW9uIGluIGJpdGdvTXBjR3BnUHViS2V5cyxcbiAgICBgSW52YWxpZCBtcGNWZXJzaW9uIGluIGdldEJpdGdvTXBjR3BnUHViS2V5LCBnb3Q6ICR7bXBjVmVyc2lvbn0sIGV4cGVjdGVkOiBtcGN2MSwgbXBjdjIsIG9yIGVkZHNhTXBjdjJgXG4gICk7XG4gIGFzc2VydChcbiAgICBwdWJLZXlUeXBlIGluIGJpdGdvTXBjR3BnUHViS2V5c1ttcGNWZXJzaW9uXSxcbiAgICBgSW52YWxpZCBwdWJLZXlUeXBlIGluIGdldEJpdGdvTXBjR3BnUHViS2V5LCBnb3Q6ICR7cHViS2V5VHlwZX0sIGV4cGVjdGVkOiBuaXRybyBvciBvbnByZW1gXG4gICk7XG4gIGlmIChlbnYgIT09ICdwcm9kJyAmJiBlbnYgIT09ICd0ZXN0JyAmJiBlbnYgIT09ICdzdGFnaW5nJyAmJiBlbnYgIT09ICdhZG1pblByb2QnICYmIGVudiAhPT0gJ2FkbWluVGVzdCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZW52aXJvbm1lbnQgdG8gZ2V0IGEgQml0R28gTVBDIEdQRyBwdWJsaWMga2V5Jyk7XG4gIH1cbiAgaWYgKGVudiAhPT0gJ3Byb2QnICYmIGVudiAhPT0gJ2FkbWluUHJvZCcpIHtcbiAgICAvLyBkZWZhdWx0IHRvIHRlc3QgZ3BnIGtleXMgaWYgbm90IGluIHByb2RcbiAgICBlbnYgPSAndGVzdCc7XG4gIH1cbiAgaWYgKGVudiA9PT0gJ2FkbWluUHJvZCcpIHtcbiAgICBlbnYgPSAncHJvZCc7XG4gIH1cbiAgaWYgKHB1YktleVR5cGUgIT09ICduaXRybycpIHtcbiAgICAvLyBUaGlzIHdpbGwgYmUgdGhlIGRlZmF1bHQga2V5IHR5cGVcbiAgICBwdWJLZXlUeXBlID0gJ29ucHJlbSc7XG4gIH1cbiAgcmV0dXJuIGJpdGdvTXBjR3BnUHViS2V5c1ttcGNWZXJzaW9uXVtwdWJLZXlUeXBlXVtlbnZdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCaXRnb01wY1B1YktleShrZXk6IHN0cmluZywgbXBjdlZlcnNpb246ICdtcGN2MScgfCAnbXBjdjInKTogYm9vbGVhbiB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKGJpdGdvTXBjR3BnUHViS2V5c1ttcGN2VmVyc2lvbl0pLnNvbWUoKGVudktleXMpID0+IE9iamVjdC52YWx1ZXMoZW52S2V5cykuaW5jbHVkZXMoa2V5KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0JpdGdvRWRkc2FNcGN2MlB1YktleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhiaXRnb01wY0dwZ1B1YktleXMuZWRkc2FNcGN2Mikuc29tZSgoZW52S2V5cykgPT4gT2JqZWN0LnZhbHVlcyhlbnZLZXlzKS5pbmNsdWRlcyhrZXkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVudlJlcXVpcmVzQml0Z29QdWJHcGdLZXlDb25maWcoZW52OiBFbnZpcm9ubWVudE5hbWUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVudiA9PT0gJ3Byb2QnIHx8IGVudiA9PT0gJ3Rlc3QnIHx8IGVudiA9PT0gJ3N0YWdpbmcnIHx8IGVudiA9PT0gJ2FkbWluUHJvZCcgfHwgZW52ID09PSAnYWRtaW5UZXN0Jztcbn1cbiJdfQ==
@@ -1,16 +1,20 @@
1
1
  import openpgp from 'openpgp';
2
+ import { MPCv2SigningState } from '@bitgo/public-types';
2
3
  import { BitGoBase } from '../bitgoBase';
3
4
  import { TxRequestChallengeResponse } from './types';
4
- import { RequestType, TxRequest, SignatureShareRecord, CommitmentShareRecord, EncryptedSignerShareRecord, ExchangeCommitmentResponse } from '../utils';
5
+ import { RequestType, TxRequest, SignatureShareRecord, SignatureShareType, CommitmentShareRecord, EncryptedSignerShareRecord, ExchangeCommitmentResponse } from '../utils';
6
+ import { IRequestTracer } from '../../api';
7
+ export declare function getBitgoSignatureShare(signatureShares: SignatureShareRecord[], signerShareType: SignatureShareType, shareType: MPCv2SigningState): SignatureShareRecord;
5
8
  /**
6
9
  * Gets the latest Tx Request by id
7
10
  *
8
11
  * @param {BitGoBase} bitgo - the bitgo instance
9
12
  * @param {String} walletId - the wallet id
10
- * @param {String} txRequestId - the txRequest Id
13
+ * @param {String} txRequestId - the txRequest id
14
+ * @param {IRequestTracer} reqId - the request tracer request id
11
15
  * @returns {Promise<TxRequest>}
12
16
  */
13
- export declare function getTxRequest(bitgo: BitGoBase, walletId: string, txRequestId: string): Promise<TxRequest>;
17
+ export declare function getTxRequest(bitgo: BitGoBase, walletId: string, txRequestId: string, reqId?: IRequestTracer): Promise<TxRequest>;
14
18
  /**
15
19
  * Sends a Signature Share
16
20
  *
@@ -22,9 +26,37 @@ export declare function getTxRequest(bitgo: BitGoBase, walletId: string, txReque
22
26
  * @param signerShare
23
27
  * @param mpcAlgorithm
24
28
  * @param apiMode
29
+ * @param {IRequestTracer} reqId - the request tracer request id
30
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
31
+ */
32
+ export declare function sendSignatureShare(bitgo: BitGoBase, walletId: string, txRequestId: string, signatureShare: SignatureShareRecord, requestType: RequestType, signerShare?: string, mpcAlgorithm?: 'eddsa' | 'ecdsa', apiMode?: 'full' | 'lite', userPublicGpgKey?: string, reqId?: IRequestTracer): Promise<SignatureShareRecord>;
33
+ /**
34
+ * Sends a Signature Share using the sign txRequest route
35
+ *
36
+ * @param {BitGoBase} bitgo - the bitgo instance
37
+ * @param {String} walletId - the wallet id *
38
+ * @param {String} txRequestId - the txRequest Id
39
+ * @param signatureShares
40
+ * @param requestType - The type of request being submitted (either tx or message for signing)
41
+ * @param signerShare
42
+ * @param mpcAlgorithm
43
+ * @param multisigTypeVersion
44
+ * @param signerGpgPublicKey
45
+ * @param reqId
46
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
47
+ */
48
+ export declare function sendSignatureShareV2(bitgo: BitGoBase, walletId: string, txRequestId: string, signatureShares: SignatureShareRecord[], requestType: RequestType, mpcAlgorithm: 'eddsa' | 'ecdsa', signerGpgPublicKey: string, signerShare?: string, multisigTypeVersion?: 'MPCv2' | undefined, reqId?: IRequestTracer): Promise<TxRequest>;
49
+ /**
50
+ * Sends a Transaction Request for broadcast once signing is complete
51
+ *
52
+ * @param {BitGoBase} bitgo - the bitgo instance
53
+ * @param {String} walletId - the wallet id *
54
+ * @param {String} txRequestId - the txRequest Id
55
+ * @param requestType - The type of request being submitted (either tx or message for signing)
56
+ * @param {IRequestTracer} reqId - request tracer request id
25
57
  * @returns {Promise<SignatureShareRecord>} - a Signature Share
26
58
  */
27
- export declare function sendSignatureShare(bitgo: BitGoBase, walletId: string, txRequestId: string, signatureShare: SignatureShareRecord, requestType: RequestType, signerShare?: string, mpcAlgorithm?: 'eddsa' | 'ecdsa', apiMode?: 'full' | 'lite', userPublicGpgKey?: string): Promise<SignatureShareRecord>;
59
+ export declare function sendTxRequest(bitgo: BitGoBase, walletId: string, txRequestId: string, requestType: RequestType, reqId?: IRequestTracer): Promise<TxRequest>;
28
60
  /**
29
61
  * Sends the client commitment and encrypted signer share to the server, getting back the server commitment
30
62
  * @param {BitGoBase} bitgo - the bitgo instance
@@ -33,9 +65,10 @@ export declare function sendSignatureShare(bitgo: BitGoBase, walletId: string, t
33
65
  * @param {CommitmentShareRecord} commitmentShare - the client commitment share
34
66
  * @param {EncryptedSignerShareRecord} encryptedSignerShare - the client encrypted signer share
35
67
  * @param {string} [apiMode] - the txRequest api mode (full or lite) - defaults to lite
68
+ * @param {IRequestTracer} reqId - the request tracer request Id
36
69
  * @returns {Promise<ExchangeCommitmentResponse>} - the server commitment share
37
70
  */
38
- export declare function exchangeEddsaCommitments(bitgo: BitGoBase, walletId: string, txRequestId: string, commitmentShare: CommitmentShareRecord, encryptedSignerShare: EncryptedSignerShareRecord, apiMode?: 'full' | 'lite'): Promise<ExchangeCommitmentResponse>;
71
+ export declare function exchangeEddsaCommitments(bitgo: BitGoBase, walletId: string, txRequestId: string, commitmentShare: CommitmentShareRecord, encryptedSignerShare: EncryptedSignerShareRecord, apiMode?: 'full' | 'lite', reqId?: IRequestTracer): Promise<ExchangeCommitmentResponse>;
39
72
  /**
40
73
  * Verifies that a TSS wallet signature was produced with the expected key and that the signed data contains the
41
74
  * expected common keychain as well as the expected user and backup key ids
@@ -58,6 +91,7 @@ export declare function commonVerifyWalletSignature(params: {
58
91
  * @param index
59
92
  * @param requestType
60
93
  * @param paillierModulus
94
+ * @param reqId
61
95
  */
62
- export declare function getTxRequestChallenge(bitgo: BitGoBase, walletId: string, txRequestId: string, index: string, requestType: RequestType, paillierModulus: string): Promise<TxRequestChallengeResponse>;
96
+ export declare function getTxRequestChallenge(bitgo: BitGoBase, walletId: string, txRequestId: string, index: string, requestType: RequestType, paillierModulus: string, reqId?: IRequestTracer): Promise<TxRequestChallengeResponse>;
63
97
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/tss/common.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EACL,WAAW,EACX,SAAS,EAET,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAElB;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAW9G;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,oBAAoB,EACpC,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,GAAE,OAAO,GAAG,OAAiB,EACzC,OAAO,GAAE,MAAM,GAAG,MAAe,EACjC,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAuB/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,qBAAqB,EACtC,oBAAoB,EAAE,0BAA0B,EAChD,OAAO,GAAE,MAAM,GAAG,MAAe,GAChC,OAAO,CAAC,0BAA0B,CAAC,CAOrC;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,EAAE,CAAC,CAkCpC;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,0BAA0B,CAAC,CAYrC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/tss/common.ts"],"names":[],"mappings":"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"}