@bitgo-beta/sdk-core 8.2.1-beta.209 → 8.2.1-beta.2091

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 (806) hide show
  1. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts +0 -1
  2. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts.map +1 -1
  3. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts +3 -3
  4. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts.map +1 -1
  5. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.js +4 -3
  6. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +1 -0
  7. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -1
  8. package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +43 -31
  9. package/dist/src/account-lib/baseCoin/enum.d.ts +59 -5
  10. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  11. package/dist/src/account-lib/baseCoin/enum.js +112 -10
  12. package/dist/src/account-lib/baseCoin/errors.d.ts +3 -0
  13. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -1
  14. package/dist/src/account-lib/baseCoin/errors.js +8 -2
  15. package/dist/src/account-lib/baseCoin/iface.d.ts +19 -35
  16. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
  17. package/dist/src/account-lib/baseCoin/iface.js +26 -18
  18. package/dist/src/account-lib/baseCoin/index.d.ts +1 -1
  19. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -1
  20. package/dist/src/account-lib/baseCoin/index.js +8 -5
  21. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts +88 -0
  22. package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  23. package/dist/src/account-lib/baseCoin/messages/baseMessage.js +154 -0
  24. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +67 -0
  25. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  26. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +144 -0
  27. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +33 -0
  28. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  29. package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +45 -0
  30. package/dist/src/account-lib/baseCoin/messages/iface.d.ts +164 -0
  31. package/dist/src/account-lib/baseCoin/messages/iface.d.ts.map +1 -0
  32. package/dist/src/account-lib/baseCoin/messages/iface.js +3 -0
  33. package/dist/src/account-lib/baseCoin/messages/index.d.ts +6 -0
  34. package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -0
  35. package/dist/src/account-lib/baseCoin/messages/index.js +22 -0
  36. package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts +3 -0
  37. package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts.map +1 -0
  38. package/dist/src/account-lib/baseCoin/messages/simple/index.js +19 -0
  39. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts +13 -0
  40. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts.map +1 -0
  41. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.js +28 -0
  42. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts +21 -0
  43. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts.map +1 -0
  44. package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.js +28 -0
  45. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts +1 -2
  46. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +1 -1
  47. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +38 -26
  48. package/dist/src/account-lib/index.d.ts +0 -1
  49. package/dist/src/account-lib/index.d.ts.map +1 -1
  50. package/dist/src/account-lib/index.js +23 -10
  51. package/dist/src/account-lib/mpc/index.d.ts +1 -1
  52. package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
  53. package/dist/src/account-lib/mpc/index.js +6 -2
  54. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +2 -3
  55. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  56. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +376 -354
  57. package/dist/src/account-lib/mpc/tss/ecdsa/index.js +23 -9
  58. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts +2 -2
  59. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts.map +1 -1
  60. package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.js +3 -3
  61. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +46 -53
  62. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
  63. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
  64. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +0 -1
  65. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -1
  66. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +66 -69
  67. package/dist/src/account-lib/mpc/tss/eddsa/index.js +23 -9
  68. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +1 -1
  69. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
  70. package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
  71. package/dist/src/account-lib/mpc/tss/index.js +23 -9
  72. package/dist/src/account-lib/mpc/util.d.ts +7 -1
  73. package/dist/src/account-lib/mpc/util.d.ts.map +1 -1
  74. package/dist/src/account-lib/mpc/util.js +24 -1
  75. package/dist/src/account-lib/staking/index.js +6 -2
  76. package/dist/src/account-lib/staking/utils.js +3 -3
  77. package/dist/src/account-lib/util/crypto.d.ts +8 -2
  78. package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
  79. package/dist/src/account-lib/util/crypto.js +69 -38
  80. package/dist/src/api/bip32path.js +2 -3
  81. package/dist/src/api/index.js +6 -2
  82. package/dist/src/api/types.d.ts +37 -0
  83. package/dist/src/api/types.d.ts.map +1 -1
  84. package/dist/src/api/types.js +8 -1
  85. package/dist/src/bitgo/address-book/address-book.d.ts.map +1 -1
  86. package/dist/src/bitgo/address-book/address-book.js +20 -12
  87. package/dist/src/bitgo/address-book/index.js +6 -2
  88. package/dist/src/bitgo/address-book/types.d.ts +36 -36
  89. package/dist/src/bitgo/address-book/types.d.ts.map +1 -1
  90. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +123 -13
  91. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  92. package/dist/src/bitgo/baseCoin/baseCoin.js +200 -16
  93. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +301 -31
  94. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  95. package/dist/src/bitgo/baseCoin/iBaseCoin.js +14 -3
  96. package/dist/src/bitgo/baseCoin/index.js +6 -2
  97. package/dist/src/bitgo/bip32util.d.ts +3 -16
  98. package/dist/src/bitgo/bip32util.d.ts.map +1 -1
  99. package/dist/src/bitgo/bip32util.js +4 -56
  100. package/dist/src/bitgo/bitcoin.d.ts +0 -1
  101. package/dist/src/bitgo/bitcoin.d.ts.map +1 -1
  102. package/dist/src/bitgo/bitcoin.js +26 -13
  103. package/dist/src/bitgo/bitgoBase.d.ts +17 -4
  104. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  105. package/dist/src/bitgo/bitgoBase.js +1 -1
  106. package/dist/src/bitgo/coinFactory.d.ts +24 -3
  107. package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
  108. package/dist/src/bitgo/coinFactory.js +35 -3
  109. package/dist/src/bitgo/config.d.ts +3 -101
  110. package/dist/src/bitgo/config.d.ts.map +1 -1
  111. package/dist/src/bitgo/config.js +26 -15
  112. package/dist/src/bitgo/defi/defiVault.d.ts +171 -0
  113. package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -0
  114. package/dist/src/bitgo/defi/defiVault.js +445 -0
  115. package/dist/src/bitgo/defi/iDefiVault.d.ts +101 -0
  116. package/dist/src/bitgo/defi/iDefiVault.d.ts.map +1 -0
  117. package/dist/src/bitgo/defi/iDefiVault.js +6 -0
  118. package/dist/src/bitgo/defi/index.d.ts +3 -0
  119. package/dist/src/bitgo/defi/index.d.ts.map +1 -0
  120. package/dist/src/bitgo/defi/index.js +22 -0
  121. package/dist/src/bitgo/ecdh.d.ts +0 -1
  122. package/dist/src/bitgo/ecdh.d.ts.map +1 -1
  123. package/dist/src/bitgo/ecdh.js +26 -13
  124. package/dist/src/bitgo/enterprise/enterprise.d.ts +9 -4
  125. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  126. package/dist/src/bitgo/enterprise/enterprise.js +47 -21
  127. package/dist/src/bitgo/enterprise/enterprises.js +27 -13
  128. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +5 -3
  129. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  130. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  131. package/dist/src/bitgo/enterprise/index.js +6 -2
  132. package/dist/src/bitgo/environments.d.ts +73 -3
  133. package/dist/src/bitgo/environments.d.ts.map +1 -1
  134. package/dist/src/bitgo/environments.js +415 -34
  135. package/dist/src/bitgo/errors.d.ts +183 -1
  136. package/dist/src/bitgo/errors.d.ts.map +1 -1
  137. package/dist/src/bitgo/errors.js +178 -3
  138. package/dist/src/bitgo/evm/evmUtils.d.ts +26 -0
  139. package/dist/src/bitgo/evm/evmUtils.d.ts.map +1 -0
  140. package/dist/src/bitgo/evm/evmUtils.js +50 -0
  141. package/dist/src/bitgo/index.d.ts +6 -1
  142. package/dist/src/bitgo/index.d.ts.map +1 -1
  143. package/dist/src/bitgo/index.js +32 -11
  144. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts +3 -3
  145. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts.map +1 -1
  146. package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.js +1 -1
  147. package/dist/src/bitgo/inscriptionBuilder/index.js +6 -2
  148. package/dist/src/bitgo/internal/index.js +6 -2
  149. package/dist/src/bitgo/internal/internal.js +5 -6
  150. package/dist/src/bitgo/internal/keycard.d.ts +13 -8
  151. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -1
  152. package/dist/src/bitgo/internal/keycard.js +63 -48
  153. package/dist/src/bitgo/keychain/decryptKeychain.d.ts +14 -0
  154. package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -0
  155. package/dist/src/bitgo/keychain/decryptKeychain.js +36 -0
  156. package/dist/src/bitgo/keychain/iKeychains.d.ts +160 -11
  157. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  158. package/dist/src/bitgo/keychain/iKeychains.js +2 -2
  159. package/dist/src/bitgo/keychain/index.d.ts +1 -0
  160. package/dist/src/bitgo/keychain/index.d.ts.map +1 -1
  161. package/dist/src/bitgo/keychain/index.js +7 -2
  162. package/dist/src/bitgo/keychain/keychains.d.ts +106 -13
  163. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  164. package/dist/src/bitgo/keychain/keychains.js +393 -72
  165. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +3 -3
  166. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  167. package/dist/src/bitgo/keychain/ovcJsonCodec.js +23 -9
  168. package/dist/src/bitgo/legacyBitcoin.d.ts +0 -1
  169. package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -1
  170. package/dist/src/bitgo/legacyBitcoin.js +27 -13
  171. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts +7 -0
  172. package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts.map +1 -0
  173. package/dist/src/bitgo/lightning/lightningWalletUtil.js +25 -0
  174. package/dist/src/bitgo/market/iMarkets.d.ts +2 -2
  175. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -1
  176. package/dist/src/bitgo/market/index.js +6 -2
  177. package/dist/src/bitgo/market/markets.js +23 -9
  178. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +5 -1
  179. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  180. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +4 -4
  181. package/dist/src/bitgo/pendingApproval/index.js +6 -2
  182. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +20 -8
  183. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
  184. package/dist/src/bitgo/pendingApproval/pendingApproval.js +246 -111
  185. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +23 -9
  186. package/dist/src/bitgo/proofs/WalletProofs.d.ts +19 -0
  187. package/dist/src/bitgo/proofs/WalletProofs.d.ts.map +1 -0
  188. package/dist/src/bitgo/proofs/WalletProofs.js +37 -0
  189. package/dist/src/bitgo/proofs/index.d.ts +2 -0
  190. package/dist/src/bitgo/proofs/index.d.ts.map +1 -0
  191. package/dist/src/bitgo/proofs/index.js +6 -0
  192. package/dist/src/bitgo/proofs/types.d.ts +80 -0
  193. package/dist/src/bitgo/proofs/types.d.ts.map +1 -0
  194. package/dist/src/bitgo/proofs/types.js +80 -0
  195. package/dist/src/bitgo/recovery/index.js +6 -2
  196. package/dist/src/bitgo/recovery/initiate.d.ts +13 -3
  197. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  198. package/dist/src/bitgo/recovery/initiate.js +49 -41
  199. package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts +13 -0
  200. package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -0
  201. package/dist/src/bitgo/safe/derivableEd25519Pub.js +35 -0
  202. package/dist/src/bitgo/safe/iSafe.d.ts +124 -0
  203. package/dist/src/bitgo/safe/iSafe.d.ts.map +1 -0
  204. package/dist/src/bitgo/safe/iSafe.js +3 -0
  205. package/dist/src/bitgo/safe/iSafes.d.ts +94 -0
  206. package/dist/src/bitgo/safe/iSafes.d.ts.map +1 -0
  207. package/dist/src/bitgo/safe/iSafes.js +3 -0
  208. package/dist/src/bitgo/safe/index.d.ts +8 -0
  209. package/dist/src/bitgo/safe/index.d.ts.map +1 -0
  210. package/dist/src/bitgo/safe/index.js +24 -0
  211. package/dist/src/bitgo/safe/recovery.d.ts +82 -0
  212. package/dist/src/bitgo/safe/recovery.d.ts.map +1 -0
  213. package/dist/src/bitgo/safe/recovery.js +133 -0
  214. package/dist/src/bitgo/safe/rootCoin.d.ts +15 -0
  215. package/dist/src/bitgo/safe/rootCoin.d.ts.map +1 -0
  216. package/dist/src/bitgo/safe/rootCoin.js +47 -0
  217. package/dist/src/bitgo/safe/safe.d.ts +88 -0
  218. package/dist/src/bitgo/safe/safe.d.ts.map +1 -0
  219. package/dist/src/bitgo/safe/safe.js +409 -0
  220. package/dist/src/bitgo/safe/safes.d.ts +102 -0
  221. package/dist/src/bitgo/safe/safes.d.ts.map +1 -0
  222. package/dist/src/bitgo/safe/safes.js +281 -0
  223. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +136 -0
  224. package/dist/src/bitgo/staking/goStakingInterfaces.d.ts.map +1 -0
  225. package/dist/src/bitgo/staking/goStakingInterfaces.js +3 -0
  226. package/dist/src/bitgo/staking/goStakingWallet.d.ts +62 -0
  227. package/dist/src/bitgo/staking/goStakingWallet.d.ts.map +1 -0
  228. package/dist/src/bitgo/staking/goStakingWallet.js +141 -0
  229. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts +17 -0
  230. package/dist/src/bitgo/staking/iGoStakingWallet.d.ts.map +1 -0
  231. package/dist/src/bitgo/staking/iGoStakingWallet.js +3 -0
  232. package/dist/src/bitgo/staking/iStakingWallet.d.ts +165 -8
  233. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  234. package/dist/src/bitgo/staking/iStakingWallet.js +2 -2
  235. package/dist/src/bitgo/staking/index.d.ts +3 -0
  236. package/dist/src/bitgo/staking/index.d.ts.map +1 -1
  237. package/dist/src/bitgo/staking/index.js +9 -2
  238. package/dist/src/bitgo/staking/stakingWallet.d.ts +21 -8
  239. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  240. package/dist/src/bitgo/staking/stakingWallet.js +153 -7
  241. package/dist/src/bitgo/trading/iTradingAccount.d.ts +13 -1
  242. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -1
  243. package/dist/src/bitgo/trading/iTradingAccount.js +1 -1
  244. package/dist/src/bitgo/trading/index.d.ts +1 -0
  245. package/dist/src/bitgo/trading/index.d.ts.map +1 -1
  246. package/dist/src/bitgo/trading/index.js +7 -2
  247. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts +8 -0
  248. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts.map +1 -0
  249. package/dist/src/bitgo/trading/network/decrypt-aes-gcm.js +31 -0
  250. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts +8 -0
  251. package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts.map +1 -0
  252. package/dist/src/bitgo/trading/network/decrypt-rsa.js +23 -0
  253. package/dist/src/bitgo/trading/network/decrypt.d.ts +14 -0
  254. package/dist/src/bitgo/trading/network/decrypt.d.ts.map +1 -0
  255. package/dist/src/bitgo/trading/network/decrypt.js +23 -0
  256. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts +8 -0
  257. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts.map +1 -0
  258. package/dist/src/bitgo/trading/network/encrypt-aes-gcm.js +25 -0
  259. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts +8 -0
  260. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts.map +1 -0
  261. package/dist/src/bitgo/trading/network/encrypt-rsa-browser.js +65 -0
  262. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts +8 -0
  263. package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts.map +1 -0
  264. package/dist/src/bitgo/trading/network/encrypt-rsa.js +23 -0
  265. package/dist/src/bitgo/trading/network/encrypt.d.ts +37 -0
  266. package/dist/src/bitgo/trading/network/encrypt.d.ts.map +1 -0
  267. package/dist/src/bitgo/trading/network/encrypt.js +58 -0
  268. package/dist/src/bitgo/trading/network/index.d.ts +2 -0
  269. package/dist/src/bitgo/trading/network/index.d.ts.map +1 -1
  270. package/dist/src/bitgo/trading/network/index.js +8 -2
  271. package/dist/src/bitgo/trading/network/network.d.ts +4 -3
  272. package/dist/src/bitgo/trading/network/network.d.ts.map +1 -1
  273. package/dist/src/bitgo/trading/network/network.js +24 -27
  274. package/dist/src/bitgo/trading/network/types.d.ts +79 -46
  275. package/dist/src/bitgo/trading/network/types.d.ts.map +1 -1
  276. package/dist/src/bitgo/trading/network/types.js +1 -1
  277. package/dist/src/bitgo/trading/network/utils.d.ts +20 -0
  278. package/dist/src/bitgo/trading/network/utils.d.ts.map +1 -0
  279. package/dist/src/bitgo/trading/network/utils.js +54 -0
  280. package/dist/src/bitgo/trading/tradingAccount.d.ts +15 -1
  281. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
  282. package/dist/src/bitgo/trading/tradingAccount.js +55 -7
  283. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts +49 -0
  284. package/dist/src/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  285. package/dist/src/bitgo/tss/bitgoPubKeys.js +92 -0
  286. package/dist/src/bitgo/tss/common.d.ts +41 -6
  287. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  288. package/dist/src/bitgo/tss/common.js +127 -17
  289. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +6 -4
  290. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  291. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +78 -66
  292. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts +15 -0
  293. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  294. package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.js +167 -0
  295. package/dist/src/bitgo/tss/ecdsa/index.d.ts +1 -0
  296. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -1
  297. package/dist/src/bitgo/tss/ecdsa/index.js +25 -10
  298. package/dist/src/bitgo/tss/ecdsa/types.d.ts +27 -27
  299. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  300. package/dist/src/bitgo/tss/ecdsa/types.js +3 -3
  301. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +15 -6
  302. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  303. package/dist/src/bitgo/tss/eddsa/eddsa.js +47 -40
  304. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +42 -0
  305. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  306. package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +104 -0
  307. package/dist/src/bitgo/tss/eddsa/index.js +23 -9
  308. package/dist/src/bitgo/tss/eddsa/types.d.ts +4 -4
  309. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -1
  310. package/dist/src/bitgo/tss/index.d.ts +3 -2
  311. package/dist/src/bitgo/tss/index.d.ts.map +1 -1
  312. package/dist/src/bitgo/tss/index.js +26 -10
  313. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts +79 -0
  314. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  315. package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.js +179 -0
  316. package/dist/src/bitgo/tss/types.d.ts +3 -3
  317. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  318. package/dist/src/bitgo/tss/types.js +2 -2
  319. package/dist/src/bitgo/types.d.ts +3 -3
  320. package/dist/src/bitgo/types.d.ts.map +1 -1
  321. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +10 -0
  322. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
  323. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +76 -14
  324. package/dist/src/bitgo/utils/codecProps.js +24 -11
  325. package/dist/src/bitgo/utils/codecs.d.ts +11 -0
  326. package/dist/src/bitgo/utils/codecs.d.ts.map +1 -0
  327. package/dist/src/bitgo/utils/codecs.js +59 -0
  328. package/dist/src/bitgo/utils/decode.d.ts.map +1 -1
  329. package/dist/src/bitgo/utils/decode.js +30 -16
  330. package/dist/src/bitgo/utils/index.d.ts +5 -2
  331. package/dist/src/bitgo/utils/index.d.ts.map +1 -1
  332. package/dist/src/bitgo/utils/index.js +28 -11
  333. package/dist/src/bitgo/utils/messageTypes.d.ts +46 -0
  334. package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
  335. package/dist/src/bitgo/utils/messageTypes.js +23 -0
  336. package/dist/src/bitgo/utils/mpcUtils.d.ts +4 -4
  337. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  338. package/dist/src/bitgo/utils/mpcUtils.js +208 -14
  339. package/dist/src/bitgo/utils/notEmpty.d.ts +2 -0
  340. package/dist/src/bitgo/utils/notEmpty.d.ts.map +1 -0
  341. package/dist/src/bitgo/utils/notEmpty.js +7 -0
  342. package/dist/src/bitgo/utils/opengpgUtils.d.ts +11 -7
  343. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  344. package/dist/src/bitgo/utils/opengpgUtils.js +79 -62
  345. package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -1
  346. package/dist/src/bitgo/utils/postWithCodec.js +4 -38
  347. package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
  348. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
  349. package/dist/src/bitgo/utils/promise-utils.js +2 -3
  350. package/dist/src/bitgo/utils/siws.d.ts +17 -0
  351. package/dist/src/bitgo/utils/siws.d.ts.map +1 -0
  352. package/dist/src/bitgo/utils/siws.js +171 -0
  353. package/dist/src/bitgo/utils/transactionUtils.d.ts +9 -0
  354. package/dist/src/bitgo/utils/transactionUtils.d.ts.map +1 -0
  355. package/dist/src/bitgo/utils/transactionUtils.js +29 -0
  356. package/dist/src/bitgo/utils/triple.d.ts +1 -1
  357. package/dist/src/bitgo/utils/triple.d.ts.map +1 -1
  358. package/dist/src/bitgo/utils/triple.js +2 -3
  359. package/dist/src/bitgo/utils/tss/addressVerification.d.ts +62 -0
  360. package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  361. package/dist/src/bitgo/utils/tss/addressVerification.js +93 -0
  362. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +99 -17
  363. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  364. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +321 -45
  365. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +456 -55
  366. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  367. package/dist/src/bitgo/utils/tss/baseTypes.js +47 -22
  368. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts +23 -0
  369. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -0
  370. package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +157 -0
  371. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts +28 -0
  372. package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts.map +1 -0
  373. package/dist/src/bitgo/utils/tss/ecdsa/base.js +53 -0
  374. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +25 -51
  375. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  376. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +173 -246
  377. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +240 -0
  378. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  379. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1076 -0
  380. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +16 -0
  381. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -0
  382. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +37 -0
  383. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts +69 -0
  384. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts.map +1 -0
  385. package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.js +442 -0
  386. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +5 -0
  387. package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
  388. package/dist/src/bitgo/utils/tss/ecdsa/index.js +11 -2
  389. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +7 -10
  390. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  391. package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
  392. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +125 -0
  393. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -0
  394. package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +55 -0
  395. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts +21 -0
  396. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts.map +1 -0
  397. package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.js +119 -0
  398. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts +18 -0
  399. package/dist/src/bitgo/utils/tss/eddsa/base.d.ts.map +1 -0
  400. package/dist/src/bitgo/utils/tss/eddsa/base.js +64 -0
  401. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +43 -11
  402. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  403. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +261 -96
  404. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +233 -0
  405. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  406. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +905 -0
  407. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts +11 -0
  408. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts.map +1 -0
  409. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.js +26 -0
  410. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +44 -0
  411. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
  412. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +295 -0
  413. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +5 -0
  414. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
  415. package/dist/src/bitgo/utils/tss/eddsa/index.js +30 -8
  416. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +15 -7
  417. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
  418. package/dist/src/bitgo/utils/tss/eddsa/types.js +1 -1
  419. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +56 -0
  420. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -0
  421. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +55 -0
  422. package/dist/src/bitgo/utils/tss/index.d.ts +7 -0
  423. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
  424. package/dist/src/bitgo/utils/tss/index.js +31 -10
  425. package/dist/src/bitgo/utils/tss/keyShareEnvelope.d.ts +40 -0
  426. package/dist/src/bitgo/utils/tss/keyShareEnvelope.d.ts.map +1 -0
  427. package/dist/src/bitgo/utils/tss/keyShareEnvelope.js +103 -0
  428. package/dist/src/bitgo/utils/tss/keyVerification.d.ts +45 -0
  429. package/dist/src/bitgo/utils/tss/keyVerification.d.ts.map +1 -0
  430. package/dist/src/bitgo/utils/tss/keyVerification.js +192 -0
  431. package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts +23 -0
  432. package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
  433. package/dist/src/bitgo/utils/tss/preHashedSignable.js +26 -0
  434. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts +42 -0
  435. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -0
  436. package/dist/src/bitgo/utils/tss/recipientUtils.js +168 -0
  437. package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.d.ts +29 -0
  438. package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.d.ts.map +1 -0
  439. package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.js +126 -0
  440. package/dist/src/bitgo/utils/tss/redpallas/index.d.ts +4 -0
  441. package/dist/src/bitgo/utils/tss/redpallas/index.d.ts.map +1 -0
  442. package/dist/src/bitgo/utils/tss/redpallas/index.js +20 -0
  443. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts +27 -0
  444. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  445. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.js +43 -0
  446. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts +45 -0
  447. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts.map +1 -0
  448. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.js +55 -0
  449. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts +8 -0
  450. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts.map +1 -0
  451. package/dist/src/bitgo/utils/tss/serializedTxHexVerify.js +13 -0
  452. package/dist/src/bitgo/utils/tss/signableConsistency.d.ts +12 -0
  453. package/dist/src/bitgo/utils/tss/signableConsistency.d.ts.map +1 -0
  454. package/dist/src/bitgo/utils/tss/signableConsistency.js +9 -0
  455. package/dist/src/bitgo/utils/txRequest.d.ts +10 -0
  456. package/dist/src/bitgo/utils/txRequest.d.ts.map +1 -0
  457. package/dist/src/bitgo/utils/txRequest.js +49 -0
  458. package/dist/src/bitgo/utils/util.js +24 -10
  459. package/dist/src/bitgo/utils/wallet.d.ts +7 -0
  460. package/dist/src/bitgo/utils/wallet.d.ts.map +1 -0
  461. package/dist/src/bitgo/utils/wallet.js +48 -0
  462. package/dist/src/bitgo/v1Wallets.d.ts +170 -0
  463. package/dist/src/bitgo/v1Wallets.d.ts.map +1 -0
  464. package/dist/src/bitgo/v1Wallets.js +3 -0
  465. package/dist/src/bitgo/wallet/BuildParams.d.ts +90 -1
  466. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  467. package/dist/src/bitgo/wallet/BuildParams.js +92 -11
  468. package/dist/src/bitgo/wallet/iWallet.d.ts +623 -33
  469. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  470. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  471. package/dist/src/bitgo/wallet/iWallets.d.ts +310 -16
  472. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  473. package/dist/src/bitgo/wallet/iWallets.js +84 -3
  474. package/dist/src/bitgo/wallet/index.d.ts +1 -0
  475. package/dist/src/bitgo/wallet/index.d.ts.map +1 -1
  476. package/dist/src/bitgo/wallet/index.js +7 -2
  477. package/dist/src/bitgo/wallet/safeKeychain.d.ts +75 -0
  478. package/dist/src/bitgo/wallet/safeKeychain.d.ts.map +1 -0
  479. package/dist/src/bitgo/wallet/safeKeychain.js +151 -0
  480. package/dist/src/bitgo/wallet/wallet.d.ts +379 -27
  481. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  482. package/dist/src/bitgo/wallet/wallet.js +2323 -442
  483. package/dist/src/bitgo/wallet/wallets.d.ts +99 -4
  484. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  485. package/dist/src/bitgo/wallet/wallets.js +1242 -156
  486. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts +12 -0
  487. package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts.map +1 -0
  488. package/dist/src/bitgo/walletUtil/iMessageProvider.js +3 -0
  489. package/dist/src/bitgo/walletUtil/index.d.ts +3 -0
  490. package/dist/src/bitgo/walletUtil/index.d.ts.map +1 -0
  491. package/dist/src/bitgo/walletUtil/index.js +19 -0
  492. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts +22 -0
  493. package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts.map +1 -0
  494. package/dist/src/bitgo/walletUtil/midnightMessageProvider.js +95 -0
  495. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts +9 -0
  496. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts.map +1 -0
  497. package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.js +72 -0
  498. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts +15 -0
  499. package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts.map +1 -0
  500. package/dist/src/bitgo/walletUtil/utxoMessageProof.js +40 -0
  501. package/dist/src/bitgo/webauthn/base64url.d.ts +16 -0
  502. package/dist/src/bitgo/webauthn/base64url.d.ts.map +1 -0
  503. package/dist/src/bitgo/webauthn/base64url.js +27 -0
  504. package/dist/src/bitgo/webauthn/deriveEnterpriseSalt.d.ts +18 -0
  505. package/dist/src/bitgo/webauthn/deriveEnterpriseSalt.d.ts.map +1 -0
  506. package/dist/src/bitgo/webauthn/deriveEnterpriseSalt.js +26 -0
  507. package/dist/src/bitgo/webauthn/derivePassword.d.ts +11 -0
  508. package/dist/src/bitgo/webauthn/derivePassword.d.ts.map +1 -0
  509. package/dist/src/bitgo/webauthn/derivePassword.js +16 -0
  510. package/dist/src/bitgo/webauthn/index.d.ts +5 -0
  511. package/dist/src/bitgo/webauthn/index.d.ts.map +1 -0
  512. package/dist/src/bitgo/webauthn/index.js +21 -0
  513. package/dist/src/bitgo/webauthn/types.d.ts +18 -0
  514. package/dist/src/bitgo/webauthn/types.d.ts.map +1 -0
  515. package/dist/src/bitgo/webauthn/types.js +3 -0
  516. package/dist/src/bitgo/webhook/index.js +6 -2
  517. package/dist/src/bitgo/webhook/webhooks.js +23 -9
  518. package/dist/src/coins/fiat.d.ts +45 -0
  519. package/dist/src/coins/fiat.d.ts.map +1 -0
  520. package/dist/src/coins/fiat.js +94 -0
  521. package/dist/src/coins/index.d.ts +1 -6
  522. package/dist/src/coins/index.d.ts.map +1 -1
  523. package/dist/src/coins/index.js +7 -8
  524. package/dist/src/coins/ofc.d.ts +21 -2
  525. package/dist/src/coins/ofc.d.ts.map +1 -1
  526. package/dist/src/coins/ofc.js +29 -3
  527. package/dist/src/coins/ofcToken.d.ts +15 -4
  528. package/dist/src/coins/ofcToken.d.ts.map +1 -1
  529. package/dist/src/coins/ofcToken.js +43 -5
  530. package/dist/src/coins/susd.d.ts +3 -2
  531. package/dist/src/coins/susd.d.ts.map +1 -1
  532. package/dist/src/coins/susd.js +5 -1
  533. package/dist/src/common.js +27 -13
  534. package/dist/src/index.d.ts +9 -1
  535. package/dist/src/index.d.ts.map +1 -1
  536. package/dist/src/index.js +40 -11
  537. package/dist/src/lightning.d.ts +20 -0
  538. package/dist/src/lightning.d.ts.map +1 -0
  539. package/dist/src/lightning.js +13 -0
  540. package/dist/src/units.js +5 -6
  541. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
  542. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
  543. package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +207 -0
  544. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
  545. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
  546. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +174 -0
  547. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
  548. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
  549. package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +108 -0
  550. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +46 -0
  551. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
  552. package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +69 -0
  553. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +91 -29
  554. package/dist/test/unit/account-lib/mpc/util.d.ts +2 -0
  555. package/dist/test/unit/account-lib/mpc/util.d.ts.map +1 -0
  556. package/dist/test/unit/account-lib/mpc/util.js +53 -0
  557. package/dist/test/unit/bitgo/address-book/address-book.d.ts +2 -0
  558. package/dist/test/unit/bitgo/address-book/address-book.d.ts.map +1 -0
  559. package/dist/test/unit/bitgo/address-book/address-book.js +159 -0
  560. package/dist/test/unit/bitgo/defi/defiVault.d.ts +2 -0
  561. package/dist/test/unit/bitgo/defi/defiVault.d.ts.map +1 -0
  562. package/dist/test/unit/bitgo/defi/defiVault.js +863 -0
  563. package/dist/test/unit/bitgo/environment.d.ts +2 -0
  564. package/dist/test/unit/bitgo/environment.d.ts.map +1 -0
  565. package/dist/test/unit/bitgo/environment.js +38 -0
  566. package/dist/test/unit/bitgo/errors.d.ts +2 -0
  567. package/dist/test/unit/bitgo/errors.d.ts.map +1 -0
  568. package/dist/test/unit/bitgo/errors.js +262 -0
  569. package/dist/test/unit/bitgo/keychain/keychains.d.ts +2 -0
  570. package/dist/test/unit/bitgo/keychain/keychains.d.ts.map +1 -0
  571. package/dist/test/unit/bitgo/keychain/keychains.js +426 -0
  572. package/dist/test/unit/bitgo/recovery/initiate.d.ts +2 -0
  573. package/dist/test/unit/bitgo/recovery/initiate.d.ts.map +1 -0
  574. package/dist/test/unit/bitgo/recovery/initiate.js +159 -0
  575. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.d.ts +2 -0
  576. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -0
  577. package/dist/test/unit/bitgo/safe/derivableEd25519Pub.js +133 -0
  578. package/dist/test/unit/bitgo/safe/fixtures/derivableEd25519Pub.json +72 -0
  579. package/dist/test/unit/bitgo/safe/recovery.d.ts +2 -0
  580. package/dist/test/unit/bitgo/safe/recovery.d.ts.map +1 -0
  581. package/dist/test/unit/bitgo/safe/recovery.js +253 -0
  582. package/dist/test/unit/bitgo/safe/rootCoin.d.ts +2 -0
  583. package/dist/test/unit/bitgo/safe/rootCoin.d.ts.map +1 -0
  584. package/dist/test/unit/bitgo/safe/rootCoin.js +13 -0
  585. package/dist/test/unit/bitgo/safe/safe.d.ts +2 -0
  586. package/dist/test/unit/bitgo/safe/safe.d.ts.map +1 -0
  587. package/dist/test/unit/bitgo/safe/safe.js +585 -0
  588. package/dist/test/unit/bitgo/safe/safeDerivation.d.ts +2 -0
  589. package/dist/test/unit/bitgo/safe/safeDerivation.d.ts.map +1 -0
  590. package/dist/test/unit/bitgo/safe/safeDerivation.js +75 -0
  591. package/dist/test/unit/bitgo/safe/safes.d.ts +2 -0
  592. package/dist/test/unit/bitgo/safe/safes.d.ts.map +1 -0
  593. package/dist/test/unit/bitgo/safe/safes.js +376 -0
  594. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts +2 -0
  595. package/dist/test/unit/bitgo/trading/network/encrypt.d.ts.map +1 -0
  596. package/dist/test/unit/bitgo/trading/network/encrypt.js +71 -0
  597. package/dist/test/unit/bitgo/trading/network/network.test.d.ts +2 -0
  598. package/dist/test/unit/bitgo/trading/network/network.test.d.ts.map +1 -0
  599. package/dist/test/unit/bitgo/trading/network/network.test.js +136 -0
  600. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts +2 -0
  601. package/dist/test/unit/bitgo/trading/tradingAccount.d.ts.map +1 -0
  602. package/dist/test/unit/bitgo/trading/tradingAccount.js +192 -0
  603. package/dist/test/unit/bitgo/tss/bitgoPubKeys.d.ts +2 -0
  604. package/dist/test/unit/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
  605. package/dist/test/unit/bitgo/tss/bitgoPubKeys.js +66 -0
  606. package/dist/test/unit/bitgo/tss/common.d.ts +2 -0
  607. package/dist/test/unit/bitgo/tss/common.d.ts.map +1 -0
  608. package/dist/test/unit/bitgo/tss/common.js +77 -0
  609. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.d.ts +2 -0
  610. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  611. package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.js +249 -0
  612. package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +45 -4
  613. package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
  614. package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
  615. package/dist/test/unit/bitgo/utils/messageTypes.js +64 -0
  616. package/dist/test/unit/bitgo/utils/mpcUtils.unwrap.d.ts +2 -0
  617. package/dist/test/unit/bitgo/utils/mpcUtils.unwrap.d.ts.map +1 -0
  618. package/dist/test/unit/bitgo/utils/mpcUtils.unwrap.js +109 -0
  619. package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.d.ts +2 -0
  620. package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.d.ts.map +1 -0
  621. package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.js +106 -0
  622. package/dist/test/unit/bitgo/utils/notEmpty.d.ts +2 -0
  623. package/dist/test/unit/bitgo/utils/notEmpty.d.ts.map +1 -0
  624. package/dist/test/unit/bitgo/utils/notEmpty.js +15 -0
  625. package/dist/test/unit/bitgo/utils/postWithCodec.js +32 -38
  626. package/dist/test/unit/bitgo/utils/siws.d.ts +2 -0
  627. package/dist/test/unit/bitgo/utils/siws.d.ts.map +1 -0
  628. package/dist/test/unit/bitgo/utils/siws.js +206 -0
  629. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts +2 -0
  630. package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
  631. package/dist/test/unit/bitgo/utils/tss/addressVerification.js +251 -0
  632. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts +2 -0
  633. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -0
  634. package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.js +348 -0
  635. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts +2 -0
  636. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts.map +1 -0
  637. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.js +94 -0
  638. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +2 -0
  639. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
  640. package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1068 -0
  641. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts +5 -0
  642. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts.map +1 -0
  643. package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.js +36 -0
  644. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.d.ts +2 -0
  645. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.d.ts.map +1 -0
  646. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.js +158 -0
  647. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +2 -0
  648. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
  649. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +1993 -0
  650. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +2 -0
  651. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
  652. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +380 -0
  653. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts +2 -0
  654. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts.map +1 -0
  655. package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.js +376 -0
  656. package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.d.ts +2 -0
  657. package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.d.ts.map +1 -0
  658. package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.js +83 -0
  659. package/dist/test/unit/bitgo/utils/tss/keyVerification.d.ts +2 -0
  660. package/dist/test/unit/bitgo/utils/tss/keyVerification.d.ts.map +1 -0
  661. package/dist/test/unit/bitgo/utils/tss/keyVerification.js +229 -0
  662. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts +2 -0
  663. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
  664. package/dist/test/unit/bitgo/utils/tss/preHashedSignable.js +55 -0
  665. package/dist/test/unit/bitgo/utils/tss/recipientUtils.d.ts +2 -0
  666. package/dist/test/unit/bitgo/utils/tss/recipientUtils.d.ts.map +1 -0
  667. package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +462 -0
  668. package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts +2 -0
  669. package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
  670. package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.js +80 -0
  671. package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.d.ts +2 -0
  672. package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.d.ts.map +1 -0
  673. package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.js +279 -0
  674. package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.d.ts +2 -0
  675. package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.d.ts.map +1 -0
  676. package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.js +111 -0
  677. package/dist/test/unit/bitgo/utils/txRequest.d.ts +2 -0
  678. package/dist/test/unit/bitgo/utils/txRequest.d.ts.map +1 -0
  679. package/dist/test/unit/bitgo/utils/txRequest.js +179 -0
  680. package/dist/test/unit/bitgo/utils/wallet.d.ts +2 -0
  681. package/dist/test/unit/bitgo/utils/wallet.d.ts.map +1 -0
  682. package/dist/test/unit/bitgo/utils/wallet.js +55 -0
  683. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts +2 -0
  684. package/dist/test/unit/bitgo/wallet/BuildParams.d.ts.map +1 -0
  685. package/dist/test/unit/bitgo/wallet/BuildParams.js +154 -0
  686. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +79 -9
  687. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts +2 -0
  688. package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts.map +1 -0
  689. package/dist/test/unit/bitgo/wallet/getAccountResources.js +133 -0
  690. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.d.ts +2 -0
  691. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.d.ts.map +1 -0
  692. package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.js +88 -0
  693. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts +2 -0
  694. package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts.map +1 -0
  695. package/dist/test/unit/bitgo/wallet/getResourceDelegations.js +118 -0
  696. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts +2 -0
  697. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts.map +1 -0
  698. package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.js +141 -0
  699. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts +2 -0
  700. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts.map +1 -0
  701. package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.js +185 -0
  702. package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.d.ts +2 -0
  703. package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.d.ts.map +1 -0
  704. package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.js +20 -0
  705. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts +3 -0
  706. package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts.map +1 -0
  707. package/dist/test/unit/bitgo/wallet/resourceManagement.js +441 -0
  708. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.d.ts +5 -0
  709. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.d.ts.map +1 -0
  710. package/dist/test/unit/bitgo/wallet/safeGetUserPrv.js +671 -0
  711. package/dist/test/unit/bitgo/wallet/safeShareWallet.d.ts +9 -0
  712. package/dist/test/unit/bitgo/wallet/safeShareWallet.d.ts.map +1 -0
  713. package/dist/test/unit/bitgo/wallet/safeShareWallet.js +303 -0
  714. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts +2 -0
  715. package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts.map +1 -0
  716. package/dist/test/unit/bitgo/wallet/tokenApproval.js +210 -0
  717. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts +2 -0
  718. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts.map +1 -0
  719. package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.js +181 -0
  720. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts +2 -0
  721. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts.map +1 -0
  722. package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +69 -0
  723. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts +2 -0
  724. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts.map +1 -0
  725. package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.js +320 -0
  726. package/dist/test/unit/bitgo/wallet/walletVerifyKey.d.ts +2 -0
  727. package/dist/test/unit/bitgo/wallet/walletVerifyKey.d.ts.map +1 -0
  728. package/dist/test/unit/bitgo/wallet/walletVerifyKey.js +160 -0
  729. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts +2 -0
  730. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts.map +1 -0
  731. package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.js +304 -0
  732. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts +2 -0
  733. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts.map +1 -0
  734. package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.js +216 -0
  735. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts +2 -0
  736. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts.map +1 -0
  737. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.js +675 -0
  738. package/dist/test/unit/bitgo/wallet/walletsGoAccount.d.ts +2 -0
  739. package/dist/test/unit/bitgo/wallet/walletsGoAccount.d.ts.map +1 -0
  740. package/dist/test/unit/bitgo/wallet/walletsGoAccount.js +150 -0
  741. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts +2 -0
  742. package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts.map +1 -0
  743. package/dist/test/unit/bitgo/wallet/walletsWebauthn.js +201 -0
  744. package/dist/test/unit/coins/ofc.d.ts +2 -0
  745. package/dist/test/unit/coins/ofc.d.ts.map +1 -0
  746. package/dist/test/unit/coins/ofc.js +124 -0
  747. package/dist/test/unit/lightning.d.ts +2 -0
  748. package/dist/test/unit/lightning.d.ts.map +1 -0
  749. package/dist/test/unit/lightning.js +23 -0
  750. package/dist/test/unit/units.d.ts.map +1 -1
  751. package/dist/test/unit/units.js +64 -64
  752. package/dist/tsconfig.tsbuildinfo +1 -1
  753. package/package.json +25 -22
  754. package/.eslintignore +0 -5
  755. package/CHANGELOG.md +0 -1866
  756. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +0 -77
  757. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +0 -1
  758. package/dist/src/account-lib/baseCoin/blsKeyPair.js +0 -209
  759. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +0 -49
  760. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +0 -1
  761. package/dist/src/account-lib/util/ed25519KeyDeriver.js +0 -87
  762. package/dist/src/bitgo/lightning/iLightning.d.ts +0 -186
  763. package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
  764. package/dist/src/bitgo/lightning/iLightning.js +0 -106
  765. package/dist/src/bitgo/lightning/index.d.ts +0 -5
  766. package/dist/src/bitgo/lightning/index.d.ts.map +0 -1
  767. package/dist/src/bitgo/lightning/index.js +0 -17
  768. package/dist/src/bitgo/lightning/lightning.d.ts +0 -25
  769. package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
  770. package/dist/src/bitgo/lightning/lightning.js +0 -111
  771. package/dist/src/bitgo/lightning/lightningUtils.d.ts +0 -46
  772. package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +0 -1
  773. package/dist/src/bitgo/lightning/lightningUtils.js +0 -133
  774. package/dist/src/bitgo/lightning/lnurlCodec.d.ts +0 -3
  775. package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
  776. package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
  777. package/dist/src/bitgo/utils/blsUtils.d.ts +0 -52
  778. package/dist/src/bitgo/utils/blsUtils.d.ts.map +0 -1
  779. package/dist/src/bitgo/utils/blsUtils.js +0 -237
  780. package/dist/src/bitgo/utils/iBlsUtils.d.ts +0 -14
  781. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +0 -1
  782. package/dist/src/bitgo/utils/iBlsUtils.js +0 -3
  783. package/dist/src/coins/fiateur.d.ts +0 -31
  784. package/dist/src/coins/fiateur.d.ts.map +0 -1
  785. package/dist/src/coins/fiateur.js +0 -57
  786. package/dist/src/coins/fiatgbp.d.ts +0 -31
  787. package/dist/src/coins/fiatgbp.d.ts.map +0 -1
  788. package/dist/src/coins/fiatgbp.js +0 -57
  789. package/dist/src/coins/fiatusd.d.ts +0 -31
  790. package/dist/src/coins/fiatusd.d.ts.map +0 -1
  791. package/dist/src/coins/fiatusd.js +0 -57
  792. package/dist/src/coins/tfiateur.d.ts +0 -11
  793. package/dist/src/coins/tfiateur.d.ts.map +0 -1
  794. package/dist/src/coins/tfiateur.js +0 -17
  795. package/dist/src/coins/tfiatgbp.d.ts +0 -11
  796. package/dist/src/coins/tfiatgbp.d.ts.map +0 -1
  797. package/dist/src/coins/tfiatgbp.js +0 -17
  798. package/dist/src/coins/tfiatusd.d.ts +0 -11
  799. package/dist/src/coins/tfiatusd.d.ts.map +0 -1
  800. package/dist/src/coins/tfiatusd.js +0 -17
  801. package/dist/src/openssl/index.d.ts +0 -5
  802. package/dist/src/openssl/index.d.ts.map +0 -1
  803. package/dist/src/openssl/index.js +0 -9
  804. package/dist/test/unit/openssl.d.ts +0 -2
  805. package/dist/test/unit/openssl.d.ts.map +0 -1
  806. package/dist/test/unit/openssl.js +0 -39
