@bitgo/sdk-core 1.0.2-rc.0 → 1.1.0-dev.0

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 (363) hide show
  1. package/dist/src/account-lib/baseCoin/baseKeyPair.d.ts +27 -0
  2. package/dist/src/account-lib/baseCoin/baseKeyPair.d.ts.map +1 -0
  3. package/dist/src/account-lib/baseCoin/baseKeyPair.js +3 -0
  4. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts +71 -0
  5. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts.map +1 -0
  6. package/dist/src/account-lib/baseCoin/baseTransaction.js +69 -0
  7. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts +128 -0
  8. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts.map +1 -0
  9. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.js +138 -0
  10. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.d.ts +29 -0
  11. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.d.ts.map +1 -0
  12. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.js +19 -0
  13. package/dist/src/account-lib/baseCoin/baseUtils.d.ts +45 -0
  14. package/dist/src/account-lib/baseCoin/baseUtils.d.ts.map +1 -0
  15. package/dist/src/account-lib/baseCoin/baseUtils.js +3 -0
  16. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +75 -0
  17. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +1 -0
  18. package/dist/src/account-lib/baseCoin/blsKeyPair.js +179 -0
  19. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +50 -0
  20. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -0
  21. package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +145 -0
  22. package/dist/src/account-lib/baseCoin/enum.d.ts +45 -0
  23. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -0
  24. package/dist/src/account-lib/baseCoin/enum.js +74 -0
  25. package/dist/src/account-lib/baseCoin/errors.d.ts +59 -0
  26. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -0
  27. package/dist/src/account-lib/baseCoin/errors.js +105 -0
  28. package/dist/src/account-lib/baseCoin/iface.d.ts +155 -0
  29. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -0
  30. package/dist/src/account-lib/baseCoin/iface.js +38 -0
  31. package/dist/src/account-lib/baseCoin/index.d.ts +12 -0
  32. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -0
  33. package/dist/src/account-lib/baseCoin/index.js +31 -0
  34. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts +55 -0
  35. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +1 -0
  36. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +124 -0
  37. package/dist/src/account-lib/index.d.ts +5 -0
  38. package/dist/src/account-lib/index.d.ts.map +1 -0
  39. package/dist/src/account-lib/index.js +17 -0
  40. package/dist/src/account-lib/mpc/curves/baseCurve.d.ts +19 -0
  41. package/dist/src/account-lib/mpc/curves/baseCurve.d.ts.map +1 -0
  42. package/dist/src/account-lib/mpc/curves/baseCurve.js +6 -0
  43. package/dist/src/account-lib/mpc/curves/ed25519.d.ts +17 -0
  44. package/dist/src/account-lib/mpc/curves/ed25519.d.ts.map +1 -0
  45. package/dist/src/account-lib/mpc/curves/ed25519.js +57 -0
  46. package/dist/src/account-lib/mpc/curves/index.d.ts +6 -0
  47. package/dist/src/account-lib/mpc/curves/index.d.ts.map +1 -0
  48. package/dist/src/account-lib/mpc/curves/index.js +8 -0
  49. package/dist/src/account-lib/mpc/curves/secp256k1.d.ts +17 -0
  50. package/dist/src/account-lib/mpc/curves/secp256k1.d.ts.map +1 -0
  51. package/dist/src/account-lib/mpc/curves/secp256k1.js +70 -0
  52. package/dist/src/account-lib/mpc/hdTree.d.ts +24 -0
  53. package/dist/src/account-lib/mpc/hdTree.d.ts.map +1 -0
  54. package/dist/src/account-lib/mpc/hdTree.js +94 -0
  55. package/dist/src/account-lib/mpc/index.d.ts +8 -0
  56. package/dist/src/account-lib/mpc/index.d.ts.map +1 -0
  57. package/dist/src/account-lib/mpc/index.js +23 -0
  58. package/dist/src/account-lib/mpc/shamir.d.ts +26 -0
  59. package/dist/src/account-lib/mpc/shamir.d.ts.map +1 -0
  60. package/dist/src/account-lib/mpc/shamir.js +86 -0
  61. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +25 -0
  62. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -0
  63. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +121 -0
  64. package/dist/src/account-lib/mpc/tss/ecdsa/index.d.ts +4 -0
  65. package/dist/src/account-lib/mpc/tss/ecdsa/index.d.ts.map +1 -0
  66. package/dist/src/account-lib/mpc/tss/ecdsa/index.js +29 -0
  67. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +40 -0
  68. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -0
  69. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +3 -0
  70. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +29 -0
  71. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -0
  72. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +276 -0
  73. package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts +4 -0
  74. package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts.map +1 -0
  75. package/dist/src/account-lib/mpc/tss/eddsa/index.js +30 -0
  76. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +70 -0
  77. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -0
  78. package/dist/src/account-lib/mpc/tss/eddsa/types.js +3 -0
  79. package/dist/src/account-lib/mpc/tss/index.d.ts +6 -0
  80. package/dist/src/account-lib/mpc/tss/index.d.ts.map +1 -0
  81. package/dist/src/account-lib/mpc/tss/index.js +35 -0
  82. package/dist/src/account-lib/mpc/util.d.ts +8 -0
  83. package/dist/src/account-lib/mpc/util.d.ts.map +1 -0
  84. package/dist/src/account-lib/mpc/util.js +42 -0
  85. package/dist/src/account-lib/util/crypto.d.ts +106 -0
  86. package/dist/src/account-lib/util/crypto.d.ts.map +1 -0
  87. package/dist/src/account-lib/util/crypto.js +269 -0
  88. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +49 -0
  89. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +1 -0
  90. package/dist/src/account-lib/util/ed25519KeyDeriver.js +87 -0
  91. package/dist/src/api/bip32path.d.ts +24 -0
  92. package/dist/src/api/bip32path.d.ts.map +1 -0
  93. package/dist/src/api/bip32path.js +45 -0
  94. package/dist/src/api/index.d.ts +3 -0
  95. package/dist/src/api/index.d.ts.map +1 -0
  96. package/dist/src/{v2 → api}/index.js +2 -2
  97. package/dist/src/api/types.d.ts +20 -0
  98. package/dist/src/api/types.d.ts.map +1 -0
  99. package/dist/src/api/types.js +3 -0
  100. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +230 -0
  101. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -0
  102. package/dist/src/bitgo/baseCoin/baseCoin.js +292 -0
  103. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +257 -0
  104. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -0
  105. package/dist/src/bitgo/baseCoin/iBaseCoin.js +3 -0
  106. package/dist/src/bitgo/baseCoin/index.d.ts +3 -0
  107. package/dist/src/bitgo/baseCoin/index.d.ts.map +1 -0
  108. package/dist/src/bitgo/baseCoin/index.js +15 -0
  109. package/dist/src/bitgo/bip32util.d.ts +17 -0
  110. package/dist/src/bitgo/bip32util.d.ts.map +1 -0
  111. package/dist/src/bitgo/bip32util.js +59 -0
  112. package/dist/src/bitgo/bitcoin.d.ts +16 -0
  113. package/dist/src/bitgo/bitcoin.d.ts.map +1 -0
  114. package/dist/src/bitgo/bitcoin.js +52 -0
  115. package/dist/src/bitgo/bitgoBase.d.ts +22 -0
  116. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -0
  117. package/dist/src/bitgo/bitgoBase.js +3 -0
  118. package/dist/src/bitgo/coinFactory.d.ts +31 -0
  119. package/dist/src/bitgo/coinFactory.d.ts.map +1 -0
  120. package/dist/src/bitgo/coinFactory.js +59 -0
  121. package/dist/src/bitgo/config.d.ts +8 -0
  122. package/dist/src/bitgo/config.d.ts.map +1 -0
  123. package/dist/src/bitgo/config.js +25 -0
  124. package/dist/src/bitgo/ecdh.d.ts +24 -0
  125. package/dist/src/bitgo/ecdh.d.ts.map +1 -0
  126. package/dist/src/bitgo/ecdh.js +80 -0
  127. package/dist/src/bitgo/enterprise/enterprise.d.ts +64 -0
  128. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -0
  129. package/dist/src/bitgo/enterprise/enterprise.js +120 -0
  130. package/dist/src/bitgo/enterprise/enterprises.d.ts +25 -0
  131. package/dist/src/bitgo/enterprise/enterprises.d.ts.map +1 -0
  132. package/dist/src/bitgo/enterprise/enterprises.js +70 -0
  133. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +15 -0
  134. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -0
  135. package/dist/src/bitgo/enterprise/iEnterprise.js +3 -0
  136. package/dist/src/bitgo/enterprise/iEnterprises.d.ts +10 -0
  137. package/dist/src/bitgo/enterprise/iEnterprises.d.ts.map +1 -0
  138. package/dist/src/bitgo/enterprise/iEnterprises.js +3 -0
  139. package/dist/src/bitgo/enterprise/index.d.ts +5 -0
  140. package/dist/src/bitgo/enterprise/index.d.ts.map +1 -0
  141. package/dist/src/bitgo/enterprise/index.js +17 -0
  142. package/dist/src/{v2 → bitgo}/environments.d.ts +0 -0
  143. package/dist/src/bitgo/environments.d.ts.map +1 -0
  144. package/dist/src/bitgo/environments.js +142 -0
  145. package/dist/src/bitgo/errors.d.ts +83 -0
  146. package/dist/src/bitgo/errors.d.ts.map +1 -0
  147. package/dist/src/bitgo/errors.js +163 -0
  148. package/dist/src/bitgo/index.d.ts +26 -0
  149. package/dist/src/bitgo/index.d.ts.map +1 -0
  150. package/dist/src/bitgo/index.js +51 -0
  151. package/dist/src/bitgo/internal/index.d.ts +3 -0
  152. package/dist/src/bitgo/internal/index.d.ts.map +1 -0
  153. package/dist/src/bitgo/internal/index.js +15 -0
  154. package/dist/src/bitgo/internal/internal.d.ts +19 -0
  155. package/dist/src/bitgo/internal/internal.d.ts.map +1 -0
  156. package/dist/src/bitgo/internal/internal.js +33 -0
  157. package/dist/src/bitgo/internal/keycard.d.ts +33 -0
  158. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -0
  159. package/dist/src/bitgo/internal/keycard.js +304 -0
  160. package/dist/src/bitgo/keychain/iKeychains.d.ts +118 -0
  161. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -0
  162. package/dist/src/bitgo/keychain/iKeychains.js +10 -0
  163. package/dist/src/bitgo/keychain/index.d.ts +3 -0
  164. package/dist/src/bitgo/keychain/index.d.ts.map +1 -0
  165. package/dist/src/bitgo/keychain/index.js +15 -0
  166. package/dist/src/bitgo/keychain/keychains.d.ts +90 -0
  167. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -0
  168. package/dist/src/bitgo/keychain/keychains.js +280 -0
  169. package/dist/src/bitgo/market/iMarkets.d.ts +12 -0
  170. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -0
  171. package/dist/src/bitgo/market/iMarkets.js +3 -0
  172. package/dist/src/bitgo/market/index.d.ts +3 -0
  173. package/dist/src/bitgo/market/index.d.ts.map +1 -0
  174. package/dist/src/bitgo/market/index.js +15 -0
  175. package/dist/src/bitgo/market/markets.d.ts +29 -0
  176. package/dist/src/bitgo/market/markets.d.ts.map +1 -0
  177. package/dist/src/bitgo/market/markets.js +70 -0
  178. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +73 -0
  179. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -0
  180. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +28 -0
  181. package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts +16 -0
  182. package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts.map +1 -0
  183. package/dist/src/bitgo/pendingApproval/iPendingApprovals.js +3 -0
  184. package/dist/src/bitgo/pendingApproval/index.d.ts +5 -0
  185. package/dist/src/bitgo/pendingApproval/index.d.ts.map +1 -0
  186. package/dist/src/bitgo/pendingApproval/index.js +17 -0
  187. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +99 -0
  188. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -0
  189. package/dist/src/bitgo/pendingApproval/pendingApproval.js +319 -0
  190. package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts +19 -0
  191. package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts.map +1 -0
  192. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +76 -0
  193. package/dist/src/bitgo/recovery/index.d.ts +2 -0
  194. package/dist/src/bitgo/recovery/index.d.ts.map +1 -0
  195. package/dist/src/bitgo/recovery/index.js +14 -0
  196. package/dist/src/bitgo/recovery/initiate.d.ts +49 -0
  197. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -0
  198. package/dist/src/bitgo/recovery/initiate.js +119 -0
  199. package/dist/src/bitgo/trading/affirmation.d.ts +35 -0
  200. package/dist/src/bitgo/trading/affirmation.d.ts.map +1 -0
  201. package/dist/src/bitgo/trading/affirmation.js +53 -0
  202. package/dist/src/bitgo/trading/affirmations.d.ts +23 -0
  203. package/dist/src/bitgo/trading/affirmations.d.ts.map +1 -0
  204. package/dist/src/bitgo/trading/affirmations.js +45 -0
  205. package/dist/src/bitgo/trading/iAffirmation.d.ts +15 -0
  206. package/dist/src/bitgo/trading/iAffirmation.d.ts.map +1 -0
  207. package/dist/src/bitgo/trading/iAffirmation.js +13 -0
  208. package/dist/src/bitgo/trading/iAffirmations.d.ts +10 -0
  209. package/dist/src/bitgo/trading/iAffirmations.d.ts.map +1 -0
  210. package/dist/src/bitgo/trading/iAffirmations.js +3 -0
  211. package/dist/src/bitgo/trading/iSettlement.d.ts +25 -0
  212. package/dist/src/bitgo/trading/iSettlement.d.ts.map +1 -0
  213. package/dist/src/bitgo/trading/iSettlement.js +17 -0
  214. package/dist/src/bitgo/trading/iSettlements.d.ts +19 -0
  215. package/dist/src/bitgo/trading/iSettlements.d.ts.map +1 -0
  216. package/dist/src/bitgo/trading/iSettlements.js +3 -0
  217. package/dist/src/bitgo/trading/iTradingAccount.d.ts +41 -0
  218. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -0
  219. package/dist/src/bitgo/trading/iTradingAccount.js +3 -0
  220. package/dist/src/bitgo/trading/iTradingPartner.d.ts +14 -0
  221. package/dist/src/bitgo/trading/iTradingPartner.d.ts.map +1 -0
  222. package/dist/src/bitgo/trading/iTradingPartner.js +17 -0
  223. package/dist/src/bitgo/trading/iTradingPartners.d.ts +15 -0
  224. package/dist/src/bitgo/trading/iTradingPartners.d.ts.map +1 -0
  225. package/dist/src/bitgo/trading/iTradingPartners.js +9 -0
  226. package/dist/src/bitgo/trading/index.d.ts +18 -0
  227. package/dist/src/bitgo/trading/index.d.ts.map +1 -0
  228. package/dist/src/bitgo/trading/index.js +30 -0
  229. package/dist/src/bitgo/trading/lock.d.ts +16 -0
  230. package/dist/src/bitgo/trading/lock.d.ts.map +1 -0
  231. package/dist/src/bitgo/trading/lock.js +12 -0
  232. package/dist/src/bitgo/trading/payload.d.ts +22 -0
  233. package/dist/src/bitgo/trading/payload.d.ts.map +1 -0
  234. package/dist/src/bitgo/trading/payload.js +3 -0
  235. package/dist/src/bitgo/trading/settlement.d.ts +16 -0
  236. package/dist/src/bitgo/trading/settlement.d.ts.map +1 -0
  237. package/dist/src/bitgo/trading/settlement.js +21 -0
  238. package/dist/src/bitgo/trading/settlements.d.ts +32 -0
  239. package/dist/src/bitgo/trading/settlements.d.ts.map +1 -0
  240. package/dist/src/bitgo/trading/settlements.js +61 -0
  241. package/dist/src/bitgo/trading/trade.d.ts +29 -0
  242. package/dist/src/bitgo/trading/trade.d.ts.map +1 -0
  243. package/dist/src/bitgo/trading/trade.js +11 -0
  244. package/dist/src/bitgo/trading/tradingAccount.d.ts +53 -0
  245. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -0
  246. package/dist/src/bitgo/trading/tradingAccount.js +127 -0
  247. package/dist/src/bitgo/trading/tradingPartner.d.ts +26 -0
  248. package/dist/src/bitgo/trading/tradingPartner.d.ts.map +1 -0
  249. package/dist/src/bitgo/trading/tradingPartner.js +31 -0
  250. package/dist/src/bitgo/trading/tradingPartners.d.ts +24 -0
  251. package/dist/src/bitgo/trading/tradingPartners.d.ts.map +1 -0
  252. package/dist/src/bitgo/trading/tradingPartners.js +32 -0
  253. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +35 -0
  254. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -0
  255. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +95 -0
  256. package/dist/src/bitgo/tss/ecdsa/index.d.ts +4 -0
  257. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -0
  258. package/dist/src/bitgo/tss/ecdsa/index.js +26 -0
  259. package/dist/src/bitgo/tss/ecdsa/types.d.ts +30 -0
  260. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -0
  261. package/dist/src/bitgo/tss/ecdsa/types.js +3 -0
  262. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +102 -0
  263. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -0
  264. package/dist/src/bitgo/tss/eddsa/eddsa.js +256 -0
  265. package/dist/src/bitgo/tss/eddsa/index.d.ts +6 -0
  266. package/dist/src/bitgo/tss/eddsa/index.d.ts.map +1 -0
  267. package/dist/src/bitgo/tss/eddsa/index.js +37 -0
  268. package/dist/src/bitgo/tss/eddsa/types.d.ts +23 -0
  269. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -0
  270. package/dist/src/bitgo/tss/eddsa/types.js +3 -0
  271. package/dist/src/bitgo/tss/index.d.ts +6 -0
  272. package/dist/src/bitgo/tss/index.d.ts.map +1 -0
  273. package/dist/src/bitgo/tss/index.js +42 -0
  274. package/dist/src/bitgo/tss/types.d.ts +6 -0
  275. package/dist/src/bitgo/tss/types.d.ts.map +1 -0
  276. package/dist/src/bitgo/tss/types.js +10 -0
  277. package/dist/src/bitgo/types.d.ts +4 -0
  278. package/dist/src/bitgo/types.d.ts.map +1 -0
  279. package/dist/src/bitgo/types.js +3 -0
  280. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +6 -0
  281. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -0
  282. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +30 -0
  283. package/dist/src/bitgo/utils/blsUtils.d.ts +51 -0
  284. package/dist/src/bitgo/utils/blsUtils.d.ts.map +1 -0
  285. package/dist/src/bitgo/utils/blsUtils.js +166 -0
  286. package/dist/src/bitgo/utils/iBlsUtils.d.ts +14 -0
  287. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +1 -0
  288. package/dist/src/bitgo/utils/iBlsUtils.js +3 -0
  289. package/dist/src/bitgo/utils/index.d.ts +12 -0
  290. package/dist/src/bitgo/utils/index.d.ts.map +1 -0
  291. package/dist/src/bitgo/utils/index.js +37 -0
  292. package/dist/src/bitgo/utils/mpcUtils.d.ts +31 -0
  293. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -0
  294. package/dist/src/bitgo/utils/mpcUtils.js +55 -0
  295. package/dist/src/bitgo/utils/opengpgUtils.d.ts +51 -0
  296. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -0
  297. package/dist/src/bitgo/utils/opengpgUtils.js +136 -0
  298. package/dist/src/bitgo/utils/promise-utils.d.ts +5 -0
  299. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -0
  300. package/dist/src/bitgo/utils/promise-utils.js +12 -0
  301. package/dist/src/bitgo/utils/triple.d.ts +3 -0
  302. package/dist/src/bitgo/utils/triple.d.ts.map +1 -0
  303. package/dist/src/bitgo/utils/triple.js +8 -0
  304. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +117 -0
  305. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -0
  306. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +351 -0
  307. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +5 -0
  308. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -0
  309. package/dist/src/bitgo/utils/tss/eddsa/index.js +29 -0
  310. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +72 -0
  311. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -0
  312. package/dist/src/bitgo/utils/tss/eddsa/types.js +10 -0
  313. package/dist/src/bitgo/utils/tss/index.d.ts +4 -0
  314. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -0
  315. package/dist/src/bitgo/utils/tss/index.js +29 -0
  316. package/dist/src/bitgo/utils/util.d.ts +77 -0
  317. package/dist/src/bitgo/utils/util.d.ts.map +1 -0
  318. package/dist/src/bitgo/utils/util.js +198 -0
  319. package/dist/src/bitgo/wallet/iWallet.d.ts +510 -0
  320. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -0
  321. package/dist/src/bitgo/wallet/iWallet.js +3 -0
  322. package/dist/src/bitgo/wallet/iWallets.d.ts +105 -0
  323. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -0
  324. package/dist/src/bitgo/wallet/iWallets.js +3 -0
  325. package/dist/src/bitgo/wallet/index.d.ts +5 -0
  326. package/dist/src/bitgo/wallet/index.d.ts.map +1 -0
  327. package/dist/src/bitgo/wallet/index.js +17 -0
  328. package/dist/src/bitgo/wallet/wallet.d.ts +650 -0
  329. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -0
  330. package/dist/src/bitgo/wallet/wallet.js +2039 -0
  331. package/dist/src/bitgo/wallet/wallets.d.ts +134 -0
  332. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -0
  333. package/dist/src/bitgo/wallet/wallets.js +605 -0
  334. package/dist/src/bitgo/webhook/iWebhooks.d.ts +26 -0
  335. package/dist/src/bitgo/webhook/iWebhooks.d.ts.map +1 -0
  336. package/dist/src/bitgo/webhook/iWebhooks.js +3 -0
  337. package/dist/src/bitgo/webhook/index.d.ts +3 -0
  338. package/dist/src/bitgo/webhook/index.d.ts.map +1 -0
  339. package/dist/src/bitgo/webhook/index.js +15 -0
  340. package/dist/src/bitgo/webhook/webhooks.d.ts +43 -0
  341. package/dist/src/bitgo/webhook/webhooks.d.ts.map +1 -0
  342. package/dist/src/bitgo/webhook/webhooks.js +102 -0
  343. package/dist/src/{bigojsError.d.ts → bitgojsError.d.ts} +1 -1
  344. package/dist/src/bitgojsError.d.ts.map +1 -0
  345. package/dist/src/bitgojsError.js +11 -0
  346. package/dist/src/common.d.ts +1 -1
  347. package/dist/src/common.d.ts.map +1 -1
  348. package/dist/src/common.js +3 -3
  349. package/dist/src/index.d.ts +4 -2
  350. package/dist/src/index.d.ts.map +1 -1
  351. package/dist/src/index.js +6 -5
  352. package/dist/tsconfig.tsbuildinfo +3501 -150
  353. package/package.json +28 -4
  354. package/CHANGELOG.md +0 -8
  355. package/dist/src/bigojsError.d.ts.map +0 -1
  356. package/dist/src/bigojsError.js +0 -11
  357. package/dist/src/v2/environments.d.ts.map +0 -1
  358. package/dist/src/v2/environments.js +0 -142
  359. package/dist/src/v2/index.d.ts +0 -3
  360. package/dist/src/v2/index.d.ts.map +0 -1
  361. package/dist/src/v2/types.d.ts +0 -2
  362. package/dist/src/v2/types.d.ts.map +0 -1
  363. package/dist/src/v2/types.js +0 -3
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./iPendingApproval"), exports);
14
+ __exportStar(require("./iPendingApprovals"), exports);
15
+ __exportStar(require("./pendingApproval"), exports);
16
+ __exportStar(require("./pendingApprovals"), exports);
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vcGVuZGluZ0FwcHJvdmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtQztBQUNuQyxzREFBb0M7QUFDcEMsb0RBQWtDO0FBQ2xDLHFEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaVBlbmRpbmdBcHByb3ZhbCc7XG5leHBvcnQgKiBmcm9tICcuL2lQZW5kaW5nQXBwcm92YWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcGVuZGluZ0FwcHJvdmFsJztcbmV4cG9ydCAqIGZyb20gJy4vcGVuZGluZ0FwcHJvdmFscyc7XG4iXX0=
@@ -0,0 +1,99 @@
1
+ import { IBaseCoin } from '../baseCoin';
2
+ import { BitGoBase } from '../bitgoBase';
3
+ import { ApproveOptions, IPendingApproval, OwnerType, PendingApprovalData, PendingApprovalInfo, State, Type } from '../pendingApproval';
4
+ import { RequestTracer } from '../utils';
5
+ import { IWallet } from '../wallet';
6
+ export declare class PendingApproval implements IPendingApproval {
7
+ private readonly bitgo;
8
+ private readonly baseCoin;
9
+ private tssUtils;
10
+ private wallet?;
11
+ private _pendingApproval;
12
+ constructor(bitgo: BitGoBase, baseCoin: IBaseCoin, pendingApprovalData: PendingApprovalData, wallet?: IWallet);
13
+ /**
14
+ * Get the id for this PendingApproval
15
+ */
16
+ id(): string;
17
+ /**
18
+ * Get the owner type (wallet or enterprise)
19
+ * Pending approvals can be approved or modified by different scopes (depending on how they were created)
20
+ * If a pending approval is owned by a wallet, then it can be approved by administrators of the wallet
21
+ * If a pending approval is owned by an enterprise, then it can be approved by administrators of the enterprise
22
+ */
23
+ ownerType(): OwnerType;
24
+ /**
25
+ * Get the id of the wallet which is associated with this PendingApproval
26
+ */
27
+ walletId(): string | undefined;
28
+ /**
29
+ * Get the enterprise ID that is associated with this PendingApproval
30
+ */
31
+ enterpriseId(): string | undefined;
32
+ /**
33
+ * Get the state of this PendingApproval
34
+ */
35
+ state(): State;
36
+ /**
37
+ * Get the id of the user that performed the action resulting in this PendingApproval
38
+ */
39
+ creator(): string;
40
+ /**
41
+ * Get the type of the pending approval (what it approves)
42
+ */
43
+ type(): Type;
44
+ /**
45
+ * Get information about this PendingApproval
46
+ */
47
+ info(): PendingApprovalInfo;
48
+ /**
49
+ * Get the number of approvals that are required for this PendingApproval to be approved.
50
+ * Defaults to 1 if approvalsRequired doesn't exist on the object
51
+ */
52
+ approvalsRequired(): number;
53
+ /**
54
+ * Generate a url for this PendingApproval for making requests to the server.
55
+ * @param extra
56
+ */
57
+ url(extra?: string): string;
58
+ /**
59
+ * Refetches this PendingApproval from the server and returns it.
60
+ *
61
+ * Note that this mutates the PendingApproval object in place.
62
+ * @param params
63
+ */
64
+ get(params?: Record<string, never>): Promise<PendingApproval>;
65
+ /**
66
+ * Helper function to ensure that self.wallet is set
67
+ */
68
+ private populateWallet;
69
+ /**
70
+ * Sets this PendingApproval to an approved state
71
+ */
72
+ approve(params?: ApproveOptions): Promise<any>;
73
+ /**
74
+ * Sets this PendingApproval to a rejected state
75
+ * @param params
76
+ */
77
+ reject(params?: Record<string, never>): Promise<any>;
78
+ /**
79
+ * Alias for PendingApproval.reject()
80
+ *
81
+ * @deprecated
82
+ * @param params
83
+ */
84
+ cancel(params?: Record<string, never>): Promise<any>;
85
+ /**
86
+ * Recreate and sign TSS transaction
87
+ * @param {ApproveOptions} params needed to get txs and use the walletPassphrase to tss sign
88
+ * @param {RequestTracer} reqId id tracer.
89
+ */
90
+ recreateAndSignTSSTransaction(params: ApproveOptions, reqId: RequestTracer): Promise<{
91
+ txHex: string;
92
+ }>;
93
+ /**
94
+ * Recreate a transaction for a pending approval to respond to updated network conditions
95
+ * @param params
96
+ */
97
+ recreateAndSignTransaction(params?: any): Promise<any>;
98
+ }
99
+ //# sourceMappingURL=pendingApproval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pendingApproval.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/pendingApproval/pendingApproval.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,EACL,IAAI,EACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAY,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAU;IACzB,OAAO,CAAC,gBAAgB,CAAsB;gBAElC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,OAAO;IAQ7G;;OAEG;IACH,EAAE,IAAI,MAAM;IAIZ;;;;;OAKG;IACH,SAAS,IAAI,SAAS;IAUtB;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC;;OAEG;IACH,KAAK,IAAI,KAAK;IAId;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,IAAI,IAAI,mBAAmB;IAI3B;;;OAGG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;;OAGG;IACH,GAAG,CAAC,KAAK,SAAK,GAAG,MAAM;IAIvB;;;;;OAKG;IACG,GAAG,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAKvE;;OAEG;YACW,cAAc;IAwB5B;;OAEG;IACG,OAAO,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IA2FxD;;;OAGG;IACG,MAAM,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9D;;;;;OAKG;IACG,MAAM,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9D;;;;OAIG;IACG,6BAA6B,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAuB7G;;;OAGG;IACG,0BAA0B,CAAC,MAAM,GAAE,GAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;CA0DjE"}
@@ -0,0 +1,319 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.PendingApproval = void 0;
23
+ /**
24
+ * @prettier
25
+ */
26
+ const _ = __importStar(require("lodash"));
27
+ const common = __importStar(require("../../common"));
28
+ const pendingApproval_1 = require("../pendingApproval");
29
+ const utils_1 = require("../utils");
30
+ class PendingApproval {
31
+ constructor(bitgo, baseCoin, pendingApprovalData, wallet) {
32
+ this.bitgo = bitgo;
33
+ this.baseCoin = baseCoin;
34
+ this.wallet = wallet;
35
+ this.tssUtils = new utils_1.TssUtils(this.bitgo, this.baseCoin, wallet);
36
+ this._pendingApproval = pendingApprovalData;
37
+ }
38
+ /**
39
+ * Get the id for this PendingApproval
40
+ */
41
+ id() {
42
+ return this._pendingApproval.id;
43
+ }
44
+ /**
45
+ * Get the owner type (wallet or enterprise)
46
+ * Pending approvals can be approved or modified by different scopes (depending on how they were created)
47
+ * If a pending approval is owned by a wallet, then it can be approved by administrators of the wallet
48
+ * If a pending approval is owned by an enterprise, then it can be approved by administrators of the enterprise
49
+ */
50
+ ownerType() {
51
+ if (this._pendingApproval.wallet) {
52
+ return pendingApproval_1.OwnerType.WALLET;
53
+ }
54
+ else if (this._pendingApproval.enterprise) {
55
+ return pendingApproval_1.OwnerType.ENTERPRISE;
56
+ }
57
+ else {
58
+ throw new Error('unexpected pending approval owner: neither wallet nor enterprise was present');
59
+ }
60
+ }
61
+ /**
62
+ * Get the id of the wallet which is associated with this PendingApproval
63
+ */
64
+ walletId() {
65
+ return this._pendingApproval.wallet;
66
+ }
67
+ /**
68
+ * Get the enterprise ID that is associated with this PendingApproval
69
+ */
70
+ enterpriseId() {
71
+ return this._pendingApproval.enterprise;
72
+ }
73
+ /**
74
+ * Get the state of this PendingApproval
75
+ */
76
+ state() {
77
+ return this._pendingApproval.state;
78
+ }
79
+ /**
80
+ * Get the id of the user that performed the action resulting in this PendingApproval
81
+ */
82
+ creator() {
83
+ return this._pendingApproval.creator;
84
+ }
85
+ /**
86
+ * Get the type of the pending approval (what it approves)
87
+ */
88
+ type() {
89
+ if (!this._pendingApproval.info) {
90
+ throw new Error('pending approval info is not available');
91
+ }
92
+ return this._pendingApproval.info.type;
93
+ }
94
+ /**
95
+ * Get information about this PendingApproval
96
+ */
97
+ info() {
98
+ return this._pendingApproval.info;
99
+ }
100
+ /**
101
+ * Get the number of approvals that are required for this PendingApproval to be approved.
102
+ * Defaults to 1 if approvalsRequired doesn't exist on the object
103
+ */
104
+ approvalsRequired() {
105
+ return this._pendingApproval.approvalsRequired || 1;
106
+ }
107
+ /**
108
+ * Generate a url for this PendingApproval for making requests to the server.
109
+ * @param extra
110
+ */
111
+ url(extra = '') {
112
+ return this.baseCoin.url('/pendingapprovals/' + this.id() + extra);
113
+ }
114
+ /**
115
+ * Refetches this PendingApproval from the server and returns it.
116
+ *
117
+ * Note that this mutates the PendingApproval object in place.
118
+ * @param params
119
+ */
120
+ async get(params = {}) {
121
+ this._pendingApproval = await this.bitgo.get(this.url()).result();
122
+ return this;
123
+ }
124
+ /**
125
+ * Helper function to ensure that self.wallet is set
126
+ */
127
+ async populateWallet() {
128
+ const transactionRequest = this.info().transactionRequest;
129
+ if (_.isUndefined(transactionRequest)) {
130
+ throw new Error('missing required object property transactionRequest');
131
+ }
132
+ if (_.isUndefined(this.wallet)) {
133
+ const updatedWallet = await this.baseCoin.wallets().get({ id: transactionRequest.sourceWallet });
134
+ if (_.isUndefined(updatedWallet)) {
135
+ throw new Error('unexpected - unable to get wallet using sourcewallet');
136
+ }
137
+ this.wallet = updatedWallet;
138
+ }
139
+ if (this.wallet.id() !== transactionRequest.sourceWallet) {
140
+ throw new Error('unexpected source wallet for pending approval');
141
+ }
142
+ // otherwise returns undefined
143
+ return;
144
+ }
145
+ /**
146
+ * Sets this PendingApproval to an approved state
147
+ */
148
+ async approve(params = {}) {
149
+ common.validateParams(params, [], ['walletPassphrase', 'otp']);
150
+ let canRecreateTransaction = true;
151
+ /*
152
+ * Cold wallets cannot recreate transactions if the only thing provided is the wallet passphrase
153
+ *
154
+ * The transaction can be recreated if either
155
+ * – there is an xprv
156
+ * – there is a walletPassphrase and the wallet is not cold (because if it's cold, the passphrase is of little use)
157
+ *
158
+ * Therefore, if neither of these is true, the transaction cannot be recreated, which is reflected in the if
159
+ * statement below.
160
+ */
161
+ const isColdWallet = !!_.get(this.wallet, '_wallet.isCold');
162
+ const isOFCWallet = this.baseCoin.getFamily() === 'ofc'; // Off-chain transactions don't need to be rebuilt
163
+ if (!params.xprv && !(params.walletPassphrase && !isColdWallet && !isOFCWallet)) {
164
+ canRecreateTransaction = false;
165
+ }
166
+ const reqId = new utils_1.RequestTracer();
167
+ /*
168
+ * Internal helper function to get the serialized transaction which is being approved
169
+ */
170
+ const getApprovalTransaction = async () => {
171
+ if (this.type() === 'transactionRequest') {
172
+ /*
173
+ * If this is a request for approving a transaction, depending on whether this user has a private key to the wallet
174
+ * (some admins may not have the spend permission), the transaction could either be rebroadcast as is, or it could
175
+ * be reconstructed. It is preferable to reconstruct a tx in order to adhere to the latest network conditions
176
+ * such as newer unspents, different fees, or a higher sequence id
177
+ */
178
+ if (params.tx) {
179
+ // the approval tx was reconstructed and explicitly specified - pass it through
180
+ return {
181
+ txHex: params.tx,
182
+ };
183
+ }
184
+ const transaction = _.get(this.info(), `transactionRequest.coinSpecific.${this.baseCoin.type}`);
185
+ // this user may not have spending privileges or a passphrase may not have been passed in
186
+ if (!canRecreateTransaction) {
187
+ if (!_.isObject(transaction)) {
188
+ throw new Error('there is neither an original transaction object nor can a new one be recreated');
189
+ }
190
+ return transaction;
191
+ }
192
+ this.bitgo.setRequestTracer(reqId);
193
+ await this.populateWallet();
194
+ if (this._pendingApproval.txRequestId) {
195
+ return await this.recreateAndSignTSSTransaction(params, reqId);
196
+ }
197
+ return await this.recreateAndSignTransaction(params);
198
+ }
199
+ };
200
+ /*
201
+ * Internal helper function to prepare the approval payload and send it to bitgo
202
+ */
203
+ const sendApproval = (transaction) => {
204
+ const approvalParams = { state: 'approved', otp: params.otp };
205
+ if (transaction) {
206
+ // if the transaction already has a half signed property, we take that directly
207
+ approvalParams.halfSigned = transaction.halfSigned || transaction;
208
+ }
209
+ this.bitgo.setRequestTracer(reqId);
210
+ return this.bitgo.put(this.url()).send(approvalParams).result();
211
+ };
212
+ try {
213
+ const approvalTransaction = (await getApprovalTransaction());
214
+ this.bitgo.setRequestTracer(reqId);
215
+ return await sendApproval(approvalTransaction);
216
+ }
217
+ catch (e) {
218
+ if (!canRecreateTransaction &&
219
+ (e.message.indexOf('could not find unspent output for input') !== -1 ||
220
+ e.message.indexOf('transaction conflicts with an existing transaction in the send queue') !== -1)) {
221
+ throw new Error('unspents expired, wallet passphrase or xprv required to recreate transaction');
222
+ }
223
+ throw e;
224
+ }
225
+ }
226
+ /**
227
+ * Sets this PendingApproval to a rejected state
228
+ * @param params
229
+ */
230
+ async reject(params = {}) {
231
+ return await this.bitgo.put(this.url()).send({ state: 'rejected' }).result();
232
+ }
233
+ /**
234
+ * Alias for PendingApproval.reject()
235
+ *
236
+ * @deprecated
237
+ * @param params
238
+ */
239
+ async cancel(params = {}) {
240
+ return await this.reject(params);
241
+ }
242
+ /**
243
+ * Recreate and sign TSS transaction
244
+ * @param {ApproveOptions} params needed to get txs and use the walletPassphrase to tss sign
245
+ * @param {RequestTracer} reqId id tracer.
246
+ */
247
+ async recreateAndSignTSSTransaction(params, reqId) {
248
+ const { walletPassphrase } = params;
249
+ const txRequestId = this._pendingApproval.txRequestId;
250
+ if (!this.wallet) {
251
+ throw new Error('Wallet not found');
252
+ }
253
+ if (!walletPassphrase) {
254
+ throw new Error('walletPassphrase not found');
255
+ }
256
+ if (!txRequestId) {
257
+ throw new Error('txRequestId not found');
258
+ }
259
+ const decryptedPrv = await this.wallet.getPrv({ walletPassphrase });
260
+ const txRequest = await this.tssUtils.recreateTxRequest(txRequestId, decryptedPrv, reqId);
261
+ return {
262
+ txHex: txRequest.unsignedTxs[0].serializedTxHex,
263
+ };
264
+ }
265
+ /**
266
+ * Recreate a transaction for a pending approval to respond to updated network conditions
267
+ * @param params
268
+ */
269
+ async recreateAndSignTransaction(params = {}) {
270
+ // this method only makes sense with existing transaction requests
271
+ const transactionRequest = this.info().transactionRequest;
272
+ if (_.isUndefined(transactionRequest)) {
273
+ throw new Error('cannot recreate transaction without transaction request');
274
+ }
275
+ if (_.isUndefined(this.wallet)) {
276
+ throw new Error('cannot recreate transaction without wallet');
277
+ }
278
+ const originalPrebuild = transactionRequest.coinSpecific[this.baseCoin.type];
279
+ const recipients = transactionRequest.recipients;
280
+ const prebuildParams = _.extend({}, params, { recipients: recipients }, transactionRequest.buildParams);
281
+ if (!_.isUndefined(originalPrebuild.hopTransaction)) {
282
+ prebuildParams.hop = true;
283
+ }
284
+ if (transactionRequest.buildParams && transactionRequest.buildParams.type === 'consolidate') {
285
+ // consolidate tag is in the build params - this is a consolidation transaction, so
286
+ // it needs to be rebuilt using the special consolidation build route
287
+ prebuildParams.prebuildTx = await this.bitgo
288
+ .post(this.wallet.url(`/consolidateUnspents`))
289
+ .send(prebuildParams)
290
+ .result();
291
+ delete prebuildParams.recipients;
292
+ }
293
+ const signedTransaction = await this.wallet.prebuildAndSignTransaction(prebuildParams);
294
+ // compare PAYGo fees
295
+ const originalParsedTransaction = (await this.baseCoin.parseTransaction({
296
+ txParams: prebuildParams,
297
+ wallet: this.wallet,
298
+ txPrebuild: originalPrebuild,
299
+ }));
300
+ const recreatedParsedTransaction = (await this.baseCoin.parseTransaction({
301
+ txParams: prebuildParams,
302
+ wallet: this.wallet,
303
+ txPrebuild: signedTransaction,
304
+ }));
305
+ if (_.isUndefined(recreatedParsedTransaction.implicitExternalSpendAmount)) {
306
+ return signedTransaction;
307
+ }
308
+ if (!_.isFinite(recreatedParsedTransaction.implicitExternalSpendAmount)) {
309
+ throw new Error('implicit external spend amount could not be determined');
310
+ }
311
+ if (!_.isUndefined(originalParsedTransaction.implicitExternalSpendAmount) &&
312
+ recreatedParsedTransaction.implicitExternalSpendAmount > originalParsedTransaction.implicitExternalSpendAmount) {
313
+ throw new Error('recreated transaction is using a higher pay-as-you-go-fee');
314
+ }
315
+ return signedTransaction;
316
+ }
317
+ }
318
+ exports.PendingApproval = PendingApproval;
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZ0FwcHJvdmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3BlbmRpbmdBcHByb3ZhbC9wZW5kaW5nQXBwcm92YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsMENBQTRCO0FBQzVCLHFEQUF1QztBQUd2Qyx3REFRNEI7QUFDNUIsb0NBQW1EO0FBR25ELE1BQWEsZUFBZTtJQU8xQixZQUFZLEtBQWdCLEVBQUUsUUFBbUIsRUFBRSxtQkFBd0MsRUFBRSxNQUFnQjtRQUMzRyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNILEVBQUU7UUFDQSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUNoQyxPQUFPLDJCQUFTLENBQUMsTUFBTSxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO1lBQzNDLE9BQU8sMkJBQVMsQ0FBQyxVQUFVLENBQUM7U0FDN0I7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsOEVBQThFLENBQUMsQ0FBQztTQUNqRztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUMzRDtRQUVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUU7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQWdDLEVBQUU7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMsY0FBYztRQUMxQixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztRQUMxRCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDeEU7UUFFRCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLE1BQU0sYUFBYSxHQUFZLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUUxRyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQzthQUN6RTtZQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1NBQzdCO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLGtCQUFrQixDQUFDLFlBQVksRUFBRTtZQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDbEU7UUFFRCw4QkFBOEI7UUFDOUIsT0FBTztJQUNULENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBeUIsRUFBRTtRQUN2QyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRS9ELElBQUksc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1FBQ2xDOzs7Ozs7Ozs7V0FTRztRQUNILE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLGtEQUFrRDtRQUMzRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDL0Usc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1NBQ2hDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxxQkFBYSxFQUFFLENBQUM7UUFFbEM7O1dBRUc7UUFDSCxNQUFNLHNCQUFzQixHQUFHLEtBQUssSUFBNEMsRUFBRTtZQUNoRixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxvQkFBb0IsRUFBRTtnQkFDeEM7Ozs7O21CQUtHO2dCQUNILElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRTtvQkFDYiwrRUFBK0U7b0JBQy9FLE9BQU87d0JBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO3FCQUNqQixDQUFDO2lCQUNIO2dCQUVELE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLG1DQUFtQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUU3RixDQUFDO2dCQUVGLHlGQUF5RjtnQkFDekYsSUFBSSxDQUFDLHNCQUFzQixFQUFFO29CQUMzQixJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTt3QkFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxDQUFDO3FCQUNuRztvQkFDRCxPQUFPLFdBQVcsQ0FBQztpQkFDcEI7Z0JBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBRTVCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtvQkFDckMsT0FBTyxNQUFNLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQ2hFO2dCQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdEQ7UUFDSCxDQUFDLENBQUM7UUFFRjs7V0FFRztRQUNILE1BQU0sWUFBWSxHQUFHLENBQUMsV0FBbUQsRUFBZ0IsRUFBRTtZQUN6RixNQUFNLGNBQWMsR0FBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNuRSxJQUFJLFdBQVcsRUFBRTtnQkFDZiwrRUFBK0U7Z0JBQy9FLGNBQWMsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsSUFBSSxXQUFXLENBQUM7YUFDbkU7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xFLENBQUMsQ0FBQztRQUVGLElBQUk7WUFDRixNQUFNLG1CQUFtQixHQUFHLENBQUMsTUFBTSxzQkFBc0IsRUFBRSxDQUFRLENBQUM7WUFDcEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxPQUFPLE1BQU0sWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDaEQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQ0UsQ0FBQyxzQkFBc0I7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMseUNBQXlDLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2xFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLHNFQUFzRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDbkc7Z0JBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyw4RUFBOEUsQ0FBQyxDQUFDO2FBQ2pHO1lBQ0QsTUFBTSxDQUFDLENBQUM7U0FDVDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQWdDLEVBQUU7UUFDN0MsT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQy9FLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBZ0MsRUFBRTtRQUM3QyxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxNQUFzQixFQUFFLEtBQW9CO1FBQzlFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUNwQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1FBRXRELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNyQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDL0M7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUMxQztRQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDcEUsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUYsT0FBTztZQUNMLEtBQUssRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWU7U0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQUMsU0FBYyxFQUFFO1FBQy9DLGtFQUFrRTtRQUNsRSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztRQUMxRCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDNUU7UUFFRCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztTQUMvRDtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0UsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV4RyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNuRCxjQUFjLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztTQUMzQjtRQUVELElBQUksa0JBQWtCLENBQUMsV0FBVyxJQUFJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssYUFBYSxFQUFFO1lBQzNGLG1GQUFtRjtZQUNuRixxRUFBcUU7WUFDckUsY0FBYyxDQUFDLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLO2lCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztpQkFDN0MsSUFBSSxDQUFDLGNBQWMsQ0FBQztpQkFDcEIsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLGNBQWMsQ0FBQyxVQUFVLENBQUM7U0FDbEM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RixxQkFBcUI7UUFDckIsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0RSxRQUFRLEVBQUUsY0FBYztZQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsVUFBVSxFQUFFLGdCQUFnQjtTQUM3QixDQUFDLENBQVEsQ0FBQztRQUNYLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7WUFDdkUsUUFBUSxFQUFFLGNBQWM7WUFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFVBQVUsRUFBRSxpQkFBaUI7U0FDOUIsQ0FBQyxDQUFRLENBQUM7UUFFWCxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsMEJBQTBCLENBQUMsMkJBQTJCLENBQUMsRUFBRTtZQUN6RSxPQUFPLGlCQUFpQixDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsMkJBQTJCLENBQUMsRUFBRTtZQUN2RSxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7U0FDM0U7UUFDRCxJQUNFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQywyQkFBMkIsQ0FBQztZQUNyRSwwQkFBMEIsQ0FBQywyQkFBMkIsR0FBRyx5QkFBeUIsQ0FBQywyQkFBMkIsRUFDOUc7WUFDQSxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7U0FDOUU7UUFDRCxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQXBWRCwwQ0FvVkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgKiBhcyBjb21tb24gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IElCYXNlQ29pbiB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQge1xuICBBcHByb3ZlT3B0aW9ucyxcbiAgSVBlbmRpbmdBcHByb3ZhbCxcbiAgT3duZXJUeXBlLFxuICBQZW5kaW5nQXBwcm92YWxEYXRhLFxuICBQZW5kaW5nQXBwcm92YWxJbmZvLFxuICBTdGF0ZSxcbiAgVHlwZSxcbn0gZnJvbSAnLi4vcGVuZGluZ0FwcHJvdmFsJztcbmltcG9ydCB7IFJlcXVlc3RUcmFjZXIsIFRzc1V0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgSVdhbGxldCB9IGZyb20gJy4uL3dhbGxldCc7XG5cbmV4cG9ydCBjbGFzcyBQZW5kaW5nQXBwcm92YWwgaW1wbGVtZW50cyBJUGVuZGluZ0FwcHJvdmFsIHtcbiAgcHJpdmF0ZSByZWFkb25seSBiaXRnbzogQml0R29CYXNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGJhc2VDb2luOiBJQmFzZUNvaW47XG4gIHByaXZhdGUgdHNzVXRpbHM6IFRzc1V0aWxzO1xuICBwcml2YXRlIHdhbGxldD86IElXYWxsZXQ7XG4gIHByaXZhdGUgX3BlbmRpbmdBcHByb3ZhbDogUGVuZGluZ0FwcHJvdmFsRGF0YTtcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luLCBwZW5kaW5nQXBwcm92YWxEYXRhOiBQZW5kaW5nQXBwcm92YWxEYXRhLCB3YWxsZXQ/OiBJV2FsbGV0KSB7XG4gICAgdGhpcy5iaXRnbyA9IGJpdGdvO1xuICAgIHRoaXMuYmFzZUNvaW4gPSBiYXNlQ29pbjtcbiAgICB0aGlzLndhbGxldCA9IHdhbGxldDtcbiAgICB0aGlzLnRzc1V0aWxzID0gbmV3IFRzc1V0aWxzKHRoaXMuYml0Z28sIHRoaXMuYmFzZUNvaW4sIHdhbGxldCk7XG4gICAgdGhpcy5fcGVuZGluZ0FwcHJvdmFsID0gcGVuZGluZ0FwcHJvdmFsRGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGlkIGZvciB0aGlzIFBlbmRpbmdBcHByb3ZhbFxuICAgKi9cbiAgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGVuZGluZ0FwcHJvdmFsLmlkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgb3duZXIgdHlwZSAod2FsbGV0IG9yIGVudGVycHJpc2UpXG4gICAqIFBlbmRpbmcgYXBwcm92YWxzIGNhbiBiZSBhcHByb3ZlZCBvciBtb2RpZmllZCBieSBkaWZmZXJlbnQgc2NvcGVzIChkZXBlbmRpbmcgb24gaG93IHRoZXkgd2VyZSBjcmVhdGVkKVxuICAgKiBJZiBhIHBlbmRpbmcgYXBwcm92YWwgaXMgb3duZWQgYnkgYSB3YWxsZXQsIHRoZW4gaXQgY2FuIGJlIGFwcHJvdmVkIGJ5IGFkbWluaXN0cmF0b3JzIG9mIHRoZSB3YWxsZXRcbiAgICogSWYgYSBwZW5kaW5nIGFwcHJvdmFsIGlzIG93bmVkIGJ5IGFuIGVudGVycHJpc2UsIHRoZW4gaXQgY2FuIGJlIGFwcHJvdmVkIGJ5IGFkbWluaXN0cmF0b3JzIG9mIHRoZSBlbnRlcnByaXNlXG4gICAqL1xuICBvd25lclR5cGUoKTogT3duZXJUeXBlIHtcbiAgICBpZiAodGhpcy5fcGVuZGluZ0FwcHJvdmFsLndhbGxldCkge1xuICAgICAgcmV0dXJuIE93bmVyVHlwZS5XQUxMRVQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9wZW5kaW5nQXBwcm92YWwuZW50ZXJwcmlzZSkge1xuICAgICAgcmV0dXJuIE93bmVyVHlwZS5FTlRFUlBSSVNFO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgcGVuZGluZyBhcHByb3ZhbCBvd25lcjogbmVpdGhlciB3YWxsZXQgbm9yIGVudGVycHJpc2Ugd2FzIHByZXNlbnQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBpZCBvZiB0aGUgd2FsbGV0IHdoaWNoIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFBlbmRpbmdBcHByb3ZhbFxuICAgKi9cbiAgd2FsbGV0SWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcGVuZGluZ0FwcHJvdmFsLndhbGxldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGVudGVycHJpc2UgSUQgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBQZW5kaW5nQXBwcm92YWxcbiAgICovXG4gIGVudGVycHJpc2VJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9wZW5kaW5nQXBwcm92YWwuZW50ZXJwcmlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0YXRlIG9mIHRoaXMgUGVuZGluZ0FwcHJvdmFsXG4gICAqL1xuICBzdGF0ZSgpOiBTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdBcHByb3ZhbC5zdGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGlkIG9mIHRoZSB1c2VyIHRoYXQgcGVyZm9ybWVkIHRoZSBhY3Rpb24gcmVzdWx0aW5nIGluIHRoaXMgUGVuZGluZ0FwcHJvdmFsXG4gICAqL1xuICBjcmVhdG9yKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdBcHByb3ZhbC5jcmVhdG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdHlwZSBvZiB0aGUgcGVuZGluZyBhcHByb3ZhbCAod2hhdCBpdCBhcHByb3ZlcylcbiAgICovXG4gIHR5cGUoKTogVHlwZSB7XG4gICAgaWYgKCF0aGlzLl9wZW5kaW5nQXBwcm92YWwuaW5mbykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwZW5kaW5nIGFwcHJvdmFsIGluZm8gaXMgbm90IGF2YWlsYWJsZScpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wZW5kaW5nQXBwcm92YWwuaW5mby50eXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIFBlbmRpbmdBcHByb3ZhbFxuICAgKi9cbiAgaW5mbygpOiBQZW5kaW5nQXBwcm92YWxJbmZvIHtcbiAgICByZXR1cm4gdGhpcy5fcGVuZGluZ0FwcHJvdmFsLmluZm87XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgYXBwcm92YWxzIHRoYXQgYXJlIHJlcXVpcmVkIGZvciB0aGlzIFBlbmRpbmdBcHByb3ZhbCB0byBiZSBhcHByb3ZlZC5cbiAgICogRGVmYXVsdHMgdG8gMSBpZiBhcHByb3ZhbHNSZXF1aXJlZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBvYmplY3RcbiAgICovXG4gIGFwcHJvdmFsc1JlcXVpcmVkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdBcHByb3ZhbC5hcHByb3ZhbHNSZXF1aXJlZCB8fCAxO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgdXJsIGZvciB0aGlzIFBlbmRpbmdBcHByb3ZhbCBmb3IgbWFraW5nIHJlcXVlc3RzIHRvIHRoZSBzZXJ2ZXIuXG4gICAqIEBwYXJhbSBleHRyYVxuICAgKi9cbiAgdXJsKGV4dHJhID0gJycpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJhc2VDb2luLnVybCgnL3BlbmRpbmdhcHByb3ZhbHMvJyArIHRoaXMuaWQoKSArIGV4dHJhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZldGNoZXMgdGhpcyBQZW5kaW5nQXBwcm92YWwgZnJvbSB0aGUgc2VydmVyIGFuZCByZXR1cm5zIGl0LlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBtdXRhdGVzIHRoZSBQZW5kaW5nQXBwcm92YWwgb2JqZWN0IGluIHBsYWNlLlxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBhc3luYyBnZXQocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4gPSB7fSk6IFByb21pc2U8UGVuZGluZ0FwcHJvdmFsPiB7XG4gICAgdGhpcy5fcGVuZGluZ0FwcHJvdmFsID0gYXdhaXQgdGhpcy5iaXRnby5nZXQodGhpcy51cmwoKSkucmVzdWx0KCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGVuc3VyZSB0aGF0IHNlbGYud2FsbGV0IGlzIHNldFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBwb3B1bGF0ZVdhbGxldCgpOiBQcm9taXNlPHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uUmVxdWVzdCA9IHRoaXMuaW5mbygpLnRyYW5zYWN0aW9uUmVxdWVzdDtcbiAgICBpZiAoXy5pc1VuZGVmaW5lZCh0cmFuc2FjdGlvblJlcXVlc3QpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgb2JqZWN0IHByb3BlcnR5IHRyYW5zYWN0aW9uUmVxdWVzdCcpO1xuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMud2FsbGV0KSkge1xuICAgICAgY29uc3QgdXBkYXRlZFdhbGxldDogSVdhbGxldCA9IGF3YWl0IHRoaXMuYmFzZUNvaW4ud2FsbGV0cygpLmdldCh7IGlkOiB0cmFuc2FjdGlvblJlcXVlc3Quc291cmNlV2FsbGV0IH0pO1xuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZCh1cGRhdGVkV2FsbGV0KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgLSB1bmFibGUgdG8gZ2V0IHdhbGxldCB1c2luZyBzb3VyY2V3YWxsZXQnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy53YWxsZXQgPSB1cGRhdGVkV2FsbGV0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLndhbGxldC5pZCgpICE9PSB0cmFuc2FjdGlvblJlcXVlc3Quc291cmNlV2FsbGV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgc291cmNlIHdhbGxldCBmb3IgcGVuZGluZyBhcHByb3ZhbCcpO1xuICAgIH1cblxuICAgIC8vIG90aGVyd2lzZSByZXR1cm5zIHVuZGVmaW5lZFxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgUGVuZGluZ0FwcHJvdmFsIHRvIGFuIGFwcHJvdmVkIHN0YXRlXG4gICAqL1xuICBhc3luYyBhcHByb3ZlKHBhcmFtczogQXBwcm92ZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgY29tbW9uLnZhbGlkYXRlUGFyYW1zKHBhcmFtcywgW10sIFsnd2FsbGV0UGFzc3BocmFzZScsICdvdHAnXSk7XG5cbiAgICBsZXQgY2FuUmVjcmVhdGVUcmFuc2FjdGlvbiA9IHRydWU7XG4gICAgLypcbiAgICAgKiBDb2xkIHdhbGxldHMgY2Fubm90IHJlY3JlYXRlIHRyYW5zYWN0aW9ucyBpZiB0aGUgb25seSB0aGluZyBwcm92aWRlZCBpcyB0aGUgd2FsbGV0IHBhc3NwaHJhc2VcbiAgICAgKlxuICAgICAqIFRoZSB0cmFuc2FjdGlvbiBjYW4gYmUgcmVjcmVhdGVkIGlmIGVpdGhlclxuICAgICAqIOKAkyB0aGVyZSBpcyBhbiB4cHJ2XG4gICAgICog4oCTIHRoZXJlIGlzIGEgd2FsbGV0UGFzc3BocmFzZSBhbmQgdGhlIHdhbGxldCBpcyBub3QgY29sZCAoYmVjYXVzZSBpZiBpdCdzIGNvbGQsIHRoZSBwYXNzcGhyYXNlIGlzIG9mIGxpdHRsZSB1c2UpXG4gICAgICpcbiAgICAgKiBUaGVyZWZvcmUsIGlmIG5laXRoZXIgb2YgdGhlc2UgaXMgdHJ1ZSwgdGhlIHRyYW5zYWN0aW9uIGNhbm5vdCBiZSByZWNyZWF0ZWQsIHdoaWNoIGlzIHJlZmxlY3RlZCBpbiB0aGUgaWZcbiAgICAgKiBzdGF0ZW1lbnQgYmVsb3cuXG4gICAgICovXG4gICAgY29uc3QgaXNDb2xkV2FsbGV0ID0gISFfLmdldCh0aGlzLndhbGxldCwgJ193YWxsZXQuaXNDb2xkJyk7XG4gICAgY29uc3QgaXNPRkNXYWxsZXQgPSB0aGlzLmJhc2VDb2luLmdldEZhbWlseSgpID09PSAnb2ZjJzsgLy8gT2ZmLWNoYWluIHRyYW5zYWN0aW9ucyBkb24ndCBuZWVkIHRvIGJlIHJlYnVpbHRcbiAgICBpZiAoIXBhcmFtcy54cHJ2ICYmICEocGFyYW1zLndhbGxldFBhc3NwaHJhc2UgJiYgIWlzQ29sZFdhbGxldCAmJiAhaXNPRkNXYWxsZXQpKSB7XG4gICAgICBjYW5SZWNyZWF0ZVRyYW5zYWN0aW9uID0gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxSWQgPSBuZXcgUmVxdWVzdFRyYWNlcigpO1xuXG4gICAgLypcbiAgICAgKiBJbnRlcm5hbCBoZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzZXJpYWxpemVkIHRyYW5zYWN0aW9uIHdoaWNoIGlzIGJlaW5nIGFwcHJvdmVkXG4gICAgICovXG4gICAgY29uc3QgZ2V0QXBwcm92YWxUcmFuc2FjdGlvbiA9IGFzeW5jICgpOiBQcm9taXNlPHsgdHhIZXg6IHN0cmluZyB9IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgICBpZiAodGhpcy50eXBlKCkgPT09ICd0cmFuc2FjdGlvblJlcXVlc3QnKSB7XG4gICAgICAgIC8qXG4gICAgICAgICAqIElmIHRoaXMgaXMgYSByZXF1ZXN0IGZvciBhcHByb3ZpbmcgYSB0cmFuc2FjdGlvbiwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhpcyB1c2VyIGhhcyBhIHByaXZhdGUga2V5IHRvIHRoZSB3YWxsZXRcbiAgICAgICAgICogKHNvbWUgYWRtaW5zIG1heSBub3QgaGF2ZSB0aGUgc3BlbmQgcGVybWlzc2lvbiksIHRoZSB0cmFuc2FjdGlvbiBjb3VsZCBlaXRoZXIgYmUgcmVicm9hZGNhc3QgYXMgaXMsIG9yIGl0IGNvdWxkXG4gICAgICAgICAqIGJlIHJlY29uc3RydWN0ZWQuIEl0IGlzIHByZWZlcmFibGUgdG8gcmVjb25zdHJ1Y3QgYSB0eCBpbiBvcmRlciB0byBhZGhlcmUgdG8gdGhlIGxhdGVzdCBuZXR3b3JrIGNvbmRpdGlvbnNcbiAgICAgICAgICogc3VjaCBhcyBuZXdlciB1bnNwZW50cywgZGlmZmVyZW50IGZlZXMsIG9yIGEgaGlnaGVyIHNlcXVlbmNlIGlkXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocGFyYW1zLnR4KSB7XG4gICAgICAgICAgLy8gdGhlIGFwcHJvdmFsIHR4IHdhcyByZWNvbnN0cnVjdGVkIGFuZCBleHBsaWNpdGx5IHNwZWNpZmllZCAtIHBhc3MgaXQgdGhyb3VnaFxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eEhleDogcGFyYW1zLnR4LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IF8uZ2V0KHRoaXMuaW5mbygpLCBgdHJhbnNhY3Rpb25SZXF1ZXN0LmNvaW5TcGVjaWZpYy4ke3RoaXMuYmFzZUNvaW4udHlwZX1gKSBhcyB7XG4gICAgICAgICAgdHhIZXg6IHN0cmluZztcbiAgICAgICAgfTtcblxuICAgICAgICAvLyB0aGlzIHVzZXIgbWF5IG5vdCBoYXZlIHNwZW5kaW5nIHByaXZpbGVnZXMgb3IgYSBwYXNzcGhyYXNlIG1heSBub3QgaGF2ZSBiZWVuIHBhc3NlZCBpblxuICAgICAgICBpZiAoIWNhblJlY3JlYXRlVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICBpZiAoIV8uaXNPYmplY3QodHJhbnNhY3Rpb24pKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RoZXJlIGlzIG5laXRoZXIgYW4gb3JpZ2luYWwgdHJhbnNhY3Rpb24gb2JqZWN0IG5vciBjYW4gYSBuZXcgb25lIGJlIHJlY3JlYXRlZCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb247XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxSWQpO1xuICAgICAgICBhd2FpdCB0aGlzLnBvcHVsYXRlV2FsbGV0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3BlbmRpbmdBcHByb3ZhbC50eFJlcXVlc3RJZCkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlY3JlYXRlQW5kU2lnblRTU1RyYW5zYWN0aW9uKHBhcmFtcywgcmVxSWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlY3JlYXRlQW5kU2lnblRyYW5zYWN0aW9uKHBhcmFtcyk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8qXG4gICAgICogSW50ZXJuYWwgaGVscGVyIGZ1bmN0aW9uIHRvIHByZXBhcmUgdGhlIGFwcHJvdmFsIHBheWxvYWQgYW5kIHNlbmQgaXQgdG8gYml0Z29cbiAgICAgKi9cbiAgICBjb25zdCBzZW5kQXBwcm92YWwgPSAodHJhbnNhY3Rpb246IHsgdHhIZXg6IHN0cmluZzsgaGFsZlNpZ25lZD86IHN0cmluZyB9KTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgICAgIGNvbnN0IGFwcHJvdmFsUGFyYW1zOiBhbnkgPSB7IHN0YXRlOiAnYXBwcm92ZWQnLCBvdHA6IHBhcmFtcy5vdHAgfTtcbiAgICAgIGlmICh0cmFuc2FjdGlvbikge1xuICAgICAgICAvLyBpZiB0aGUgdHJhbnNhY3Rpb24gYWxyZWFkeSBoYXMgYSBoYWxmIHNpZ25lZCBwcm9wZXJ0eSwgd2UgdGFrZSB0aGF0IGRpcmVjdGx5XG4gICAgICAgIGFwcHJvdmFsUGFyYW1zLmhhbGZTaWduZWQgPSB0cmFuc2FjdGlvbi5oYWxmU2lnbmVkIHx8IHRyYW5zYWN0aW9uO1xuICAgICAgfVxuICAgICAgdGhpcy5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcUlkKTtcbiAgICAgIHJldHVybiB0aGlzLmJpdGdvLnB1dCh0aGlzLnVybCgpKS5zZW5kKGFwcHJvdmFsUGFyYW1zKS5yZXN1bHQoKTtcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFwcHJvdmFsVHJhbnNhY3Rpb24gPSAoYXdhaXQgZ2V0QXBwcm92YWxUcmFuc2FjdGlvbigpKSBhcyBhbnk7XG4gICAgICB0aGlzLmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxSWQpO1xuICAgICAgcmV0dXJuIGF3YWl0IHNlbmRBcHByb3ZhbChhcHByb3ZhbFRyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoXG4gICAgICAgICFjYW5SZWNyZWF0ZVRyYW5zYWN0aW9uICYmXG4gICAgICAgIChlLm1lc3NhZ2UuaW5kZXhPZignY291bGQgbm90IGZpbmQgdW5zcGVudCBvdXRwdXQgZm9yIGlucHV0JykgIT09IC0xIHx8XG4gICAgICAgICAgZS5tZXNzYWdlLmluZGV4T2YoJ3RyYW5zYWN0aW9uIGNvbmZsaWN0cyB3aXRoIGFuIGV4aXN0aW5nIHRyYW5zYWN0aW9uIGluIHRoZSBzZW5kIHF1ZXVlJykgIT09IC0xKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndW5zcGVudHMgZXhwaXJlZCwgd2FsbGV0IHBhc3NwaHJhc2Ugb3IgeHBydiByZXF1aXJlZCB0byByZWNyZWF0ZSB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGlzIFBlbmRpbmdBcHByb3ZhbCB0byBhIHJlamVjdGVkIHN0YXRlXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIHJlamVjdChwYXJhbXM6IFJlY29yZDxzdHJpbmcsIG5ldmVyPiA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnby5wdXQodGhpcy51cmwoKSkuc2VuZCh7IHN0YXRlOiAncmVqZWN0ZWQnIH0pLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsaWFzIGZvciBQZW5kaW5nQXBwcm92YWwucmVqZWN0KClcbiAgICpcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgYXN5bmMgY2FuY2VsKHBhcmFtczogUmVjb3JkPHN0cmluZywgbmV2ZXI+ID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJlamVjdChwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3JlYXRlIGFuZCBzaWduIFRTUyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge0FwcHJvdmVPcHRpb25zfSBwYXJhbXMgbmVlZGVkIHRvIGdldCB0eHMgYW5kIHVzZSB0aGUgd2FsbGV0UGFzc3BocmFzZSB0byB0c3Mgc2lnblxuICAgKiBAcGFyYW0ge1JlcXVlc3RUcmFjZXJ9IHJlcUlkIGlkIHRyYWNlci5cbiAgICovXG4gIGFzeW5jIHJlY3JlYXRlQW5kU2lnblRTU1RyYW5zYWN0aW9uKHBhcmFtczogQXBwcm92ZU9wdGlvbnMsIHJlcUlkOiBSZXF1ZXN0VHJhY2VyKTogUHJvbWlzZTx7IHR4SGV4OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IHsgd2FsbGV0UGFzc3BocmFzZSB9ID0gcGFyYW1zO1xuICAgIGNvbnN0IHR4UmVxdWVzdElkID0gdGhpcy5fcGVuZGluZ0FwcHJvdmFsLnR4UmVxdWVzdElkO1xuXG4gICAgaWYgKCF0aGlzLndhbGxldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdXYWxsZXQgbm90IGZvdW5kJyk7XG4gICAgfVxuXG4gICAgaWYgKCF3YWxsZXRQYXNzcGhyYXNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dhbGxldFBhc3NwaHJhc2Ugbm90IGZvdW5kJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0eFJlcXVlc3RJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eFJlcXVlc3RJZCBub3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWNyeXB0ZWRQcnYgPSBhd2FpdCB0aGlzLndhbGxldC5nZXRQcnYoeyB3YWxsZXRQYXNzcGhyYXNlIH0pO1xuICAgIGNvbnN0IHR4UmVxdWVzdCA9IGF3YWl0IHRoaXMudHNzVXRpbHMucmVjcmVhdGVUeFJlcXVlc3QodHhSZXF1ZXN0SWQsIGRlY3J5cHRlZFBydiwgcmVxSWQpO1xuICAgIHJldHVybiB7XG4gICAgICB0eEhleDogdHhSZXF1ZXN0LnVuc2lnbmVkVHhzWzBdLnNlcmlhbGl6ZWRUeEhleCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3JlYXRlIGEgdHJhbnNhY3Rpb24gZm9yIGEgcGVuZGluZyBhcHByb3ZhbCB0byByZXNwb25kIHRvIHVwZGF0ZWQgbmV0d29yayBjb25kaXRpb25zXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIHJlY3JlYXRlQW5kU2lnblRyYW5zYWN0aW9uKHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIHRoaXMgbWV0aG9kIG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCBleGlzdGluZyB0cmFuc2FjdGlvbiByZXF1ZXN0c1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uUmVxdWVzdCA9IHRoaXMuaW5mbygpLnRyYW5zYWN0aW9uUmVxdWVzdDtcbiAgICBpZiAoXy5pc1VuZGVmaW5lZCh0cmFuc2FjdGlvblJlcXVlc3QpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nhbm5vdCByZWNyZWF0ZSB0cmFuc2FjdGlvbiB3aXRob3V0IHRyYW5zYWN0aW9uIHJlcXVlc3QnKTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLndhbGxldCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2Fubm90IHJlY3JlYXRlIHRyYW5zYWN0aW9uIHdpdGhvdXQgd2FsbGV0Jyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ2luYWxQcmVidWlsZCA9IHRyYW5zYWN0aW9uUmVxdWVzdC5jb2luU3BlY2lmaWNbdGhpcy5iYXNlQ29pbi50eXBlXTtcblxuICAgIGNvbnN0IHJlY2lwaWVudHMgPSB0cmFuc2FjdGlvblJlcXVlc3QucmVjaXBpZW50cztcbiAgICBjb25zdCBwcmVidWlsZFBhcmFtcyA9IF8uZXh0ZW5kKHt9LCBwYXJhbXMsIHsgcmVjaXBpZW50czogcmVjaXBpZW50cyB9LCB0cmFuc2FjdGlvblJlcXVlc3QuYnVpbGRQYXJhbXMpO1xuXG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKG9yaWdpbmFsUHJlYnVpbGQuaG9wVHJhbnNhY3Rpb24pKSB7XG4gICAgICBwcmVidWlsZFBhcmFtcy5ob3AgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0cmFuc2FjdGlvblJlcXVlc3QuYnVpbGRQYXJhbXMgJiYgdHJhbnNhY3Rpb25SZXF1ZXN0LmJ1aWxkUGFyYW1zLnR5cGUgPT09ICdjb25zb2xpZGF0ZScpIHtcbiAgICAgIC8vIGNvbnNvbGlkYXRlIHRhZyBpcyBpbiB0aGUgYnVpbGQgcGFyYW1zIC0gdGhpcyBpcyBhIGNvbnNvbGlkYXRpb24gdHJhbnNhY3Rpb24sIHNvXG4gICAgICAvLyBpdCBuZWVkcyB0byBiZSByZWJ1aWx0IHVzaW5nIHRoZSBzcGVjaWFsIGNvbnNvbGlkYXRpb24gYnVpbGQgcm91dGVcbiAgICAgIHByZWJ1aWxkUGFyYW1zLnByZWJ1aWxkVHggPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAgIC5wb3N0KHRoaXMud2FsbGV0LnVybChgL2NvbnNvbGlkYXRlVW5zcGVudHNgKSlcbiAgICAgICAgLnNlbmQocHJlYnVpbGRQYXJhbXMpXG4gICAgICAgIC5yZXN1bHQoKTtcbiAgICAgIGRlbGV0ZSBwcmVidWlsZFBhcmFtcy5yZWNpcGllbnRzO1xuICAgIH1cblxuICAgIGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uID0gYXdhaXQgdGhpcy53YWxsZXQucHJlYnVpbGRBbmRTaWduVHJhbnNhY3Rpb24ocHJlYnVpbGRQYXJhbXMpO1xuICAgIC8vIGNvbXBhcmUgUEFZR28gZmVlc1xuICAgIGNvbnN0IG9yaWdpbmFsUGFyc2VkVHJhbnNhY3Rpb24gPSAoYXdhaXQgdGhpcy5iYXNlQ29pbi5wYXJzZVRyYW5zYWN0aW9uKHtcbiAgICAgIHR4UGFyYW1zOiBwcmVidWlsZFBhcmFtcyxcbiAgICAgIHdhbGxldDogdGhpcy53YWxsZXQsXG4gICAgICB0eFByZWJ1aWxkOiBvcmlnaW5hbFByZWJ1aWxkLFxuICAgIH0pKSBhcyBhbnk7XG4gICAgY29uc3QgcmVjcmVhdGVkUGFyc2VkVHJhbnNhY3Rpb24gPSAoYXdhaXQgdGhpcy5iYXNlQ29pbi5wYXJzZVRyYW5zYWN0aW9uKHtcbiAgICAgIHR4UGFyYW1zOiBwcmVidWlsZFBhcmFtcyxcbiAgICAgIHdhbGxldDogdGhpcy53YWxsZXQsXG4gICAgICB0eFByZWJ1aWxkOiBzaWduZWRUcmFuc2FjdGlvbixcbiAgICB9KSkgYXMgYW55O1xuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQocmVjcmVhdGVkUGFyc2VkVHJhbnNhY3Rpb24uaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50KSkge1xuICAgICAgcmV0dXJuIHNpZ25lZFRyYW5zYWN0aW9uO1xuICAgIH1cblxuICAgIGlmICghXy5pc0Zpbml0ZShyZWNyZWF0ZWRQYXJzZWRUcmFuc2FjdGlvbi5pbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ltcGxpY2l0IGV4dGVybmFsIHNwZW5kIGFtb3VudCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCcpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAhXy5pc1VuZGVmaW5lZChvcmlnaW5hbFBhcnNlZFRyYW5zYWN0aW9uLmltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCkgJiZcbiAgICAgIHJlY3JlYXRlZFBhcnNlZFRyYW5zYWN0aW9uLmltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCA+IG9yaWdpbmFsUGFyc2VkVHJhbnNhY3Rpb24uaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50XG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlY3JlYXRlZCB0cmFuc2FjdGlvbiBpcyB1c2luZyBhIGhpZ2hlciBwYXktYXMteW91LWdvLWZlZScpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbmVkVHJhbnNhY3Rpb247XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { IBaseCoin } from '../baseCoin';
2
+ import { BitGoBase } from '../bitgoBase';
3
+ import { GetPendingApprovalOptions, IPendingApprovals, ListPendingApprovalsOptions, ListPendingApprovalsResult, PendingApproval } from '../pendingApproval';
4
+ export declare class PendingApprovals implements IPendingApprovals {
5
+ private readonly bitgo;
6
+ private readonly baseCoin;
7
+ constructor(bitgo: BitGoBase, baseCoin: IBaseCoin);
8
+ /**
9
+ * List the pending approvals available to the user
10
+ * @param params
11
+ */
12
+ list(params?: ListPendingApprovalsOptions): Promise<ListPendingApprovalsResult>;
13
+ /**
14
+ * Fetch an existing pending approval
15
+ * @param params
16
+ */
17
+ get(params?: GetPendingApprovalOptions): Promise<PendingApproval>;
18
+ }
19
+ //# sourceMappingURL=pendingApprovals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pendingApprovals.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/pendingApproval/pendingApprovals.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,2BAA2B,EAC3B,0BAA0B,EAC1B,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAI5B,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;gBAEzB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;IAKjD;;;OAGG;IACG,IAAI,CAAC,MAAM,GAAE,2BAAgC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAqBzF;;;OAGG;IACG,GAAG,CAAC,MAAM,GAAE,yBAA8B,GAAG,OAAO,CAAC,eAAe,CAAC;CAe5E"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.PendingApprovals = void 0;
23
+ /**
24
+ * @prettier
25
+ */
26
+ const _ = __importStar(require("lodash"));
27
+ const common = __importStar(require("../../common"));
28
+ const pendingApproval_1 = require("../pendingApproval");
29
+ const debug = require('debug')('bitgo:v2:pendingApprovals');
30
+ class PendingApprovals {
31
+ constructor(bitgo, baseCoin) {
32
+ this.bitgo = bitgo;
33
+ this.baseCoin = baseCoin;
34
+ }
35
+ /**
36
+ * List the pending approvals available to the user
37
+ * @param params
38
+ */
39
+ async list(params = {}) {
40
+ common.validateParams(params, [], ['walletId', 'enterpriseId']);
41
+ const queryParams = {};
42
+ if (_.isString(params.walletId)) {
43
+ queryParams.walletId = params.walletId;
44
+ }
45
+ if (_.isString(params.enterpriseId)) {
46
+ queryParams.enterprise = params.enterpriseId;
47
+ }
48
+ if (Object.keys(queryParams).length !== 1) {
49
+ throw new Error('must provide exactly 1 of walletId or enterpriseId to get pending approvals on');
50
+ }
51
+ const body = (await this.bitgo.get(this.baseCoin.url('/pendingapprovals')).query(queryParams).result());
52
+ body.pendingApprovals = body.pendingApprovals.map((currentApproval) => new pendingApproval_1.PendingApproval(this.bitgo, this.baseCoin, currentApproval));
53
+ return body;
54
+ }
55
+ /**
56
+ * Fetch an existing pending approval
57
+ * @param params
58
+ */
59
+ async get(params = {}) {
60
+ common.validateParams(params, ['id'], []);
61
+ const approvalData = (await this.bitgo.get(this.baseCoin.url('/pendingapprovals/' + params.id)).result());
62
+ let approvalWallet;
63
+ if (approvalData.wallet) {
64
+ try {
65
+ approvalWallet = await this.baseCoin.wallets().get({ id: approvalData.wallet });
66
+ }
67
+ catch (e) {
68
+ // nothing to be done here, although it's probably noteworthy that a non-existent wallet is referenced
69
+ debug('failed to get wallet %s, referenced by pending approval %s', approvalData.wallet, params.id);
70
+ }
71
+ }
72
+ return new pendingApproval_1.PendingApproval(this.bitgo, this.baseCoin, approvalData, approvalWallet);
73
+ }
74
+ }
75
+ exports.PendingApprovals = PendingApprovals;
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZ0FwcHJvdmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9wZW5kaW5nQXBwcm92YWwvcGVuZGluZ0FwcHJvdmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCwwQ0FBNEI7QUFDNUIscURBQXVDO0FBR3ZDLHdEQU00QjtBQUU1QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUU1RCxNQUFhLGdCQUFnQjtJQUkzQixZQUFZLEtBQWdCLEVBQUUsUUFBbUI7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBc0MsRUFBRTtRQUNqRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNoRSxNQUFNLFdBQVcsR0FBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMvQixXQUFXLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDeEM7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ25DLFdBQVcsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUM5QztRQUVELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztTQUNuRztRQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFRLENBQUM7UUFDL0csSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQy9DLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUNyRixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFvQyxFQUFFO1FBQzlDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFMUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFRLENBQUM7UUFDakgsSUFBSSxjQUFjLENBQUM7UUFDbkIsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLElBQUk7Z0JBQ0YsY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDakY7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDVixzR0FBc0c7Z0JBQ3RHLEtBQUssQ0FBQyw0REFBNEQsRUFBRSxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNyRztTQUNGO1FBQ0QsT0FBTyxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RixDQUFDO0NBQ0Y7QUFyREQsNENBcURDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgY29tbW9uIGZyb20gJy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgeyBJQmFzZUNvaW4gfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHtcbiAgR2V0UGVuZGluZ0FwcHJvdmFsT3B0aW9ucyxcbiAgSVBlbmRpbmdBcHByb3ZhbHMsXG4gIExpc3RQZW5kaW5nQXBwcm92YWxzT3B0aW9ucyxcbiAgTGlzdFBlbmRpbmdBcHByb3ZhbHNSZXN1bHQsXG4gIFBlbmRpbmdBcHByb3ZhbCxcbn0gZnJvbSAnLi4vcGVuZGluZ0FwcHJvdmFsJztcblxuY29uc3QgZGVidWcgPSByZXF1aXJlKCdkZWJ1ZycpKCdiaXRnbzp2MjpwZW5kaW5nQXBwcm92YWxzJyk7XG5cbmV4cG9ydCBjbGFzcyBQZW5kaW5nQXBwcm92YWxzIGltcGxlbWVudHMgSVBlbmRpbmdBcHByb3ZhbHMge1xuICBwcml2YXRlIHJlYWRvbmx5IGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZUNvaW46IElCYXNlQ29pbjtcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luKSB7XG4gICAgdGhpcy5iaXRnbyA9IGJpdGdvO1xuICAgIHRoaXMuYmFzZUNvaW4gPSBiYXNlQ29pbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IHRoZSBwZW5kaW5nIGFwcHJvdmFscyBhdmFpbGFibGUgdG8gdGhlIHVzZXJcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgYXN5bmMgbGlzdChwYXJhbXM6IExpc3RQZW5kaW5nQXBwcm92YWxzT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxMaXN0UGVuZGluZ0FwcHJvdmFsc1Jlc3VsdD4ge1xuICAgIGNvbW1vbi52YWxpZGF0ZVBhcmFtcyhwYXJhbXMsIFtdLCBbJ3dhbGxldElkJywgJ2VudGVycHJpc2VJZCddKTtcbiAgICBjb25zdCBxdWVyeVBhcmFtczogYW55ID0ge307XG4gICAgaWYgKF8uaXNTdHJpbmcocGFyYW1zLndhbGxldElkKSkge1xuICAgICAgcXVlcnlQYXJhbXMud2FsbGV0SWQgPSBwYXJhbXMud2FsbGV0SWQ7XG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKHBhcmFtcy5lbnRlcnByaXNlSWQpKSB7XG4gICAgICBxdWVyeVBhcmFtcy5lbnRlcnByaXNlID0gcGFyYW1zLmVudGVycHJpc2VJZDtcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXMocXVlcnlQYXJhbXMpLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHByb3ZpZGUgZXhhY3RseSAxIG9mIHdhbGxldElkIG9yIGVudGVycHJpc2VJZCB0byBnZXQgcGVuZGluZyBhcHByb3ZhbHMgb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCBib2R5ID0gKGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYmFzZUNvaW4udXJsKCcvcGVuZGluZ2FwcHJvdmFscycpKS5xdWVyeShxdWVyeVBhcmFtcykucmVzdWx0KCkpIGFzIGFueTtcbiAgICBib2R5LnBlbmRpbmdBcHByb3ZhbHMgPSBib2R5LnBlbmRpbmdBcHByb3ZhbHMubWFwKFxuICAgICAgKGN1cnJlbnRBcHByb3ZhbCkgPT4gbmV3IFBlbmRpbmdBcHByb3ZhbCh0aGlzLmJpdGdvLCB0aGlzLmJhc2VDb2luLCBjdXJyZW50QXBwcm92YWwpXG4gICAgKTtcbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBhbiBleGlzdGluZyBwZW5kaW5nIGFwcHJvdmFsXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIGdldChwYXJhbXM6IEdldFBlbmRpbmdBcHByb3ZhbE9wdGlvbnMgPSB7fSk6IFByb21pc2U8UGVuZGluZ0FwcHJvdmFsPiB7XG4gICAgY29tbW9uLnZhbGlkYXRlUGFyYW1zKHBhcmFtcywgWydpZCddLCBbXSk7XG5cbiAgICBjb25zdCBhcHByb3ZhbERhdGEgPSAoYXdhaXQgdGhpcy5iaXRnby5nZXQodGhpcy5iYXNlQ29pbi51cmwoJy9wZW5kaW5nYXBwcm92YWxzLycgKyBwYXJhbXMuaWQpKS5yZXN1bHQoKSkgYXMgYW55O1xuICAgIGxldCBhcHByb3ZhbFdhbGxldDtcbiAgICBpZiAoYXBwcm92YWxEYXRhLndhbGxldCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXBwcm92YWxXYWxsZXQgPSBhd2FpdCB0aGlzLmJhc2VDb2luLndhbGxldHMoKS5nZXQoeyBpZDogYXBwcm92YWxEYXRhLndhbGxldCB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gbm90aGluZyB0byBiZSBkb25lIGhlcmUsIGFsdGhvdWdoIGl0J3MgcHJvYmFibHkgbm90ZXdvcnRoeSB0aGF0IGEgbm9uLWV4aXN0ZW50IHdhbGxldCBpcyByZWZlcmVuY2VkXG4gICAgICAgIGRlYnVnKCdmYWlsZWQgdG8gZ2V0IHdhbGxldCAlcywgcmVmZXJlbmNlZCBieSBwZW5kaW5nIGFwcHJvdmFsICVzJywgYXBwcm92YWxEYXRhLndhbGxldCwgcGFyYW1zLmlkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBQZW5kaW5nQXBwcm92YWwodGhpcy5iaXRnbywgdGhpcy5iYXNlQ29pbiwgYXBwcm92YWxEYXRhLCBhcHByb3ZhbFdhbGxldCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './initiate';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/recovery/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./initiate"), exports);
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vcmVjb3ZlcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbml0aWF0ZSc7XG4iXX0=