@bitgo-beta/sdk-core 8.2.1-beta.13 → 8.2.1-beta.1300

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 (595) 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 +34 -2
  10. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  11. package/dist/src/account-lib/baseCoin/enum.js +62 -5
  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/curves/ed25519.d.ts +4 -18
  50. package/dist/src/account-lib/mpc/curves/ed25519.d.ts.map +1 -1
  51. package/dist/src/account-lib/mpc/curves/ed25519.js +6 -60
  52. package/dist/src/account-lib/mpc/index.d.ts +4 -4
  53. package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
  54. package/dist/src/account-lib/mpc/index.js +11 -7
  55. package/dist/src/account-lib/mpc/shamir.d.ts +5 -37
  56. package/dist/src/account-lib/mpc/shamir.d.ts.map +1 -1
  57. package/dist/src/account-lib/mpc/shamir.js +6 -130
  58. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +68 -13
  59. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  60. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +794 -225
  61. package/dist/src/account-lib/mpc/tss/ecdsa/index.js +23 -9
  62. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts +2 -2
  63. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts.map +1 -1
  64. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.js +3 -3
  65. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +114 -78
  66. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
  67. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
  68. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +1 -2
  69. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -1
  70. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +66 -69
  71. package/dist/src/account-lib/mpc/tss/eddsa/index.js +23 -9
  72. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +1 -4
  73. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
  74. package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
  75. package/dist/src/account-lib/mpc/tss/index.js +23 -9
  76. package/dist/src/account-lib/mpc/util.d.ts +7 -1
  77. package/dist/src/account-lib/mpc/util.d.ts.map +1 -1
  78. package/dist/src/account-lib/mpc/util.js +19 -1
  79. package/dist/src/account-lib/staking/index.js +6 -2
  80. package/dist/src/account-lib/staking/utils.js +3 -3
  81. package/dist/src/account-lib/util/crypto.d.ts +8 -2
  82. package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
  83. package/dist/src/account-lib/util/crypto.js +69 -38
  84. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +2 -1
  85. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +1 -1
  86. package/dist/src/account-lib/util/ed25519KeyDeriver.js +5 -3
  87. package/dist/src/api/bip32path.js +2 -3
  88. package/dist/src/api/index.js +6 -2
  89. package/dist/src/api/types.d.ts +8 -0
  90. package/dist/src/api/types.d.ts.map +1 -1
  91. package/dist/src/api/types.js +1 -1
  92. package/dist/src/bitgo/address-book/address-book.d.ts +61 -0
  93. package/dist/src/bitgo/address-book/address-book.d.ts.map +1 -0
  94. package/dist/src/bitgo/address-book/address-book.js +139 -0
  95. package/dist/src/bitgo/address-book/index.d.ts +3 -0
  96. package/dist/src/bitgo/address-book/index.d.ts.map +1 -0
  97. package/dist/src/{openssl → bitgo/address-book}/index.js +8 -3
  98. package/dist/src/bitgo/address-book/types.d.ts +170 -0
  99. package/dist/src/bitgo/address-book/types.d.ts.map +1 -0
  100. package/dist/src/bitgo/address-book/types.js +3 -0
  101. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +112 -11
  102. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  103. package/dist/src/bitgo/baseCoin/baseCoin.js +163 -16
  104. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +168 -25
  105. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  106. package/dist/src/bitgo/baseCoin/iBaseCoin.js +7 -3
  107. package/dist/src/bitgo/baseCoin/index.js +6 -2
  108. package/dist/src/bitgo/bip32util.d.ts +3 -16
  109. package/dist/src/bitgo/bip32util.d.ts.map +1 -1
  110. package/dist/src/bitgo/bip32util.js +4 -56
  111. package/dist/src/bitgo/bitcoin.d.ts +0 -1
  112. package/dist/src/bitgo/bitcoin.d.ts.map +1 -1
  113. package/dist/src/bitgo/bitcoin.js +26 -13
  114. package/dist/src/bitgo/bitgoBase.d.ts +6 -2
  115. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  116. package/dist/src/bitgo/bitgoBase.js +1 -1
  117. package/dist/src/bitgo/coinFactory.d.ts +17 -3
  118. package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
  119. package/dist/src/bitgo/coinFactory.js +26 -3
  120. package/dist/src/bitgo/config.d.ts +158 -20
  121. package/dist/src/bitgo/config.d.ts.map +1 -1
  122. package/dist/src/bitgo/config.js +26 -15
  123. package/dist/src/bitgo/ecdh.d.ts +0 -1
  124. package/dist/src/bitgo/ecdh.d.ts.map +1 -1
  125. package/dist/src/bitgo/ecdh.js +26 -13
  126. package/dist/src/bitgo/enterprise/enterprise.d.ts +16 -14
  127. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  128. package/dist/src/bitgo/enterprise/enterprise.js +64 -31
  129. package/dist/src/bitgo/enterprise/enterprises.d.ts +6 -0
  130. package/dist/src/bitgo/enterprise/enterprises.d.ts.map +1 -1
  131. package/dist/src/bitgo/enterprise/enterprises.js +48 -9
  132. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +6 -7
  133. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  134. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  135. package/dist/src/bitgo/enterprise/iEnterprises.d.ts +2 -0
  136. package/dist/src/bitgo/enterprise/iEnterprises.d.ts.map +1 -1
  137. package/dist/src/bitgo/enterprise/iEnterprises.js +1 -1
  138. package/dist/src/bitgo/enterprise/index.js +6 -2
  139. package/dist/src/bitgo/environments.d.ts +76 -5
  140. package/dist/src/bitgo/environments.d.ts.map +1 -1
  141. package/dist/src/bitgo/environments.js +224 -29
  142. package/dist/src/bitgo/errors.d.ts +151 -0
  143. package/dist/src/bitgo/errors.d.ts.map +1 -1
  144. package/dist/src/bitgo/errors.js +127 -2
  145. package/dist/src/bitgo/evm/evmUtils.d.ts +26 -0
  146. package/dist/src/bitgo/evm/evmUtils.d.ts.map +1 -0
  147. package/dist/src/bitgo/evm/evmUtils.js +50 -0
  148. package/dist/src/bitgo/index.d.ts +3 -1
  149. package/dist/src/bitgo/index.d.ts.map +1 -1
  150. package/dist/src/bitgo/index.js +29 -11
  151. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts +3 -3
  152. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts.map +1 -1
  153. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.js +1 -1
  154. package/dist/src/bitgo/inscriptionBuilder/index.js +6 -2
  155. package/dist/src/bitgo/internal/index.js +6 -2
  156. package/dist/src/bitgo/internal/internal.js +5 -6
  157. package/dist/src/bitgo/internal/keycard.js +6 -7
  158. package/dist/src/bitgo/keychain/decryptKeychain.d.ts +13 -0
  159. package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -0
  160. package/dist/src/bitgo/keychain/decryptKeychain.js +35 -0
  161. package/dist/src/bitgo/keychain/iKeychains.d.ts +65 -7
  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 +15 -4
  168. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  169. package/dist/src/bitgo/keychain/keychains.js +158 -59
  170. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +126 -91
  171. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  172. package/dist/src/bitgo/keychain/ovcJsonCodec.js +53 -32
  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 +3 -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 +224 -98
  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 +15 -2
  202. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  203. package/dist/src/bitgo/recovery/initiate.js +14 -8
  204. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +129 -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 +143 -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 +157 -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 +26 -7
  220. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  221. package/dist/src/bitgo/staking/stakingWallet.js +148 -7
  222. package/dist/src/bitgo/trading/iTradingAccount.d.ts +2 -32
  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 -15
  226. package/dist/src/bitgo/trading/index.d.ts.map +1 -1
  227. package/dist/src/bitgo/trading/index.js +7 -17
  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 +101 -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 +11 -35
  262. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
  263. package/dist/src/bitgo/trading/tradingAccount.js +9 -96
  264. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts +27 -0
  265. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  266. package/dist/src/bitgo/tss/bitgoPubKeys.js +61 -0
  267. package/dist/src/bitgo/tss/common.d.ts +50 -7
  268. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  269. package/dist/src/bitgo/tss/common.js +124 -23
  270. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +17 -12
  271. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  272. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +111 -96
  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 +162 -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 +19 -9
  283. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  284. package/dist/src/bitgo/tss/eddsa/eddsa.js +56 -38
  285. package/dist/src/bitgo/tss/eddsa/index.js +23 -9
  286. package/dist/src/bitgo/tss/eddsa/types.d.ts +4 -4
  287. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -1
  288. package/dist/src/bitgo/tss/index.d.ts +3 -2
  289. package/dist/src/bitgo/tss/index.d.ts.map +1 -1
  290. package/dist/src/bitgo/tss/index.js +26 -10
  291. package/dist/src/bitgo/tss/types.d.ts +19 -0
  292. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  293. package/dist/src/bitgo/tss/types.js +2 -2
  294. package/dist/src/bitgo/types.d.ts +3 -3
  295. package/dist/src/bitgo/types.d.ts.map +1 -1
  296. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +11 -0
  297. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
  298. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +66 -10
  299. package/dist/src/bitgo/utils/codecProps.d.ts +7 -0
  300. package/dist/src/bitgo/utils/codecProps.d.ts.map +1 -0
  301. package/dist/src/bitgo/utils/codecProps.js +54 -0
  302. package/dist/src/bitgo/utils/decode.d.ts.map +1 -1
  303. package/dist/src/bitgo/utils/decode.js +30 -16
  304. package/dist/src/bitgo/utils/index.d.ts +3 -2
  305. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  306. package/dist/src/bitgo/utils/index.js +26 -11
  307. package/dist/src/bitgo/utils/messageTypes.d.ts +38 -0
  308. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
  309. package/dist/src/bitgo/utils/messageTypes.js +15 -0
  310. package/dist/src/bitgo/utils/mpcUtils.d.ts +2 -3
  311. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  312. package/dist/src/bitgo/utils/mpcUtils.js +52 -13
  313. package/dist/src/bitgo/utils/notEmpty.d.ts +2 -0
  314. package/dist/src/bitgo/utils/notEmpty.d.ts.map +1 -0
  315. package/dist/src/bitgo/utils/notEmpty.js +7 -0
  316. package/dist/src/bitgo/utils/opengpgUtils.d.ts +11 -9
  317. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  318. package/dist/src/bitgo/utils/opengpgUtils.js +74 -73
  319. package/dist/src/bitgo/utils/postWithCodec.d.ts +18 -0
  320. package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -0
  321. package/dist/src/bitgo/utils/postWithCodec.js +25 -0
  322. package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
  323. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
  324. package/dist/src/bitgo/utils/promise-utils.js +2 -3
  325. package/dist/src/bitgo/utils/transactionUtils.d.ts +9 -0
  326. package/dist/src/bitgo/utils/transactionUtils.d.ts.map +1 -0
  327. package/dist/src/bitgo/utils/transactionUtils.js +29 -0
  328. package/dist/src/bitgo/utils/triple.d.ts +1 -1
  329. package/dist/src/bitgo/utils/triple.d.ts.map +1 -1
  330. package/dist/src/bitgo/utils/triple.js +2 -3
  331. package/dist/src/bitgo/utils/tss/addressVerification.d.ts +23 -0
  332. package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  333. package/dist/src/bitgo/utils/tss/addressVerification.js +51 -0
  334. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +105 -25
  335. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  336. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +242 -42
  337. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +371 -31
  338. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  339. package/dist/src/bitgo/utils/tss/baseTypes.js +36 -10
  340. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts +23 -0
  341. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -0
  342. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +157 -0
  343. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts +28 -0
  344. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts.map +1 -0
  345. package/dist/src/bitgo/utils/tss/ecdsa/base.js +53 -0
  346. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +56 -49
  347. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  348. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +332 -317
  349. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +199 -0
  350. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  351. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +950 -0
  352. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +8 -0
  353. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -0
  354. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +13 -0
  355. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +4 -0
  356. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
  357. package/dist/src/bitgo/utils/tss/ecdsa/index.js +10 -2
  358. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +15 -9
  359. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  360. package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
  361. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +107 -0
  362. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -0
  363. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +55 -0
  364. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +38 -11
  365. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  366. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +170 -65
  367. package/dist/src/bitgo/utils/tss/eddsa/index.js +23 -9
  368. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +7 -7
  369. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
  370. package/dist/src/bitgo/utils/tss/index.d.ts +1 -0
  371. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
  372. package/dist/src/bitgo/utils/tss/index.js +24 -9
  373. package/dist/src/bitgo/utils/txRequest.d.ts +10 -0
  374. package/dist/src/bitgo/utils/txRequest.d.ts.map +1 -0
  375. package/dist/src/bitgo/utils/txRequest.js +47 -0
  376. package/dist/src/bitgo/utils/util.js +24 -10
  377. package/dist/src/bitgo/utils/wallet.d.ts +7 -0
  378. package/dist/src/bitgo/utils/wallet.d.ts.map +1 -0
  379. package/dist/src/bitgo/utils/wallet.js +48 -0
  380. package/dist/src/bitgo/wallet/BuildParams.d.ts +134 -0
  381. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -0
  382. package/dist/src/bitgo/wallet/BuildParams.js +151 -0
  383. package/dist/src/bitgo/wallet/iWallet.d.ts +301 -21
  384. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  385. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  386. package/dist/src/bitgo/wallet/iWallets.d.ts +109 -16
  387. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  388. package/dist/src/bitgo/wallet/iWallets.js +50 -3
  389. package/dist/src/bitgo/wallet/index.js +6 -2
  390. package/dist/src/bitgo/wallet/wallet.d.ts +226 -24
  391. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  392. package/dist/src/bitgo/wallet/wallet.js +1239 -342
  393. package/dist/src/bitgo/wallet/wallets.d.ts +103 -9
  394. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  395. package/dist/src/bitgo/wallet/wallets.js +934 -195
  396. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts +12 -0
  397. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts.map +1 -0
  398. package/dist/src/bitgo/walletUtil/iMessageProvider.js +3 -0
  399. package/dist/src/bitgo/walletUtil/index.d.ts +3 -0
  400. package/dist/src/bitgo/walletUtil/index.d.ts.map +1 -0
  401. package/dist/src/bitgo/walletUtil/index.js +19 -0
  402. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts +22 -0
  403. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts.map +1 -0
  404. package/dist/src/bitgo/walletUtil/midnightMessageProvider.js +95 -0
  405. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts +9 -0
  406. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts.map +1 -0
  407. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.js +72 -0
  408. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts +15 -0
  409. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts.map +1 -0
  410. package/dist/src/bitgo/walletUtil/utxoMessageProof.js +40 -0
  411. package/dist/src/bitgo/webhook/index.js +6 -2
  412. package/dist/src/bitgo/webhook/webhooks.js +23 -9
  413. package/dist/src/coins/fiataed.d.ts +32 -0
  414. package/dist/src/coins/fiataed.d.ts.map +1 -0
  415. package/dist/src/coins/fiataed.js +61 -0
  416. package/dist/src/coins/fiateur.d.ts +3 -2
  417. package/dist/src/coins/fiateur.d.ts.map +1 -1
  418. package/dist/src/coins/fiateur.js +5 -1
  419. package/dist/src/coins/fiatgbp.d.ts +3 -2
  420. package/dist/src/coins/fiatgbp.d.ts.map +1 -1
  421. package/dist/src/coins/fiatgbp.js +5 -1
  422. package/dist/src/coins/fiatsgd.d.ts +32 -0
  423. package/dist/src/coins/fiatsgd.d.ts.map +1 -0
  424. package/dist/src/coins/fiatsgd.js +61 -0
  425. package/dist/src/coins/fiatusd.d.ts +3 -2
  426. package/dist/src/coins/fiatusd.d.ts.map +1 -1
  427. package/dist/src/coins/fiatusd.js +5 -1
  428. package/dist/src/coins/index.d.ts +4 -0
  429. package/dist/src/coins/index.d.ts.map +1 -1
  430. package/dist/src/coins/index.js +10 -2
  431. package/dist/src/coins/ofc.d.ts +3 -2
  432. package/dist/src/coins/ofc.d.ts.map +1 -1
  433. package/dist/src/coins/ofc.js +6 -2
  434. package/dist/src/coins/ofcToken.js +2 -2
  435. package/dist/src/coins/susd.d.ts +3 -2
  436. package/dist/src/coins/susd.d.ts.map +1 -1
  437. package/dist/src/coins/susd.js +5 -1
  438. package/dist/src/coins/tfiataed.d.ts +11 -0
  439. package/dist/src/coins/tfiataed.d.ts.map +1 -0
  440. package/dist/src/coins/tfiataed.js +17 -0
  441. package/dist/src/coins/tfiatsgd.d.ts +11 -0
  442. package/dist/src/coins/tfiatsgd.d.ts.map +1 -0
  443. package/dist/src/coins/tfiatsgd.js +17 -0
  444. package/dist/src/common.js +27 -13
  445. package/dist/src/index.d.ts +6 -1
  446. package/dist/src/index.d.ts.map +1 -1
  447. package/dist/src/index.js +28 -11
  448. package/dist/src/units.js +5 -6
  449. package/dist/test/node.utils.d.ts +2 -0
  450. package/dist/test/node.utils.d.ts.map +1 -0
  451. package/dist/test/node.utils.js +5 -0
  452. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
  453. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  454. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +207 -0
  455. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
  456. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  457. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +174 -0
  458. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
  459. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  460. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +108 -0
  461. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +46 -0
  462. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
  463. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +69 -0
  464. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +2 -0
  465. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -0
  466. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +235 -0
  467. package/dist/test/unit/account-lib/mpc/tss/ecdsa/fixtures.d.ts +3 -0
  468. package/dist/test/unit/account-lib/mpc/tss/ecdsa/fixtures.d.ts.map +1 -0
  469. package/dist/test/unit/account-lib/mpc/tss/ecdsa/fixtures.js +24 -0
  470. package/dist/test/unit/bitgo/errors.d.ts +2 -0
  471. package/dist/test/unit/bitgo/errors.d.ts.map +1 -0
  472. package/dist/test/unit/bitgo/errors.js +136 -0
  473. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts +2 -0
  474. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts.map +1 -0
  475. package/dist/test/unit/bitgo/trading/network/encrypt.js +71 -0
  476. package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.d.ts +2 -0
  477. package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -0
  478. package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +45 -0
  479. package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
  480. package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
  481. package/dist/test/unit/bitgo/utils/messageTypes.js +64 -0
  482. package/dist/test/unit/bitgo/utils/notEmpty.d.ts +2 -0
  483. package/dist/test/unit/bitgo/utils/notEmpty.d.ts.map +1 -0
  484. package/dist/test/unit/bitgo/utils/notEmpty.js +15 -0
  485. package/dist/test/unit/bitgo/utils/postWithCodec.d.ts +2 -0
  486. package/dist/test/unit/bitgo/utils/postWithCodec.d.ts.map +1 -0
  487. package/dist/test/unit/bitgo/utils/postWithCodec.js +73 -0
  488. package/dist/test/unit/bitgo/utils/txRequest.d.ts +2 -0
  489. package/dist/test/unit/bitgo/utils/txRequest.d.ts.map +1 -0
  490. package/dist/test/unit/bitgo/utils/txRequest.js +105 -0
  491. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts +2 -0
  492. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts.map +1 -0
  493. package/dist/test/unit/bitgo/wallet/BuildParams.js +68 -0
  494. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.d.ts +2 -0
  495. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.d.ts.map +1 -0
  496. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +58 -0
  497. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts +2 -0
  498. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts.map +1 -0
  499. package/dist/test/unit/bitgo/wallet/tokenApproval.js +135 -0
  500. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts +2 -0
  501. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts.map +1 -0
  502. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.js +181 -0
  503. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts +2 -0
  504. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts.map +1 -0
  505. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.js +216 -0
  506. package/dist/test/unit/units.d.ts +2 -0
  507. package/dist/test/unit/units.d.ts.map +1 -0
  508. package/dist/test/unit/units.js +98 -0
  509. package/dist/tsconfig.tsbuildinfo +1 -8279
  510. package/package.json +29 -22
  511. package/.eslintignore +0 -5
  512. package/CHANGELOG.md +0 -662
  513. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +0 -77
  514. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +0 -1
  515. package/dist/src/account-lib/baseCoin/blsKeyPair.js +0 -209
  516. package/dist/src/account-lib/mpc/hdTree.d.ts +0 -31
  517. package/dist/src/account-lib/mpc/hdTree.d.ts.map +0 -1
  518. package/dist/src/account-lib/mpc/hdTree.js +0 -141
  519. package/dist/src/account-lib/mpc/types.d.ts +0 -5
  520. package/dist/src/account-lib/mpc/types.d.ts.map +0 -1
  521. package/dist/src/account-lib/mpc/types.js +0 -3
  522. package/dist/src/bitgo/lightning/iLightning.d.ts +0 -186
  523. package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
  524. package/dist/src/bitgo/lightning/iLightning.js +0 -106
  525. package/dist/src/bitgo/lightning/index.d.ts +0 -5
  526. package/dist/src/bitgo/lightning/index.d.ts.map +0 -1
  527. package/dist/src/bitgo/lightning/index.js +0 -17
  528. package/dist/src/bitgo/lightning/lightning.d.ts +0 -25
  529. package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
  530. package/dist/src/bitgo/lightning/lightning.js +0 -111
  531. package/dist/src/bitgo/lightning/lightningUtils.d.ts +0 -46
  532. package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +0 -1
  533. package/dist/src/bitgo/lightning/lightningUtils.js +0 -133
  534. package/dist/src/bitgo/lightning/lnurlCodec.d.ts +0 -3
  535. package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
  536. package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
  537. package/dist/src/bitgo/trading/affirmation.d.ts +0 -35
  538. package/dist/src/bitgo/trading/affirmation.d.ts.map +0 -1
  539. package/dist/src/bitgo/trading/affirmation.js +0 -53
  540. package/dist/src/bitgo/trading/affirmations.d.ts +0 -23
  541. package/dist/src/bitgo/trading/affirmations.d.ts.map +0 -1
  542. package/dist/src/bitgo/trading/affirmations.js +0 -45
  543. package/dist/src/bitgo/trading/iAffirmation.d.ts +0 -15
  544. package/dist/src/bitgo/trading/iAffirmation.d.ts.map +0 -1
  545. package/dist/src/bitgo/trading/iAffirmation.js +0 -13
  546. package/dist/src/bitgo/trading/iAffirmations.d.ts +0 -10
  547. package/dist/src/bitgo/trading/iAffirmations.d.ts.map +0 -1
  548. package/dist/src/bitgo/trading/iAffirmations.js +0 -3
  549. package/dist/src/bitgo/trading/iSettlement.d.ts +0 -25
  550. package/dist/src/bitgo/trading/iSettlement.d.ts.map +0 -1
  551. package/dist/src/bitgo/trading/iSettlement.js +0 -17
  552. package/dist/src/bitgo/trading/iSettlements.d.ts +0 -19
  553. package/dist/src/bitgo/trading/iSettlements.d.ts.map +0 -1
  554. package/dist/src/bitgo/trading/iSettlements.js +0 -3
  555. package/dist/src/bitgo/trading/iTradingPartner.d.ts +0 -14
  556. package/dist/src/bitgo/trading/iTradingPartner.d.ts.map +0 -1
  557. package/dist/src/bitgo/trading/iTradingPartner.js +0 -17
  558. package/dist/src/bitgo/trading/iTradingPartners.d.ts +0 -15
  559. package/dist/src/bitgo/trading/iTradingPartners.d.ts.map +0 -1
  560. package/dist/src/bitgo/trading/iTradingPartners.js +0 -9
  561. package/dist/src/bitgo/trading/lock.d.ts +0 -16
  562. package/dist/src/bitgo/trading/lock.d.ts.map +0 -1
  563. package/dist/src/bitgo/trading/lock.js +0 -12
  564. package/dist/src/bitgo/trading/payload.d.ts +0 -22
  565. package/dist/src/bitgo/trading/payload.d.ts.map +0 -1
  566. package/dist/src/bitgo/trading/payload.js +0 -3
  567. package/dist/src/bitgo/trading/settlement.d.ts +0 -16
  568. package/dist/src/bitgo/trading/settlement.d.ts.map +0 -1
  569. package/dist/src/bitgo/trading/settlement.js +0 -21
  570. package/dist/src/bitgo/trading/settlements.d.ts +0 -32
  571. package/dist/src/bitgo/trading/settlements.d.ts.map +0 -1
  572. package/dist/src/bitgo/trading/settlements.js +0 -61
  573. package/dist/src/bitgo/trading/trade.d.ts +0 -29
  574. package/dist/src/bitgo/trading/trade.d.ts.map +0 -1
  575. package/dist/src/bitgo/trading/trade.js +0 -11
  576. package/dist/src/bitgo/trading/tradingPartner.d.ts +0 -26
  577. package/dist/src/bitgo/trading/tradingPartner.d.ts.map +0 -1
  578. package/dist/src/bitgo/trading/tradingPartner.js +0 -31
  579. package/dist/src/bitgo/trading/tradingPartners.d.ts +0 -24
  580. package/dist/src/bitgo/trading/tradingPartners.d.ts.map +0 -1
  581. package/dist/src/bitgo/trading/tradingPartners.js +0 -32
  582. package/dist/src/bitgo/utils/blsUtils.d.ts +0 -52
  583. package/dist/src/bitgo/utils/blsUtils.d.ts.map +0 -1
  584. package/dist/src/bitgo/utils/blsUtils.js +0 -237
  585. package/dist/src/bitgo/utils/iBlsUtils.d.ts +0 -14
  586. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +0 -1
  587. package/dist/src/bitgo/utils/iBlsUtils.js +0 -3
  588. package/dist/src/openssl/index.d.ts +0 -2
  589. package/dist/src/openssl/index.d.ts.map +0 -1
  590. package/dist/src/openssl/openssl.d.ts +0 -12
  591. package/dist/src/openssl/openssl.d.ts.map +0 -1
  592. package/dist/src/openssl/openssl.js +0 -48
  593. package/dist/src/openssl/opensslbytes.d.ts +0 -4
  594. package/dist/src/openssl/opensslbytes.d.ts.map +0 -1
  595. package/dist/src/openssl/opensslbytes.js +0 -20