@@ -1,4 +1,8 @@
1
1
  import { BitGoJsError } from '../bitgojsError';
2
+ import { IRequestTracer } from '../api/types';
3
+ import { TransactionParams } from './baseCoin';
4
+ import { IBaseCoin } from './baseCoin/iBaseCoin';
5
+ import { SendManyOptions } from './wallet';
2
6
  export { BitGoJsError };
3
7
  export declare class TlsConfigurationError extends BitGoJsError {
4
8
  constructor(message?: string);
@@ -9,6 +13,9 @@ export declare class NodeEnvironmentError extends BitGoJsError {
9
13
  export declare class UnsupportedCoinError extends BitGoJsError {
10
14
  constructor(coin: string);
11
15
  }
16
+ export declare class SafeMpcCeremonyUnsupportedError extends BitGoJsError {
17
+ constructor(coinFamily: string);
18
+ }
12
19
  export declare class AddressTypeChainMismatchError extends BitGoJsError {
13
20
  constructor(addressType: string, chain: number | string);
14
21
  }
@@ -75,12 +82,187 @@ export declare class InvalidKeyPathError extends BitGoJsError {
75
82
  export declare class InvalidTransactionError extends BitGoJsError {
76
83
  constructor(message?: string);
77
84
  }
85
+ export declare class MissingEncryptedKeychainError extends Error {
86
+ constructor(message?: string);
87
+ }
88
+ export declare class IncorrectPasswordError extends Error {
89
+ code: string;
90
+ status: number;
91
+ cause?: unknown;
92
+ constructor(message?: string, cause?: unknown);
93
+ }
94
+ export declare class NeedUserSignupError extends BitGoJsError {
95
+ constructor(message?: string);
96
+ }
78
97
  export declare class ApiResponseError<ResponseBodyType = any> extends BitGoJsError {
79
98
  message: string;
80
99
  status: number;
81
100
  result?: ResponseBodyType;
82
101
  invalidToken?: boolean;
83
102
  needsOTP?: boolean;
84
- constructor(message: string, status: number, result?: ResponseBodyType, invalidToken?: boolean, needsOTP?: boolean);
103
+ requestId?: string;
104
+ constructor(message: string, status: number, result?: ResponseBodyType, invalidToken?: boolean, needsOTP?: boolean, requestId?: string);
105
+ }
106
+ /**
107
+ * Interface for token approval information used in suspicious transaction detection
108
+ *
109
+ * @interface TokenApproval
110
+ * @property {string} [tokenName] - Optional human-readable name of the token
111
+ * @property {string} tokenAddress - The contract address of the token being approved
112
+ * @property {Object} authorizingAmount - The amount being authorized for spending
113
+ * @property {string} authorizingAddress - The address being authorized to spend the tokens
114
+ */
115
+ export interface TokenApproval {
116
+ tokenName?: string;
117
+ tokenAddress: string;
118
+ authorizingAmount: {
119
+ type: 'unlimited';
120
+ } | {
121
+ type: 'limited';
122
+ amount: number;
123
+ };
124
+ authorizingAddress: string;
125
+ }
126
+ /**
127
+ * Interface for mismatched recipient information detected during transaction verification
128
+ *
129
+ * @interface MismatchedRecipient
130
+ * @property {string} address - The recipient address that was found in the transaction
131
+ * @property {string} amount - The amount being sent to this recipient
132
+ * @property {string | TokenTransferRecipientParams} [data] - Optional transaction data or token transfer parameters
133
+ * @property {string} [tokenName] - Optional name of the token being transferred
134
+ * @property {TokenTransferRecipientParams} [tokenData] - Optional structured token transfer data
135
+ */
136
+ export type MismatchedRecipient = NonNullable<SendManyOptions['recipients']>[0];
137
+ /**
138
+ * Interface for contract interaction data payload used in suspicious transaction detection
139
+ *
140
+ * @interface ContractDataPayload
141
+ * @property {string} address - The contract address being interacted with
142
+ * @property {string} rawContractPayload - The raw contract payload in serialized form specific to the blockchain
143
+ * @property {unknown} decodedContractPayload - The decoded contract payload, structure varies by coin/chain implementation
144
+ */
145
+ export interface ContractDataPayload {
146
+ address: string;
147
+ rawContractPayload: string;
148
+ decodedContractPayload: unknown;
149
+ }
150
+ /**
151
+ * Base error class for transaction intent mismatch detection
152
+ *
153
+ * This error is thrown when a transaction does not match the user's original intent,
154
+ * indicating potential security issues or malicious modifications.
155
+ *
156
+ * @class TxIntentMismatchError
157
+ * @extends {BitGoJsError}
158
+ * @property {string | IRequestTracer | undefined} id - Transaction ID or request tracer for tracking
159
+ * @property {TransactionParams[]} txParams - Array of transaction parameters that were analyzed
160
+ * @property {string | undefined} txHex - The raw transaction in hexadecimal format
161
+ * @property {string | undefined} txExplanation - Stringified transaction explanation
162
+ */
163
+ export declare class TxIntentMismatchError extends BitGoJsError {
164
+ readonly id: string | IRequestTracer | undefined;
165
+ readonly txParams: TransactionParams[];
166
+ readonly txHex: string | undefined;
167
+ readonly txExplanation: string | undefined;
168
+ /**
169
+ * Creates an instance of TxIntentMismatchError
170
+ *
171
+ * @param {string} message - Error message describing the intent mismatch
172
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
173
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
174
+ * @param {string | undefined} txHex - Raw transaction hex string
175
+ * @param {unknown} txExplanation - Transaction explanation
176
+ */
177
+ constructor(message: string, id: string | IRequestTracer | undefined, txParams: TransactionParams[], txHex: string | undefined, txExplanation?: unknown);
178
+ /**
179
+ * Safely stringify a value with BigInt support
180
+ * @param value - Value to stringify
181
+ * @returns JSON string with BigInts converted to strings
182
+ */
183
+ private static safeStringify;
184
+ /**
185
+ * Try to get transaction explanation from a coin's explainTransaction method.
186
+ *
187
+ * @param coin - Coin instance implementing IBaseCoin
188
+ * @param txPrebuild - Transaction prebuild containing txHex and txInfo
189
+ * @returns Transaction explanation object or undefined
190
+ */
191
+ static tryGetTxExplanation(coin: IBaseCoin, txPrebuild: {
192
+ txHex?: string;
193
+ txInfo?: unknown;
194
+ }): Promise<unknown>;
195
+ }
196
+ /**
197
+ * Error thrown when transaction recipients don't match the user's intent
198
+ *
199
+ * This error occurs when the transaction contains recipients or amounts that differ
200
+ * from what the user originally intended to send.
201
+ *
202
+ * @class TxIntentMismatchRecipientError
203
+ * @extends {TxIntentMismatchError}
204
+ * @property {MismatchedRecipient[]} mismatchedRecipients - Array of recipients that don't match user intent
205
+ */
206
+ export declare class TxIntentMismatchRecipientError extends TxIntentMismatchError {
207
+ readonly mismatchedRecipients: MismatchedRecipient[];
208
+ /**
209
+ * Creates an instance of TxIntentMismatchRecipientError
210
+ *
211
+ * @param {string} message - Error message describing the recipient intent mismatch
212
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
213
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
214
+ * @param {string | undefined} txHex - Raw transaction hex string
215
+ * @param {MismatchedRecipient[]} mismatchedRecipients - Array of recipients that don't match user intent
216
+ * @param {unknown} txExplanation - Transaction explanation
217
+ */
218
+ constructor(message: string, id: string | IRequestTracer | undefined, txParams: TransactionParams[], txHex: string | undefined, mismatchedRecipients: MismatchedRecipient[], txExplanation?: unknown);
219
+ }
220
+ /**
221
+ * Error thrown when contract interaction doesn't match the user's intent
222
+ *
223
+ * This error occurs when a transaction interacts with a smart contract but the
224
+ * contract call data or method doesn't match what the user intended.
225
+ *
226
+ * @class TxIntentMismatchContractError
227
+ * @extends {TxIntentMismatchError}
228
+ * @property {ContractDataPayload} mismatchedDataPayload - The contract interaction data that doesn't match user intent
229
+ */
230
+ export declare class TxIntentMismatchContractError extends TxIntentMismatchError {
231
+ readonly mismatchedDataPayload: ContractDataPayload;
232
+ /**
233
+ * Creates an instance of TxIntentMismatchContractError
234
+ *
235
+ * @param {string} message - Error message describing the contract intent mismatch
236
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
237
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
238
+ * @param {string | undefined} txHex - Raw transaction hex string
239
+ * @param {ContractDataPayload} mismatchedDataPayload - The contract interaction data that doesn't match user intent
240
+ * @param {unknown} txExplanation - Transaction explanation
241
+ */
242
+ constructor(message: string, id: string | IRequestTracer | undefined, txParams: TransactionParams[], txHex: string | undefined, mismatchedDataPayload: ContractDataPayload, txExplanation?: unknown);
243
+ }
244
+ /**
245
+ * Error thrown when token approval doesn't match the user's intent
246
+ *
247
+ * This error occurs when a transaction contains a token approval that the user
248
+ * did not intend to authorize, potentially indicating malicious activity.
249
+ *
250
+ * @class TxIntentMismatchApprovalError
251
+ * @extends {TxIntentMismatchError}
252
+ * @property {TokenApproval} tokenApproval - Details of the token approval that doesn't match user intent
253
+ */
254
+ export declare class TxIntentMismatchApprovalError extends TxIntentMismatchError {
255
+ readonly tokenApproval: TokenApproval;
256
+ /**
257
+ * Creates an instance of TxIntentMismatchApprovalError
258
+ *
259
+ * @param {string} message - Error message describing the approval intent mismatch
260
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
261
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
262
+ * @param {string | undefined} txHex - Raw transaction hex string
263
+ * @param {TokenApproval} tokenApproval - Details of the token approval that doesn't match user intent
264
+ * @param {unknown} txExplanation - Transaction explanation
265
+ */
266
+ constructor(message: string, id: string | IRequestTracer | undefined, txParams: TransactionParams[], txHex: string | undefined, tokenApproval: TokenApproval, txExplanation?: unknown);
85
267
  }
86
268
  //# 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":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiResponseError = exports.InvalidTransactionError = exports.InvalidKeyPathError = exports.ErrorNoInputToRecover = exports.StellarFederationUserNotFoundError = exports.EthereumLibraryUnavailableError = exports.AddressGenerationError = exports.KeyRecoveryServiceError = exports.InvalidPaymentIdError = exports.InvalidMemoIdError = exports.BlockExplorerUnavailable = exports.MethodNotImplementedError = exports.WalletRecoveryUnsupported = exports.InvalidAddressDerivationPropertyError = exports.UnexpectedAddressError = exports.InvalidAddressVerificationObjectPropertyError = exports.InvalidAddressError = exports.UnsupportedAddressTypeError = exports.P2trMusig2UnsupportedError = exports.P2trUnsupportedError = exports.P2wshUnsupportedError = exports.P2shP2wshUnsupportedError = exports.AddressTypeChainMismatchError = exports.UnsupportedCoinError = exports.NodeEnvironmentError = exports.TlsConfigurationError = exports.BitGoJsError = void 0;
3
+ exports.TxIntentMismatchApprovalError = exports.TxIntentMismatchContractError = exports.TxIntentMismatchRecipientError = exports.TxIntentMismatchError = exports.ApiResponseError = exports.NeedUserSignupError = exports.IncorrectPasswordError = exports.MissingEncryptedKeychainError = exports.InvalidTransactionError = exports.InvalidKeyPathError = exports.ErrorNoInputToRecover = exports.StellarFederationUserNotFoundError = exports.EthereumLibraryUnavailableError = exports.AddressGenerationError = exports.KeyRecoveryServiceError = exports.InvalidPaymentIdError = exports.InvalidMemoIdError = exports.BlockExplorerUnavailable = exports.MethodNotImplementedError = exports.WalletRecoveryUnsupported = exports.InvalidAddressDerivationPropertyError = exports.UnexpectedAddressError = exports.InvalidAddressVerificationObjectPropertyError = exports.InvalidAddressError = exports.UnsupportedAddressTypeError = exports.P2trMusig2UnsupportedError = exports.P2trUnsupportedError = exports.P2wshUnsupportedError = exports.P2shP2wshUnsupportedError = exports.AddressTypeChainMismatchError = exports.SafeMpcCeremonyUnsupportedError = exports.UnsupportedCoinError = exports.NodeEnvironmentError = exports.TlsConfigurationError = exports.BitGoJsError = void 0;
4
4
  // Descriptive error types for common issues which may arise
5
5
  // during the operation of BitGoJS or BitGoExpress
6
6
  const bitgojsError_1 = require("../bitgojsError");
@@ -23,6 +23,12 @@ class UnsupportedCoinError extends bitgojsError_1.BitGoJsError {
23
23
  }
24
24
  }
25
25
  exports.UnsupportedCoinError = UnsupportedCoinError;
26
+ class SafeMpcCeremonyUnsupportedError extends bitgojsError_1.BitGoJsError {
27
+ constructor(coinFamily) {
28
+ super(`Cannot create Wallet Safe root keys for coin family '${coinFamily}': its TSS settings resolve to the legacy MPCv1 ceremony, which does not support safe root tagging (safeId). Enable MPCv2 for '${coinFamily}' before creating a safe with this root type.`);
29
+ }
30
+ }
31
+ exports.SafeMpcCeremonyUnsupportedError = SafeMpcCeremonyUnsupportedError;
26
32
  class AddressTypeChainMismatchError extends bitgojsError_1.BitGoJsError {
27
33
  constructor(addressType, chain) {
28
34
  super(`address type ${addressType} does not correspond to chain ${chain}`);
@@ -155,15 +161,184 @@ class InvalidTransactionError extends bitgojsError_1.BitGoJsError {
155
161
  }
156
162
  }
157
163
  exports.InvalidTransactionError = InvalidTransactionError;
164
+ class MissingEncryptedKeychainError extends Error {
165
+ constructor(message) {
166
+ super(message || 'No encrypted keychains on this wallet.');
167
+ }
168
+ }
169
+ exports.MissingEncryptedKeychainError = MissingEncryptedKeychainError;
170
+ class IncorrectPasswordError extends Error {
171
+ constructor(message, cause) {
172
+ super(message || 'unable to decrypt keychain with the given wallet passphrase');
173
+ this.code = 'wallet_passphrase_incorrect';
174
+ this.status = 401;
175
+ this.name = 'IncorrectPasswordError';
176
+ this.cause = cause;
177
+ }
178
+ }
179
+ exports.IncorrectPasswordError = IncorrectPasswordError;
180
+ class NeedUserSignupError extends bitgojsError_1.BitGoJsError {
181
+ constructor(message) {
182
+ super(message || 'User signup is required');
183
+ }
184
+ }
185
+ exports.NeedUserSignupError = NeedUserSignupError;
158
186
  class ApiResponseError extends bitgojsError_1.BitGoJsError {
159
- constructor(message, status, result, invalidToken, needsOTP) {
187
+ constructor(message, status, result, invalidToken, needsOTP, requestId) {
160
188
  super(message);
161
189
  this.message = message;
162
190
  this.status = status;
163
191
  this.result = result;
164
192
  this.invalidToken = invalidToken;
165
193
  this.needsOTP = needsOTP;
194
+ this.requestId = requestId;
166
195
  }
167
196
  }
168
197
  exports.ApiResponseError = ApiResponseError;
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0REFBNEQ7QUFDNUQsa0RBQWtEO0FBQ2xELGtEQUErQztBQUd0Qyw2RkFIQSwyQkFBWSxPQUdBO0FBRXJCLE1BQWEscUJBQXNCLFNBQVEsMkJBQVk7SUFDckQsWUFBbUIsT0FBZ0I7UUFDakMsS0FBSyxDQUFDLE9BQU8sSUFBSSxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRjtBQUpELHNEQUlDO0FBRUQsTUFBYSxvQkFBcUIsU0FBUSwyQkFBWTtJQUNwRCxZQUFtQixPQUFnQjtRQUNqQyxLQUFLLENBQUMsT0FBTyxJQUFJLHVEQUF1RCxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNGO0FBSkQsb0RBSUM7QUFFRCxNQUFhLG9CQUFxQixTQUFRLDJCQUFZO0lBQ3BELFlBQW1CLElBQVk7UUFDN0IsS0FBSyxDQUNILHNCQUFzQixJQUFJLHFLQUFxSyxJQUFJLFNBQVMsQ0FDN00sQ0FBQztJQUNKLENBQUM7Q0FDRjtBQU5ELG9EQU1DO0FBRUQsTUFBYSw2QkFBOEIsU0FBUSwyQkFBWTtJQUM3RCxZQUFZLFdBQW1CLEVBQUUsS0FBc0I7UUFDckQsS0FBSyxDQUFDLGdCQUFnQixXQUFXLGlDQUFpQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7Q0FDRjtBQUpELHNFQUlDO0FBRUQsTUFBYSx5QkFBMEIsU0FBUSwyQkFBWTtJQUN6RCxZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLElBQUksc0NBQXNDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0Y7QUFKRCw4REFJQztBQUVELE1BQWEscUJBQXNCLFNBQVEsMkJBQVk7SUFDckQsWUFBbUIsT0FBZ0I7UUFDakMsS0FBSyxDQUFDLE9BQU8sSUFBSSxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQUpE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LEtBQUssQ0FBQyxPQUFPLElBQUksbUJBQW1CLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUFKRCxnRkFJQztBQUVELE1BQWEscUJBQXNCLFNBQVEsMkJBQVk7SUFDckQsWUFBbUIsT0FBZ0I7UUFDakMsS0FBSyxDQUFDLE9BQU8sSUFBSSxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRjtBQUpELHNEQUlDO0FBRUQsTUFBYSxtQkFBb0IsU0FBUSwyQkFBWTtJQUNuRCxZQUFtQixPQUFlO1FBQ2hDLEtBQUssQ0FBQyxvQkFBb0IsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFKRCxrREFJQztBQUVELE1BQWEsdUJBQXdCLFNBQVEsMkJBQVk7SUFDdkQsWUFBbUIsT0FBZ0I7UUFDakMsS0FBSyxDQUFDLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQUpELDBEQUlDO0FBRUQsTUFBYSxnQkFBeUMsU0FBUSwyQkFBWTtJQU94RSxZQUNFLE9BQWUsRUFDZixNQUFjLEVBQ2QsTUFBeUIsRUFDekIsWUFBc0IsRUFDdEIsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBckJELDRDQXFCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIERlc2NyaXB0aXZlIGVycm9yIHR5cGVzIGZvciBjb21tb24gaXNzdWVzIHdoaWNoIG1heSBhcmlzZVxuLy8gZHVyaW5nIHRoZSBvcGVyYXRpb24gb2YgQml0R29KUyBvciBCaXRHb0V4cHJlc3NcbmltcG9ydCB7IEJpdEdvSnNFcnJvciB9IGZyb20gJy4uL2JpdGdvanNFcnJvcic7XG5cbi8vIHJlLWV4cG9ydCBmb3IgYmFja3dhcmRzIGNvbXBhdFxuZXhwb3J0IHsgQml0R29Kc0Vycm9yIH07XG5cbmV4cG9ydCBjbGFzcyBUbHNDb25maWd1cmF0aW9uRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ1RMUyBpcyBjb25maWd1cmF0aW9uIGlzIGludmFsaWQnKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTm9kZUVudmlyb25tZW50RXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ05PREVfRU5WIGlzIGludmFsaWQgZm9yIHRoZSBjdXJyZW50IGJpdGdvIGVudmlyb25tZW50Jyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVuc3VwcG9ydGVkQ29pbkVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvaW46IHN0cmluZykge1xuICAgIHN1cGVyKFxuICAgICAgYENvaW4gb3IgdG9rZW4gdHlwZSAke2NvaW59IG5vdCBzdXBwb3J0ZWQgb3Igbm90IGNvbXBpbGVkLiBQbGVhc2UgYmUgc3VyZSB0aGF0IHlvdSBhcmUgdXNpbmcgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIEJpdEdvSlMuIElmIHVzaW5nIEBiaXRnby1iZXRhL3Nkay1hcGksIHBsZWFzZSBjb25maXJtIHlvdSBoYXZlIHJlZ2lzdGVyZWQgJHtjb2lufSBmaXJzdC5gXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkcmVzc1R5cGVDaGFpbk1pc21hdGNoRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihhZGRyZXNzVHlwZTogc3RyaW5nLCBjaGFpbjogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgc3VwZXIoYGFkZHJlc3MgdHlwZSAke2FkZHJlc3NUeXBlfSBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGNoYWluICR7Y2hhaW59YCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFAyc2hQMndzaFVuc3VwcG9ydGVkRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAncDJzaFAyd3NoIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBjb2luJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFAyd3NoVW5zdXBwb3J0ZWRFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAncDJ3c2ggbm90IHN1cHBvcnRlZCBieSB0aGlzIGNvaW4nKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUDJ0clVuc3VwcG9ydGVkRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ3AydHIgbm90IHN1cHBvcnRlZCBieSB0aGlzIGNvaW4nKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUDJ0ck11c2lnMlVuc3VwcG9ydGVkRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ3AydHJNdXNpZzIgbm90IHN1cHBvcnRlZCBieSB0aGlzIGNvaW4nKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVW5zdXBwb3J0ZWRBZGRyZXNzVHlwZUVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdpbnZhbGlkIGFkZHJlc3MgdHlwZScpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQWRkcmVzc0Vycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdpbnZhbGlkIGFkZHJlc3MnKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW52YWxpZEFkZHJlc3NWZXJpZmljYXRpb25PYmplY3RQcm9wZXJ0eUVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdhZGRyZXNzIHZhbGlkYXRpb24gZmFpbHVyZScpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdhZGRyZXNzIHZhbGlkYXRpb24gZmFpbHVyZScpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQWRkcmVzc0Rlcml2YXRpb25Qcm9wZXJ0eUVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdhZGRyZXNzIGNoYWluIGFuZC9vciBpbmRleCBhcmUgaW52YWxpZCcpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRSZWNvdmVyeVVuc3VwcG9ydGVkIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICd3YWxsZXQgcmVjb3ZlcnkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGNvaW4nKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAnbWV0aG9kIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCbG9ja0V4cGxvcmVyVW5hdmFpbGFibGUgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ3RoaXJkLXBhcnR5IGJsb2NrZXhwbG9yZXIgbm90IHJlc3BvbmRpbmcnKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW52YWxpZE1lbW9JZEVycm9yIGV4dGVuZHMgSW52YWxpZEFkZHJlc3NFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAnaW52YWxpZCBtZW1vIGlkJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRQYXltZW50SWRFcnJvciBleHRlbmRzIEludmFsaWRBZGRyZXNzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ2ludmFsaWQgcGF5bWVudCBpZCcpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBLZXlSZWNvdmVyeVNlcnZpY2VFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAna2V5IHJlY292ZXJ5IHNlcnZpY2UgZW5jb3VudGVyZWQgYW4gZXJyb3InKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkcmVzc0dlbmVyYXRpb25FcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAnYWRkcmVzcyBnZW5lcmF0aW9uIGZhaWxlZCcpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFdGhlcmV1bUxpYnJhcnlVbmF2YWlsYWJsZUVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgRXRoZXJldW0gbGlicmFyeSByZXF1aXJlZCBmb3Igb3BlcmF0aW9uIGlzIG5vdCBhdmFpbGFibGUuIFBsZWFzZSBpbnN0YWxsIFwiJHtwYWNrYWdlTmFtZX1cIi5gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3RlbGxhckZlZGVyYXRpb25Vc2VyTm90Rm91bmRFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAnYWNjb3VudCBub3QgZm91bmQnKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXJyb3JOb0lucHV0VG9SZWNvdmVyIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdObyBpbnB1dCB0byByZWNvdmVyIC0gYWJvcnRpbmchJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRLZXlQYXRoRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3Ioa2V5UGF0aDogc3RyaW5nKSB7XG4gICAgc3VwZXIoYGludmFsaWQga2V5cGF0aDogJHtrZXlQYXRofWApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAnSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcGlSZXNwb25zZUVycm9yPFJlc3BvbnNlQm9keVR5cGUgPSBhbnk+IGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBzdGF0dXM6IG51bWJlcjtcbiAgcmVzdWx0PzogUmVzcG9uc2VCb2R5VHlwZTtcbiAgaW52YWxpZFRva2VuPzogYm9vbGVhbjtcbiAgbmVlZHNPVFA/OiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgc3RhdHVzOiBudW1iZXIsXG4gICAgcmVzdWx0PzogUmVzcG9uc2VCb2R5VHlwZSxcbiAgICBpbnZhbGlkVG9rZW4/OiBib29sZWFuLFxuICAgIG5lZWRzT1RQPzogYm9vbGVhblxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICAgIHRoaXMucmVzdWx0ID0gcmVzdWx0O1xuICAgIHRoaXMuaW52YWxpZFRva2VuID0gaW52YWxpZFRva2VuO1xuICAgIHRoaXMubmVlZHNPVFAgPSBuZWVkc09UUDtcbiAgfVxufVxuIl19
198
+ /**
199
+ * Base error class for transaction intent mismatch detection
200
+ *
201
+ * This error is thrown when a transaction does not match the user's original intent,
202
+ * indicating potential security issues or malicious modifications.
203
+ *
204
+ * @class TxIntentMismatchError
205
+ * @extends {BitGoJsError}
206
+ * @property {string | IRequestTracer | undefined} id - Transaction ID or request tracer for tracking
207
+ * @property {TransactionParams[]} txParams - Array of transaction parameters that were analyzed
208
+ * @property {string | undefined} txHex - The raw transaction in hexadecimal format
209
+ * @property {string | undefined} txExplanation - Stringified transaction explanation
210
+ */
211
+ class TxIntentMismatchError extends bitgojsError_1.BitGoJsError {
212
+ /**
213
+ * Creates an instance of TxIntentMismatchError
214
+ *
215
+ * @param {string} message - Error message describing the intent mismatch
216
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
217
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
218
+ * @param {string | undefined} txHex - Raw transaction hex string
219
+ * @param {unknown} txExplanation - Transaction explanation
220
+ */
221
+ constructor(message, id, txParams, txHex, txExplanation) {
222
+ super(message);
223
+ this.id = id;
224
+ this.txParams = txParams;
225
+ this.txHex = txHex;
226
+ this.txExplanation = txExplanation ? TxIntentMismatchError.safeStringify(txExplanation) : undefined;
227
+ }
228
+ /**
229
+ * Safely stringify a value with BigInt support
230
+ * @param value - Value to stringify
231
+ * @returns JSON string with BigInts converted to strings
232
+ */
233
+ static safeStringify(value) {
234
+ return JSON.stringify(value, (_, v) => (typeof v === 'bigint' ? v.toString() : v), 2);
235
+ }
236
+ /**
237
+ * Try to get transaction explanation from a coin's explainTransaction method.
238
+ *
239
+ * @param coin - Coin instance implementing IBaseCoin
240
+ * @param txPrebuild - Transaction prebuild containing txHex and txInfo
241
+ * @returns Transaction explanation object or undefined
242
+ */
243
+ static async tryGetTxExplanation(coin, txPrebuild) {
244
+ if (!txPrebuild.txHex) {
245
+ return undefined;
246
+ }
247
+ try {
248
+ return await coin.explainTransaction({
249
+ txHex: txPrebuild.txHex,
250
+ txInfo: txPrebuild.txInfo,
251
+ });
252
+ }
253
+ catch (e) {
254
+ return {
255
+ error: 'Failed to parse transaction explanation',
256
+ txHex: txPrebuild.txHex,
257
+ details: e instanceof Error ? e.message : String(e),
258
+ };
259
+ }
260
+ }
261
+ }
262
+ exports.TxIntentMismatchError = TxIntentMismatchError;
263
+ /**
264
+ * Error thrown when transaction recipients don't match the user's intent
265
+ *
266
+ * This error occurs when the transaction contains recipients or amounts that differ
267
+ * from what the user originally intended to send.
268
+ *
269
+ * @class TxIntentMismatchRecipientError
270
+ * @extends {TxIntentMismatchError}
271
+ * @property {MismatchedRecipient[]} mismatchedRecipients - Array of recipients that don't match user intent
272
+ */
273
+ class TxIntentMismatchRecipientError extends TxIntentMismatchError {
274
+ /**
275
+ * Creates an instance of TxIntentMismatchRecipientError
276
+ *
277
+ * @param {string} message - Error message describing the recipient intent mismatch
278
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
279
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
280
+ * @param {string | undefined} txHex - Raw transaction hex string
281
+ * @param {MismatchedRecipient[]} mismatchedRecipients - Array of recipients that don't match user intent
282
+ * @param {unknown} txExplanation - Transaction explanation
283
+ */
284
+ constructor(message, id, txParams, txHex, mismatchedRecipients, txExplanation) {
285
+ super(message, id, txParams, txHex, txExplanation);
286
+ this.mismatchedRecipients = mismatchedRecipients;
287
+ }
288
+ }
289
+ exports.TxIntentMismatchRecipientError = TxIntentMismatchRecipientError;
290
+ /**
291
+ * Error thrown when contract interaction doesn't match the user's intent
292
+ *
293
+ * This error occurs when a transaction interacts with a smart contract but the
294
+ * contract call data or method doesn't match what the user intended.
295
+ *
296
+ * @class TxIntentMismatchContractError
297
+ * @extends {TxIntentMismatchError}
298
+ * @property {ContractDataPayload} mismatchedDataPayload - The contract interaction data that doesn't match user intent
299
+ */
300
+ class TxIntentMismatchContractError extends TxIntentMismatchError {
301
+ /**
302
+ * Creates an instance of TxIntentMismatchContractError
303
+ *
304
+ * @param {string} message - Error message describing the contract intent mismatch
305
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
306
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
307
+ * @param {string | undefined} txHex - Raw transaction hex string
308
+ * @param {ContractDataPayload} mismatchedDataPayload - The contract interaction data that doesn't match user intent
309
+ * @param {unknown} txExplanation - Transaction explanation
310
+ */
311
+ constructor(message, id, txParams, txHex, mismatchedDataPayload, txExplanation) {
312
+ super(message, id, txParams, txHex, txExplanation);
313
+ this.mismatchedDataPayload = mismatchedDataPayload;
314
+ }
315
+ }
316
+ exports.TxIntentMismatchContractError = TxIntentMismatchContractError;
317
+ /**
318
+ * Error thrown when token approval doesn't match the user's intent
319
+ *
320
+ * This error occurs when a transaction contains a token approval that the user
321
+ * did not intend to authorize, potentially indicating malicious activity.
322
+ *
323
+ * @class TxIntentMismatchApprovalError
324
+ * @extends {TxIntentMismatchError}
325
+ * @property {TokenApproval} tokenApproval - Details of the token approval that doesn't match user intent
326
+ */
327
+ class TxIntentMismatchApprovalError extends TxIntentMismatchError {
328
+ /**
329
+ * Creates an instance of TxIntentMismatchApprovalError
330
+ *
331
+ * @param {string} message - Error message describing the approval intent mismatch
332
+ * @param {string | IRequestTracer | undefined} id - Transaction ID or request tracer
333
+ * @param {TransactionParams[]} txParams - Transaction parameters that were analyzed
334
+ * @param {string | undefined} txHex - Raw transaction hex string
335
+ * @param {TokenApproval} tokenApproval - Details of the token approval that doesn't match user intent
336
+ * @param {unknown} txExplanation - Transaction explanation
337
+ */
338
+ constructor(message, id, txParams, txHex, tokenApproval, txExplanation) {
339
+ super(message, id, txParams, txHex, txExplanation);
340
+ this.tokenApproval = tokenApproval;
341
+ }
342
+ }
343
+ exports.TxIntentMismatchApprovalError = TxIntentMismatchApprovalError;
344
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0REFBNEQ7QUFDNUQsa0RBQWtEO0FBQ2xELGtEQUErQztBQU90Qyw2RkFQQSwyQkFBWSxPQU9BO0FBRXJCLE1BQWEscUJBQXNCLFNBQVEsMkJBQVk7SUFDckQsWUFBbUIsT0FBZ0I7UUFDakMsS0FBSyxDQUFDLE9BQU8sSUFBSSxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRjtBQUpELHNEQUlDO0FBRUQsTUFBYSxvQkFBcUIsU0FBUSwyQkFBWTtJQUNwRCxZQUFtQixPQUFnQjtRQUNqQyxLQUFLLENBQUMsT0FBTyxJQUFJLHVEQUF1RCxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNGO0FBSkQsb0RBSUM7QUFFRCxNQUFhLG9CQUFxQixTQUFRLDJCQUFZO0lBQ3BELFlBQW1CLElBQVk7UUFDN0IsS0FBSyxDQUNILHNCQUFzQixJQUFJLHFLQUFxSyxJQUFJLFNBQVMsQ0FDN00sQ0FBQztJQUNKLENBQUM7Q0FDRjtBQU5ELG9EQU1DO0FBRUQsTUFBYSwrQkFBZ0MsU0FBUSwyQkFBWTtJQUMvRCxZQUFtQixVQUFrQjtRQUNuQyxLQUFLLENBQ0gsd0RBQXdELFVBQVUsa0lBQWtJLFVBQVUsK0NBQStDLENBQzlQLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFORCwwRUFNQztBQUVELE1BQWEsNkJBQThCLFNBQVEsMkJBQVk7SUFDN0QsWUFBWSxXQUFtQixFQUFFLEtBQXNCO1FBQ3JELEtBQUssQ0FBQyxnQkFBZ0IsV0FBVyxpQ0FBaUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0NBQ0Y7QUFKRCxzRUFJQztBQUVELE1BQWEseUJBQTBCLFNBQVEsMkJBQVk7SUFDekQsWUFBWSxPQUFnQjtRQUMxQixLQUFLLENBQUMsT0FBTyxJQUFJLHNDQUFzQyxDQUFDLENBQUM7SUFDM0Qs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RUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7SUFDbkQsQ0FBQztDQUNGO0FBeEJELHdFQXdCQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsNkJBQThCLFNBQVEscUJBQXFCO0lBR3RFOzs7Ozs7Ozs7T0FTRztJQUNILFlBQ0UsT0FBZSxFQUNmLEVBQXVDLEVBQ3ZDLFFBQTZCLEVBQzdCLEtBQXlCLEVBQ3pCLHFCQUEwQyxFQUMxQyxhQUF1QjtRQUV2QixLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUF4QkQsc0VBd0JDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSw2QkFBOEIsU0FBUSxxQkFBcUI7SUFHdEU7Ozs7Ozs7OztPQVNHO0lBQ0gsWUFDRSxPQUFlLEVBQ2YsRUFBdUMsRUFDdkMsUUFBNkIsRUFDN0IsS0FBeUIsRUFDekIsYUFBNEIsRUFDNUIsYUFBdUI7UUFFdkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUF4QkQsc0VBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRGVzY3JpcHRpdmUgZXJyb3IgdHlwZXMgZm9yIGNvbW1vbiBpc3N1ZXMgd2hpY2ggbWF5IGFyaXNlXG4vLyBkdXJpbmcgdGhlIG9wZXJhdGlvbiBvZiBCaXRHb0pTIG9yIEJpdEdvRXhwcmVzc1xuaW1wb3J0IHsgQml0R29Kc0Vycm9yIH0gZnJvbSAnLi4vYml0Z29qc0Vycm9yJztcbmltcG9ydCB7IElSZXF1ZXN0VHJhY2VyIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUGFyYW1zIH0gZnJvbSAnLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBJQmFzZUNvaW4gfSBmcm9tICcuL2Jhc2VDb2luL2lCYXNlQ29pbic7XG5pbXBvcnQgeyBTZW5kTWFueU9wdGlvbnMgfSBmcm9tICcuL3dhbGxldCc7XG5cbi8vIHJlLWV4cG9ydCBmb3IgYmFja3dhcmRzIGNvbXBhdFxuZXhwb3J0IHsgQml0R29Kc0Vycm9yIH07XG5cbmV4cG9ydCBjbGFzcyBUbHNDb25maWd1cmF0aW9uRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ1RMUyBpcyBjb25maWd1cmF0aW9uIGlzIGludmFsaWQnKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTm9kZUVudmlyb25tZW50RXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ05PREVfRU5WIGlzIGludmFsaWQgZm9yIHRoZSBjdXJyZW50IGJpdGdvIGVudmlyb25tZW50Jyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVuc3VwcG9ydGVkQ29pbkVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvaW46IHN0cmluZykge1xuICAgIHN1cGVyKFxuICAgICAgYENvaW4gb3IgdG9rZW4gdHlwZSAke2NvaW59IG5vdCBzdXBwb3J0ZWQgb3Igbm90IGNvbXBpbGVkLiBQbGVhc2UgYmUgc3VyZSB0aGF0IHlvdSBhcmUgdXNpbmcgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIEJpdEdvSlMuIElmIHVzaW5nIEBiaXRnby1iZXRhL3Nkay1hcGksIHBsZWFzZSBjb25maXJtIHlvdSBoYXZlIHJlZ2lzdGVyZWQgJHtjb2lufSBmaXJzdC5gXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2FmZU1wY0NlcmVtb255VW5zdXBwb3J0ZWRFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb2luRmFtaWx5OiBzdHJpbmcpIHtcbiAgICBzdXBlcihcbiAgICAgIGBDYW5ub3QgY3JlYXRlIFdhbGxldCBTYWZlIHJvb3Qga2V5cyBmb3IgY29pbiBmYW1pbHkgJyR7Y29pbkZhbWlseX0nOiBpdHMgVFNTIHNldHRpbmdzIHJlc29sdmUgdG8gdGhlIGxlZ2FjeSBNUEN2MSBjZXJlbW9ueSwgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBzYWZlIHJvb3QgdGFnZ2luZyAoc2FmZUlkKS4gRW5hYmxlIE1QQ3YyIGZvciAnJHtjb2luRmFtaWx5fScgYmVmb3JlIGNyZWF0aW5nIGEgc2FmZSB3aXRoIHRoaXMgcm9vdCB0eXBlLmBcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZGRyZXNzVHlwZUNoYWluTWlzbWF0Y2hFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIGNvbnN0cnVjdG9yKGFkZHJlc3NUeXBlOiBzdHJpbmcsIGNoYWluOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBzdXBlcihgYWRkcmVzcyB0eXBlICR7YWRkcmVzc1R5cGV9IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gY2hhaW4gJHtjaGFpbn1gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUDJzaFAyd3NoVW5zdXBwb3J0ZWRFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdwMnNoUDJ3c2ggbm90IHN1cHBvcnRlZCBieSB0aGlzIGNvaW4nKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUDJ3c2hVbnN1cHBvcnRlZEVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdwMndzaCBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgY29pbicpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQMnRyVW5zdXBwb3J0ZWRFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAncDJ0ciBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgY29pbicpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQMnRyTXVzaWcyVW5zdXBwb3J0ZWRFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAncDJ0ck11c2lnMiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgY29pbicpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVbnN1cHBvcnRlZEFkZHJlc3NUeXBlRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ2ludmFsaWQgYWRkcmVzcyB0eXBlJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRBZGRyZXNzRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ2ludmFsaWQgYWRkcmVzcycpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQWRkcmVzc1ZlcmlmaWNhdGlvbk9iamVjdFByb3BlcnR5RXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ2FkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ2FkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRBZGRyZXNzRGVyaXZhdGlvblByb3BlcnR5RXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ2FkZHJlc3MgY2hhaW4gYW5kL29yIGluZGV4IGFyZSBpbnZhbGlkJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFdhbGxldFJlY292ZXJ5VW5zdXBwb3J0ZWQgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ3dhbGxldCByZWNvdmVyeSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgY29pbicpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdtZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJsb2NrRXhwbG9yZXJVbmF2YWlsYWJsZSBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAndGhpcmQtcGFydHkgYmxvY2tleHBsb3JlciBub3QgcmVzcG9uZGluZycpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkTWVtb0lkRXJyb3IgZXh0ZW5kcyBJbnZhbGlkQWRkcmVzc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdpbnZhbGlkIG1lbW8gaWQnKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW52YWxpZFBheW1lbnRJZEVycm9yIGV4dGVuZHMgSW52YWxpZEFkZHJlc3NFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAnaW52YWxpZCBwYXltZW50IGlkJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEtleVJlY292ZXJ5U2VydmljZUVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdrZXkgcmVjb3Zlcnkgc2VydmljZSBlbmNvdW50ZXJlZCBhbiBlcnJvcicpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZGRyZXNzR2VuZXJhdGlvbkVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdhZGRyZXNzIGdlbmVyYXRpb24gZmFpbGVkJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV0aGVyZXVtTGlicmFyeVVuYXZhaWxhYmxlRXJyb3IgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFja2FnZU5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKGBFdGhlcmV1bSBsaWJyYXJ5IHJlcXVpcmVkIGZvciBvcGVyYXRpb24gaXMgbm90IGF2YWlsYWJsZS4gUGxlYXNlIGluc3RhbGwgXCIke3BhY2thZ2VOYW1lfVwiLmApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdGVsbGFyRmVkZXJhdGlvblVzZXJOb3RGb3VuZEVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdhY2NvdW50IG5vdCBmb3VuZCcpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvck5vSW5wdXRUb1JlY292ZXIgZXh0ZW5kcyBCaXRHb0pzRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ05vIGlucHV0IHRvIHJlY292ZXIgLSBhYm9ydGluZyEnKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW52YWxpZEtleVBhdGhFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihrZXlQYXRoOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgaW52YWxpZCBrZXlwYXRoOiAke2tleVBhdGh9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRUcmFuc2FjdGlvbkVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlIHx8ICdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pc3NpbmdFbmNyeXB0ZWRLZXljaGFpbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ05vIGVuY3J5cHRlZCBrZXljaGFpbnMgb24gdGhpcyB3YWxsZXQuJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluY29ycmVjdFBhc3N3b3JkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyBjb2RlID0gJ3dhbGxldF9wYXNzcGhyYXNlX2luY29ycmVjdCc7XG4gIHB1YmxpYyBzdGF0dXMgPSA0MDE7XG4gIHB1YmxpYyBjYXVzZT86IHVua25vd247XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcsIGNhdXNlPzogdW5rbm93bikge1xuICAgIHN1cGVyKG1lc3NhZ2UgfHwgJ3VuYWJsZSB0byBkZWNyeXB0IGtleWNoYWluIHdpdGggdGhlIGdpdmVuIHdhbGxldCBwYXNzcGhyYXNlJyk7XG4gICAgdGhpcy5uYW1lID0gJ0luY29ycmVjdFBhc3N3b3JkRXJyb3InO1xuICAgIHRoaXMuY2F1c2UgPSBjYXVzZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTmVlZFVzZXJTaWdudXBFcnJvciBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSB8fCAnVXNlciBzaWdudXAgaXMgcmVxdWlyZWQnKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXBpUmVzcG9uc2VFcnJvcjxSZXNwb25zZUJvZHlUeXBlID0gYW55PiBleHRlbmRzIEJpdEdvSnNFcnJvciB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgc3RhdHVzOiBudW1iZXI7XG4gIHJlc3VsdD86IFJlc3BvbnNlQm9keVR5cGU7XG4gIGludmFsaWRUb2tlbj86IGJvb2xlYW47XG4gIG5lZWRzT1RQPzogYm9vbGVhbjtcbiAgLy8gRWNob2VkIGJhY2sgdmlhIHRoZSBgUmVxdWVzdC1JRGAgcmVzcG9uc2UgaGVhZGVyIChzZWUgbG9nZ2luZy1leHByZXNzJ3MgYGJlZ2luTG9nZ2luZ2ApLFxuICAvLyBzbyBpdCBjYW4gYmUgdXNlZCB0byBjb3JyZWxhdGUgdGhpcyBlcnJvciB3aXRoIHRoZSBzZXJ2ZXItc2lkZSByZXF1ZXN0IGxvZ3MuXG4gIHJlcXVlc3RJZD86IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIHN0YXR1czogbnVtYmVyLFxuICAgIHJlc3VsdD86IFJlc3BvbnNlQm9keVR5cGUsXG4gICAgaW52YWxpZFRva2VuPzogYm9vbGVhbixcbiAgICBuZWVkc09UUD86IGJvb2xlYW4sXG4gICAgcmVxdWVzdElkPzogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XG4gICAgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG4gICAgdGhpcy5pbnZhbGlkVG9rZW4gPSBpbnZhbGlkVG9rZW47XG4gICAgdGhpcy5uZWVkc09UUCA9IG5lZWRzT1RQO1xuICAgIHRoaXMucmVxdWVzdElkID0gcmVxdWVzdElkO1xuICB9XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0b2tlbiBhcHByb3ZhbCBpbmZvcm1hdGlvbiB1c2VkIGluIHN1c3BpY2lvdXMgdHJhbnNhY3Rpb24gZGV0ZWN0aW9uXG4gKlxuICogQGludGVyZmFjZSBUb2tlbkFwcHJvdmFsXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3Rva2VuTmFtZV0gLSBPcHRpb25hbCBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoZSB0b2tlblxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRva2VuQWRkcmVzcyAtIFRoZSBjb250cmFjdCBhZGRyZXNzIG9mIHRoZSB0b2tlbiBiZWluZyBhcHByb3ZlZFxuICogQHByb3BlcnR5IHtPYmplY3R9IGF1dGhvcml6aW5nQW1vdW50IC0gVGhlIGFtb3VudCBiZWluZyBhdXRob3JpemVkIGZvciBzcGVuZGluZ1xuICogQHByb3BlcnR5IHtzdHJpbmd9IGF1dGhvcml6aW5nQWRkcmVzcyAtIFRoZSBhZGRyZXNzIGJlaW5nIGF1dGhvcml6ZWQgdG8gc3BlbmQgdGhlIHRva2Vuc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRva2VuQXBwcm92YWwge1xuICB0b2tlbk5hbWU/OiBzdHJpbmc7XG4gIHRva2VuQWRkcmVzczogc3RyaW5nO1xuICBhdXRob3JpemluZ0Ftb3VudDogeyB0eXBlOiAndW5saW1pdGVkJyB9IHwgeyB0eXBlOiAnbGltaXRlZCc7IGFtb3VudDogbnVtYmVyIH07XG4gIGF1dGhvcml6aW5nQWRkcmVzczogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgbWlzbWF0Y2hlZCByZWNpcGllbnQgaW5mb3JtYXRpb24gZGV0ZWN0ZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvblxuICpcbiAqIEBpbnRlcmZhY2UgTWlzbWF0Y2hlZFJlY2lwaWVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGFkZHJlc3MgLSBUaGUgcmVjaXBpZW50IGFkZHJlc3MgdGhhdCB3YXMgZm91bmQgaW4gdGhlIHRyYW5zYWN0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYW1vdW50IC0gVGhlIGFtb3VudCBiZWluZyBzZW50IHRvIHRoaXMgcmVjaXBpZW50XG4gKiBAcHJvcGVydHkge3N0cmluZyB8IFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXN9IFtkYXRhXSAtIE9wdGlvbmFsIHRyYW5zYWN0aW9uIGRhdGEgb3IgdG9rZW4gdHJhbnNmZXIgcGFyYW1ldGVyc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFt0b2tlbk5hbWVdIC0gT3B0aW9uYWwgbmFtZSBvZiB0aGUgdG9rZW4gYmVpbmcgdHJhbnNmZXJyZWRcbiAqIEBwcm9wZXJ0eSB7VG9rZW5UcmFuc2ZlclJlY2lwaWVudFBhcmFtc30gW3Rva2VuRGF0YV0gLSBPcHRpb25hbCBzdHJ1Y3R1cmVkIHRva2VuIHRyYW5zZmVyIGRhdGFcbiAqL1xuZXhwb3J0IHR5cGUgTWlzbWF0Y2hlZFJlY2lwaWVudCA9IE5vbk51bGxhYmxlPFNlbmRNYW55T3B0aW9uc1sncmVjaXBpZW50cyddPlswXTtcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGNvbnRyYWN0IGludGVyYWN0aW9uIGRhdGEgcGF5bG9hZCB1c2VkIGluIHN1c3BpY2lvdXMgdHJhbnNhY3Rpb24gZGV0ZWN0aW9uXG4gKlxuICogQGludGVyZmFjZSBDb250cmFjdERhdGFQYXlsb2FkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYWRkcmVzcyAtIFRoZSBjb250cmFjdCBhZGRyZXNzIGJlaW5nIGludGVyYWN0ZWQgd2l0aFxuICogQHByb3BlcnR5IHtzdHJpbmd9IHJhd0NvbnRyYWN0UGF5bG9hZCAtIFRoZSByYXcgY29udHJhY3QgcGF5bG9hZCBpbiBzZXJpYWxpemVkIGZvcm0gc3BlY2lmaWMgdG8gdGhlIGJsb2NrY2hhaW5cbiAqIEBwcm9wZXJ0eSB7dW5rbm93bn0gZGVjb2RlZENvbnRyYWN0UGF5bG9hZCAtIFRoZSBkZWNvZGVkIGNvbnRyYWN0IHBheWxvYWQsIHN0cnVjdHVyZSB2YXJpZXMgYnkgY29pbi9jaGFpbiBpbXBsZW1lbnRhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRyYWN0RGF0YVBheWxvYWQge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIC8vIFRoZSByYXcgY29udHJhY3QgcGF5bG9hZCBpbiBzZXJpYWxpemVkIGZvcm0gb2YgdGhlIGNoYWluXG4gIHJhd0NvbnRyYWN0UGF5bG9hZDogc3RyaW5nO1xuICAvLyBUbyBiZSBkZWZpbmVkIG9uIGEgcGVyLWNvaW4gYmFzaXNcbiAgZGVjb2RlZENvbnRyYWN0UGF5bG9hZDogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBCYXNlIGVycm9yIGNsYXNzIGZvciB0cmFuc2FjdGlvbiBpbnRlbnQgbWlzbWF0Y2ggZGV0ZWN0aW9uXG4gKlxuICogVGhpcyBlcnJvciBpcyB0aHJvd24gd2hlbiBhIHRyYW5zYWN0aW9uIGRvZXMgbm90IG1hdGNoIHRoZSB1c2VyJ3Mgb3JpZ2luYWwgaW50ZW50LFxuICogaW5kaWNhdGluZyBwb3RlbnRpYWwgc2VjdXJpdHkgaXNzdWVzIG9yIG1hbGljaW91cyBtb2RpZmljYXRpb25zLlxuICpcbiAqIEBjbGFzcyBUeEludGVudE1pc21hdGNoRXJyb3JcbiAqIEBleHRlbmRzIHtCaXRHb0pzRXJyb3J9XG4gKiBAcHJvcGVydHkge3N0cmluZyB8IElSZXF1ZXN0VHJhY2VyIHwgdW5kZWZpbmVkfSBpZCAtIFRyYW5zYWN0aW9uIElEIG9yIHJlcXVlc3QgdHJhY2VyIGZvciB0cmFja2luZ1xuICogQHByb3BlcnR5IHtUcmFuc2FjdGlvblBhcmFtc1tdfSB0eFBhcmFtcyAtIEFycmF5IG9mIHRyYW5zYWN0aW9uIHBhcmFtZXRlcnMgdGhhdCB3ZXJlIGFuYWx5emVkXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IHVuZGVmaW5lZH0gdHhIZXggLSBUaGUgcmF3IHRyYW5zYWN0aW9uIGluIGhleGFkZWNpbWFsIGZvcm1hdFxuICogQHByb3BlcnR5IHtzdHJpbmcgfCB1bmRlZmluZWR9IHR4RXhwbGFuYXRpb24gLSBTdHJpbmdpZmllZCB0cmFuc2FjdGlvbiBleHBsYW5hdGlvblxuICovXG5leHBvcnQgY2xhc3MgVHhJbnRlbnRNaXNtYXRjaEVycm9yIGV4dGVuZHMgQml0R29Kc0Vycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmcgfCBJUmVxdWVzdFRyYWNlciB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlYWRvbmx5IHR4UGFyYW1zOiBUcmFuc2FjdGlvblBhcmFtc1tdO1xuICBwdWJsaWMgcmVhZG9ubHkgdHhIZXg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIHJlYWRvbmx5IHR4RXhwbGFuYXRpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBUeEludGVudE1pc21hdGNoRXJyb3JcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgLSBFcnJvciBtZXNzYWdlIGRlc2NyaWJpbmcgdGhlIGludGVudCBtaXNtYXRjaFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IElSZXF1ZXN0VHJhY2VyIHwgdW5kZWZpbmVkfSBpZCAtIFRyYW5zYWN0aW9uIElEIG9yIHJlcXVlc3QgdHJhY2VyXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25QYXJhbXNbXX0gdHhQYXJhbXMgLSBUcmFuc2FjdGlvbiBwYXJhbWV0ZXJzIHRoYXQgd2VyZSBhbmFseXplZFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gdHhIZXggLSBSYXcgdHJhbnNhY3Rpb24gaGV4IHN0cmluZ1xuICAgKiBAcGFyYW0ge3Vua25vd259IHR4RXhwbGFuYXRpb24gLSBUcmFuc2FjdGlvbiBleHBsYW5hdGlvblxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgSVJlcXVlc3RUcmFjZXIgfCB1bmRlZmluZWQsXG4gICAgdHhQYXJhbXM6IFRyYW5zYWN0aW9uUGFyYW1zW10sXG4gICAgdHhIZXg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICB0eEV4cGxhbmF0aW9uPzogdW5rbm93blxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy50eFBhcmFtcyA9IHR4UGFyYW1zO1xuICAgIHRoaXMudHhIZXggPSB0eEhleDtcbiAgICB0aGlzLnR4RXhwbGFuYXRpb24gPSB0eEV4cGxhbmF0aW9uID8gVHhJbnRlbnRNaXNtYXRjaEVycm9yLnNhZmVTdHJpbmdpZnkodHhFeHBsYW5hdGlvbikgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogU2FmZWx5IHN0cmluZ2lmeSBhIHZhbHVlIHdpdGggQmlnSW50IHN1cHBvcnRcbiAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gc3RyaW5naWZ5XG4gICAqIEByZXR1cm5zIEpTT04gc3RyaW5nIHdpdGggQmlnSW50cyBjb252ZXJ0ZWQgdG8gc3RyaW5nc1xuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgc2FmZVN0cmluZ2lmeSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlLCAoXywgdikgPT4gKHR5cGVvZiB2ID09PSAnYmlnaW50JyA/IHYudG9TdHJpbmcoKSA6IHYpLCAyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gZ2V0IHRyYW5zYWN0aW9uIGV4cGxhbmF0aW9uIGZyb20gYSBjb2luJ3MgZXhwbGFpblRyYW5zYWN0aW9uIG1ldGhvZC5cbiAgICpcbiAgICogQHBhcmFtIGNvaW4gLSBDb2luIGluc3RhbmNlIGltcGxlbWVudGluZyBJQmFzZUNvaW5cbiAgICogQHBhcmFtIHR4UHJlYnVpbGQgLSBUcmFuc2FjdGlvbiBwcmVidWlsZCBjb250YWluaW5nIHR4SGV4IGFuZCB0eEluZm9cbiAgICogQHJldHVybnMgVHJhbnNhY3Rpb24gZXhwbGFuYXRpb24gb2JqZWN0IG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHRyeUdldFR4RXhwbGFuYXRpb24oXG4gICAgY29pbjogSUJhc2VDb2luLFxuICAgIHR4UHJlYnVpbGQ6IHsgdHhIZXg/OiBzdHJpbmc7IHR4SW5mbz86IHVua25vd24gfVxuICApOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBpZiAoIXR4UHJlYnVpbGQudHhIZXgpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBjb2luLmV4cGxhaW5UcmFuc2FjdGlvbih7XG4gICAgICAgIHR4SGV4OiB0eFByZWJ1aWxkLnR4SGV4LFxuICAgICAgICB0eEluZm86IHR4UHJlYnVpbGQudHhJbmZvLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3I6ICdGYWlsZWQgdG8gcGFyc2UgdHJhbnNhY3Rpb24gZXhwbGFuYXRpb24nLFxuICAgICAgICB0eEhleDogdHhQcmVidWlsZC50eEhleCxcbiAgICAgICAgZGV0YWlsczogZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBFcnJvciB0aHJvd24gd2hlbiB0cmFuc2FjdGlvbiByZWNpcGllbnRzIGRvbid0IG1hdGNoIHRoZSB1c2VyJ3MgaW50ZW50XG4gKlxuICogVGhpcyBlcnJvciBvY2N1cnMgd2hlbiB0aGUgdHJhbnNhY3Rpb24gY29udGFpbnMgcmVjaXBpZW50cyBvciBhbW91bnRzIHRoYXQgZGlmZmVyXG4gKiBmcm9tIHdoYXQgdGhlIHVzZXIgb3JpZ2luYWxseSBpbnRlbmRlZCB0byBzZW5kLlxuICpcbiAqIEBjbGFzcyBUeEludGVudE1pc21hdGNoUmVjaXBpZW50RXJyb3JcbiAqIEBleHRlbmRzIHtUeEludGVudE1pc21hdGNoRXJyb3J9XG4gKiBAcHJvcGVydHkge01pc21hdGNoZWRSZWNpcGllbnRbXX0gbWlzbWF0Y2hlZFJlY2lwaWVudHMgLSBBcnJheSBvZiByZWNpcGllbnRzIHRoYXQgZG9uJ3QgbWF0Y2ggdXNlciBpbnRlbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFR4SW50ZW50TWlzbWF0Y2hSZWNpcGllbnRFcnJvciBleHRlbmRzIFR4SW50ZW50TWlzbWF0Y2hFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBtaXNtYXRjaGVkUmVjaXBpZW50czogTWlzbWF0Y2hlZFJlY2lwaWVudFtdO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIFR4SW50ZW50TWlzbWF0Y2hSZWNpcGllbnRFcnJvclxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIEVycm9yIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUgcmVjaXBpZW50IGludGVudCBtaXNtYXRjaFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IElSZXF1ZXN0VHJhY2VyIHwgdW5kZWZpbmVkfSBpZCAtIFRyYW5zYWN0aW9uIElEIG9yIHJlcXVlc3QgdHJhY2VyXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25QYXJhbXNbXX0gdHhQYXJhbXMgLSBUcmFuc2FjdGlvbiBwYXJhbWV0ZXJzIHRoYXQgd2VyZSBhbmFseXplZFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gdHhIZXggLSBSYXcgdHJhbnNhY3Rpb24gaGV4IHN0cmluZ1xuICAgKiBAcGFyYW0ge01pc21hdGNoZWRSZWNpcGllbnRbXX0gbWlzbWF0Y2hlZFJlY2lwaWVudHMgLSBBcnJheSBvZiByZWNpcGllbnRzIHRoYXQgZG9uJ3QgbWF0Y2ggdXNlciBpbnRlbnRcbiAgICogQHBhcmFtIHt1bmtub3dufSB0eEV4cGxhbmF0aW9uIC0gVHJhbnNhY3Rpb24gZXhwbGFuYXRpb25cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IElSZXF1ZXN0VHJhY2VyIHwgdW5kZWZpbmVkLFxuICAgIHR4UGFyYW1zOiBUcmFuc2FjdGlvblBhcmFtc1tdLFxuICAgIHR4SGV4OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgbWlzbWF0Y2hlZFJlY2lwaWVudHM6IE1pc21hdGNoZWRSZWNpcGllbnRbXSxcbiAgICB0eEV4cGxhbmF0aW9uPzogdW5rbm93blxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlLCBpZCwgdHhQYXJhbXMsIHR4SGV4LCB0eEV4cGxhbmF0aW9uKTtcbiAgICB0aGlzLm1pc21hdGNoZWRSZWNpcGllbnRzID0gbWlzbWF0Y2hlZFJlY2lwaWVudHM7XG4gIH1cbn1cblxuLyoqXG4gKiBFcnJvciB0aHJvd24gd2hlbiBjb250cmFjdCBpbnRlcmFjdGlvbiBkb2Vzbid0IG1hdGNoIHRoZSB1c2VyJ3MgaW50ZW50XG4gKlxuICogVGhpcyBlcnJvciBvY2N1cnMgd2hlbiBhIHRyYW5zYWN0aW9uIGludGVyYWN0cyB3aXRoIGEgc21hcnQgY29udHJhY3QgYnV0IHRoZVxuICogY29udHJhY3QgY2FsbCBkYXRhIG9yIG1ldGhvZCBkb2Vzbid0IG1hdGNoIHdoYXQgdGhlIHVzZXIgaW50ZW5kZWQuXG4gKlxuICogQGNsYXNzIFR4SW50ZW50TWlzbWF0Y2hDb250cmFjdEVycm9yXG4gKiBAZXh0ZW5kcyB7VHhJbnRlbnRNaXNtYXRjaEVycm9yfVxuICogQHByb3BlcnR5IHtDb250cmFjdERhdGFQYXlsb2FkfSBtaXNtYXRjaGVkRGF0YVBheWxvYWQgLSBUaGUgY29udHJhY3QgaW50ZXJhY3Rpb24gZGF0YSB0aGF0IGRvZXNuJ3QgbWF0Y2ggdXNlciBpbnRlbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFR4SW50ZW50TWlzbWF0Y2hDb250cmFjdEVycm9yIGV4dGVuZHMgVHhJbnRlbnRNaXNtYXRjaEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IG1pc21hdGNoZWREYXRhUGF5bG9hZDogQ29udHJhY3REYXRhUGF5bG9hZDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBUeEludGVudE1pc21hdGNoQ29udHJhY3RFcnJvclxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIEVycm9yIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUgY29udHJhY3QgaW50ZW50IG1pc21hdGNoXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgSVJlcXVlc3RUcmFjZXIgfCB1bmRlZmluZWR9IGlkIC0gVHJhbnNhY3Rpb24gSUQgb3IgcmVxdWVzdCB0cmFjZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblBhcmFtc1tdfSB0eFBhcmFtcyAtIFRyYW5zYWN0aW9uIHBhcmFtZXRlcnMgdGhhdCB3ZXJlIGFuYWx5emVkXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSB0eEhleCAtIFJhdyB0cmFuc2FjdGlvbiBoZXggc3RyaW5nXG4gICAqIEBwYXJhbSB7Q29udHJhY3REYXRhUGF5bG9hZH0gbWlzbWF0Y2hlZERhdGFQYXlsb2FkIC0gVGhlIGNvbnRyYWN0IGludGVyYWN0aW9uIGRhdGEgdGhhdCBkb2Vzbid0IG1hdGNoIHVzZXIgaW50ZW50XG4gICAqIEBwYXJhbSB7dW5rbm93bn0gdHhFeHBsYW5hdGlvbiAtIFRyYW5zYWN0aW9uIGV4cGxhbmF0aW9uXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBJUmVxdWVzdFRyYWNlciB8IHVuZGVmaW5lZCxcbiAgICB0eFBhcmFtczogVHJhbnNhY3Rpb25QYXJhbXNbXSxcbiAgICB0eEhleDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG1pc21hdGNoZWREYXRhUGF5bG9hZDogQ29udHJhY3REYXRhUGF5bG9hZCxcbiAgICB0eEV4cGxhbmF0aW9uPzogdW5rbm93blxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlLCBpZCwgdHhQYXJhbXMsIHR4SGV4LCB0eEV4cGxhbmF0aW9uKTtcbiAgICB0aGlzLm1pc21hdGNoZWREYXRhUGF5bG9hZCA9IG1pc21hdGNoZWREYXRhUGF5bG9hZDtcbiAgfVxufVxuXG4vKipcbiAqIEVycm9yIHRocm93biB3aGVuIHRva2VuIGFwcHJvdmFsIGRvZXNuJ3QgbWF0Y2ggdGhlIHVzZXIncyBpbnRlbnRcbiAqXG4gKiBUaGlzIGVycm9yIG9jY3VycyB3aGVuIGEgdHJhbnNhY3Rpb24gY29udGFpbnMgYSB0b2tlbiBhcHByb3ZhbCB0aGF0IHRoZSB1c2VyXG4gKiBkaWQgbm90IGludGVuZCB0byBhdXRob3JpemUsIHBvdGVudGlhbGx5IGluZGljYXRpbmcgbWFsaWNpb3VzIGFjdGl2aXR5LlxuICpcbiAqIEBjbGFzcyBUeEludGVudE1pc21hdGNoQXBwcm92YWxFcnJvclxuICogQGV4dGVuZHMge1R4SW50ZW50TWlzbWF0Y2hFcnJvcn1cbiAqIEBwcm9wZXJ0eSB7VG9rZW5BcHByb3ZhbH0gdG9rZW5BcHByb3ZhbCAtIERldGFpbHMgb2YgdGhlIHRva2VuIGFwcHJvdmFsIHRoYXQgZG9lc24ndCBtYXRjaCB1c2VyIGludGVudFxuICovXG5leHBvcnQgY2xhc3MgVHhJbnRlbnRNaXNtYXRjaEFwcHJvdmFsRXJyb3IgZXh0ZW5kcyBUeEludGVudE1pc21hdGNoRXJyb3Ige1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5BcHByb3ZhbDogVG9rZW5BcHByb3ZhbDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBUeEludGVudE1pc21hdGNoQXBwcm92YWxFcnJvclxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIEVycm9yIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUgYXBwcm92YWwgaW50ZW50IG1pc21hdGNoXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgSVJlcXVlc3RUcmFjZXIgfCB1bmRlZmluZWR9IGlkIC0gVHJhbnNhY3Rpb24gSUQgb3IgcmVxdWVzdCB0cmFjZXJcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblBhcmFtc1tdfSB0eFBhcmFtcyAtIFRyYW5zYWN0aW9uIHBhcmFtZXRlcnMgdGhhdCB3ZXJlIGFuYWx5emVkXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSB0eEhleCAtIFJhdyB0cmFuc2FjdGlvbiBoZXggc3RyaW5nXG4gICAqIEBwYXJhbSB7VG9rZW5BcHByb3ZhbH0gdG9rZW5BcHByb3ZhbCAtIERldGFpbHMgb2YgdGhlIHRva2VuIGFwcHJvdmFsIHRoYXQgZG9lc24ndCBtYXRjaCB1c2VyIGludGVudFxuICAgKiBAcGFyYW0ge3Vua25vd259IHR4RXhwbGFuYXRpb24gLSBUcmFuc2FjdGlvbiBleHBsYW5hdGlvblxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgSVJlcXVlc3RUcmFjZXIgfCB1bmRlZmluZWQsXG4gICAgdHhQYXJhbXM6IFRyYW5zYWN0aW9uUGFyYW1zW10sXG4gICAgdHhIZXg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICB0b2tlbkFwcHJvdmFsOiBUb2tlbkFwcHJvdmFsLFxuICAgIHR4RXhwbGFuYXRpb24/OiB1bmtub3duXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UsIGlkLCB0eFBhcmFtcywgdHhIZXgsIHR4RXhwbGFuYXRpb24pO1xuICAgIHRoaXMudG9rZW5BcHByb3ZhbCA9IHRva2VuQXBwcm92YWw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { BitGoBase } from '../bitgoBase';
2
+ import { IBaseCoin } from '../baseCoin';
3
+ import { WalletWithKeychains } from '../wallet/iWallets';
4
+ /**
5
+ * Interface for EVM keyring wallet creation parameters
6
+ */
7
+ export interface CreateEvmKeyRingWalletParams {
8
+ label: string;
9
+ evmKeyRingReferenceWalletId: string;
10
+ bitgo: BitGoBase;
11
+ baseCoin: IBaseCoin;
12
+ }
13
+ /**
14
+ * @param params - The wallet creation parameters
15
+ * @param baseCoin - The base coin instance
16
+ * @throws Error if validation fails
17
+ * @returns boolean - true if validation passes
18
+ */
19
+ export declare function validateEvmKeyRingWalletParams(params: any, baseCoin: IBaseCoin): boolean;
20
+ /**
21
+ * Creates an EVM keyring wallet with shared keys from a reference wallet
22
+ * @param params - The parameters for creating the EVM keyring wallet
23
+ * @returns Promise<WalletWithKeychains> - The created wallet with its keychains
24
+ */
25
+ export declare function createEvmKeyRingWallet(params: CreateEvmKeyRingWalletParams): Promise<WalletWithKeychains>;
26
+ //# sourceMappingURL=evmUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evmUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/evm/evmUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B,EAAE,MAAM,CAAC;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,GAAG,OAAO,CAUxF;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyB/G"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateEvmKeyRingWalletParams = validateEvmKeyRingWalletParams;
4
+ exports.createEvmKeyRingWallet = createEvmKeyRingWallet;
5
+ const wallet_1 = require("../wallet");
6
+ const keychain_1 = require("../keychain");
7
+ /**
8
+ * @param params - The wallet creation parameters
9
+ * @param baseCoin - The base coin instance
10
+ * @throws Error if validation fails
11
+ * @returns boolean - true if validation passes
12
+ */
13
+ function validateEvmKeyRingWalletParams(params, baseCoin) {
14
+ if (!params.evmKeyRingReferenceWalletId)
15
+ return false;
16
+ if (typeof params.evmKeyRingReferenceWalletId !== 'string') {
17
+ throw new Error('invalid evmKeyRingReferenceWalletId argument, expecting string');
18
+ }
19
+ if (!baseCoin.isEVM()) {
20
+ throw new Error('evmKeyRingReferenceWalletId is only supported for EVM chains');
21
+ }
22
+ return true;
23
+ }
24
+ /**
25
+ * Creates an EVM keyring wallet with shared keys from a reference wallet
26
+ * @param params - The parameters for creating the EVM keyring wallet
27
+ * @returns Promise<WalletWithKeychains> - The created wallet with its keychains
28
+ */
29
+ async function createEvmKeyRingWallet(params) {
30
+ const { label, evmKeyRingReferenceWalletId, bitgo, baseCoin } = params;
31
+ // For EVM keyring wallets, this bypasses the normal key generation process since keys are shared via keyring
32
+ const addWalletParams = {
33
+ label,
34
+ evmKeyRingReferenceWalletId,
35
+ };
36
+ const newWallet = await bitgo.post(baseCoin.url('/wallet/add')).send(addWalletParams).result();
37
+ const userKeychain = baseCoin.keychains().get({ id: newWallet.keys[keychain_1.KeyIndices.USER] });
38
+ const backupKeychain = baseCoin.keychains().get({ id: newWallet.keys[keychain_1.KeyIndices.BACKUP] });
39
+ const bitgoKeychain = baseCoin.keychains().get({ id: newWallet.keys[keychain_1.KeyIndices.BITGO] });
40
+ const [userKey, backupKey, bitgoKey] = await Promise.all([userKeychain, backupKeychain, bitgoKeychain]);
41
+ const result = {
42
+ wallet: new wallet_1.Wallet(bitgo, baseCoin, newWallet),
43
+ userKeychain: userKey,
44
+ backupKeychain: backupKey,
45
+ bitgoKeychain: bitgoKey,
46
+ responseType: 'WalletWithKeychains',
47
+ };
48
+ return result;
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZtVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vZXZtL2V2bVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBdUJBLHdFQVVDO0FBT0Qsd0RBeUJDO0FBOURELHNDQUFtQztBQUNuQywwQ0FBeUM7QUFhekM7Ozs7O0dBS0c7QUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxNQUFXLEVBQUUsUUFBbUI7SUFDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQywyQkFBMkI7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUV0RCxJQUFJLE9BQU8sTUFBTSxDQUFDLDJCQUEyQixLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztJQUNsRixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxNQUFvQztJQUMvRSxNQUFNLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDdkUsNkdBQTZHO0lBQzdHLE1BQU0sZUFBZSxHQUFHO1FBQ3RCLEtBQUs7UUFDTCwyQkFBMkI7S0FDNUIsQ0FBQztJQUVGLE1BQU0sU0FBUyxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRS9GLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxxQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0YsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXpGLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUV4RyxNQUFNLE1BQU0sR0FBd0I7UUFDbEMsTUFBTSxFQUFFLElBQUksZUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDO1FBQzlDLFlBQVksRUFBRSxPQUFPO1FBQ3JCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLGFBQWEsRUFBRSxRQUFRO1FBQ3ZCLFlBQVksRUFBRSxxQkFBcUI7S0FDcEMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSUJhc2VDb2luIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuXG5pbXBvcnQgeyBXYWxsZXQgfSBmcm9tICcuLi93YWxsZXQnO1xuaW1wb3J0IHsgS2V5SW5kaWNlcyB9IGZyb20gJy4uL2tleWNoYWluJztcbmltcG9ydCB7IFdhbGxldFdpdGhLZXljaGFpbnMgfSBmcm9tICcuLi93YWxsZXQvaVdhbGxldHMnO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgRVZNIGtleXJpbmcgd2FsbGV0IGNyZWF0aW9uIHBhcmFtZXRlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVFdm1LZXlSaW5nV2FsbGV0UGFyYW1zIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgZXZtS2V5UmluZ1JlZmVyZW5jZVdhbGxldElkOiBzdHJpbmc7XG4gIGJpdGdvOiBCaXRHb0Jhc2U7XG4gIGJhc2VDb2luOiBJQmFzZUNvaW47XG59XG5cbi8qKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB3YWxsZXQgY3JlYXRpb24gcGFyYW1ldGVyc1xuICogQHBhcmFtIGJhc2VDb2luIC0gVGhlIGJhc2UgY29pbiBpbnN0YW5jZVxuICogQHRocm93cyBFcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gKiBAcmV0dXJucyBib29sZWFuIC0gdHJ1ZSBpZiB2YWxpZGF0aW9uIHBhc3Nlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVFdm1LZXlSaW5nV2FsbGV0UGFyYW1zKHBhcmFtczogYW55LCBiYXNlQ29pbjogSUJhc2VDb2luKTogYm9vbGVhbiB7XG4gIGlmICghcGFyYW1zLmV2bUtleVJpbmdSZWZlcmVuY2VXYWxsZXRJZCkgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgcGFyYW1zLmV2bUtleVJpbmdSZWZlcmVuY2VXYWxsZXRJZCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgZXZtS2V5UmluZ1JlZmVyZW5jZVdhbGxldElkIGFyZ3VtZW50LCBleHBlY3Rpbmcgc3RyaW5nJyk7XG4gIH1cbiAgaWYgKCFiYXNlQ29pbi5pc0VWTSgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdldm1LZXlSaW5nUmVmZXJlbmNlV2FsbGV0SWQgaXMgb25seSBzdXBwb3J0ZWQgZm9yIEVWTSBjaGFpbnMnKTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIEVWTSBrZXlyaW5nIHdhbGxldCB3aXRoIHNoYXJlZCBrZXlzIGZyb20gYSByZWZlcmVuY2Ugd2FsbGV0XG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGNyZWF0aW5nIHRoZSBFVk0ga2V5cmluZyB3YWxsZXRcbiAqIEByZXR1cm5zIFByb21pc2U8V2FsbGV0V2l0aEtleWNoYWlucz4gLSBUaGUgY3JlYXRlZCB3YWxsZXQgd2l0aCBpdHMga2V5Y2hhaW5zXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVFdm1LZXlSaW5nV2FsbGV0KHBhcmFtczogQ3JlYXRlRXZtS2V5UmluZ1dhbGxldFBhcmFtcyk6IFByb21pc2U8V2FsbGV0V2l0aEtleWNoYWlucz4ge1xuICBjb25zdCB7IGxhYmVsLCBldm1LZXlSaW5nUmVmZXJlbmNlV2FsbGV0SWQsIGJpdGdvLCBiYXNlQ29pbiB9ID0gcGFyYW1zO1xuICAvLyBGb3IgRVZNIGtleXJpbmcgd2FsbGV0cywgdGhpcyBieXBhc3NlcyB0aGUgbm9ybWFsIGtleSBnZW5lcmF0aW9uIHByb2Nlc3Mgc2luY2Uga2V5cyBhcmUgc2hhcmVkIHZpYSBrZXlyaW5nXG4gIGNvbnN0IGFkZFdhbGxldFBhcmFtcyA9IHtcbiAgICBsYWJlbCxcbiAgICBldm1LZXlSaW5nUmVmZXJlbmNlV2FsbGV0SWQsXG4gIH07XG5cbiAgY29uc3QgbmV3V2FsbGV0ID0gYXdhaXQgYml0Z28ucG9zdChiYXNlQ29pbi51cmwoJy93YWxsZXQvYWRkJykpLnNlbmQoYWRkV2FsbGV0UGFyYW1zKS5yZXN1bHQoKTtcblxuICBjb25zdCB1c2VyS2V5Y2hhaW4gPSBiYXNlQ29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogbmV3V2FsbGV0LmtleXNbS2V5SW5kaWNlcy5VU0VSXSB9KTtcbiAgY29uc3QgYmFja3VwS2V5Y2hhaW4gPSBiYXNlQ29pbi5rZXljaGFpbnMoKS5nZXQoeyBpZDogbmV3V2FsbGV0LmtleXNbS2V5SW5kaWNlcy5CQUNLVVBdIH0pO1xuICBjb25zdCBiaXRnb0tleWNoYWluID0gYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IG5ld1dhbGxldC5rZXlzW0tleUluZGljZXMuQklUR09dIH0pO1xuXG4gIGNvbnN0IFt1c2VyS2V5LCBiYWNrdXBLZXksIGJpdGdvS2V5XSA9IGF3YWl0IFByb21pc2UuYWxsKFt1c2VyS2V5Y2hhaW4sIGJhY2t1cEtleWNoYWluLCBiaXRnb0tleWNoYWluXSk7XG5cbiAgY29uc3QgcmVzdWx0OiBXYWxsZXRXaXRoS2V5Y2hhaW5zID0ge1xuICAgIHdhbGxldDogbmV3IFdhbGxldChiaXRnbywgYmFzZUNvaW4sIG5ld1dhbGxldCksXG4gICAgdXNlcktleWNoYWluOiB1c2VyS2V5LFxuICAgIGJhY2t1cEtleWNoYWluOiBiYWNrdXBLZXksXG4gICAgYml0Z29LZXljaGFpbjogYml0Z29LZXksXG4gICAgcmVzcG9uc2VUeXBlOiAnV2FsbGV0V2l0aEtleWNoYWlucycsXG4gIH07XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==