@@ -18,7 +18,6 @@ exports.AliasEnvironments = {
18
18
  msProd: 'prod',
19
19
  msTest: 'test',
20
20
  msDev: 'dev',
21
- msLatest: 'latest',
22
21
  };
23
22
  const mainnetBase = {
24
23
  network: 'bitcoin',
@@ -26,25 +25,127 @@ const mainnetBase = {
26
25
  serverXpub: exports.hardcodedPublicKeys.serverXpub.prod,
27
26
  hsmXpub: exports.hardcodedPublicKeys.hsmXpub.prod,
28
27
  btcExplorerBaseUrl: 'https://blockstream.info/api',
29
- etherscanBaseUrl: 'https://api.etherscan.io',
28
+ etherscanBaseUrl: 'https://api.etherscan.io/v2',
30
29
  etherscanApiToken: process.env.ETHERSCAN_API_TOKEN,
31
- snowtraceBaseUrl: 'https://api.snowtrace.io',
32
- snowtraceApiToken: process.env.SNOWTRACE_API_TOKEN,
30
+ avaxcNetworkBaseUrl: 'https://api.avax.network',
33
31
  eth2ExplorerBaseUrl: 'https://beaconscan.com/api',
34
32
  ethwFullNodeRPCBaseUrl: 'https://mainnet.ethereumpow.org',
35
- polygonscanBaseUrl: 'https://api.polygonscan.com',
33
+ bscscanBaseUrl: 'https://api.etherscan.io/v2',
34
+ bscscanApiToken: process.env.BSC_API_TOKEN,
35
+ polygonscanBaseUrl: 'https://api.etherscan.io/v2',
36
36
  polygonscanApiToken: process.env.POLYGONSCAN_API_TOKEN,
37
+ arbiscanBaseUrl: 'https://api.etherscan.io/v2',
38
+ arbiscanApiToken: process.env.ARBISCAN_API_TOKEN,
39
+ optimisticEtherscanBaseUrl: 'https://api.etherscan.io/v2',
40
+ optimisticEtherscanApiToken: process.env.OPTIMISTIC_ETHERSCAN_API_TOKEN,
41
+ zksyncExplorerBaseUrl: 'https://block-explorer-api.mainnet.zksync.io',
42
+ zksyncExplorerApiToken: process.env.ZKSYNC_EXPLORER_API_TOKEN,
43
+ baseethExplorerUrl: 'https://api.basescan.org', //BaseETH explorer api url
44
+ baseethApiToken: process.env.BASESCAN_API_TOKEN,
37
45
  eosNodeUrls: ['https://bp.cryptolions.io', 'https://api.eosnewyork.io', 'https://api.eosdetroit.io'],
38
- nearNodeUrls: ['https://rpc.mainnet.near.org'],
46
+ nearNodeUrls: ['https://api.fastnear.com'],
39
47
  solNodeUrl: 'https://api.mainnet-beta.solana.com',
40
- adaNodeUrl: 'https://api.koios.rest/api/v0',
48
+ solAlchemyNodeUrl: 'https://solana-mainnet.g.alchemy.com/v2',
49
+ adaNodeUrl: 'https://api.koios.rest/api/v1',
50
+ hashNodeUrl: 'https://api.provenance.io',
51
+ injNodeUrl: 'https://sentry.lcd.injective.network', // reference https://docs.injective.network/develop/public-endpoints/
41
52
  atomNodeUrl: 'https://rest.cosmos.directory/cosmoshub/',
53
+ osmoNodeUrl: 'https://lcd.osmosis.zone',
54
+ tiaNodeUrl: 'https://public-celestia-lcd.numia.xyz', // reference https://docs.celestia.org/nodes/mainnet#api-endpoints
55
+ seiNodeUrl: 'https://sei-api.polkachu.com',
56
+ bldNodeUrl: 'https://agoric-api.polkachu.com',
57
+ beraNodeUrl: '', // TODO(WIN-693): update url when mainnet goes live
58
+ zetaNodeUrl: 'https://zetachain.blockpi.network', // reference https://www.zetachain.com/docs/reference/api/
59
+ coreumNodeUrl: 'https://full-node.mainnet-1.coreum.dev:1317',
60
+ runeNodeUrl: 'https://thornode.ninerealms.com',
61
+ babyNodeUrl: 'https://babylon.nodes.guru/api/',
62
+ islmNodeUrl: 'https://rest.cosmos.haqq.network',
63
+ mantraNodeUrl: 'https://mantra-rest.publicnode.com/',
64
+ cronosNodeUrl: 'https://cronos-pos-rest.publicnode.com/',
65
+ initiaNodeUrl: 'https://rest.initia.xyz/',
66
+ asiNodeUrl: 'https://rest-fetchhub.fetch.ai/',
42
67
  dotNodeUrls: ['wss://rpc.polkadot.io'],
68
+ substrateNodeUrls: ['wss://entrypoint-finney.opentensor.ai'],
69
+ polymeshNodeUrls: ['wss://mainnet-rpc.polymesh.network'],
43
70
  tronNodes: {
44
71
  full: 'https://api.trongrid.io',
45
72
  solidity: 'https://api.trongrid.io',
46
73
  },
47
74
  hmacVerificationEnforced: true,
75
+ tonNodeUrl: 'https://toncenter.com/api/v2/jsonRPC',
76
+ suiNodeUrl: 'https://fullnode.mainnet.sui.io',
77
+ etcNodeUrl: 'https://etc.blockscout.com',
78
+ coredaoExplorerBaseUrl: 'https://openapi.coredao.org',
79
+ oasExplorerBaseUrl: 'https://explorer.oasys.games',
80
+ flrExplorerBaseUrl: 'https://flare-explorer.flare.network',
81
+ xdcExplorerBaseUrl: 'https://api.etherscan.io/v2',
82
+ wemixExplorerBaseUrl: 'https://api.etherscan.io/v2',
83
+ sgbExplorerBaseUrl: 'https://songbird-explorer.flare.network',
84
+ evm: {
85
+ phrs: {
86
+ baseUrl: 'https://testnet.dplabs-internal.com', // TODO: WIN-5787 add mainnet url when its available
87
+ },
88
+ ctc: {
89
+ baseUrl: 'https://mainnet3.creditcoin.network',
90
+ },
91
+ hypeevm: {
92
+ baseUrl: 'https://rpc.hyperliquid.xyz/evm',
93
+ },
94
+ og: {
95
+ baseUrl: 'https://chainscan.0g.ai/open/api',
96
+ },
97
+ xpl: {
98
+ baseUrl: 'https://api.routescan.io/v2/network/mainnet/evm/9745/etherscan/api',
99
+ },
100
+ sonic: {
101
+ baseUrl: 'https://rpc.soniclabs.com',
102
+ },
103
+ seievm: {
104
+ baseUrl: 'https://evm-rpc.sei-apis.com',
105
+ },
106
+ kaia: {
107
+ baseUrl: 'https://public-en.node.kaia.io',
108
+ },
109
+ kavaevm: {
110
+ baseUrl: 'https://api.verify.mintscan.io/evm/api/0x8ae',
111
+ },
112
+ irys: {
113
+ baseUrl: 'https://testnet-rpc.irys.xyz/v1/execution-rpc', //TODO: WIN-6191 add mainnet url when available
114
+ },
115
+ mon: {
116
+ baseUrl: 'https://api.etherscan.io/v2',
117
+ },
118
+ lineaeth: {
119
+ baseUrl: 'https://api.etherscan.io/v2',
120
+ },
121
+ ip: {
122
+ baseUrl: 'https://api.storyscan.app/',
123
+ },
124
+ somi: {
125
+ baseUrl: 'https://mainnet.somnia.w3us.site/',
126
+ },
127
+ baseeth: {
128
+ baseUrl: 'https://api.etherscan.io/v2',
129
+ },
130
+ flow: {
131
+ baseUrl: 'https://evm.flowscan.io/api',
132
+ },
133
+ plume: {
134
+ baseUrl: 'https://explorer.plume.org/api',
135
+ },
136
+ megaeth: {
137
+ baseUrl: 'https://carrot.megaeth.com/rpc', //TODO: add mainnet url when available
138
+ },
139
+ },
140
+ icpNodeUrl: 'https://ic0.app',
141
+ worldExplorerBaseUrl: 'https://worldscan.org/',
142
+ somniaExplorerBaseUrl: 'https://mainnet.somnia.w3us.site/',
143
+ soneiumExplorerBaseUrl: 'https://soneium.blockscout.com',
144
+ monExplorerBaseUrl: 'https://api.etherscan.io/v2',
145
+ stxNodeUrl: 'https://api.hiro.so',
146
+ vetNodeUrl: 'https://sync-mainnet.vechain.org',
147
+ xtzExplorerBaseUrl: 'https://api.tzkt.io',
148
+ xtzRpcUrl: 'https://rpc.tzkt.io/mainnet',
48
149
  };
49
150
  const testnetBase = {
50
151
  network: 'testnet',
@@ -52,28 +153,127 @@ const testnetBase = {
52
153
  serverXpub: exports.hardcodedPublicKeys.serverXpub.test,
53
154
  hsmXpub: exports.hardcodedPublicKeys.hsmXpub.test,
54
155
  btcExplorerBaseUrl: 'https://blockstream.info/testnet/api',
55
- etherscanBaseUrl: 'https://api-goerli.etherscan.io',
156
+ etherscanBaseUrl: 'https://api.etherscan.io/v2',
56
157
  etherscanApiToken: process.env.ETHERSCAN_API_TOKEN,
57
- snowtraceBaseUrl: 'https://api-testnet.snowtrace.io',
58
- snowtraceApiToken: process.env.SNOWTRACE_API_TOKEN,
158
+ avaxcNetworkBaseUrl: 'https://api.avax-test.network',
59
159
  eth2ExplorerBaseUrl: 'https://beaconscan.com/api',
60
160
  ethwFullNodeRPCBaseUrl: 'https://mainnet.ethereumpow.org',
61
- polygonscanBaseUrl: 'https://api-testnet.polygonscan.com',
161
+ polygonscanBaseUrl: 'https://api.etherscan.io/v2',
62
162
  polygonscanApiToken: process.env.POLYGONSCAN_API_TOKEN,
163
+ bscscanBaseUrl: 'https://api.etherscan.io/v2',
164
+ bscscanApiToken: process.env.BSC_API_TOKEN,
165
+ arbiscanBaseUrl: 'https://api.etherscan.io/v2',
166
+ arbiscanApiToken: process.env.ARBISCAN_API_TOKEN,
167
+ optimisticEtherscanBaseUrl: 'https://api.etherscan.io/v2',
168
+ optimisticEtherscanApiToken: process.env.OPTIMISTIC_ETHERSCAN_API_TOKEN,
169
+ zksyncExplorerBaseUrl: 'https://block-explorer-api.sepolia.zksync.dev',
170
+ zksyncExplorerApiToken: process.env.ZKSYNC_EXPLORER_API_TOKEN,
171
+ baseethExplorerUrl: 'https://api-sepolia.basescan.org',
172
+ baseethApiToken: process.env.BASESCAN_API_TOKEN,
63
173
  // kylin eos endpoints found here
64
174
  // https://github.com/cryptokylin/CryptoKylin-Testnet#http-api-list
65
175
  // https://docs.liquidapps.io/liquidapps-documentation/eosio-guides/testnet-creation-guides/creating-cryptokylin-account#setup
66
176
  eosNodeUrls: ['https://kylin.eosn.io', 'https://api.kylin.alohaeos.com'],
67
- nearNodeUrls: ['https://rpc.testnet.near.org'],
177
+ nearNodeUrls: ['https://test.rpc.fastnear.com'],
68
178
  solNodeUrl: 'https://api.devnet.solana.com',
69
- adaNodeUrl: 'https://preprod.koios.rest/api/v0',
70
- atomNodeUrl: 'https://rest.sentry-02.theta-testnet.polypore.xyz/',
71
- dotNodeUrls: ['wss://westend-rpc.polkadot.io'],
179
+ solAlchemyNodeUrl: 'https://solana-devnet.g.alchemy.com/v2',
180
+ adaNodeUrl: 'https://preprod.koios.rest/api/v1',
181
+ hashNodeUrl: 'https://api.test.provenance.io',
182
+ injNodeUrl: 'https://testnet.sentry.lcd.injective.network', // COIN-1219 : reference https://docs.injective.network/develop/public-endpoints/#testnet
183
+ atomNodeUrl: 'https://rest.provider-sentry-02.ics-testnet.polypore.xyz/',
184
+ osmoNodeUrl: 'https://lcd.osmotest5.osmosis.zone',
185
+ tiaNodeUrl: 'https://api-mocha.pops.one',
186
+ seiNodeUrl: 'https://rest.atlantic-2.seinetwork.io',
187
+ bldNodeUrl: 'https://devnet.api.agoric.net',
188
+ beraNodeUrl: '', // TODO(WIN-693): update url when testnet goes live
189
+ zetaNodeUrl: 'https://rest.nodejumper.io/zetachaintestnet', // reference : https://www.zetachain.com/docs/reference/api/
190
+ coreumNodeUrl: 'https://full-node.testnet-1.coreum.dev:1317',
191
+ runeNodeUrl: 'https://stagenet-thornode.ninerealms.com',
192
+ babyNodeUrl: 'https://babylon-testnet-api.nodes.guru/',
193
+ islmNodeUrl: 'https://rest.cosmos.testedge2.haqq.network ',
194
+ mantraNodeUrl: 'https://mantra-testnet-rest.publicnode.com/',
195
+ cronosNodeUrl: 'https://testnet-croeseid-4.crypto.org:1317/',
196
+ initiaNodeUrl: 'https://rest.testnet.initia.xyz/',
197
+ asiNodeUrl: 'https://rest-dorado.fetch.ai/',
198
+ dotNodeUrls: ['wss://asset-hub-westend-rpc.n.dwellir.com'],
199
+ substrateNodeUrls: ['wss://test.finney.opentensor.ai'],
200
+ polymeshNodeUrls: ['wss://testnet-rpc.polymesh.live'],
72
201
  tronNodes: {
73
- full: 'http://47.252.81.135:8090',
74
- solidity: 'http://47.252.81.135:8091',
202
+ full: 'https://api.shasta.trongrid.io',
203
+ solidity: 'https://api.shasta.trongrid.io',
75
204
  },
76
205
  hmacVerificationEnforced: false,
206
+ tonNodeUrl: 'https://testnet.toncenter.com/api/v2/jsonRPC',
207
+ suiNodeUrl: 'https://fullnode.testnet.sui.io',
208
+ etcNodeUrl: 'https://etc-mordor.blockscout.com',
209
+ coredaoExplorerBaseUrl: 'https://api.test2.btcs.network',
210
+ oasExplorerBaseUrl: 'https://explorer.testnet.oasys.games',
211
+ wemixExplorerBaseUrl: 'https://api.etherscan.io/v2',
212
+ flrExplorerBaseUrl: 'https://coston2-explorer.flare.network',
213
+ xdcExplorerBaseUrl: 'https://api.etherscan.io/v2',
214
+ sgbExplorerBaseUrl: 'https://coston-explorer.flare.network',
215
+ icpNodeUrl: 'https://exchanges.testnet.dfinity.network',
216
+ monExplorerBaseUrl: 'https://api.etherscan.io/v2',
217
+ worldExplorerBaseUrl: 'https://sepolia.worldscan.org/',
218
+ somniaExplorerBaseUrl: 'https://shannon-explorer.somnia.network/',
219
+ soneiumExplorerBaseUrl: 'https://soneium-minato.blockscout.com',
220
+ evm: {
221
+ phrs: {
222
+ baseUrl: 'https://testnet.dplabs-internal.com',
223
+ },
224
+ ctc: {
225
+ baseUrl: 'https://rpc.cc3-testnet.creditcoin.network',
226
+ },
227
+ hypeevm: {
228
+ baseUrl: 'https://rpc.hyperliquid-testnet.xyz/evm',
229
+ },
230
+ og: {
231
+ baseUrl: 'https://chainscan-test.0g.ai/open/api',
232
+ },
233
+ xpl: {
234
+ baseUrl: 'https://testnet-rpc.plasma.to',
235
+ },
236
+ sonic: {
237
+ baseUrl: 'https://rpc.blaze.soniclabs.com',
238
+ },
239
+ seievm: {
240
+ baseUrl: 'https://evm-rpc-testnet.sei-apis.com',
241
+ },
242
+ kaia: {
243
+ baseUrl: 'https://public-en-kairos.node.kaia.io',
244
+ },
245
+ kavaevm: {
246
+ baseUrl: 'https://api.verify.mintscan.io/evm/api/0x8ad',
247
+ },
248
+ irys: {
249
+ baseUrl: 'https://testnet-rpc.irys.xyz/v1/execution-rpc',
250
+ },
251
+ mon: {
252
+ baseUrl: 'https://api.etherscan.io/v2',
253
+ },
254
+ lineaeth: {
255
+ baseUrl: 'https://api.etherscan.io/v2',
256
+ },
257
+ ip: {
258
+ baseUrl: 'https://api.storyscan.app/',
259
+ },
260
+ tbaseeth: {
261
+ baseUrl: 'https://api.etherscan.io/v2',
262
+ },
263
+ flow: {
264
+ baseUrl: 'https://evm-testnet.flowscan.io/api',
265
+ },
266
+ megaeth: {
267
+ baseUrl: 'https://carrot.megaeth.com/rpc',
268
+ },
269
+ plume: {
270
+ baseUrl: 'https://testnet-explorer.plume.org/api',
271
+ },
272
+ },
273
+ stxNodeUrl: 'https://api.testnet.hiro.so',
274
+ vetNodeUrl: 'https://sync-testnet.vechain.org',
275
+ xtzExplorerBaseUrl: 'https://api.ghostnet.tzkt.io',
276
+ xtzRpcUrl: 'https://rpc.tzkt.io/ghostnet',
77
277
  };
78
278
  const devBase = Object.assign({}, testnetBase, {
79
279
  hsmXpub: exports.hardcodedPublicKeys.hsmXpub.dev,
@@ -93,10 +293,6 @@ exports.Environments = {
93
293
  uri: 'https://app.bitgo-dev.com',
94
294
  stellarFederationServerUrl: 'https://app.bitgo-dev.com/api/v2/txlm/federation',
95
295
  }),
96
- latest: Object.assign({}, devBase, {
97
- uri: 'https://app.bitgo-latest.com',
98
- stellarFederationServerUrl: 'https://app.bitgo-latest.com/api/v2/xlm/federation',
99
- }),
100
296
  staging: Object.assign({}, testnetBase, {
101
297
  uri: 'https://app.bitgo-staging.com',
102
298
  stellarFederationServerUrl: 'https://app.bitgo-staging.com/api/v2/txlm/federation',
@@ -112,10 +308,9 @@ exports.Environments = {
112
308
  mock: Object.assign({}, devBase, {
113
309
  uri: 'https://bitgo.fakeurl',
114
310
  stellarFederationServerUrl: 'https://bitgo.fakeurl/api/v2/txlm/federation',
115
- etherscanBaseUrl: 'https://api-goerli.etherscan.fakeurl',
311
+ etherscanBaseUrl: 'https://api-hoodi.etherscan.fakeurl',
116
312
  etherscanApiToken: process.env.ETHERSCAN_API_TOKEN,
117
- snowtraceApiToken: process.env.SNOWTRACE_API_TOKEN,
118
- snowtraceBaseUrl: 'https://api-testnet.snowtrace.fakeurl',
313
+ avaxcNetworkBaseUrl: 'https://api.avax-test.network.fakeurl',
119
314
  eth2ExplorerBaseUrl: 'https://beaconscan.com/api',
120
315
  }),
121
316
  adminProd: Object.assign({}, mainnetBase, {
@@ -130,9 +325,9 @@ exports.Environments = {
130
325
  uri: 'https://admin.bitgo-dev.com',
131
326
  stellarFederationServerUrl: 'https://admin.bitgo-dev.com/api/v2/txlm/federation',
132
327
  }),
133
- adminLatest: Object.assign({}, devBase, {
134
- uri: 'https://admin.bitgo-latest.com',
135
- stellarFederationServerUrl: 'https://admin.bitgo-latest.com/api/v2/xlm/federation',
328
+ adminStaging: Object.assign({}, testnetBase, {
329
+ uri: 'https://admin.bitgo-staging.com',
330
+ stellarFederationServerUrl: 'https://admin.bitgo-staging.com/api/v2/xlm/federation',
136
331
  }),
137
332
  custom: Object.assign({}, mainnetBase, {
138
333
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -143,7 +338,7 @@ exports.Environments = {
143
338
  ? 'https://blockstream.info/testnet/api'
144
339
  : 'https://blockstream.info/api',
145
340
  etherscanBaseUrl: process.env.BITGO_CUSTOM_ETHEREUM_NETWORK !== 'ethereum'
146
- ? 'https://api-goerli.etherscan.io'
341
+ ? 'https://api-hoodi.etherscan.io'
147
342
  : 'https://api.etherscan.io',
148
343
  stellarFederationServerUrl: process.env.BITGO_CUSTOM_STELLAR_NETWORK !== 'stellar'
149
344
  ? `https://${process.env.BITGO_CUSTOM_ROOT_URI}/api/v2/txlm/federation`
@@ -157,4 +352,4 @@ exports.Environments = {
157
352
  stellarFederationServerUrl: 'https://app.bitgo-dev.com/api/v2/txlm/federation',
158
353
  }),
159
354
  };
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL2Vudmlyb25tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1Q2EsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9DLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtLQUN4SDtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtRQUN2SCxHQUFHLEVBQUUsaUhBQWlIO0tBQ3ZIO0NBQ0YsQ0FBQyxDQUFDO0FBc0JILHdGQUF3RjtBQUMzRSxRQUFBLGlCQUFpQixHQUFxRDtJQUNqRixVQUFVLEVBQUUsTUFBTTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBSyxFQUFFLEtBQUs7SUFDWixRQUFRLEVBQUUsUUFBUTtDQUNuQixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQXdCO0lBQ3ZDLE9BQU8sRUFBRSxTQUFzQjtJQUMvQixjQUFjLEVBQUUsb0NBQW9DO0lBQ3BELFVBQVUsRUFBRSwyQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSTtJQUMvQyxPQUFPLEVBQUUsMkJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUk7SUFDekMsa0JBQWtCLEVBQUUsOEJBQThCO0lBQ2xELGdCQUFnQixFQUFFLDBCQUEwQjtJQUM1QyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtJQUNsRCxnQkFBZ0IsRUFBRSwwQkFBMEI7SUFDNUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUI7SUFDbEQsbUJBQW1CLEVBQUUsNEJBQTRCO0lBQ2pELHNCQUFzQixFQUFFLGlDQUFpQztJQUN6RCxrQkFBa0IsRUFBRSw2QkFBNkI7SUFDakQsbUJBQW1CLEVB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RixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFO1FBQ2pDLEdBQUcsRUFBRSwyQkFBMkI7UUFDaEMsMEJBQTBCLEVBQUUsa0RBQWtEO0tBQy9FLENBQUM7Q0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgVjFOZXR3b3JrIH0gZnJvbSAnLi90eXBlcyc7XG5cbmludGVyZmFjZSBFbnZpcm9ubWVudFRlbXBsYXRlIHtcbiAgdXJpPzogc3RyaW5nO1xuICBuZXR3b3JrOiBWMU5ldHdvcms7XG4gIHNpZ25pbmdBZGRyZXNzOiBzdHJpbmc7XG4gIHNlcnZlclhwdWI6IHN0cmluZztcbiAgaHNtWHB1Yjogc3RyaW5nO1xuICBidGNFeHBsb3JlckJhc2VVcmw6IHN0cmluZztcbiAgZXRoZXJzY2FuQmFzZVVybDogc3RyaW5nO1xuICBldGhlcnNjYW5BcGlUb2tlbj86IHN0cmluZztcbiAgc25vd3RyYWNlQmFzZVVybDogc3RyaW5nO1xuICBzbm93dHJhY2VBcGlUb2tlbj86IHN0cmluZztcbiAgZXRoMkV4cGxvcmVyQmFzZVVybDogc3RyaW5nO1xuICBldGh3RnVsbE5vZGVSUENCYXNlVXJsOiBzdHJpbmc7XG4gIHBvbHlnb25zY2FuQmFzZVVybD86IHN0cmluZztcbiAgcG9seWdvbnNjYW5BcGlUb2tlbj86IHN0cmluZztcbiAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw/OiBzdHJpbmc7XG4gIGVvc05vZGVVcmxzOiBzdHJpbmdbXTtcbiAgbmVhck5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc29sTm9kZVVybDogc3RyaW5nO1xuICBhZGFOb2RlVXJsOiBzdHJpbmc7XG4gIGF0b21Ob2RlVXJsOiBzdHJpbmc7XG4gIGRvdE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogc3RyaW5nO1xuICAgIHNvbGlkaXR5OiBzdHJpbmc7XG4gIH07XG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCBleHRlbmRzIEVudmlyb25tZW50VGVtcGxhdGUge1xuICB1cmk6IHN0cmluZztcbiAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGhhcmRjb2RlZFB1YmxpY0tleXMgPSBPYmplY3QuZnJlZXplKHtcbiAgc2VydmVyWHB1Yjoge1xuICAgIHByb2Q6ICd4cHViNjYxTXlNd0FxUmJjRXRVZ3U5SEY4YWk0aXB1VktLSEJ6VXFrczRqU0Z5cFc4ZHd3UUwxenlnTGdReDk5Tm1DN3pKSnpuU2l3S0c2UlFmVmpBS010Q3N4OFZqUjZrUVc4eDdIcmtYRlpkblEnLFxuICAgIHRlc3Q6ICd4cHViNjYxTXlNd0FxUmJjRXJGcVZYR2lVRnY5WWVvUGJoTjcyVWlOQ1VkajluajNUNk04aDdpS05tYkNZcE1WV1ZaUDdMQTJtYTNIV2NQbmd6MWdSVG00RlBkdG05bUhmck52VTkzTUNvc3pzR0wnLFxuICB9LFxuICBoc21YcHViOiB7XG4gICAgcHJvZDogJ3hwdWI2NjFNeU13QXFSYmNHRXRURmdNQW94TUZvcXNSZERhaWFSNjNieU5mWmRWN2NCWkZ2b3ZRU05KNWJweWVvUXR1S1ZnWEJrNnNGUTdUdHZ5V3FhZHQ0MURuS3d2ZVlnTTVLb1UyRUtZamRZMicsXG4gICAgdGVzdDogJ3hwdWI2NjFNeU13QXFSYmNHRktlNEJxdms0U2dyaWM0Z05GQzhwVWJ3NHRVa1ZqWnh1YmpDQTUyMmdQemMxWWFYYjNiUVZtRFdjN0NqRzhBR05XUnBjZEFVMzhSRVRCaDhuMmJucUVVNGtiVjRvSycsXG4gICAgZGV2OiAneHB1YjY2MU15TXdBcVJiY0ZXem96OHFuWVJEWUVGUXBQTFl3eFZGb0c2V0x5M2NrNVp1cFJHSlRHNGp1NnlHYjdEajNleTZHc0M0a3N0TFJFUjJuS3pnakx0bXh5UGdDNHpIeTdrVmhVdDZ5ZkduJyxcbiAgfSxcbn0pO1xuXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudE5hbWUgPVxuICB8ICdwcm9kJ1xuICB8ICdzdGFnaW5nJ1xuICB8ICd0ZXN0J1xuICB8ICdkZXYnXG4gIHwgJ2xhdGVzdCdcbiAgfCAnbG9jYWwnXG4gIHwgJ2xvY2FsTm9uU2VjdXJlJ1xuICB8ICdtb2NrJ1xuICB8ICdhZG1pblByb2QnXG4gIHwgJ2FkbWluVGVzdCdcbiAgfCAnYWRtaW5EZXYnXG4gIHwgJ2FkbWluTGF0ZXN0J1xuICB8ICdjdXN0b20nXG4gIHwgJ2JyYW5jaCc7XG5cbmV4cG9ydCB0eXBlIEFsaWFzRW52aXJvbm1lbnROYW1lID0gJ3Byb2R1Y3Rpb24nIHwgJ21zUHJvZCcgfCAnbXNUZXN0JyB8ICdtc0RldicgfCAnbXNMYXRlc3QnO1xuXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudHMgPSB7IFtrIGluIEVudmlyb25tZW50TmFtZV06IEVudmlyb25tZW50IH07XG5cbi8vIGFsaWFzIGVudmlyb25tZW50cyBhcmUgZW52aXJvbm1lbnQgbmFtZXMgd2hpY2ggYXJlIGFsaWFzZXMgb2YgYSBzdXBwb3J0ZWQgZW52aXJvbm1lbnRcbmV4cG9ydCBjb25zdCBBbGlhc0Vudmlyb25tZW50czogeyBbayBpbiBBbGlhc0Vudmlyb25tZW50TmFtZV06IEVudmlyb25tZW50TmFtZSB9ID0ge1xuICBwcm9kdWN0aW9uOiAncHJvZCcsXG4gIG1zUHJvZDogJ3Byb2QnLFxuICBtc1Rlc3Q6ICd0ZXN0JyxcbiAgbXNEZXY6ICdkZXYnLFxuICBtc0xhdGVzdDogJ2xhdGVzdCcsXG59O1xuXG5jb25zdCBtYWlubmV0QmFzZTogRW52aXJvbm1lbnRUZW1wbGF0ZSA9IHtcbiAgbmV0d29yazogJ2JpdGNvaW4nIGFzIFYxTmV0d29yayxcbiAgc2lnbmluZ0FkZHJlc3M6ICcxQml0R28zZ3hSWjZtUVNFSDUyZHZDS1NVZ1ZDQUg0UmphJyxcbiAgc2VydmVyWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnByb2QsXG4gIGhzbVhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kLFxuICBidGNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pbycsXG4gIGV0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICBzbm93dHJhY2VCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuc25vd3RyYWNlLmlvJyxcbiAgc25vd3RyYWNlQXBpVG9rZW46IHByb2Nlc3MuZW52LlNOT1dUUkFDRV9BUElfVE9LRU4sXG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FwaScsXG4gIGV0aHdGdWxsTm9kZVJQQ0Jhc2VVcmw6ICdodHRwczovL21haW5uZXQuZXRoZXJldW1wb3cub3JnJyxcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkucG9seWdvbnNjYW4uY29tJyxcbiAgcG9seWdvbnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuUE9MWUdPTlNDQU5fQVBJX1RPS0VOLFxuICBlb3NOb2RlVXJsczogWydodHRwczovL2JwLmNyeXB0b2xpb25zLmlvJywgJ2h0dHBzOi8vYXBpLmVvc25ld3lvcmsuaW8nLCAnaHR0cHM6Ly9hcGkuZW9zZGV0cm9pdC5pbyddLFxuICBuZWFyTm9kZVVybHM6IFsnaHR0cHM6Ly9ycGMubWFpbm5ldC5uZWFyLm9yZyddLFxuICBzb2xOb2RlVXJsOiAnaHR0cHM6Ly9hcGkubWFpbm5ldC1iZXRhLnNvbGFuYS5jb20nLFxuICBhZGFOb2RlVXJsOiAnaHR0cHM6Ly9hcGkua29pb3MucmVzdC9hcGkvdjAnLFxuICBhdG9tTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5jb3Ntb3MuZGlyZWN0b3J5L2Nvc21vc2h1Yi8nLFxuICBkb3ROb2RlVXJsczogWyd3c3M6Ly9ycGMucG9sa2Fkb3QuaW8nXSxcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogJ2h0dHBzOi8vYXBpLnRyb25ncmlkLmlvJyxcbiAgICBzb2xpZGl0eTogJ2h0dHBzOi8vYXBpLnRyb25ncmlkLmlvJyxcbiAgfSxcbiAgaG1hY1ZlcmlmaWNhdGlvbkVuZm9yY2VkOiB0cnVlLFxufTtcblxuY29uc3QgdGVzdG5ldEJhc2U6IEVudmlyb25tZW50VGVtcGxhdGUgPSB7XG4gIG5ldHdvcms6ICd0ZXN0bmV0JyBhcyBWMU5ldHdvcmssXG4gIHNpZ25pbmdBZGRyZXNzOiAnbXNpZ25CZEZYdGVlaERFZ0I2RE5tN25wUnQ3QWNFWkpQMycsXG4gIHNlcnZlclhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi50ZXN0LFxuICBoc21YcHViOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIudGVzdCxcbiAgYnRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL3Rlc3RuZXQvYXBpJyxcbiAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLWdvZXJsaS5ldGhlcnNjYW4uaW8nLFxuICBldGhlcnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgc25vd3RyYWNlQmFzZVVybDogJ2h0dHBzOi8vYXBpLXRlc3RuZXQuc25vd3RyYWNlLmlvJyxcbiAgc25vd3RyYWNlQXBpVG9rZW46IHByb2Nlc3MuZW52LlNOT1dUUkFDRV9BUElfVE9LRU4sXG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FwaScsXG4gIGV0aHdGdWxsTm9kZVJQQ0Jhc2VVcmw6ICdodHRwczovL21haW5uZXQuZXRoZXJldW1wb3cub3JnJyxcbiAgcG9seWdvbnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGktdGVzdG5ldC5wb2x5Z29uc2Nhbi5jb20nLFxuICBwb2x5Z29uc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5QT0xZR09OU0NBTl9BUElfVE9LRU4sXG4gIC8vIGt5bGluIGVvcyBlbmRwb2ludHMgZm91bmQgaGVyZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vY3J5cHRva3lsaW4vQ3J5cHRvS3lsaW4tVGVzdG5ldCNodHRwLWFwaS1saXN0XG4gIC8vIGh0dHBzOi8vZG9jcy5saXF1aWRhcHBzLmlvL2xpcXVpZGFwcHMtZG9jdW1lbnRhdGlvbi9lb3Npby1ndWlkZXMvdGVzdG5ldC1jcmVhdGlvbi1ndWlkZXMvY3JlYXRpbmctY3J5cHRva3lsaW4tYWNjb3VudCNzZXR1cFxuICBlb3NOb2RlVXJsczogWydodHRwczovL2t5bGluLmVvc24uaW8nLCAnaHR0cHM6Ly9hcGkua3lsaW4uYWxvaGFlb3MuY29tJ10sXG4gIG5lYXJOb2RlVXJsczogWydodHRwczovL3JwYy50ZXN0bmV0Lm5lYXIub3JnJ10sXG4gIHNvbE5vZGVVcmw6ICdodHRwczovL2FwaS5kZXZuZXQuc29sYW5hLmNvbScsXG4gIGFkYU5vZGVVcmw6ICdodHRwczovL3ByZXByb2Qua29pb3MucmVzdC9hcGkvdjAnLFxuICBhdG9tTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5zZW50cnktMDIudGhldGEtdGVzdG5ldC5wb2x5cG9yZS54eXovJyxcbiAgZG90Tm9kZVVybHM6IFsnd3NzOi8vd2VzdGVuZC1ycGMucG9sa2Fkb3QuaW8nXSxcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogJ2h0dHA6Ly80Ny4yNTIuODEuMTM1OjgwOTAnLFxuICAgIHNvbGlkaXR5OiAnaHR0cDovLzQ3LjI1Mi44MS4xMzU6ODA5MScsXG4gIH0sXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogZmFsc2UsXG59O1xuXG5jb25zdCBkZXZCYXNlOiBFbnZpcm9ubWVudFRlbXBsYXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgaHNtWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5oc21YcHViLmRldixcbiAgaG1hY1ZlcmlmaWNhdGlvbkVuZm9yY2VkOiBmYWxzZSxcbn0pO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5leHBvcnQgY29uc3QgRW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudHMgPSB7XG4gIHByb2Q6IE9iamVjdC5hc3NpZ24oe30sIG1haW5uZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28uY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLmNvbS9hcGkvdjIveGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgdGVzdDogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby10ZXN0LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby10ZXN0LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGRldjogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLWRldi5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28tZGV2LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGxhdGVzdDogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLWxhdGVzdC5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28tbGF0ZXN0LmNvbS9hcGkvdjIveGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgc3RhZ2luZzogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby1zdGFnaW5nLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby1zdGFnaW5nLmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGxvY2FsOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2xvY2FsaG9zdDozMDAwL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbG9jYWxOb25TZWN1cmU6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgbW9jazogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYml0Z28uZmFrZXVybCcsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2JpdGdvLmZha2V1cmwvYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gICAgZXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLWdvZXJsaS5ldGhlcnNjYW4uZmFrZXVybCcsXG4gICAgZXRoZXJzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkVUSEVSU0NBTl9BUElfVE9LRU4sXG4gICAgc25vd3RyYWNlQXBpVG9rZW46IHByb2Nlc3MuZW52LlNOT1dUUkFDRV9BUElfVE9LRU4sXG4gICAgc25vd3RyYWNlQmFzZVVybDogJ2h0dHBzOi8vYXBpLXRlc3RuZXQuc25vd3RyYWNlLmZha2V1cmwnLFxuICAgIGV0aDJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FwaScsXG4gIH0pLFxuICBhZG1pblByb2Q6IE9iamVjdC5hc3NpZ24oe30sIG1haW5uZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby5jb20vYXBpL3YyL3hsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGFkbWluVGVzdDogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLXRlc3QuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28tdGVzdC5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBhZG1pbkRldjogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28tZGV2LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FkbWluLmJpdGdvLWRldi5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBhZG1pbkxhdGVzdDogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28tbGF0ZXN0LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FkbWluLmJpdGdvLWxhdGVzdC5jb20vYXBpL3YyL3hsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGN1c3RvbTogT2JqZWN0LmFzc2lnbih7fSwgbWFpbm5ldEJhc2UsIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIHVyaTogcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX1JPT1RfVVJJISxcbiAgICBuZXR3b3JrOiBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fQklUQ09JTl9ORVRXT1JLIGFzIFYxTmV0d29yayxcbiAgICBoc21YcHViOlxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyA/IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi5wcm9kIDogaGFyZGNvZGVkUHVibGljS2V5cy5oc21YcHViLnRlc3QsXG4gICAgYnRjRXhwbG9yZXJCYXNlVXJsOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX0JJVENPSU5fTkVUV09SSyAhPT0gJ2JpdGNvaW4nXG4gICAgICAgID8gJ2h0dHBzOi8vYmxvY2tzdHJlYW0uaW5mby90ZXN0bmV0L2FwaSdcbiAgICAgICAgOiAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL2FwaScsXG4gICAgZXRoZXJzY2FuQmFzZVVybDpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9FVEhFUkVVTV9ORVRXT1JLICE9PSAnZXRoZXJldW0nXG4gICAgICAgID8gJ2h0dHBzOi8vYXBpLWdvZXJsaS5ldGhlcnNjYW4uaW8nXG4gICAgICAgIDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pbycsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6XG4gICAgICBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fU1RFTExBUl9ORVRXT1JLICE9PSAnc3RlbGxhcidcbiAgICAgICAgPyBgaHR0cHM6Ly8ke3Byb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9ST09UX1VSSX0vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbmBcbiAgICAgICAgOiBgaHR0cHM6Ly8ke3Byb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9ST09UX1VSSX0vYXBpL3YyL3hsbS9mZWRlcmF0aW9uYCxcbiAgICBzZXJ2ZXJYcHViOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX0JJVENPSU5fTkVUV09SSyAhPT0gJ2JpdGNvaW4nXG4gICAgICAgID8gaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnRlc3RcbiAgICAgICAgOiBoYXJkY29kZWRQdWJsaWNLZXlzLnNlcnZlclhwdWIucHJvZCxcbiAgfSksXG4gIGJyYW5jaDogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLWRldi5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28tZGV2LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG59O1xuIl19
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL2Vudmlyb25tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnSGEsUUFBQSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQy9DLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtLQUN4SDtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxpSEFBaUg7UUFDdkgsSUFBSSxFQUFFLGlIQUFpSDtRQUN2SCxHQUFHLEVBQUUsaUhBQWlIO0tBQ3ZIO0NBQ0YsQ0FBQyxDQUFDO0FBcUJILHdGQUF3RjtBQUMzRSxRQUFBLGlCQUFpQixHQUFxRDtJQUNqRixVQUFVLEVBQUUsTUFBTTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQXdCO0lBQ3ZDLE9BQU8sRUFBRSxTQUFzQjtJQUMvQixjQUFjLEVBQUUsb0NBQW9DO0lBQ3BELFVBQVUsRUFBRSwyQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSTtJQUMvQyxPQUFPLEVBQUUsMkJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUk7SUFDekMsa0JBQWtCLEVBQUUsOEJBQThCO0lBQ2xELGdCQUFnQixFQUFFLDZCQUE2QjtJQUMvQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtJQUNsRCxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDL0MsbUJBQW1CLEVBQUUsNEJBQTRCO0lBQ2pELHNCQUFzQixFQUFFLGlDQUFpQztJQUN6RCxjQUFjLEVBQUUsNkJBQTZCO0lBQzdDLGVBQWUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWE7SUFDMUMsa0JBQWtCLEVBQUUsNkJBQTZCO0lBQ2pELG1CQUFtQixFQUFF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LDRCQUE0QixLQUFLLFNBQVM7WUFDcEQsQ0FBQyxDQUFDLFdBQVcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIseUJBQXlCO1lBQ3ZFLENBQUMsQ0FBQyxXQUFXLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLHdCQUF3QjtRQUMxRSxVQUFVLEVBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsS0FBSyxTQUFTO1lBQ3BELENBQUMsQ0FBQywyQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSTtZQUNyQyxDQUFDLENBQUMsMkJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUk7S0FDMUMsQ0FBQztJQUNGLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUU7UUFDakMsR0FBRyxFQUFFLDJCQUEyQjtRQUNoQywwQkFBMEIsRUFBRSxrREFBa0Q7S0FDL0UsQ0FBQztDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBWMU5ldHdvcmsgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIEVudmlyb25tZW50VGVtcGxhdGUge1xuICB1cmk/OiBzdHJpbmc7XG4gIG5ldHdvcms6IFYxTmV0d29yaztcbiAgc2lnbmluZ0FkZHJlc3M6IHN0cmluZztcbiAgc2VydmVyWHB1Yjogc3RyaW5nO1xuICBoc21YcHViOiBzdHJpbmc7XG4gIGJ0Y0V4cGxvcmVyQmFzZVVybDogc3RyaW5nO1xuICBldGhlcnNjYW5CYXNlVXJsOiBzdHJpbmc7XG4gIGV0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICBhdmF4Y05ldHdvcmtCYXNlVXJsOiBzdHJpbmc7XG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6IHN0cmluZztcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogc3RyaW5nO1xuICBwb2x5Z29uc2NhbkJhc2VVcmw/OiBzdHJpbmc7XG4gIGJzY3NjYW5CYXNlVXJsPzogc3RyaW5nO1xuICBic2NzY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHBvbHlnb25zY2FuQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGFwZWNoYWluRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgYXBlY2hhaW5FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGFyYmlzY2FuQmFzZVVybD86IHN0cmluZztcbiAgYXJiaXNjYW5BcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgb2FzRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBvcHRpbWlzdGljRXRoZXJzY2FuQmFzZVVybD86IHN0cmluZztcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuPzogc3RyaW5nO1xuICB6a3N5bmNFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHprc3luY0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIGJlcmFFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBiYXNlZXRoRXhwbG9yZXJVcmw/OiBzdHJpbmc7XG4gIGJhc2VldGhBcGlUb2tlbj86IHN0cmluZztcbiAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw/OiBzdHJpbmc7XG4gIGVvc05vZGVVcmxzOiBzdHJpbmdbXTtcbiAgbmVhck5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc29sTm9kZVVybDogc3RyaW5nO1xuICBzb2xBbGNoZW15Tm9kZVVybDogc3RyaW5nO1xuICBhZGFOb2RlVXJsOiBzdHJpbmc7XG4gIGhhc2hOb2RlVXJsOiBzdHJpbmc7XG4gIGluak5vZGVVcmw6IHN0cmluZztcbiAgYXRvbU5vZGVVcmw6IHN0cmluZztcbiAgb3Ntb05vZGVVcmw6IHN0cmluZztcbiAgdGlhTm9kZVVybDogc3RyaW5nO1xuICBzZWlOb2RlVXJsOiBzdHJpbmc7XG4gIGJsZE5vZGVVcmw6IHN0cmluZztcbiAgYmVyYU5vZGVVcmw6IHN0cmluZztcbiAgemV0YU5vZGVVcmw6IHN0cmluZztcbiAgY29yZXVtTm9kZVVybDogc3RyaW5nO1xuICBydW5lTm9kZVVybDogc3RyaW5nO1xuICBiYWJ5Tm9kZVVybDogc3RyaW5nO1xuICBtYW50cmFOb2RlVXJsOiBzdHJpbmc7XG4gIGNyb25vc05vZGVVcmw6IHN0cmluZztcbiAgaW5pdGlhTm9kZVVybDogc3RyaW5nO1xuICBhc2lOb2RlVXJsOiBzdHJpbmc7XG4gIGlzbG1Ob2RlVXJsOiBzdHJpbmc7XG4gIGRvdE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgc3Vic3RyYXRlTm9kZVVybHM6IHN0cmluZ1tdO1xuICBwb2x5bWVzaE5vZGVVcmxzOiBzdHJpbmdbXTtcbiAgdHJvbk5vZGVzOiB7XG4gICAgZnVsbDogc3RyaW5nO1xuICAgIHNvbGlkaXR5OiBzdHJpbmc7XG4gIH07XG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogYm9vbGVhbjtcbiAgdG9uTm9kZVVybDogc3RyaW5nO1xuICBzdWlOb2RlVXJsOiBzdHJpbmc7XG4gIGV0Y05vZGVVcmw6IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgY29yZWRhb0V4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHhkY0V4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgeGRjRXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgZmxyRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBmbHJFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzZ2JFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNnYkV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIGljcE5vZGVVcmw6IHN0cmluZztcbiAgd2VtaXhFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHdlbWl4RXhwbG9yZXJBcGlUb2tlbj86IHN0cmluZztcbiAgbW9uRXhwbG9yZXJCYXNlVXJsPzogc3RyaW5nO1xuICBtb25FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICB3b3JsZEV4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgd29ybGRFeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzb21uaWFFeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbW5pYUV4cGxvcmVyQXBpVG9rZW4/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckJhc2VVcmw/OiBzdHJpbmc7XG4gIHNvbmVpdW1FeHBsb3JlckFwaVRva2VuPzogc3RyaW5nO1xuICBzdHhOb2RlVXJsOiBzdHJpbmc7XG4gIHZldE5vZGVVcmw6IHN0cmluZztcbiAgLy8gVGhlIGtleSBoZXJlIGlzIGNvaW5OYW1lIGFuZCBpdCB3aWxsIGJlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCAoZWc6ICdwaHJzJylcbiAgZXZtPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgIGJhc2VVcmw6IHN0cmluZztcbiAgICAgIGFwaVRva2VuPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIC8vIFRoZSBrZXkgaGVyZSBpcyBjb2luRmFtaWx5IGFuZCBpdCB3aWxsIGJlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCAoZWc6ICdjcm9ub3MnKVxuICBjb3Ntb3M/OiB7XG4gICAgW2tleTogc3RyaW5nXToge1xuICAgICAgbm9kZVVybDogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIHh0ekV4cGxvcmVyQmFzZVVybD86IHN0cmluZztcbiAgeHR6UnBjVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50IGV4dGVuZHMgRW52aXJvbm1lbnRUZW1wbGF0ZSB7XG4gIHVyaTogc3RyaW5nO1xuICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgaGFyZGNvZGVkUHVibGljS2V5cyA9IE9iamVjdC5mcmVlemUoe1xuICBzZXJ2ZXJYcHViOiB7XG4gICAgcHJvZDogJ3hwdWI2NjFNeU13QXFSYmNFdFVndTlIRjhhaTRpcHVWS0tIQnpVcWtzNGpTRnlwVzhkd3dRTDF6eWdMZ1F4OTlObUM3ekpKem5TaXdLRzZSUWZWakFLTXRDc3g4VmpSNmtRVzh4N0hya1hGWmRuUScsXG4gICAgdGVzdDogJ3hwdWI2NjFNeU13QXFSYmNFckZxVlhHaVVGdjlZZW9QYmhONzJVaU5DVWRqOW5qM1Q2TThoN2lLTm1iQ1lwTVZXVlpQN0xBMm1hM0hXY1BuZ3oxZ1JUbTRGUGR0bTltSGZyTnZVOTNNQ29zenNHTCcsXG4gIH0sXG4gIGhzbVhwdWI6IHtcbiAgICBwcm9kOiAneHB1YjY2MU15TXdBcVJiY0dFdFRGZ01Bb3hNRm9xc1JkRGFpYVI2M2J5TmZaZFY3Y0JaRnZvdlFTTko1YnB5ZW9RdHVLVmdYQms2c0ZRN1R0dnlXcWFkdDQxRG5Ld3ZlWWdNNUtvVTJFS1lqZFkyJyxcbiAgICB0ZXN0OiAneHB1YjY2MU15TXdBcVJiY0dGS2U0QnF2azRTZ3JpYzRnTkZDOHBVYnc0dFVrVmpaeHViakNBNTIyZ1B6YzFZYVhiM2JRVm1EV2M3Q2pHOEFHTldScGNkQVUzOFJFVEJoOG4yYm5xRVU0a2JWNG9LJyxcbiAgICBkZXY6ICd4cHViNjYxTXlNd0FxUmJjRld6b3o4cW5ZUkRZRUZRcFBMWXd4VkZvRzZXTHkzY2s1WnVwUkdKVEc0anU2eUdiN0RqM2V5NkdzQzRrc3RMUkVSMm5LemdqTHRteHlQZ0M0ekh5N2tWaFV0NnlmR24nLFxuICB9LFxufSk7XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50TmFtZSA9XG4gIHwgJ3Byb2QnXG4gIHwgJ3N0YWdpbmcnXG4gIHwgJ3Rlc3QnXG4gIHwgJ2RldidcbiAgfCAnbG9jYWwnXG4gIHwgJ2xvY2FsTm9uU2VjdXJlJ1xuICB8ICdtb2NrJ1xuICB8ICdhZG1pblByb2QnXG4gIHwgJ2FkbWluVGVzdCdcbiAgfCAnYWRtaW5TdGFnaW5nJ1xuICB8ICdhZG1pbkRldidcbiAgfCAnY3VzdG9tJ1xuICB8ICdicmFuY2gnO1xuXG5leHBvcnQgdHlwZSBBbGlhc0Vudmlyb25tZW50TmFtZSA9ICdwcm9kdWN0aW9uJyB8ICdtc1Byb2QnIHwgJ21zVGVzdCcgfCAnbXNEZXYnO1xuXG5leHBvcnQgdHlwZSBFbnZpcm9ubWVudHMgPSB7IFtrIGluIEVudmlyb25tZW50TmFtZV06IEVudmlyb25tZW50IH07XG5cbi8vIGFsaWFzIGVudmlyb25tZW50cyBhcmUgZW52aXJvbm1lbnQgbmFtZXMgd2hpY2ggYXJlIGFsaWFzZXMgb2YgYSBzdXBwb3J0ZWQgZW52aXJvbm1lbnRcbmV4cG9ydCBjb25zdCBBbGlhc0Vudmlyb25tZW50czogeyBbayBpbiBBbGlhc0Vudmlyb25tZW50TmFtZV06IEVudmlyb25tZW50TmFtZSB9ID0ge1xuICBwcm9kdWN0aW9uOiAncHJvZCcsXG4gIG1zUHJvZDogJ3Byb2QnLFxuICBtc1Rlc3Q6ICd0ZXN0JyxcbiAgbXNEZXY6ICdkZXYnLFxufTtcblxuY29uc3QgbWFpbm5ldEJhc2U6IEVudmlyb25tZW50VGVtcGxhdGUgPSB7XG4gIG5ldHdvcms6ICdiaXRjb2luJyBhcyBWMU5ldHdvcmssXG4gIHNpZ25pbmdBZGRyZXNzOiAnMUJpdEdvM2d4Ulo2bVFTRUg1MmR2Q0tTVWdWQ0FINFJqYScsXG4gIHNlcnZlclhwdWI6IGhhcmRjb2RlZFB1YmxpY0tleXMuc2VydmVyWHB1Yi5wcm9kLFxuICBoc21YcHViOiBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIucHJvZCxcbiAgYnRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9ibG9ja3N0cmVhbS5pbmZvL2FwaScsXG4gIGV0aGVyc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBldGhlcnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgYXZheGNOZXR3b3JrQmFzZVVybDogJ2h0dHBzOi8vYXBpLmF2YXgubmV0d29yaycsXG4gIGV0aDJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FwaScsXG4gIGV0aHdGdWxsTm9kZVJQQ0Jhc2VVcmw6ICdodHRwczovL21haW5uZXQuZXRoZXJldW1wb3cub3JnJyxcbiAgYnNjc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBic2NzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkJTQ19BUElfVE9LRU4sXG4gIHBvbHlnb25zY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHBvbHlnb25zY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LlBPTFlHT05TQ0FOX0FQSV9UT0tFTixcbiAgYXJiaXNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgYXJiaXNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuQVJCSVNDQU5fQVBJX1RPS0VOLFxuICBvcHRpbWlzdGljRXRoZXJzY2FuQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuT1BUSU1JU1RJQ19FVEhFUlNDQU5fQVBJX1RPS0VOLFxuICB6a3N5bmNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2Jsb2NrLWV4cGxvcmVyLWFwaS5tYWlubmV0Lnprc3luYy5pbycsXG4gIHprc3luY0V4cGxvcmVyQXBpVG9rZW46IHByb2Nlc3MuZW52LlpLU1lOQ19FWFBMT1JFUl9BUElfVE9LRU4sXG4gIGJhc2VldGhFeHBsb3JlclVybDogJ2h0dHBzOi8vYXBpLmJhc2VzY2FuLm9yZycsIC8vQmFzZUVUSCBleHBsb3JlciBhcGkgdXJsXG4gIGJhc2VldGhBcGlUb2tlbjogcHJvY2Vzcy5lbnYuQkFTRVNDQU5fQVBJX1RPS0VOLFxuICBlb3NOb2RlVXJsczogWydodHRwczovL2JwLmNyeXB0b2xpb25zLmlvJywgJ2h0dHBzOi8vYXBpLmVvc25ld3lvcmsuaW8nLCAnaHR0cHM6Ly9hcGkuZW9zZGV0cm9pdC5pbyddLFxuICBuZWFyTm9kZVVybHM6IFsnaHR0cHM6Ly9hcGkuZmFzdG5lYXIuY29tJ10sXG4gIHNvbE5vZGVVcmw6ICdodHRwczovL2FwaS5tYWlubmV0LWJldGEuc29sYW5hLmNvbScsXG4gIHNvbEFsY2hlbXlOb2RlVXJsOiAnaHR0cHM6Ly9zb2xhbmEtbWFpbm5ldC5nLmFsY2hlbXkuY29tL3YyJyxcbiAgYWRhTm9kZVVybDogJ2h0dHBzOi8vYXBpLmtvaW9zLnJlc3QvYXBpL3YxJyxcbiAgaGFzaE5vZGVVcmw6ICdodHRwczovL2FwaS5wcm92ZW5hbmNlLmlvJyxcbiAgaW5qTm9kZVVybDogJ2h0dHBzOi8vc2VudHJ5LmxjZC5pbmplY3RpdmUubmV0d29yaycsIC8vIHJlZmVyZW5jZSBodHRwczovL2RvY3MuaW5qZWN0aXZlLm5ldHdvcmsvZGV2ZWxvcC9wdWJsaWMtZW5kcG9pbnRzL1xuICBhdG9tTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5jb3Ntb3MuZGlyZWN0b3J5L2Nvc21vc2h1Yi8nLFxuICBvc21vTm9kZVVybDogJ2h0dHBzOi8vbGNkLm9zbW9zaXMuem9uZScsXG4gIHRpYU5vZGVVcmw6ICdodHRwczovL3B1YmxpYy1jZWxlc3RpYS1sY2QubnVtaWEueHl6JywgLy8gcmVmZXJlbmNlIGh0dHBzOi8vZG9jcy5jZWxlc3RpYS5vcmcvbm9kZXMvbWFpbm5ldCNhcGktZW5kcG9pbnRzXG4gIHNlaU5vZGVVcmw6ICdodHRwczovL3NlaS1hcGkucG9sa2FjaHUuY29tJyxcbiAgYmxkTm9kZVVybDogJ2h0dHBzOi8vYWdvcmljLWFwaS5wb2xrYWNodS5jb20nLFxuICBiZXJhTm9kZVVybDogJycsIC8vIFRPRE8oV0lOLTY5Myk6IHVwZGF0ZSB1cmwgd2hlbiBtYWlubmV0IGdvZXMgbGl2ZVxuICB6ZXRhTm9kZVVybDogJ2h0dHBzOi8vemV0YWNoYWluLmJsb2NrcGkubmV0d29yaycsIC8vIHJlZmVyZW5jZSBodHRwczovL3d3dy56ZXRhY2hhaW4uY29tL2RvY3MvcmVmZXJlbmNlL2FwaS9cbiAgY29yZXVtTm9kZVVybDogJ2h0dHBzOi8vZnVsbC1ub2RlLm1haW5uZXQtMS5jb3JldW0uZGV2OjEzMTcnLFxuICBydW5lTm9kZVVybDogJ2h0dHBzOi8vdGhvcm5vZGUubmluZXJlYWxtcy5jb20nLFxuICBiYWJ5Tm9kZVVybDogJ2h0dHBzOi8vYmFieWxvbi5ub2Rlcy5ndXJ1L2FwaS8nLFxuICBpc2xtTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5jb3Ntb3MuaGFxcS5uZXR3b3JrJyxcbiAgbWFudHJhTm9kZVVybDogJ2h0dHBzOi8vbWFudHJhLXJlc3QucHVibGljbm9kZS5jb20vJyxcbiAgY3Jvbm9zTm9kZVVybDogJ2h0dHBzOi8vY3Jvbm9zLXBvcy1yZXN0LnB1YmxpY25vZGUuY29tLycsXG4gIGluaXRpYU5vZGVVcmw6ICdodHRwczovL3Jlc3QuaW5pdGlhLnh5ei8nLFxuICBhc2lOb2RlVXJsOiAnaHR0cHM6Ly9yZXN0LWZldGNoaHViLmZldGNoLmFpLycsXG4gIGRvdE5vZGVVcmxzOiBbJ3dzczovL3JwYy5wb2xrYWRvdC5pbyddLFxuICBzdWJzdHJhdGVOb2RlVXJsczogWyd3c3M6Ly9lbnRyeXBvaW50LWZpbm5leS5vcGVudGVuc29yLmFpJ10sXG4gIHBvbHltZXNoTm9kZVVybHM6IFsnd3NzOi8vbWFpbm5ldC1ycGMucG9seW1lc2gubmV0d29yayddLFxuICB0cm9uTm9kZXM6IHtcbiAgICBmdWxsOiAnaHR0cHM6Ly9hcGkudHJvbmdyaWQuaW8nLFxuICAgIHNvbGlkaXR5OiAnaHR0cHM6Ly9hcGkudHJvbmdyaWQuaW8nLFxuICB9LFxuICBobWFjVmVyaWZpY2F0aW9uRW5mb3JjZWQ6IHRydWUsXG4gIHRvbk5vZGVVcmw6ICdodHRwczovL3RvbmNlbnRlci5jb20vYXBpL3YyL2pzb25SUEMnLFxuICBzdWlOb2RlVXJsOiAnaHR0cHM6Ly9mdWxsbm9kZS5tYWlubmV0LnN1aS5pbycsXG4gIGV0Y05vZGVVcmw6ICdodHRwczovL2V0Yy5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL29wZW5hcGkuY29yZWRhby5vcmcnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLm9hc3lzLmdhbWVzJyxcbiAgZmxyRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9mbGFyZS1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgd2VtaXhFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBzZ2JFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3NvbmdiaXJkLWV4cGxvcmVyLmZsYXJlLm5ldHdvcmsnLFxuICBldm06IHtcbiAgICBwaHJzOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LmRwbGFicy1pbnRlcm5hbC5jb20nLCAvLyBUT0RPOiBXSU4tNTc4NyBhZGQgbWFpbm5ldCB1cmwgd2hlbiBpdHMgYXZhaWxhYmxlXG4gICAgfSxcbiAgICBjdGM6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL21haW5uZXQzLmNyZWRpdGNvaW4ubmV0d29yaycsXG4gICAgfSxcbiAgICBoeXBlZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ycGMuaHlwZXJsaXF1aWQueHl6L2V2bScsXG4gICAgfSxcbiAgICBvZzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vY2hhaW5zY2FuLjBnLmFpL29wZW4vYXBpJyxcbiAgICB9LFxuICAgIHhwbDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnJvdXRlc2Nhbi5pby92Mi9uZXR3b3JrL21haW5uZXQvZXZtLzk3NDUvZXRoZXJzY2FuL2FwaScsXG4gICAgfSxcbiAgICBzb25pYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcnBjLnNvbmljbGFicy5jb20nLFxuICAgIH0sXG4gICAgc2VpZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ldm0tcnBjLnNlaS1hcGlzLmNvbScsXG4gICAgfSxcbiAgICBrYWlhOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9wdWJsaWMtZW4ubm9kZS5rYWlhLmlvJyxcbiAgICB9LFxuICAgIGthdmFldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS52ZXJpZnkubWludHNjYW4uaW8vZXZtL2FwaS8weDhhZScsXG4gICAgfSxcbiAgICBpcnlzOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LXJwYy5pcnlzLnh5ei92MS9leGVjdXRpb24tcnBjJywgLy9UT0RPOiBXSU4tNjE5MSBhZGQgbWFpbm5ldCB1cmwgd2hlbiBhdmFpbGFibGVcbiAgICB9LFxuICAgIG1vbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBsaW5lYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBpcDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnN0b3J5c2Nhbi5hcHAvJyxcbiAgICB9LFxuICAgIHNvbWk6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL21haW5uZXQuc29tbmlhLnczdXMuc2l0ZS8nLFxuICAgIH0sXG4gICAgYmFzZWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBmbG93OiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ldm0uZmxvd3NjYW4uaW8vYXBpJyxcbiAgICB9LFxuICAgIHBsdW1lOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9leHBsb3Jlci5wbHVtZS5vcmcvYXBpJyxcbiAgICB9LFxuICAgIG1lZ2FldGg6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2NhcnJvdC5tZWdhZXRoLmNvbS9ycGMnLCAvL1RPRE86IGFkZCBtYWlubmV0IHVybCB3aGVuIGF2YWlsYWJsZVxuICAgIH0sXG4gIH0sXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2ljMC5hcHAnLFxuICB3b3JsZEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vd29ybGRzY2FuLm9yZy8nLFxuICBzb21uaWFFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL21haW5uZXQuc29tbmlhLnczdXMuc2l0ZS8nLFxuICBzb25laXVtRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9zb25laXVtLmJsb2Nrc2NvdXQuY29tJyxcbiAgbW9uRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgc3R4Tm9kZVVybDogJ2h0dHBzOi8vYXBpLmhpcm8uc28nLFxuICB2ZXROb2RlVXJsOiAnaHR0cHM6Ly9zeW5jLW1haW5uZXQudmVjaGFpbi5vcmcnLFxuICB4dHpFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS50emt0LmlvJyxcbiAgeHR6UnBjVXJsOiAnaHR0cHM6Ly9ycGMudHprdC5pby9tYWlubmV0Jyxcbn07XG5cbmNvbnN0IHRlc3RuZXRCYXNlOiBFbnZpcm9ubWVudFRlbXBsYXRlID0ge1xuICBuZXR3b3JrOiAndGVzdG5ldCcgYXMgVjFOZXR3b3JrLFxuICBzaWduaW5nQWRkcmVzczogJ21zaWduQmRGWHRlZWhERWdCNkRObTducFJ0N0FjRVpKUDMnLFxuICBzZXJ2ZXJYcHViOiBoYXJkY29kZWRQdWJsaWNLZXlzLnNlcnZlclhwdWIudGVzdCxcbiAgaHNtWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5oc21YcHViLnRlc3QsXG4gIGJ0Y0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmxvY2tzdHJlYW0uaW5mby90ZXN0bmV0L2FwaScsXG4gIGV0aGVyc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBldGhlcnNjYW5BcGlUb2tlbjogcHJvY2Vzcy5lbnYuRVRIRVJTQ0FOX0FQSV9UT0tFTixcbiAgYXZheGNOZXR3b3JrQmFzZVVybDogJ2h0dHBzOi8vYXBpLmF2YXgtdGVzdC5uZXR3b3JrJyxcbiAgZXRoMkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmVhY29uc2Nhbi5jb20vYXBpJyxcbiAgZXRod0Z1bGxOb2RlUlBDQmFzZVVybDogJ2h0dHBzOi8vbWFpbm5ldC5ldGhlcmV1bXBvdy5vcmcnLFxuICBwb2x5Z29uc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBwb2x5Z29uc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5QT0xZR09OU0NBTl9BUElfVE9LRU4sXG4gIGJzY3NjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgYnNjc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5CU0NfQVBJX1RPS0VOLFxuICBhcmJpc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS5ldGhlcnNjYW4uaW8vdjInLFxuICBhcmJpc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5BUkJJU0NBTl9BUElfVE9LRU4sXG4gIG9wdGltaXN0aWNFdGhlcnNjYW5CYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgb3B0aW1pc3RpY0V0aGVyc2NhbkFwaVRva2VuOiBwcm9jZXNzLmVudi5PUFRJTUlTVElDX0VUSEVSU0NBTl9BUElfVE9LRU4sXG4gIHprc3luY0V4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYmxvY2stZXhwbG9yZXItYXBpLnNlcG9saWEuemtzeW5jLmRldicsXG4gIHprc3luY0V4cGxvcmVyQXBpVG9rZW46IHByb2Nlc3MuZW52LlpLU1lOQ19FWFBMT1JFUl9BUElfVE9LRU4sXG4gIGJhc2VldGhFeHBsb3JlclVybDogJ2h0dHBzOi8vYXBpLXNlcG9saWEuYmFzZXNjYW4ub3JnJyxcbiAgYmFzZWV0aEFwaVRva2VuOiBwcm9jZXNzLmVudi5CQVNFU0NBTl9BUElfVE9LRU4sXG4gIC8vIGt5bGluIGVvcyBlbmRwb2ludHMgZm91bmQgaGVyZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vY3J5cHRva3lsaW4vQ3J5cHRvS3lsaW4tVGVzdG5ldCNodHRwLWFwaS1saXN0XG4gIC8vIGh0dHBzOi8vZG9jcy5saXF1aWRhcHBzLmlvL2xpcXVpZGFwcHMtZG9jdW1lbnRhdGlvbi9lb3Npby1ndWlkZXMvdGVzdG5ldC1jcmVhdGlvbi1ndWlkZXMvY3JlYXRpbmctY3J5cHRva3lsaW4tYWNjb3VudCNzZXR1cFxuICBlb3NOb2RlVXJsczogWydodHRwczovL2t5bGluLmVvc24uaW8nLCAnaHR0cHM6Ly9hcGkua3lsaW4uYWxvaGFlb3MuY29tJ10sXG4gIG5lYXJOb2RlVXJsczogWydodHRwczovL3Rlc3QucnBjLmZhc3RuZWFyLmNvbSddLFxuICBzb2xOb2RlVXJsOiAnaHR0cHM6Ly9hcGkuZGV2bmV0LnNvbGFuYS5jb20nLFxuICBzb2xBbGNoZW15Tm9kZVVybDogJ2h0dHBzOi8vc29sYW5hLWRldm5ldC5nLmFsY2hlbXkuY29tL3YyJyxcbiAgYWRhTm9kZVVybDogJ2h0dHBzOi8vcHJlcHJvZC5rb2lvcy5yZXN0L2FwaS92MScsXG4gIGhhc2hOb2RlVXJsOiAnaHR0cHM6Ly9hcGkudGVzdC5wcm92ZW5hbmNlLmlvJyxcbiAgaW5qTm9kZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5zZW50cnkubGNkLmluamVjdGl2ZS5uZXR3b3JrJywgLy8gQ09JTi0xMjE5IDogcmVmZXJlbmNlICBodHRwczovL2RvY3MuaW5qZWN0aXZlLm5ldHdvcmsvZGV2ZWxvcC9wdWJsaWMtZW5kcG9pbnRzLyN0ZXN0bmV0XG4gIGF0b21Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LnByb3ZpZGVyLXNlbnRyeS0wMi5pY3MtdGVzdG5ldC5wb2x5cG9yZS54eXovJyxcbiAgb3Ntb05vZGVVcmw6ICdodHRwczovL2xjZC5vc21vdGVzdDUub3Ntb3Npcy56b25lJyxcbiAgdGlhTm9kZVVybDogJ2h0dHBzOi8vYXBpLW1vY2hhLnBvcHMub25lJyxcbiAgc2VpTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5hdGxhbnRpYy0yLnNlaW5ldHdvcmsuaW8nLFxuICBibGROb2RlVXJsOiAnaHR0cHM6Ly9kZXZuZXQuYXBpLmFnb3JpYy5uZXQnLFxuICBiZXJhTm9kZVVybDogJycsIC8vIFRPRE8oV0lOLTY5Myk6IHVwZGF0ZSB1cmwgd2hlbiB0ZXN0bmV0IGdvZXMgbGl2ZVxuICB6ZXRhTm9kZVVybDogJ2h0dHBzOi8vcmVzdC5ub2RlanVtcGVyLmlvL3pldGFjaGFpbnRlc3RuZXQnLCAvLyByZWZlcmVuY2UgOiBodHRwczovL3d3dy56ZXRhY2hhaW4uY29tL2RvY3MvcmVmZXJlbmNlL2FwaS9cbiAgY29yZXVtTm9kZVVybDogJ2h0dHBzOi8vZnVsbC1ub2RlLnRlc3RuZXQtMS5jb3JldW0uZGV2OjEzMTcnLFxuICBydW5lTm9kZVVybDogJ2h0dHBzOi8vc3RhZ2VuZXQtdGhvcm5vZGUubmluZXJlYWxtcy5jb20nLFxuICBiYWJ5Tm9kZVVybDogJ2h0dHBzOi8vYmFieWxvbi10ZXN0bmV0LWFwaS5ub2Rlcy5ndXJ1LycsXG4gIGlzbG1Ob2RlVXJsOiAnaHR0cHM6Ly9yZXN0LmNvc21vcy50ZXN0ZWRnZTIuaGFxcS5uZXR3b3JrICcsXG4gIG1hbnRyYU5vZGVVcmw6ICdodHRwczovL21hbnRyYS10ZXN0bmV0LXJlc3QucHVibGljbm9kZS5jb20vJyxcbiAgY3Jvbm9zTm9kZVVybDogJ2h0dHBzOi8vdGVzdG5ldC1jcm9lc2VpZC00LmNyeXB0by5vcmc6MTMxNy8nLFxuICBpbml0aWFOb2RlVXJsOiAnaHR0cHM6Ly9yZXN0LnRlc3RuZXQuaW5pdGlhLnh5ei8nLFxuICBhc2lOb2RlVXJsOiAnaHR0cHM6Ly9yZXN0LWRvcmFkby5mZXRjaC5haS8nLFxuICBkb3ROb2RlVXJsczogWyd3c3M6Ly9hc3NldC1odWItd2VzdGVuZC1ycGMubi5kd2VsbGlyLmNvbSddLFxuICBzdWJzdHJhdGVOb2RlVXJsczogWyd3c3M6Ly90ZXN0LmZpbm5leS5vcGVudGVuc29yLmFpJ10sXG4gIHBvbHltZXNoTm9kZVVybHM6IFsnd3NzOi8vdGVzdG5ldC1ycGMucG9seW1lc2gubGl2ZSddLFxuICB0cm9uTm9kZXM6IHtcbiAgICBmdWxsOiAnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJyxcbiAgICBzb2xpZGl0eTogJ2h0dHBzOi8vYXBpLnNoYXN0YS50cm9uZ3JpZC5pbycsXG4gIH0sXG4gIGhtYWNWZXJpZmljYXRpb25FbmZvcmNlZDogZmFsc2UsXG4gIHRvbk5vZGVVcmw6ICdodHRwczovL3Rlc3RuZXQudG9uY2VudGVyLmNvbS9hcGkvdjIvanNvblJQQycsXG4gIHN1aU5vZGVVcmw6ICdodHRwczovL2Z1bGxub2RlLnRlc3RuZXQuc3VpLmlvJyxcbiAgZXRjTm9kZVVybDogJ2h0dHBzOi8vZXRjLW1vcmRvci5ibG9ja3Njb3V0LmNvbScsXG4gIGNvcmVkYW9FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS50ZXN0Mi5idGNzLm5ldHdvcmsnLFxuICBvYXNFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2V4cGxvcmVyLnRlc3RuZXQub2FzeXMuZ2FtZXMnLFxuICB3ZW1peEV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIGZsckV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vY29zdG9uMi1leHBsb3Jlci5mbGFyZS5uZXR3b3JrJyxcbiAgeGRjRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgc2diRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9jb3N0b24tZXhwbG9yZXIuZmxhcmUubmV0d29yaycsXG4gIGljcE5vZGVVcmw6ICdodHRwczovL2V4Y2hhbmdlcy50ZXN0bmV0LmRmaW5pdHkubmV0d29yaycsXG4gIG1vbkV4cGxvcmVyQmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gIHdvcmxkRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9zZXBvbGlhLndvcmxkc2Nhbi5vcmcvJyxcbiAgc29tbmlhRXhwbG9yZXJCYXNlVXJsOiAnaHR0cHM6Ly9zaGFubm9uLWV4cGxvcmVyLnNvbW5pYS5uZXR3b3JrLycsXG4gIHNvbmVpdW1FeHBsb3JlckJhc2VVcmw6ICdodHRwczovL3NvbmVpdW0tbWluYXRvLmJsb2Nrc2NvdXQuY29tJyxcbiAgZXZtOiB7XG4gICAgcGhyczoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vdGVzdG5ldC5kcGxhYnMtaW50ZXJuYWwuY29tJyxcbiAgICB9LFxuICAgIGN0Yzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcnBjLmNjMy10ZXN0bmV0LmNyZWRpdGNvaW4ubmV0d29yaycsXG4gICAgfSxcbiAgICBoeXBlZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ycGMuaHlwZXJsaXF1aWQtdGVzdG5ldC54eXovZXZtJyxcbiAgICB9LFxuICAgIG9nOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jaGFpbnNjYW4tdGVzdC4wZy5haS9vcGVuL2FwaScsXG4gICAgfSxcbiAgICB4cGw6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3Rlc3RuZXQtcnBjLnBsYXNtYS50bycsXG4gICAgfSxcbiAgICBzb25pYzoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vcnBjLmJsYXplLnNvbmljbGFicy5jb20nLFxuICAgIH0sXG4gICAgc2VpZXZtOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9ldm0tcnBjLXRlc3RuZXQuc2VpLWFwaXMuY29tJyxcbiAgICB9LFxuICAgIGthaWE6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL3B1YmxpYy1lbi1rYWlyb3Mubm9kZS5rYWlhLmlvJyxcbiAgICB9LFxuICAgIGthdmFldm06IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS52ZXJpZnkubWludHNjYW4uaW8vZXZtL2FwaS8weDhhZCcsXG4gICAgfSxcbiAgICBpcnlzOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LXJwYy5pcnlzLnh5ei92MS9leGVjdXRpb24tcnBjJyxcbiAgICB9LFxuICAgIG1vbjoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBsaW5lYWV0aDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicsXG4gICAgfSxcbiAgICBpcDoge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLnN0b3J5c2Nhbi5hcHAvJyxcbiAgICB9LFxuICAgIHRiYXNlZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJyxcbiAgICB9LFxuICAgIGZsb3c6IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2V2bS10ZXN0bmV0LmZsb3dzY2FuLmlvL2FwaScsXG4gICAgfSxcbiAgICBtZWdhZXRoOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly9jYXJyb3QubWVnYWV0aC5jb20vcnBjJyxcbiAgICB9LFxuICAgIHBsdW1lOiB7XG4gICAgICBiYXNlVXJsOiAnaHR0cHM6Ly90ZXN0bmV0LWV4cGxvcmVyLnBsdW1lLm9yZy9hcGknLFxuICAgIH0sXG4gIH0sXG4gIHN0eE5vZGVVcmw6ICdodHRwczovL2FwaS50ZXN0bmV0Lmhpcm8uc28nLFxuICB2ZXROb2RlVXJsOiAnaHR0cHM6Ly9zeW5jLXRlc3RuZXQudmVjaGFpbi5vcmcnLFxuICB4dHpFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2FwaS5naG9zdG5ldC50emt0LmlvJyxcbiAgeHR6UnBjVXJsOiAnaHR0cHM6Ly9ycGMudHprdC5pby9naG9zdG5ldCcsXG59O1xuXG5jb25zdCBkZXZCYXNlOiBFbnZpcm9ubWVudFRlbXBsYXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgaHNtWHB1YjogaGFyZGNvZGVkUHVibGljS2V5cy5oc21YcHViLmRldixcbiAgaG1hY1ZlcmlmaWNhdGlvbkVuZm9yY2VkOiBmYWxzZSxcbn0pO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5leHBvcnQgY29uc3QgRW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudHMgPSB7XG4gIHByb2Q6IE9iamVjdC5hc3NpZ24oe30sIG1haW5uZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28uY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYXBwLmJpdGdvLmNvbS9hcGkvdjIveGxtL2ZlZGVyYXRpb24nLFxuICB9KSxcbiAgdGVzdDogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FwcC5iaXRnby10ZXN0LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FwcC5iaXRnby10ZXN0LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGRldjogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLWRldi5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28tZGV2LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIHN0YWdpbmc6IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hcHAuYml0Z28tc3RhZ2luZy5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28tc3RhZ2luZy5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBsb2NhbDogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vbG9jYWxob3N0OjMwMDAnLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGxvY2FsTm9uU2VjdXJlOiBPYmplY3QuYXNzaWduKHt9LCBkZXZCYXNlLCB7XG4gICAgdXJpOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIG1vY2s6IE9iamVjdC5hc3NpZ24oe30sIGRldkJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2JpdGdvLmZha2V1cmwnLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9iaXRnby5mYWtldXJsL2FwaS92Mi90eGxtL2ZlZGVyYXRpb24nLFxuICAgIGV0aGVyc2NhbkJhc2VVcmw6ICdodHRwczovL2FwaS1ob29kaS5ldGhlcnNjYW4uZmFrZXVybCcsXG4gICAgZXRoZXJzY2FuQXBpVG9rZW46IHByb2Nlc3MuZW52LkVUSEVSU0NBTl9BUElfVE9LRU4sXG4gICAgYXZheGNOZXR3b3JrQmFzZVVybDogJ2h0dHBzOi8vYXBpLmF2YXgtdGVzdC5uZXR3b3JrLmZha2V1cmwnLFxuICAgIGV0aDJFeHBsb3JlckJhc2VVcmw6ICdodHRwczovL2JlYWNvbnNjYW4uY29tL2FwaScsXG4gIH0pLFxuICBhZG1pblByb2Q6IE9iamVjdC5hc3NpZ24oe30sIG1haW5uZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby5jb20vYXBpL3YyL3hsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG4gIGFkbWluVGVzdDogT2JqZWN0LmFzc2lnbih7fSwgdGVzdG5ldEJhc2UsIHtcbiAgICB1cmk6ICdodHRwczovL2FkbWluLmJpdGdvLXRlc3QuY29tJyxcbiAgICBzdGVsbGFyRmVkZXJhdGlvblNlcnZlclVybDogJ2h0dHBzOi8vYWRtaW4uYml0Z28tdGVzdC5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBhZG1pbkRldjogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYWRtaW4uYml0Z28tZGV2LmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FkbWluLmJpdGdvLWRldi5jb20vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBhZG1pblN0YWdpbmc6IE9iamVjdC5hc3NpZ24oe30sIHRlc3RuZXRCYXNlLCB7XG4gICAgdXJpOiAnaHR0cHM6Ly9hZG1pbi5iaXRnby1zdGFnaW5nLmNvbScsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6ICdodHRwczovL2FkbWluLmJpdGdvLXN0YWdpbmcuY29tL2FwaS92Mi94bG0vZmVkZXJhdGlvbicsXG4gIH0pLFxuICBjdXN0b206IE9iamVjdC5hc3NpZ24oe30sIG1haW5uZXRCYXNlLCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICB1cmk6IHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9ST09UX1VSSSEsXG4gICAgbmV0d29yazogcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX0JJVENPSU5fTkVUV09SSyBhcyBWMU5ldHdvcmssXG4gICAgaHNtWHB1YjpcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgPyBoYXJkY29kZWRQdWJsaWNLZXlzLmhzbVhwdWIucHJvZCA6IGhhcmRjb2RlZFB1YmxpY0tleXMuaHNtWHB1Yi50ZXN0LFxuICAgIGJ0Y0V4cGxvcmVyQmFzZVVybDpcbiAgICAgIHByb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9CSVRDT0lOX05FVFdPUksgIT09ICdiaXRjb2luJ1xuICAgICAgICA/ICdodHRwczovL2Jsb2Nrc3RyZWFtLmluZm8vdGVzdG5ldC9hcGknXG4gICAgICAgIDogJ2h0dHBzOi8vYmxvY2tzdHJlYW0uaW5mby9hcGknLFxuICAgIGV0aGVyc2NhbkJhc2VVcmw6XG4gICAgICBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fRVRIRVJFVU1fTkVUV09SSyAhPT0gJ2V0aGVyZXVtJ1xuICAgICAgICA/ICdodHRwczovL2FwaS1ob29kaS5ldGhlcnNjYW4uaW8nXG4gICAgICAgIDogJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pbycsXG4gICAgc3RlbGxhckZlZGVyYXRpb25TZXJ2ZXJVcmw6XG4gICAgICBwcm9jZXNzLmVudi5CSVRHT19DVVNUT01fU1RFTExBUl9ORVRXT1JLICE9PSAnc3RlbGxhcidcbiAgICAgICAgPyBgaHR0cHM6Ly8ke3Byb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9ST09UX1VSSX0vYXBpL3YyL3R4bG0vZmVkZXJhdGlvbmBcbiAgICAgICAgOiBgaHR0cHM6Ly8ke3Byb2Nlc3MuZW52LkJJVEdPX0NVU1RPTV9ST09UX1VSSX0vYXBpL3YyL3hsbS9mZWRlcmF0aW9uYCxcbiAgICBzZXJ2ZXJYcHViOlxuICAgICAgcHJvY2Vzcy5lbnYuQklUR09fQ1VTVE9NX0JJVENPSU5fTkVUV09SSyAhPT0gJ2JpdGNvaW4nXG4gICAgICAgID8gaGFyZGNvZGVkUHVibGljS2V5cy5zZXJ2ZXJYcHViLnRlc3RcbiAgICAgICAgOiBoYXJkY29kZWRQdWJsaWNLZXlzLnNlcnZlclhwdWIucHJvZCxcbiAgfSksXG4gIGJyYW5jaDogT2JqZWN0LmFzc2lnbih7fSwgZGV2QmFzZSwge1xuICAgIHVyaTogJ2h0dHBzOi8vYXBwLmJpdGdvLWRldi5jb20nLFxuICAgIHN0ZWxsYXJGZWRlcmF0aW9uU2VydmVyVXJsOiAnaHR0cHM6Ly9hcHAuYml0Z28tZGV2LmNvbS9hcGkvdjIvdHhsbS9mZWRlcmF0aW9uJyxcbiAgfSksXG59O1xuIl19
@@ -1,4 +1,7 @@
1
1
  import { BitGoJsError } from '../bitgojsError';
2
+ import { IRequestTracer } from '../api/types';
3
+ import { TransactionParams } from './baseCoin';
4
+ import { SendManyOptions } from './wallet';
2
5
  export { BitGoJsError };
3
6
  export declare class TlsConfigurationError extends BitGoJsError {
4
7
  constructor(message?: string);
@@ -75,6 +78,15 @@ export declare class InvalidKeyPathError extends BitGoJsError {
75
78
  export declare class InvalidTransactionError extends BitGoJsError {
76
79
  constructor(message?: string);
77
80
  }
81
+ export declare class MissingEncryptedKeychainError extends Error {
82
+ constructor(message?: string);
83
+ }
84
+ export declare class IncorrectPasswordError extends Error {
85
+ constructor(message?: string);
86
+ }
87
+ export declare class NeedUserSignupError extends BitGoJsError {
88
+ constructor(message?: string);
89
+ }
78
90
  export declare class ApiResponseError<ResponseBodyType = any> extends BitGoJsError {
79
91
  message: string;
80
92
  status: number;
@@ -83,4 +95,143 @@ export declare class ApiResponseError<ResponseBodyType = any> extends BitGoJsErr
83
95
  needsOTP?: boolean;
84
96
  constructor(message: string, status: number, result?: ResponseBodyType, invalidToken?: boolean, needsOTP?: boolean);
85
97
  }
98
+ /**
99
+ * Interface for token approval information used in suspicious transaction detection
100
+ *
101
+ * @interface TokenApproval
102
+ * @property {string} [tokenName] - Optional human-readable name of the token
103
+ * @property {string} tokenAddress - The contract address of the token being approved
104
+ * @property {Object} authorizingAmount - The amount being authorized for spending
105
+ * @property {string} authorizingAddress - The address being authorized to spend the tokens
106
+ */
107
+ export interface TokenApproval {
108
+ tokenName?: string;
109
+ tokenAddress: string;
110
+ authorizingAmount: {
111
+ type: 'unlimited';
112
+ } | {
113
+ type: 'limited';
114
+ amount: number;
115
+ };
116
+ authorizingAddress: string;
117
+ }
118
+ /**
119
+ * Interface for mismatched recipient information detected during transaction verification
120
+ *
121
+ * @interface MismatchedRecipient
122
+ * @property {string} address - The recipient address that was found in the transaction
123
+ * @property {string} amount - The amount being sent to this recipient
124
+ * @property {string | TokenTransferRecipientParams} [data] - Optional transaction data or token transfer parameters
125
+ * @property {string} [tokenName] - Optional name of the token being transferred
126
+ * @property {TokenTransferRecipientParams} [tokenData] - Optional structured token transfer data
127
+ */
128
+ export type MismatchedRecipient = NonNullable<SendManyOptions['recipients']>[0];
129
+ /**
130
+ * Interface for contract interaction data payload used in suspicious transaction detection
131
+ *
132
+ * @interface ContractDataPayload
133
+ * @property {string} address - The contract address being interacted with
134
+ * @property {string} rawContractPayload - The raw contract payload in serialized form specific to the blockchain
135
+ * @property {unknown} decodedContractPayload - The decoded contract payload, structure varies by coin/chain implementation
136
+ */
137
+ export interface ContractDataPayload {
138
+ address: string;
139
+ rawContractPayload: string;
140
+ decodedContractPayload: unknown;
141
+ }
142
+ /**
143
+ * Base error class for transaction intent mismatch detection
144
+ *
145
+ * This error is thrown when a transaction does not match the user's original intent,
146
+ * indicating potential security issues or malicious modifications.
147
+ *
148
+ * @class TxIntentMismatchError
149
+ * @extends {BitGoJsError}
150
+ * @property {string | IRequestTracer | undefined} id - Transaction ID or request tracer for tracking
151
+ * @property {TransactionParams[]} txParams - Array of transaction parameters that were analyzed
152
+ * @property {string | undefined} txHex - The raw transaction in hexadecimal format
153
+ */
154
+ export declare class TxIntentMismatchError extends BitGoJsError {
155
+ readonly id: string | IRequestTracer | undefined;
156
+ readonly txParams: TransactionParams[];
157
+ readonly txHex: string | undefined;
158
+ /**
159
+ * Creates an instance of TxIntentMismatchError
160
+ *
161
+ * @param {string} message - Error message describing the intent mismatch
162
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
163
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
164
+ * @param {string | undefined} txHex - Raw transaction hex string
165
+ */
166
+ constructor(message: string, id: string | IRequestTracer | undefined, txParams: TransactionParams[], txHex: string | undefined);
167
+ }
168
+ /**
169
+ * Error thrown when transaction recipients don't match the user's intent
170
+ *
171
+ * This error occurs when the transaction contains recipients or amounts that differ
172
+ * from what the user originally intended to send.
173
+ *
174
+ * @class TxIntentMismatchRecipientError
175
+ * @extends {TxIntentMismatchError}
176
+ * @property {MismatchedRecipient[]} mismatchedRecipients - Array of recipients that don't match user intent
177
+ */
178
+ export declare class TxIntentMismatchRecipientError extends TxIntentMismatchError {
179
+ readonly mismatchedRecipients: MismatchedRecipient[];
180
+ /**
181
+ * Creates an instance of TxIntentMismatchRecipientError
182
+ *
183
+ * @param {string} message - Error message describing the recipient intent mismatch
184
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
185
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
186
+ * @param {string | undefined} txHex - Raw transaction hex string
187
+ * @param {MismatchedRecipient[]} mismatchedRecipients - Array of recipients that don't match user intent
188
+ */
189
+ constructor(message: string, id: string | IRequestTracer | undefined, txParams: TransactionParams[], txHex: string | undefined, mismatchedRecipients: MismatchedRecipient[]);
190
+ }
191
+ /**
192
+ * Error thrown when contract interaction doesn't match the user's intent
193
+ *
194
+ * This error occurs when a transaction interacts with a smart contract but the
195
+ * contract call data or method doesn't match what the user intended.
196
+ *
197
+ * @class TxIntentMismatchContractError
198
+ * @extends {TxIntentMismatchError}
199
+ * @property {ContractDataPayload} mismatchedDataPayload - The contract interaction data that doesn't match user intent
200
+ */
201
+ export declare class TxIntentMismatchContractError extends TxIntentMismatchError {
202
+ readonly mismatchedDataPayload: ContractDataPayload;
203
+ /**
204
+ * Creates an instance of TxIntentMismatchContractError
205
+ *
206
+ * @param {string} message - Error message describing the contract intent mismatch
207
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
208
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
209
+ * @param {string | undefined} txHex - Raw transaction hex string
210
+ * @param {ContractDataPayload} mismatchedDataPayload - The contract interaction data that doesn't match user intent
211
+ */
212
+ constructor(message: string, id: string | IRequestTracer | undefined, txParams: TransactionParams[], txHex: string | undefined, mismatchedDataPayload: ContractDataPayload);
213
+ }
214
+ /**
215
+ * Error thrown when token approval doesn't match the user's intent
216
+ *
217
+ * This error occurs when a transaction contains a token approval that the user
218
+ * did not intend to authorize, potentially indicating malicious activity.
219
+ *
220
+ * @class TxIntentMismatchApprovalError
221
+ * @extends {TxIntentMismatchError}
222
+ * @property {TokenApproval} tokenApproval - Details of the token approval that doesn't match user intent
223
+ */
224
+ export declare class TxIntentMismatchApprovalError extends TxIntentMismatchError {
225
+ readonly tokenApproval: TokenApproval;
226
+ /**
227
+ * Creates an instance of TxIntentMismatchApprovalError
228
+ *
229
+ * @param {string} message - Error message describing the approval intent mismatch
230
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
231
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
232
+ * @param {string | undefined} txHex - Raw transaction hex string
233
+ * @param {TokenApproval} tokenApproval - Details of the token approval that doesn't match user intent
234
+ */
235
+ constructor(message: string, id: string | IRequestTracer | undefined, txParams: TransactionParams[], txHex: string | undefined, tokenApproval: TokenApproval);
236
+ }
86
237
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/bitgo/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,qBAAa,qBAAsB,SAAQ,YAAY;gBAClC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,oBAAqB,SAAQ,YAAY;gBACjC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,oBAAqB,SAAQ,YAAY;gBACjC,IAAI,EAAE,MAAM;CAKhC;AAED,qBAAa,6BAA8B,SAAQ,YAAY;gBACjD,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;CAGxD;AAED,qBAAa,yBAA0B,SAAQ,YAAY;gBAC7C,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,qBAAsB,SAAQ,YAAY;gBAClC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,oBAAqB,SAAQ,YAAY;gBACjC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,0BAA2B,SAAQ,YAAY;gBACvC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,2BAA4B,SAAQ,YAAY;gBACxC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBAChC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,6CAA8C,SAAQ,YAAY;gBAC1D,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,sBAAuB,SAAQ,YAAY;gBACnC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,qCAAsC,SAAQ,YAAY;gBAClD,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,yBAA0B,SAAQ,YAAY;gBACtC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,yBAA0B,SAAQ,YAAY;gBACtC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,wBAAyB,SAAQ,YAAY;gBACrC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,kBAAmB,SAAQ,mBAAmB;gBACtC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,qBAAsB,SAAQ,mBAAmB;gBACzC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,uBAAwB,SAAQ,YAAY;gBACpC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,sBAAuB,SAAQ,YAAY;gBACnC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,+BAAgC,SAAQ,YAAY;gBAC5C,WAAW,EAAE,MAAM;CAGvC;AAED,qBAAa,kCAAmC,SAAQ,YAAY;gBAC/C,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,qBAAsB,SAAQ,YAAY;gBAClC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBAChC,OAAO,EAAE,MAAM;CAGnC;AAED,qBAAa,uBAAwB,SAAQ,YAAY;gBACpC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,gBAAgB,CAAC,gBAAgB,GAAG,GAAG,CAAE,SAAQ,YAAY;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAGjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,gBAAgB,EACzB,YAAY,CAAC,EAAE,OAAO,EACtB,QAAQ,CAAC,EAAE,OAAO;CASrB"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/bitgo/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,qBAAa,qBAAsB,SAAQ,YAAY;gBAClC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,oBAAqB,SAAQ,YAAY;gBACjC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,oBAAqB,SAAQ,YAAY;gBACjC,IAAI,EAAE,MAAM;CAKhC;AAED,qBAAa,6BAA8B,SAAQ,YAAY;gBACjD,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;CAGxD;AAED,qBAAa,yBAA0B,SAAQ,YAAY;gBAC7C,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,qBAAsB,SAAQ,YAAY;gBAClC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,oBAAqB,SAAQ,YAAY;gBACjC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,0BAA2B,SAAQ,YAAY;gBACvC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,2BAA4B,SAAQ,YAAY;gBACxC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBAChC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,6CAA8C,SAAQ,YAAY;gBAC1D,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,sBAAuB,SAAQ,YAAY;gBACnC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,qCAAsC,SAAQ,YAAY;gBAClD,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,yBAA0B,SAAQ,YAAY;gBACtC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,yBAA0B,SAAQ,YAAY;gBACtC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,wBAAyB,SAAQ,YAAY;gBACrC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,kBAAmB,SAAQ,mBAAmB;gBACtC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,qBAAsB,SAAQ,mBAAmB;gBACzC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,uBAAwB,SAAQ,YAAY;gBACpC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,sBAAuB,SAAQ,YAAY;gBACnC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,+BAAgC,SAAQ,YAAY;gBAC5C,WAAW,EAAE,MAAM;CAGvC;AAED,qBAAa,kCAAmC,SAAQ,YAAY;gBAC/C,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,qBAAsB,SAAQ,YAAY;gBAClC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBAChC,OAAO,EAAE,MAAM;CAGnC;AAED,qBAAa,uBAAwB,SAAQ,YAAY;gBACpC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,6BAA8B,SAAQ,KAAK;gBACnC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,sBAAuB,SAAQ,KAAK;gBAC5B,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBAChC,OAAO,CAAC,EAAE,MAAM;CAGpC;AAED,qBAAa,gBAAgB,CAAC,gBAAgB,GAAG,GAAG,CAAE,SAAQ,YAAY;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAGjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,gBAAgB,EACzB,YAAY,CAAC,EAAE,OAAO,EACtB,QAAQ,CAAC,EAAE,OAAO;CASrB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAEhB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,SAAgB,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACxD,SAAgB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9C,SAAgB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1C;;;;;;;OAOG;gBAED,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,EACvC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,KAAK,EAAE,MAAM,GAAG,SAAS;CAO5B;AAED;;;;;;;;;GASG;AACH,qBAAa,8BAA+B,SAAQ,qBAAqB;IACvE,SAAgB,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAE5D;;;;;;;;OAQG;gBAED,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,EACvC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,oBAAoB,EAAE,mBAAmB,EAAE;CAK9C;AAED;;;;;;;;;GASG;AACH,qBAAa,6BAA8B,SAAQ,qBAAqB;IACtE,SAAgB,qBAAqB,EAAE,mBAAmB,CAAC;IAE3D;;;;;;;;OAQG;gBAED,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,EACvC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,qBAAqB,EAAE,mBAAmB;CAK7C;AAED;;;;;;;;;GASG;AACH,qBAAa,6BAA8B,SAAQ,qBAAqB;IACtE,SAAgB,aAAa,EAAE,aAAa,CAAC;IAE7C;;;;;;;;OAQG;gBAED,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,EACvC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,aAAa,EAAE,aAAa;CAK/B"}