@bitgo/sdk-core 1.1.0-rc.2 → 1.1.0-rc.5

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 (283) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/src/account-lib/baseCoin/errors.d.ts +0 -6
  3. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -1
  4. package/dist/src/account-lib/baseCoin/errors.js +2 -11
  5. package/dist/src/account-lib/baseCoin/iface.d.ts +2 -9
  6. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
  7. package/dist/src/account-lib/baseCoin/iface.js +1 -1
  8. package/dist/src/account-lib/index.d.ts +1 -0
  9. package/dist/src/account-lib/index.d.ts.map +1 -1
  10. package/dist/src/account-lib/index.js +2 -1
  11. package/dist/src/account-lib/mpc/curves/baseCurve.d.ts +19 -0
  12. package/dist/src/account-lib/mpc/curves/baseCurve.d.ts.map +1 -0
  13. package/dist/src/account-lib/mpc/curves/baseCurve.js +6 -0
  14. package/dist/src/account-lib/mpc/curves/ed25519.d.ts +17 -0
  15. package/dist/src/account-lib/mpc/curves/ed25519.d.ts.map +1 -0
  16. package/dist/src/account-lib/mpc/curves/ed25519.js +57 -0
  17. package/dist/src/account-lib/mpc/curves/index.d.ts +6 -0
  18. package/dist/src/account-lib/mpc/curves/index.d.ts.map +1 -0
  19. package/dist/src/account-lib/mpc/curves/index.js +8 -0
  20. package/dist/src/account-lib/mpc/curves/secp256k1.d.ts +16 -0
  21. package/dist/src/account-lib/mpc/curves/secp256k1.d.ts.map +1 -0
  22. package/dist/src/account-lib/mpc/curves/secp256k1.js +66 -0
  23. package/dist/src/account-lib/mpc/hdTree.d.ts +24 -0
  24. package/dist/src/account-lib/mpc/hdTree.d.ts.map +1 -0
  25. package/dist/src/account-lib/mpc/hdTree.js +94 -0
  26. package/dist/src/account-lib/mpc/index.d.ts +7 -0
  27. package/dist/src/account-lib/mpc/index.d.ts.map +1 -0
  28. package/dist/src/account-lib/mpc/index.js +23 -0
  29. package/dist/src/account-lib/mpc/shamir.d.ts +26 -0
  30. package/dist/src/account-lib/mpc/shamir.d.ts.map +1 -0
  31. package/dist/src/account-lib/mpc/shamir.js +86 -0
  32. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +29 -0
  33. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -0
  34. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +273 -0
  35. package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts +4 -0
  36. package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts.map +1 -0
  37. package/dist/src/account-lib/mpc/tss/eddsa/index.js +30 -0
  38. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +70 -0
  39. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -0
  40. package/dist/src/account-lib/mpc/tss/eddsa/types.js +3 -0
  41. package/dist/src/account-lib/mpc/tss/index.d.ts +5 -0
  42. package/dist/src/account-lib/mpc/tss/index.d.ts.map +1 -0
  43. package/dist/src/account-lib/mpc/tss/index.js +32 -0
  44. package/dist/src/account-lib/mpc/util.d.ts +8 -0
  45. package/dist/src/account-lib/mpc/util.d.ts.map +1 -0
  46. package/dist/src/account-lib/mpc/util.js +42 -0
  47. package/dist/src/api/bip32path.d.ts +24 -0
  48. package/dist/src/api/bip32path.d.ts.map +1 -0
  49. package/dist/src/api/bip32path.js +45 -0
  50. package/dist/src/api/index.d.ts +3 -0
  51. package/dist/src/api/index.d.ts.map +1 -0
  52. package/dist/src/{v2 → api}/index.js +2 -2
  53. package/dist/src/api/types.d.ts +20 -0
  54. package/dist/src/api/types.d.ts.map +1 -0
  55. package/dist/src/api/types.js +3 -0
  56. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +230 -0
  57. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -0
  58. package/dist/src/bitgo/baseCoin/baseCoin.js +292 -0
  59. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +257 -0
  60. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -0
  61. package/dist/src/bitgo/baseCoin/iBaseCoin.js +3 -0
  62. package/dist/src/bitgo/baseCoin/index.d.ts +3 -0
  63. package/dist/src/bitgo/baseCoin/index.d.ts.map +1 -0
  64. package/dist/src/bitgo/baseCoin/index.js +15 -0
  65. package/dist/src/bitgo/bip32util.d.ts +17 -0
  66. package/dist/src/bitgo/bip32util.d.ts.map +1 -0
  67. package/dist/src/bitgo/bip32util.js +59 -0
  68. package/dist/src/bitgo/bitcoin.d.ts +16 -0
  69. package/dist/src/bitgo/bitcoin.d.ts.map +1 -0
  70. package/dist/src/bitgo/bitcoin.js +52 -0
  71. package/dist/src/bitgo/bitgoBase.d.ts +22 -0
  72. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -0
  73. package/dist/src/bitgo/bitgoBase.js +3 -0
  74. package/dist/src/bitgo/config.d.ts +8 -0
  75. package/dist/src/bitgo/config.d.ts.map +1 -0
  76. package/dist/src/bitgo/config.js +25 -0
  77. package/dist/src/bitgo/ecdh.d.ts +24 -0
  78. package/dist/src/bitgo/ecdh.d.ts.map +1 -0
  79. package/dist/src/bitgo/ecdh.js +80 -0
  80. package/dist/src/bitgo/enterprise/enterprise.d.ts +64 -0
  81. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -0
  82. package/dist/src/bitgo/enterprise/enterprise.js +120 -0
  83. package/dist/src/bitgo/enterprise/enterprises.d.ts +25 -0
  84. package/dist/src/bitgo/enterprise/enterprises.d.ts.map +1 -0
  85. package/dist/src/bitgo/enterprise/enterprises.js +70 -0
  86. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +15 -0
  87. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -0
  88. package/dist/src/bitgo/enterprise/iEnterprise.js +3 -0
  89. package/dist/src/bitgo/enterprise/iEnterprises.d.ts +10 -0
  90. package/dist/src/bitgo/enterprise/iEnterprises.d.ts.map +1 -0
  91. package/dist/src/bitgo/enterprise/iEnterprises.js +3 -0
  92. package/dist/src/bitgo/enterprise/index.d.ts +5 -0
  93. package/dist/src/bitgo/enterprise/index.d.ts.map +1 -0
  94. package/dist/src/bitgo/enterprise/index.js +17 -0
  95. package/dist/src/{v2 → bitgo}/environments.d.ts +0 -0
  96. package/dist/src/bitgo/environments.d.ts.map +1 -0
  97. package/dist/src/bitgo/environments.js +142 -0
  98. package/dist/src/bitgo/errors.d.ts +83 -0
  99. package/dist/src/bitgo/errors.d.ts.map +1 -0
  100. package/dist/src/bitgo/errors.js +163 -0
  101. package/dist/src/bitgo/index.d.ts +25 -0
  102. package/dist/src/bitgo/index.d.ts.map +1 -0
  103. package/dist/src/bitgo/index.js +50 -0
  104. package/dist/src/bitgo/internal/index.d.ts +3 -0
  105. package/dist/src/bitgo/internal/index.d.ts.map +1 -0
  106. package/dist/src/bitgo/internal/index.js +15 -0
  107. package/dist/src/bitgo/internal/internal.d.ts +19 -0
  108. package/dist/src/bitgo/internal/internal.d.ts.map +1 -0
  109. package/dist/src/bitgo/internal/internal.js +33 -0
  110. package/dist/src/bitgo/internal/keycard.d.ts +33 -0
  111. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -0
  112. package/dist/src/bitgo/internal/keycard.js +304 -0
  113. package/dist/src/bitgo/keychain/iKeychains.d.ts +118 -0
  114. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -0
  115. package/dist/src/bitgo/keychain/iKeychains.js +10 -0
  116. package/dist/src/bitgo/keychain/index.d.ts +3 -0
  117. package/dist/src/bitgo/keychain/index.d.ts.map +1 -0
  118. package/dist/src/bitgo/keychain/index.js +15 -0
  119. package/dist/src/bitgo/keychain/keychains.d.ts +90 -0
  120. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -0
  121. package/dist/src/bitgo/keychain/keychains.js +280 -0
  122. package/dist/src/bitgo/market/iMarkets.d.ts +12 -0
  123. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -0
  124. package/dist/src/bitgo/market/iMarkets.js +3 -0
  125. package/dist/src/bitgo/market/index.d.ts +3 -0
  126. package/dist/src/bitgo/market/index.d.ts.map +1 -0
  127. package/dist/src/bitgo/market/index.js +15 -0
  128. package/dist/src/bitgo/market/markets.d.ts +29 -0
  129. package/dist/src/bitgo/market/markets.d.ts.map +1 -0
  130. package/dist/src/bitgo/market/markets.js +70 -0
  131. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +73 -0
  132. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -0
  133. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +28 -0
  134. package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts +16 -0
  135. package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts.map +1 -0
  136. package/dist/src/bitgo/pendingApproval/iPendingApprovals.js +3 -0
  137. package/dist/src/bitgo/pendingApproval/index.d.ts +5 -0
  138. package/dist/src/bitgo/pendingApproval/index.d.ts.map +1 -0
  139. package/dist/src/bitgo/pendingApproval/index.js +17 -0
  140. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +99 -0
  141. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -0
  142. package/dist/src/bitgo/pendingApproval/pendingApproval.js +319 -0
  143. package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts +19 -0
  144. package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts.map +1 -0
  145. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +76 -0
  146. package/dist/src/bitgo/recovery/index.d.ts +2 -0
  147. package/dist/src/bitgo/recovery/index.d.ts.map +1 -0
  148. package/dist/src/bitgo/recovery/index.js +14 -0
  149. package/dist/src/bitgo/recovery/initiate.d.ts +49 -0
  150. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -0
  151. package/dist/src/bitgo/recovery/initiate.js +119 -0
  152. package/dist/src/bitgo/trading/affirmation.d.ts +35 -0
  153. package/dist/src/bitgo/trading/affirmation.d.ts.map +1 -0
  154. package/dist/src/bitgo/trading/affirmation.js +53 -0
  155. package/dist/src/bitgo/trading/affirmations.d.ts +23 -0
  156. package/dist/src/bitgo/trading/affirmations.d.ts.map +1 -0
  157. package/dist/src/bitgo/trading/affirmations.js +45 -0
  158. package/dist/src/bitgo/trading/iAffirmation.d.ts +15 -0
  159. package/dist/src/bitgo/trading/iAffirmation.d.ts.map +1 -0
  160. package/dist/src/bitgo/trading/iAffirmation.js +13 -0
  161. package/dist/src/bitgo/trading/iAffirmations.d.ts +10 -0
  162. package/dist/src/bitgo/trading/iAffirmations.d.ts.map +1 -0
  163. package/dist/src/bitgo/trading/iAffirmations.js +3 -0
  164. package/dist/src/bitgo/trading/iSettlement.d.ts +25 -0
  165. package/dist/src/bitgo/trading/iSettlement.d.ts.map +1 -0
  166. package/dist/src/bitgo/trading/iSettlement.js +17 -0
  167. package/dist/src/bitgo/trading/iSettlements.d.ts +19 -0
  168. package/dist/src/bitgo/trading/iSettlements.d.ts.map +1 -0
  169. package/dist/src/bitgo/trading/iSettlements.js +3 -0
  170. package/dist/src/bitgo/trading/iTradingAccount.d.ts +41 -0
  171. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -0
  172. package/dist/src/bitgo/trading/iTradingAccount.js +3 -0
  173. package/dist/src/bitgo/trading/iTradingPartner.d.ts +14 -0
  174. package/dist/src/bitgo/trading/iTradingPartner.d.ts.map +1 -0
  175. package/dist/src/bitgo/trading/iTradingPartner.js +17 -0
  176. package/dist/src/bitgo/trading/iTradingPartners.d.ts +15 -0
  177. package/dist/src/bitgo/trading/iTradingPartners.d.ts.map +1 -0
  178. package/dist/src/bitgo/trading/iTradingPartners.js +9 -0
  179. package/dist/src/bitgo/trading/index.d.ts +18 -0
  180. package/dist/src/bitgo/trading/index.d.ts.map +1 -0
  181. package/dist/src/bitgo/trading/index.js +30 -0
  182. package/dist/src/bitgo/trading/lock.d.ts +16 -0
  183. package/dist/src/bitgo/trading/lock.d.ts.map +1 -0
  184. package/dist/src/bitgo/trading/lock.js +12 -0
  185. package/dist/src/bitgo/trading/payload.d.ts +22 -0
  186. package/dist/src/bitgo/trading/payload.d.ts.map +1 -0
  187. package/dist/src/bitgo/trading/payload.js +3 -0
  188. package/dist/src/bitgo/trading/settlement.d.ts +16 -0
  189. package/dist/src/bitgo/trading/settlement.d.ts.map +1 -0
  190. package/dist/src/bitgo/trading/settlement.js +21 -0
  191. package/dist/src/bitgo/trading/settlements.d.ts +32 -0
  192. package/dist/src/bitgo/trading/settlements.d.ts.map +1 -0
  193. package/dist/src/bitgo/trading/settlements.js +61 -0
  194. package/dist/src/bitgo/trading/trade.d.ts +29 -0
  195. package/dist/src/bitgo/trading/trade.d.ts.map +1 -0
  196. package/dist/src/bitgo/trading/trade.js +11 -0
  197. package/dist/src/bitgo/trading/tradingAccount.d.ts +53 -0
  198. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -0
  199. package/dist/src/bitgo/trading/tradingAccount.js +127 -0
  200. package/dist/src/bitgo/trading/tradingPartner.d.ts +26 -0
  201. package/dist/src/bitgo/trading/tradingPartner.d.ts.map +1 -0
  202. package/dist/src/bitgo/trading/tradingPartner.js +31 -0
  203. package/dist/src/bitgo/trading/tradingPartners.d.ts +24 -0
  204. package/dist/src/bitgo/trading/tradingPartners.d.ts.map +1 -0
  205. package/dist/src/bitgo/trading/tradingPartners.js +32 -0
  206. package/dist/src/bitgo/tss.d.ts +127 -0
  207. package/dist/src/bitgo/tss.d.ts.map +1 -0
  208. package/dist/src/bitgo/tss.js +261 -0
  209. package/dist/src/bitgo/types.d.ts +4 -0
  210. package/dist/src/bitgo/types.d.ts.map +1 -0
  211. package/dist/src/bitgo/types.js +3 -0
  212. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +6 -0
  213. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -0
  214. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +30 -0
  215. package/dist/src/bitgo/utils/blsUtils.d.ts +51 -0
  216. package/dist/src/bitgo/utils/blsUtils.d.ts.map +1 -0
  217. package/dist/src/bitgo/utils/blsUtils.js +166 -0
  218. package/dist/src/bitgo/utils/iBlsUtils.d.ts +14 -0
  219. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +1 -0
  220. package/dist/src/bitgo/utils/iBlsUtils.js +3 -0
  221. package/dist/src/bitgo/utils/iTssUtils.d.ts +64 -0
  222. package/dist/src/bitgo/utils/iTssUtils.d.ts.map +1 -0
  223. package/dist/src/bitgo/utils/iTssUtils.js +10 -0
  224. package/dist/src/bitgo/utils/index.d.ts +12 -0
  225. package/dist/src/bitgo/utils/index.d.ts.map +1 -0
  226. package/dist/src/bitgo/utils/index.js +37 -0
  227. package/dist/src/bitgo/utils/mpcUtils.d.ts +31 -0
  228. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -0
  229. package/dist/src/bitgo/utils/mpcUtils.js +55 -0
  230. package/dist/src/bitgo/utils/opengpgUtils.d.ts +51 -0
  231. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -0
  232. package/dist/src/bitgo/utils/opengpgUtils.js +136 -0
  233. package/dist/src/bitgo/utils/promise-utils.d.ts +5 -0
  234. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -0
  235. package/dist/src/bitgo/utils/promise-utils.js +12 -0
  236. package/dist/src/bitgo/utils/tssUtils.d.ts +117 -0
  237. package/dist/src/bitgo/utils/tssUtils.d.ts.map +1 -0
  238. package/dist/src/bitgo/utils/tssUtils.js +348 -0
  239. package/dist/src/bitgo/utils/util.d.ts +77 -0
  240. package/dist/src/bitgo/utils/util.d.ts.map +1 -0
  241. package/dist/src/bitgo/utils/util.js +198 -0
  242. package/dist/src/bitgo/wallet/iWallet.d.ts +510 -0
  243. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -0
  244. package/dist/src/bitgo/wallet/iWallet.js +3 -0
  245. package/dist/src/bitgo/wallet/iWallets.d.ts +105 -0
  246. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -0
  247. package/dist/src/bitgo/wallet/iWallets.js +3 -0
  248. package/dist/src/bitgo/wallet/index.d.ts +5 -0
  249. package/dist/src/bitgo/wallet/index.d.ts.map +1 -0
  250. package/dist/src/bitgo/wallet/index.js +17 -0
  251. package/dist/src/bitgo/wallet/wallet.d.ts +650 -0
  252. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -0
  253. package/dist/src/bitgo/wallet/wallet.js +2024 -0
  254. package/dist/src/bitgo/wallet/wallets.d.ts +134 -0
  255. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -0
  256. package/dist/src/bitgo/wallet/wallets.js +605 -0
  257. package/dist/src/bitgo/webhook/iWebhooks.d.ts +26 -0
  258. package/dist/src/bitgo/webhook/iWebhooks.d.ts.map +1 -0
  259. package/dist/src/bitgo/webhook/iWebhooks.js +3 -0
  260. package/dist/src/bitgo/webhook/index.d.ts +3 -0
  261. package/dist/src/bitgo/webhook/index.d.ts.map +1 -0
  262. package/dist/src/bitgo/webhook/index.js +15 -0
  263. package/dist/src/bitgo/webhook/webhooks.d.ts +43 -0
  264. package/dist/src/bitgo/webhook/webhooks.d.ts.map +1 -0
  265. package/dist/src/bitgo/webhook/webhooks.js +102 -0
  266. package/dist/src/bitgojsError.d.ts +4 -0
  267. package/dist/src/bitgojsError.d.ts.map +1 -0
  268. package/dist/src/bitgojsError.js +11 -0
  269. package/dist/src/common.d.ts +1 -1
  270. package/dist/src/common.d.ts.map +1 -1
  271. package/dist/src/common.js +3 -3
  272. package/dist/src/index.d.ts +3 -2
  273. package/dist/src/index.d.ts.map +1 -1
  274. package/dist/src/index.js +5 -5
  275. package/dist/tsconfig.tsbuildinfo +2343 -217
  276. package/package.json +11 -4
  277. package/dist/src/v2/environments.d.ts.map +0 -1
  278. package/dist/src/v2/environments.js +0 -142
  279. package/dist/src/v2/index.d.ts +0 -3
  280. package/dist/src/v2/index.d.ts.map +0 -1
  281. package/dist/src/v2/types.d.ts +0 -2
  282. package/dist/src/v2/types.d.ts.map +0 -1
  283. package/dist/src/v2/types.js +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iKeychains.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/keychain/iKeychains.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,oBAAY,OAAO,GAAG,KAAK,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB,CAAC,EAAE,GAAG,CAAC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,oBAAY,UAAU;IACpB,IAAI,IAAI;IACR,MAAM,IAAI;IACV,KAAK,IAAI;CACV;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjE,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzE,4BAA4B,CAAC,MAAM,CAAC,EAAE,mCAAmC,GAAG,QAAQ,CAAC;IACrF,MAAM,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;IAC5C,GAAG,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpD,WAAW,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,YAAY,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,iBAAiB,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1E,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChE"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyIndices = void 0;
4
+ var KeyIndices;
5
+ (function (KeyIndices) {
6
+ KeyIndices[KeyIndices["USER"] = 0] = "USER";
7
+ KeyIndices[KeyIndices["BACKUP"] = 1] = "BACKUP";
8
+ KeyIndices[KeyIndices["BITGO"] = 2] = "BITGO";
9
+ })(KeyIndices = exports.KeyIndices || (exports.KeyIndices = {}));
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaUtleWNoYWlucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9rZXljaGFpbi9pS2V5Y2hhaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQStHQSxJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsMkNBQVEsQ0FBQTtJQUNSLCtDQUFVLENBQUE7SUFDViw2Q0FBUyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBSXJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVJlcXVlc3RUcmFjZXIgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgS2V5UGFpciwgS2V5Y2hhaW5zVHJpcGxldCB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi93YWxsZXQnO1xuXG5leHBvcnQgdHlwZSBLZXlUeXBlID0gJ3RzcycgfCAnaW5kZXBlbmRlbnQnIHwgJ2Jsc2RrZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Y2hhaW4ge1xuICBpZDogc3RyaW5nO1xuICBwdWI6IHN0cmluZztcbiAgcHJ2Pzogc3RyaW5nO1xuICBwcm92aWRlcj86IHN0cmluZztcbiAgZW5jcnlwdGVkUHJ2Pzogc3RyaW5nO1xuICBkZXJpdmF0aW9uUGF0aD86IHN0cmluZztcbiAgZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZD86IHN0cmluZztcbiAgY29tbW9uUHViPzogc3RyaW5nO1xuICBjb21tb25LZXljaGFpbj86IHN0cmluZztcbiAga2V5U2hhcmVzPzogS2V5U2hhcmVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VkS2V5Y2hhaW5zIHtcbiAgW3B1YmtleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RLZXljaGFpbnNSZXN1bHQge1xuICBrZXlzOiBLZXljaGFpbltdO1xuICBuZXh0QmF0Y2hQcmV2SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0S2V5Y2hhaW5PcHRpb25zIHtcbiAgaWQ6IHN0cmluZztcbiAgeHB1Yj86IHN0cmluZztcbiAgZXRoQWRkcmVzcz86IHN0cmluZztcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0S2V5Y2hhaW5PcHRpb25zIHtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIHByZXZJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVQYXNzd29yZE9wdGlvbnMge1xuICBvbGRQYXNzd29yZDogc3RyaW5nO1xuICBuZXdQYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVNpbmdsZUtleWNoYWluUGFzc3dvcmRPcHRpb25zIHtcbiAga2V5Y2hhaW4/OiBLZXljaGFpbjtcbiAgb2xkUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIG5ld1Bhc3N3b3JkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZEtleWNoYWluT3B0aW9ucyB7XG4gIHB1Yj86IHN0cmluZztcbiAgY29tbW9uUHViPzogc3RyaW5nO1xuICBjb21tb25LZXljaGFpbj86IHN0cmluZztcbiAgZW5jcnlwdGVkUHJ2Pzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBrZXlUeXBlPzogS2V5VHlwZTtcbiAgc291cmNlPzogc3RyaW5nO1xuICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQ/OiBhbnk7XG4gIGRpc2FibGVLUlNFbWFpbD86IGJvb2xlYW47XG4gIHByb3ZpZGVyPzogc3RyaW5nO1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICBrcnNTcGVjaWZpYz86IGFueTtcbiAga2V5U2hhcmVzPzogS2V5U2hhcmVbXTtcbiAgdXNlckdQR1B1YmxpY0tleT86IHN0cmluZztcbiAgYmFja3VwR1BHUHVibGljS2V5Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgS2V5U2hhcmUge1xuICBmcm9tOiBzdHJpbmc7XG4gIHRvOiBzdHJpbmc7XG4gIHB1YmxpY1NoYXJlOiBzdHJpbmc7XG4gIHByaXZhdGVTaGFyZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUJhY2t1cE9wdGlvbnMge1xuICBwcm92aWRlcj86IHN0cmluZztcbiAgc291cmNlPzogc3RyaW5nO1xuICBkaXNhYmxlS1JTRW1haWw/OiBib29sZWFuO1xuICBrcnNTcGVjaWZpYz86IGFueTtcbiAgdHlwZT86IHN0cmluZztcbiAga2V5VHlwZT86IEtleVR5cGU7XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG4gIGNvbW1vblB1Yj86IHN0cmluZztcbiAgY29tbW9uS2V5Y2hhaW4/OiBzdHJpbmc7XG4gIHBydj86IHN0cmluZztcbiAgZW5jcnlwdGVkUHJ2Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUJpdEdvT3B0aW9ucyB7XG4gIHNvdXJjZT86ICdiaXRnbyc7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG4gIGtleVR5cGU/OiBLZXlUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU1wY09wdGlvbnMge1xuICBtdWx0aXNpZ1R5cGU6ICdvbmNoYWluJyB8ICd0c3MnIHwgJ2Jsc2RrZyc7XG4gIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEtleXNGb3JTaWduaW5nT3B0aW9ucyB7XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG4gIHdhbGxldD86IElXYWxsZXQ7XG59XG5cbmV4cG9ydCBlbnVtIEtleUluZGljZXMge1xuICBVU0VSID0gMCxcbiAgQkFDS1VQID0gMSxcbiAgQklUR08gPSAyLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElLZXljaGFpbnMge1xuICBnZXQocGFyYW1zOiBHZXRLZXljaGFpbk9wdGlvbnMpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgbGlzdChwYXJhbXM/OiBMaXN0S2V5Y2hhaW5PcHRpb25zKTogUHJvbWlzZTxMaXN0S2V5Y2hhaW5zUmVzdWx0PjtcbiAgdXBkYXRlUGFzc3dvcmQocGFyYW1zOiBVcGRhdGVQYXNzd29yZE9wdGlvbnMpOiBQcm9taXNlPENoYW5nZWRLZXljaGFpbnM+O1xuICB1cGRhdGVTaW5nbGVLZXljaGFpblBhc3N3b3JkKHBhcmFtcz86IFVwZGF0ZVNpbmdsZUtleWNoYWluUGFzc3dvcmRPcHRpb25zKTogS2V5Y2hhaW47XG4gIGNyZWF0ZShwYXJhbXM/OiB7IHNlZWQ/OiBCdWZmZXIgfSk6IEtleVBhaXI7XG4gIGFkZChwYXJhbXM/OiBBZGRLZXljaGFpbk9wdGlvbnMpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlQml0R28ocGFyYW1zPzogQ3JlYXRlQml0R29PcHRpb25zKTogUHJvbWlzZTxLZXljaGFpbj47XG4gIGNyZWF0ZUJhY2t1cChwYXJhbXM/OiBDcmVhdGVCYWNrdXBPcHRpb25zKTogUHJvbWlzZTxLZXljaGFpbj47XG4gIGdldEtleXNGb3JTaWduaW5nKHBhcmFtcz86IEdldEtleXNGb3JTaWduaW5nT3B0aW9ucyk6IFByb21pc2U8S2V5Y2hhaW5bXT47XG4gIGNyZWF0ZU1wYyhwYXJhbXM6IENyZWF0ZU1wY09wdGlvbnMpOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+O1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './iKeychains';
2
+ export * from './keychains';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/keychain/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,15 @@
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("./iKeychains"), exports);
14
+ __exportStar(require("./keychains"), exports);
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28va2V5Y2hhaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTZCO0FBQzdCLDhDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaUtleWNoYWlucyc7XG5leHBvcnQgKiBmcm9tICcuL2tleWNoYWlucyc7XG4iXX0=
@@ -0,0 +1,90 @@
1
+ /// <reference types="node" />
2
+ import { IBaseCoin, KeychainsTriplet, KeyPair } from '../baseCoin';
3
+ import { BitGoBase } from '../bitgoBase';
4
+ import { AddKeychainOptions, ChangedKeychains, CreateBackupOptions, CreateBitGoOptions, CreateMpcOptions, GetKeychainOptions, GetKeysForSigningOptions, IKeychains, Keychain, ListKeychainOptions, ListKeychainsResult, UpdatePasswordOptions, UpdateSingleKeychainPasswordOptions } from './iKeychains';
5
+ export declare class Keychains implements IKeychains {
6
+ private readonly bitgo;
7
+ private readonly baseCoin;
8
+ constructor(bitgo: BitGoBase, baseCoin: IBaseCoin);
9
+ /**
10
+ * Get a keychain by ID
11
+ * @param params
12
+ * @param params.id
13
+ * @param params.xpub (optional)
14
+ * @param params.ethAddress (optional)
15
+ * @param params.reqId (optional)
16
+ */
17
+ get(params: GetKeychainOptions): Promise<Keychain>;
18
+ /**
19
+ * list the users keychains
20
+ * @param params
21
+ * @param params.limit - Max number of results in a single call.
22
+ * @param params.prevId - Continue iterating (provided by nextBatchPrevId in the previous list)
23
+ * @returns {*}
24
+ */
25
+ list(params?: ListKeychainOptions): Promise<ListKeychainsResult>;
26
+ /**
27
+ * Change the decryption password for all possible keychains associated with a user.
28
+ *
29
+ * This function iterates through all keys associated with the user, decrypts
30
+ * them with the old password and re-encrypts them with the new password.
31
+ *
32
+ * This should be called when a user changes their login password, and are expecting
33
+ * that their wallet passwords are changed to match the new login password.
34
+ *
35
+ * @param params
36
+ * @param params.oldPassword - The old password used for encrypting the key
37
+ * @param params.newPassword - The new password to be used for encrypting the key
38
+ * @returns changedKeys Object - e.g.:
39
+ * {
40
+ * xpub1: encryptedPrv,
41
+ * ...
42
+ * }
43
+ */
44
+ updatePassword(params: UpdatePasswordOptions): Promise<ChangedKeychains>;
45
+ /**
46
+ * Update the password used to decrypt a single keychain
47
+ * @param params
48
+ * @param params.keychain - The keychain whose password should be updated
49
+ * @param params.oldPassword - The old password used for encrypting the key
50
+ * @param params.newPassword - The new password to be used for encrypting the key
51
+ * @returns {object}
52
+ */
53
+ updateSingleKeychainPassword(params?: UpdateSingleKeychainPasswordOptions): Keychain;
54
+ /**
55
+ * Create a public/private key pair
56
+ * @param params.seed
57
+ */
58
+ create(params?: {
59
+ seed?: Buffer;
60
+ }): KeyPair;
61
+ /**
62
+ * Add a keychain to BitGo's records
63
+ * @param params
64
+ */
65
+ add(params?: AddKeychainOptions): Promise<Keychain>;
66
+ /**
67
+ * Create a BitGo key
68
+ * @param params (empty)
69
+ */
70
+ createBitGo(params?: CreateBitGoOptions): Promise<Keychain>;
71
+ /**
72
+ * Create a backup key
73
+ * @param params
74
+ * @param params.provider (optional)
75
+ */
76
+ createBackup(params?: CreateBackupOptions): Promise<Keychain>;
77
+ /**
78
+ * Gets keys for signing from a wallet
79
+ * @param params
80
+ * @returns {Promise<Keychain[]>}
81
+ */
82
+ getKeysForSigning(params?: GetKeysForSigningOptions): Promise<Keychain[]>;
83
+ /**
84
+ * Convenience function to create and store MPC keychains with BitGo.
85
+ * @param params passphrase used to encrypt secret materials
86
+ * @return {Promise<KeychainsTriplet>} newly created User, Backup, and BitGo keys
87
+ */
88
+ createMpc(params: CreateMpcOptions): Promise<KeychainsTriplet>;
89
+ }
90
+ //# sourceMappingURL=keychains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keychains.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/keychain/keychains.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,UAAU,EACV,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,mCAAmC,EACpC,MAAM,cAAc,CAAC;AAEtB,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;gBAEzB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;IAKjD;;;;;;;OAOG;IACG,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAcxD;;;;;;OAMG;IACG,IAAI,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmB1E;;;;;;;;;;;;;;;;;OAiBG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqC9E;;;;;;;OAOG;IACH,4BAA4B,CAAC,MAAM,GAAE,mCAAwC,GAAG,QAAQ;IAwBxF;;;OAGG;IACH,MAAM,CAAC,MAAM,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO;IAI/C;;;OAGG;IACG,GAAG,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiD7D;;;OAGG;IACG,WAAW,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAOrE;;;;OAIG;IACG,YAAY,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAevE;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,GAAE,wBAA6B,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAWnF;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwBrE"}
@@ -0,0 +1,280 @@
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.Keychains = void 0;
23
+ const _ = __importStar(require("lodash"));
24
+ const common = __importStar(require("../../common"));
25
+ const utils_1 = require("../utils");
26
+ class Keychains {
27
+ constructor(bitgo, baseCoin) {
28
+ this.bitgo = bitgo;
29
+ this.baseCoin = baseCoin;
30
+ }
31
+ /**
32
+ * Get a keychain by ID
33
+ * @param params
34
+ * @param params.id
35
+ * @param params.xpub (optional)
36
+ * @param params.ethAddress (optional)
37
+ * @param params.reqId (optional)
38
+ */
39
+ async get(params) {
40
+ common.validateParams(params, [], ['xpub', 'ethAddress']);
41
+ if (_.isUndefined(params.id)) {
42
+ throw new Error('id must be defined');
43
+ }
44
+ const id = params.id;
45
+ if (params.reqId) {
46
+ this.bitgo.setRequestTracer(params.reqId);
47
+ }
48
+ return await this.bitgo.get(this.baseCoin.url('/key/' + encodeURIComponent(id))).result();
49
+ }
50
+ /**
51
+ * list the users keychains
52
+ * @param params
53
+ * @param params.limit - Max number of results in a single call.
54
+ * @param params.prevId - Continue iterating (provided by nextBatchPrevId in the previous list)
55
+ * @returns {*}
56
+ */
57
+ async list(params = {}) {
58
+ const queryObject = {};
59
+ if (!_.isUndefined(params.limit)) {
60
+ if (!_.isNumber(params.limit)) {
61
+ throw new Error('invalid limit argument, expecting number');
62
+ }
63
+ queryObject.limit = params.limit;
64
+ }
65
+ if (!_.isUndefined(params.prevId)) {
66
+ if (!_.isString(params.prevId)) {
67
+ throw new Error('invalid prevId argument, expecting string');
68
+ }
69
+ queryObject.prevId = params.prevId;
70
+ }
71
+ return this.bitgo.get(this.baseCoin.url('/key')).query(queryObject).result();
72
+ }
73
+ /**
74
+ * Change the decryption password for all possible keychains associated with a user.
75
+ *
76
+ * This function iterates through all keys associated with the user, decrypts
77
+ * them with the old password and re-encrypts them with the new password.
78
+ *
79
+ * This should be called when a user changes their login password, and are expecting
80
+ * that their wallet passwords are changed to match the new login password.
81
+ *
82
+ * @param params
83
+ * @param params.oldPassword - The old password used for encrypting the key
84
+ * @param params.newPassword - The new password to be used for encrypting the key
85
+ * @returns changedKeys Object - e.g.:
86
+ * {
87
+ * xpub1: encryptedPrv,
88
+ * ...
89
+ * }
90
+ */
91
+ async updatePassword(params) {
92
+ common.validateParams(params, ['oldPassword', 'newPassword'], []);
93
+ const changedKeys = {};
94
+ let prevId;
95
+ let keysLeft = true;
96
+ while (keysLeft) {
97
+ const result = await this.list({ limit: 500, prevId });
98
+ for (const key of result.keys) {
99
+ const oldEncryptedPrv = key.encryptedPrv;
100
+ if (_.isUndefined(oldEncryptedPrv)) {
101
+ continue;
102
+ }
103
+ try {
104
+ const updatedKeychain = this.updateSingleKeychainPassword({
105
+ keychain: key,
106
+ oldPassword: params.oldPassword,
107
+ newPassword: params.newPassword,
108
+ });
109
+ if (updatedKeychain.encryptedPrv) {
110
+ changedKeys[updatedKeychain.pub] = updatedKeychain.encryptedPrv;
111
+ }
112
+ }
113
+ catch (e) {
114
+ // if the password was incorrect, silence the error, throw otherwise
115
+ if (!e.message.includes('private key is incorrect')) {
116
+ throw e;
117
+ }
118
+ }
119
+ }
120
+ if (result.nextBatchPrevId) {
121
+ prevId = result.nextBatchPrevId;
122
+ }
123
+ else {
124
+ keysLeft = false;
125
+ }
126
+ }
127
+ return changedKeys;
128
+ }
129
+ /**
130
+ * Update the password used to decrypt a single keychain
131
+ * @param params
132
+ * @param params.keychain - The keychain whose password should be updated
133
+ * @param params.oldPassword - The old password used for encrypting the key
134
+ * @param params.newPassword - The new password to be used for encrypting the key
135
+ * @returns {object}
136
+ */
137
+ updateSingleKeychainPassword(params = {}) {
138
+ if (!_.isString(params.oldPassword)) {
139
+ throw new Error('expected old password to be a string');
140
+ }
141
+ if (!_.isString(params.newPassword)) {
142
+ throw new Error('expected new password to be a string');
143
+ }
144
+ if (!_.isObject(params.keychain) || !_.isString(params.keychain.encryptedPrv)) {
145
+ throw new Error('expected keychain to be an object with an encryptedPrv property');
146
+ }
147
+ const oldEncryptedPrv = params.keychain.encryptedPrv;
148
+ try {
149
+ const decryptedPrv = this.bitgo.decrypt({ input: oldEncryptedPrv, password: params.oldPassword });
150
+ const newEncryptedPrv = this.bitgo.encrypt({ input: decryptedPrv, password: params.newPassword });
151
+ return _.assign({}, params.keychain, { encryptedPrv: newEncryptedPrv });
152
+ }
153
+ catch (e) {
154
+ // catching an error here means that the password was incorrect or, less likely, the input to decrypt is corrupted
155
+ throw new Error('password used to decrypt keychain private key is incorrect');
156
+ }
157
+ }
158
+ /**
159
+ * Create a public/private key pair
160
+ * @param params.seed
161
+ */
162
+ create(params = {}) {
163
+ return this.baseCoin.generateKeyPair(params.seed);
164
+ }
165
+ /**
166
+ * Add a keychain to BitGo's records
167
+ * @param params
168
+ */
169
+ async add(params = {}) {
170
+ params = params || {};
171
+ common.validateParams(params, [], [
172
+ 'pub',
173
+ 'encryptedPrv',
174
+ 'keyType',
175
+ 'type',
176
+ 'source',
177
+ 'originalPasscodeEncryptionCode',
178
+ 'enterprise',
179
+ 'derivedFromParentWithSeed',
180
+ ]);
181
+ if (!_.isUndefined(params.disableKRSEmail)) {
182
+ if (!_.isBoolean(params.disableKRSEmail)) {
183
+ throw new Error('invalid disableKRSEmail argument, expecting boolean');
184
+ }
185
+ }
186
+ if (params.reqId) {
187
+ this.bitgo.setRequestTracer(params.reqId);
188
+ }
189
+ return await this.bitgo
190
+ .post(this.baseCoin.url('/key'))
191
+ .send({
192
+ pub: params.pub,
193
+ commonPub: params.commonPub,
194
+ commonKeychain: params.commonKeychain,
195
+ encryptedPrv: params.encryptedPrv,
196
+ type: params.type,
197
+ keyType: params.keyType,
198
+ source: params.source,
199
+ provider: params.provider,
200
+ originalPasscodeEncryptionCode: params.originalPasscodeEncryptionCode,
201
+ enterprise: params.enterprise,
202
+ derivedFromParentWithSeed: params.derivedFromParentWithSeed,
203
+ disableKRSEmail: params.disableKRSEmail,
204
+ krsSpecific: params.krsSpecific,
205
+ keyShares: params.keyShares,
206
+ userGPGPublicKey: params.userGPGPublicKey,
207
+ backupGPGPublicKey: params.backupGPGPublicKey,
208
+ })
209
+ .result();
210
+ }
211
+ /**
212
+ * Create a BitGo key
213
+ * @param params (empty)
214
+ */
215
+ async createBitGo(params = {}) {
216
+ params.source = 'bitgo';
217
+ this.baseCoin.preCreateBitGo(params);
218
+ return await this.add(params);
219
+ }
220
+ /**
221
+ * Create a backup key
222
+ * @param params
223
+ * @param params.provider (optional)
224
+ */
225
+ async createBackup(params = {}) {
226
+ params.source = 'backup';
227
+ const isTssBackupKey = params.prv && params.encryptedPrv && (params.commonKeychain || params.commonPub);
228
+ if (_.isUndefined(params.provider) && !isTssBackupKey) {
229
+ // if the provider is undefined, we generate a local key and add the source details
230
+ const key = this.create();
231
+ _.extend(params, key);
232
+ }
233
+ const serverResponse = await this.add(params);
234
+ return _.extend({}, serverResponse, _.pick(params, ['prv', 'encryptedPrv', 'provider', 'source']));
235
+ }
236
+ /**
237
+ * Gets keys for signing from a wallet
238
+ * @param params
239
+ * @returns {Promise<Keychain[]>}
240
+ */
241
+ async getKeysForSigning(params = {}) {
242
+ if (!_.isObject(params.wallet)) {
243
+ throw new Error('missing required param wallet');
244
+ }
245
+ const wallet = params.wallet;
246
+ const reqId = params.reqId || new utils_1.RequestTracer();
247
+ const ids = wallet.baseCoin.keyIdsForSigning();
248
+ const keychainQueriesBluebirds = ids.map((id) => this.get({ id: wallet.keyIds()[id], reqId }));
249
+ return Promise.all(keychainQueriesBluebirds);
250
+ }
251
+ /**
252
+ * Convenience function to create and store MPC keychains with BitGo.
253
+ * @param params passphrase used to encrypt secret materials
254
+ * @return {Promise<KeychainsTriplet>} newly created User, Backup, and BitGo keys
255
+ */
256
+ async createMpc(params) {
257
+ if (_.isUndefined(params.passphrase)) {
258
+ throw new Error('missing required param passphrase');
259
+ }
260
+ let MpcUtils;
261
+ switch (params.multisigType) {
262
+ case 'tss':
263
+ MpcUtils = utils_1.TssUtils;
264
+ break;
265
+ case 'blsdkg':
266
+ MpcUtils = utils_1.BlsUtils;
267
+ break;
268
+ default:
269
+ throw new Error('Unsupported multi-sig type');
270
+ }
271
+ const mpcUtils = new MpcUtils(this.bitgo, this.baseCoin);
272
+ return await mpcUtils.createKeychains({
273
+ passphrase: params.passphrase,
274
+ enterprise: params.enterprise,
275
+ originalPasscodeEncryptionCode: params.originalPasscodeEncryptionCode,
276
+ });
277
+ }
278
+ }
279
+ exports.Keychains = Keychains;
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2tleWNoYWluL2tleWNoYWlucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQTRCO0FBQzVCLHFEQUF1QztBQUd2QyxvQ0FBNkQ7QUFpQjdELE1BQWEsU0FBUztJQUlwQixZQUFZLEtBQWdCLEVBQUUsUUFBbUI7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQTBCO1FBQ2xDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM1RixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUE4QixFQUFFO1FBQ3pDLE1B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UUFBUSxHQUFHLGdCQUFRLENBQUM7Z0JBQ3BCLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsUUFBUSxHQUFHLGdCQUFRLENBQUM7Z0JBQ3BCLE1BQU07WUFDUjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxPQUFPLE1BQU0sUUFBUSxDQUFDLGVBQWUsQ0FBQztZQUNwQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDN0IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQzdCLDhCQUE4QixFQUFFLE1BQU0sQ0FBQyw4QkFBOEI7U0FDdEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBelJELDhCQXlSQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIGNvbW1vbiBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgSUJhc2VDb2luLCBLZXljaGFpbnNUcmlwbGV0LCBLZXlQYWlyIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IEJsc1V0aWxzLCBSZXF1ZXN0VHJhY2VyLCBUc3NVdGlscyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7XG4gIEFkZEtleWNoYWluT3B0aW9ucyxcbiAgQ2hhbmdlZEtleWNoYWlucyxcbiAgQ3JlYXRlQmFja3VwT3B0aW9ucyxcbiAgQ3JlYXRlQml0R29PcHRpb25zLFxuICBDcmVhdGVNcGNPcHRpb25zLFxuICBHZXRLZXljaGFpbk9wdGlvbnMsXG4gIEdldEtleXNGb3JTaWduaW5nT3B0aW9ucyxcbiAgSUtleWNoYWlucyxcbiAgS2V5Y2hhaW4sXG4gIExpc3RLZXljaGFpbk9wdGlvbnMsXG4gIExpc3RLZXljaGFpbnNSZXN1bHQsXG4gIFVwZGF0ZVBhc3N3b3JkT3B0aW9ucyxcbiAgVXBkYXRlU2luZ2xlS2V5Y2hhaW5QYXNzd29yZE9wdGlvbnMsXG59IGZyb20gJy4vaUtleWNoYWlucyc7XG5cbmV4cG9ydCBjbGFzcyBLZXljaGFpbnMgaW1wbGVtZW50cyBJS2V5Y2hhaW5zIHtcbiAgcHJpdmF0ZSByZWFkb25seSBiaXRnbzogQml0R29CYXNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGJhc2VDb2luOiBJQmFzZUNvaW47XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgYmFzZUNvaW46IElCYXNlQ29pbikge1xuICAgIHRoaXMuYml0Z28gPSBiaXRnbztcbiAgICB0aGlzLmJhc2VDb2luID0gYmFzZUNvaW47XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEga2V5Y2hhaW4gYnkgSURcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0gcGFyYW1zLmlkXG4gICAqIEBwYXJhbSBwYXJhbXMueHB1YiAob3B0aW9uYWwpXG4gICAqIEBwYXJhbSBwYXJhbXMuZXRoQWRkcmVzcyAob3B0aW9uYWwpXG4gICAqIEBwYXJhbSBwYXJhbXMucmVxSWQgKG9wdGlvbmFsKVxuICAgKi9cbiAgYXN5bmMgZ2V0KHBhcmFtczogR2V0S2V5Y2hhaW5PcHRpb25zKTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIGNvbW1vbi52YWxpZGF0ZVBhcmFtcyhwYXJhbXMsIFtdLCBbJ3hwdWInLCAnZXRoQWRkcmVzcyddKTtcblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKHBhcmFtcy5pZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaWQgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSBwYXJhbXMuaWQ7XG4gICAgaWYgKHBhcmFtcy5yZXFJZCkge1xuICAgICAgdGhpcy5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHBhcmFtcy5yZXFJZCk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJhc2VDb2luLnVybCgnL2tleS8nICsgZW5jb2RlVVJJQ29tcG9uZW50KGlkKSkpLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGxpc3QgdGhlIHVzZXJzIGtleWNoYWluc1xuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqIEBwYXJhbSBwYXJhbXMubGltaXQgLSBNYXggbnVtYmVyIG9mIHJlc3VsdHMgaW4gYSBzaW5nbGUgY2FsbC5cbiAgICogQHBhcmFtIHBhcmFtcy5wcmV2SWQgLSBDb250aW51ZSBpdGVyYXRpbmcgKHByb3ZpZGVkIGJ5IG5leHRCYXRjaFByZXZJZCBpbiB0aGUgcHJldmlvdXMgbGlzdClcbiAgICogQHJldHVybnMgeyp9XG4gICAqL1xuICBhc3luYyBsaXN0KHBhcmFtczogTGlzdEtleWNoYWluT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxMaXN0S2V5Y2hhaW5zUmVzdWx0PiB7XG4gICAgY29uc3QgcXVlcnlPYmplY3Q6IGFueSA9IHt9O1xuXG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHBhcmFtcy5saW1pdCkpIHtcbiAgICAgIGlmICghXy5pc051bWJlcihwYXJhbXMubGltaXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBsaW1pdCBhcmd1bWVudCwgZXhwZWN0aW5nIG51bWJlcicpO1xuICAgICAgfVxuICAgICAgcXVlcnlPYmplY3QubGltaXQgPSBwYXJhbXMubGltaXQ7XG4gICAgfVxuICAgIGlmICghXy5pc1VuZGVmaW5lZChwYXJhbXMucHJldklkKSkge1xuICAgICAgaWYgKCFfLmlzU3RyaW5nKHBhcmFtcy5wcmV2SWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBwcmV2SWQgYXJndW1lbnQsIGV4cGVjdGluZyBzdHJpbmcnKTtcbiAgICAgIH1cbiAgICAgIHF1ZXJ5T2JqZWN0LnByZXZJZCA9IHBhcmFtcy5wcmV2SWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYml0Z28uZ2V0KHRoaXMuYmFzZUNvaW4udXJsKCcva2V5JykpLnF1ZXJ5KHF1ZXJ5T2JqZWN0KS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIGRlY3J5cHRpb24gcGFzc3dvcmQgZm9yIGFsbCBwb3NzaWJsZSBrZXljaGFpbnMgYXNzb2NpYXRlZCB3aXRoIGEgdXNlci5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBpdGVyYXRlcyB0aHJvdWdoIGFsbCBrZXlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlciwgZGVjcnlwdHNcbiAgICogdGhlbSB3aXRoIHRoZSBvbGQgcGFzc3dvcmQgYW5kIHJlLWVuY3J5cHRzIHRoZW0gd2l0aCB0aGUgbmV3IHBhc3N3b3JkLlxuICAgKlxuICAgKiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgd2hlbiBhIHVzZXIgY2hhbmdlcyB0aGVpciBsb2dpbiBwYXNzd29yZCwgYW5kIGFyZSBleHBlY3RpbmdcbiAgICogdGhhdCB0aGVpciB3YWxsZXQgcGFzc3dvcmRzIGFyZSBjaGFuZ2VkIHRvIG1hdGNoIHRoZSBuZXcgbG9naW4gcGFzc3dvcmQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHBhcmFtIHBhcmFtcy5vbGRQYXNzd29yZCAtIFRoZSBvbGQgcGFzc3dvcmQgdXNlZCBmb3IgZW5jcnlwdGluZyB0aGUga2V5XG4gICAqIEBwYXJhbSBwYXJhbXMubmV3UGFzc3dvcmQgLSBUaGUgbmV3IHBhc3N3b3JkIHRvIGJlIHVzZWQgZm9yIGVuY3J5cHRpbmcgdGhlIGtleVxuICAgKiBAcmV0dXJucyBjaGFuZ2VkS2V5cyBPYmplY3QgLSBlLmcuOlxuICAgKiAge1xuICAgKiAgICB4cHViMTogZW5jcnlwdGVkUHJ2LFxuICAgKiAgICAuLi5cbiAgICogIH1cbiAgICovXG4gIGFzeW5jIHVwZGF0ZVBhc3N3b3JkKHBhcmFtczogVXBkYXRlUGFzc3dvcmRPcHRpb25zKTogUHJvbWlzZTxDaGFuZ2VkS2V5Y2hhaW5zPiB7XG4gICAgY29tbW9uLnZhbGlkYXRlUGFyYW1zKHBhcmFtcywgWydvbGRQYXNzd29yZCcsICduZXdQYXNzd29yZCddLCBbXSk7XG4gICAgY29uc3QgY2hhbmdlZEtleXM6IENoYW5nZWRLZXljaGFpbnMgPSB7fTtcbiAgICBsZXQgcHJldklkO1xuICAgIGxldCBrZXlzTGVmdCA9IHRydWU7XG4gICAgd2hpbGUgKGtleXNMZWZ0KSB7XG4gICAgICBjb25zdCByZXN1bHQ6IExpc3RLZXljaGFpbnNSZXN1bHQgPSBhd2FpdCB0aGlzLmxpc3QoeyBsaW1pdDogNTAwLCBwcmV2SWQgfSk7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiByZXN1bHQua2V5cykge1xuICAgICAgICBjb25zdCBvbGRFbmNyeXB0ZWRQcnYgPSBrZXkuZW5jcnlwdGVkUHJ2O1xuICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChvbGRFbmNyeXB0ZWRQcnYpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkS2V5Y2hhaW4gPSB0aGlzLnVwZGF0ZVNpbmdsZUtleWNoYWluUGFzc3dvcmQoe1xuICAgICAgICAgICAga2V5Y2hhaW46IGtleSxcbiAgICAgICAgICAgIG9sZFBhc3N3b3JkOiBwYXJhbXMub2xkUGFzc3dvcmQsXG4gICAgICAgICAgICBuZXdQYXNzd29yZDogcGFyYW1zLm5ld1Bhc3N3b3JkLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICh1cGRhdGVkS2V5Y2hhaW4uZW5jcnlwdGVkUHJ2KSB7XG4gICAgICAgICAgICBjaGFuZ2VkS2V5c1t1cGRhdGVkS2V5Y2hhaW4ucHViXSA9IHVwZGF0ZWRLZXljaGFpbi5lbmNyeXB0ZWRQcnY7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gaWYgdGhlIHBhc3N3b3JkIHdhcyBpbmNvcnJlY3QsIHNpbGVuY2UgdGhlIGVycm9yLCB0aHJvdyBvdGhlcndpc2VcbiAgICAgICAgICBpZiAoIWUubWVzc2FnZS5pbmNsdWRlcygncHJpdmF0ZSBrZXkgaXMgaW5jb3JyZWN0JykpIHtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0Lm5leHRCYXRjaFByZXZJZCkge1xuICAgICAgICBwcmV2SWQgPSByZXN1bHQubmV4dEJhdGNoUHJldklkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAga2V5c0xlZnQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNoYW5nZWRLZXlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgcGFzc3dvcmQgdXNlZCB0byBkZWNyeXB0IGEgc2luZ2xlIGtleWNoYWluXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHBhcmFtIHBhcmFtcy5rZXljaGFpbiAtIFRoZSBrZXljaGFpbiB3aG9zZSBwYXNzd29yZCBzaG91bGQgYmUgdXBkYXRlZFxuICAgKiBAcGFyYW0gcGFyYW1zLm9sZFBhc3N3b3JkIC0gVGhlIG9sZCBwYXNzd29yZCB1c2VkIGZvciBlbmNyeXB0aW5nIHRoZSBrZXlcbiAgICogQHBhcmFtIHBhcmFtcy5uZXdQYXNzd29yZCAtIFRoZSBuZXcgcGFzc3dvcmQgdG8gYmUgdXNlZCBmb3IgZW5jcnlwdGluZyB0aGUga2V5XG4gICAqIEByZXR1cm5zIHtvYmplY3R9XG4gICAqL1xuICB1cGRhdGVTaW5nbGVLZXljaGFpblBhc3N3b3JkKHBhcmFtczogVXBkYXRlU2luZ2xlS2V5Y2hhaW5QYXNzd29yZE9wdGlvbnMgPSB7fSk6IEtleWNoYWluIHtcbiAgICBpZiAoIV8uaXNTdHJpbmcocGFyYW1zLm9sZFBhc3N3b3JkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCBvbGQgcGFzc3dvcmQgdG8gYmUgYSBzdHJpbmcnKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNTdHJpbmcocGFyYW1zLm5ld1Bhc3N3b3JkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCBuZXcgcGFzc3dvcmQgdG8gYmUgYSBzdHJpbmcnKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNPYmplY3QocGFyYW1zLmtleWNoYWluKSB8fCAhXy5pc1N0cmluZyhwYXJhbXMua2V5Y2hhaW4uZW5jcnlwdGVkUHJ2KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCBrZXljaGFpbiB0byBiZSBhbiBvYmplY3Qgd2l0aCBhbiBlbmNyeXB0ZWRQcnYgcHJvcGVydHknKTtcbiAgICB9XG5cbiAgICBjb25zdCBvbGRFbmNyeXB0ZWRQcnYgPSBwYXJhbXMua2V5Y2hhaW4uZW5jcnlwdGVkUHJ2O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNyeXB0ZWRQcnYgPSB0aGlzLmJpdGdvLmRlY3J5cHQoeyBpbnB1dDogb2xkRW5jcnlwdGVkUHJ2LCBwYXNzd29yZDogcGFyYW1zLm9sZFBhc3N3b3JkIH0pO1xuICAgICAgY29uc3QgbmV3RW5jcnlwdGVkUHJ2ID0gdGhpcy5iaXRnby5lbmNyeXB0KHsgaW5wdXQ6IGRlY3J5cHRlZFBydiwgcGFzc3dvcmQ6IHBhcmFtcy5uZXdQYXNzd29yZCB9KTtcbiAgICAgIHJldHVybiBfLmFzc2lnbih7fSwgcGFyYW1zLmtleWNoYWluLCB7IGVuY3J5cHRlZFBydjogbmV3RW5jcnlwdGVkUHJ2IH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGNhdGNoaW5nIGFuIGVycm9yIGhlcmUgbWVhbnMgdGhhdCB0aGUgcGFzc3dvcmQgd2FzIGluY29ycmVjdCBvciwgbGVzcyBsaWtlbHksIHRoZSBpbnB1dCB0byBkZWNyeXB0IGlzIGNvcnJ1cHRlZFxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwYXNzd29yZCB1c2VkIHRvIGRlY3J5cHQga2V5Y2hhaW4gcHJpdmF0ZSBrZXkgaXMgaW5jb3JyZWN0Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHB1YmxpYy9wcml2YXRlIGtleSBwYWlyXG4gICAqIEBwYXJhbSBwYXJhbXMuc2VlZFxuICAgKi9cbiAgY3JlYXRlKHBhcmFtczogeyBzZWVkPzogQnVmZmVyIH0gPSB7fSk6IEtleVBhaXIge1xuICAgIHJldHVybiB0aGlzLmJhc2VDb2luLmdlbmVyYXRlS2V5UGFpcihwYXJhbXMuc2VlZCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEga2V5Y2hhaW4gdG8gQml0R28ncyByZWNvcmRzXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIGFkZChwYXJhbXM6IEFkZEtleWNoYWluT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7fTtcbiAgICBjb21tb24udmFsaWRhdGVQYXJhbXMoXG4gICAgICBwYXJhbXMsXG4gICAgICBbXSxcbiAgICAgIFtcbiAgICAgICAgJ3B1YicsXG4gICAgICAgICdlbmNyeXB0ZWRQcnYnLFxuICAgICAgICAna2V5VHlwZScsXG4gICAgICAgICd0eXBlJyxcbiAgICAgICAgJ3NvdXJjZScsXG4gICAgICAgICdvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUnLFxuICAgICAgICAnZW50ZXJwcmlzZScsXG4gICAgICAgICdkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkJyxcbiAgICAgIF1cbiAgICApO1xuXG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHBhcmFtcy5kaXNhYmxlS1JTRW1haWwpKSB7XG4gICAgICBpZiAoIV8uaXNCb29sZWFuKHBhcmFtcy5kaXNhYmxlS1JTRW1haWwpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBkaXNhYmxlS1JTRW1haWwgYXJndW1lbnQsIGV4cGVjdGluZyBib29sZWFuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcy5yZXFJZCkge1xuICAgICAgdGhpcy5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHBhcmFtcy5yZXFJZCk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAucG9zdCh0aGlzLmJhc2VDb2luLnVybCgnL2tleScpKVxuICAgICAgLnNlbmQoe1xuICAgICAgICBwdWI6IHBhcmFtcy5wdWIsXG4gICAgICAgIGNvbW1vblB1YjogcGFyYW1zLmNvbW1vblB1YixcbiAgICAgICAgY29tbW9uS2V5Y2hhaW46IHBhcmFtcy5jb21tb25LZXljaGFpbixcbiAgICAgICAgZW5jcnlwdGVkUHJ2OiBwYXJhbXMuZW5jcnlwdGVkUHJ2LFxuICAgICAgICB0eXBlOiBwYXJhbXMudHlwZSxcbiAgICAgICAga2V5VHlwZTogcGFyYW1zLmtleVR5cGUsXG4gICAgICAgIHNvdXJjZTogcGFyYW1zLnNvdXJjZSxcbiAgICAgICAgcHJvdmlkZXI6IHBhcmFtcy5wcm92aWRlcixcbiAgICAgICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlOiBwYXJhbXMub3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlLFxuICAgICAgICBlbnRlcnByaXNlOiBwYXJhbXMuZW50ZXJwcmlzZSxcbiAgICAgICAgZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZDogcGFyYW1zLmRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQsXG4gICAgICAgIGRpc2FibGVLUlNFbWFpbDogcGFyYW1zLmRpc2FibGVLUlNFbWFpbCxcbiAgICAgICAga3JzU3BlY2lmaWM6IHBhcmFtcy5rcnNTcGVjaWZpYyxcbiAgICAgICAga2V5U2hhcmVzOiBwYXJhbXMua2V5U2hhcmVzLFxuICAgICAgICB1c2VyR1BHUHVibGljS2V5OiBwYXJhbXMudXNlckdQR1B1YmxpY0tleSxcbiAgICAgICAgYmFja3VwR1BHUHVibGljS2V5OiBwYXJhbXMuYmFja3VwR1BHUHVibGljS2V5LFxuICAgICAgfSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBCaXRHbyBrZXlcbiAgICogQHBhcmFtIHBhcmFtcyAoZW1wdHkpXG4gICAqL1xuICBhc3luYyBjcmVhdGVCaXRHbyhwYXJhbXM6IENyZWF0ZUJpdEdvT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxLZXljaGFpbj4ge1xuICAgIHBhcmFtcy5zb3VyY2UgPSAnYml0Z28nO1xuXG4gICAgdGhpcy5iYXNlQ29pbi5wcmVDcmVhdGVCaXRHbyhwYXJhbXMgYXMgYW55KTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5hZGQocGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBiYWNrdXAga2V5XG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHBhcmFtIHBhcmFtcy5wcm92aWRlciAob3B0aW9uYWwpXG4gICAqL1xuICBhc3luYyBjcmVhdGVCYWNrdXAocGFyYW1zOiBDcmVhdGVCYWNrdXBPcHRpb25zID0ge30pOiBQcm9taXNlPEtleWNoYWluPiB7XG4gICAgcGFyYW1zLnNvdXJjZSA9ICdiYWNrdXAnO1xuXG4gICAgY29uc3QgaXNUc3NCYWNrdXBLZXkgPSBwYXJhbXMucHJ2ICYmIHBhcmFtcy5lbmNyeXB0ZWRQcnYgJiYgKHBhcmFtcy5jb21tb25LZXljaGFpbiB8fCBwYXJhbXMuY29tbW9uUHViKTtcblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKHBhcmFtcy5wcm92aWRlcikgJiYgIWlzVHNzQmFja3VwS2V5KSB7XG4gICAgICAvLyBpZiB0aGUgcHJvdmlkZXIgaXMgdW5kZWZpbmVkLCB3ZSBnZW5lcmF0ZSBhIGxvY2FsIGtleSBhbmQgYWRkIHRoZSBzb3VyY2UgZGV0YWlsc1xuICAgICAgY29uc3Qga2V5ID0gdGhpcy5jcmVhdGUoKTtcbiAgICAgIF8uZXh0ZW5kKHBhcmFtcywga2V5KTtcbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2ZXJSZXNwb25zZSA9IGF3YWl0IHRoaXMuYWRkKHBhcmFtcyk7XG4gICAgcmV0dXJuIF8uZXh0ZW5kKHt9LCBzZXJ2ZXJSZXNwb25zZSwgXy5waWNrKHBhcmFtcywgWydwcnYnLCAnZW5jcnlwdGVkUHJ2JywgJ3Byb3ZpZGVyJywgJ3NvdXJjZSddKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBrZXlzIGZvciBzaWduaW5nIGZyb20gYSB3YWxsZXRcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxLZXljaGFpbltdPn1cbiAgICovXG4gIGFzeW5jIGdldEtleXNGb3JTaWduaW5nKHBhcmFtczogR2V0S2V5c0ZvclNpZ25pbmdPcHRpb25zID0ge30pOiBQcm9taXNlPEtleWNoYWluW10+IHtcbiAgICBpZiAoIV8uaXNPYmplY3QocGFyYW1zLndhbGxldCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBwYXJhbSB3YWxsZXQnKTtcbiAgICB9XG4gICAgY29uc3Qgd2FsbGV0ID0gcGFyYW1zLndhbGxldDtcbiAgICBjb25zdCByZXFJZCA9IHBhcmFtcy5yZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIGNvbnN0IGlkcyA9IHdhbGxldC5iYXNlQ29pbi5rZXlJZHNGb3JTaWduaW5nKCk7XG4gICAgY29uc3Qga2V5Y2hhaW5RdWVyaWVzQmx1ZWJpcmRzID0gaWRzLm1hcCgoaWQpID0+IHRoaXMuZ2V0KHsgaWQ6IHdhbGxldC5rZXlJZHMoKVtpZF0sIHJlcUlkIH0pKTtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoa2V5Y2hhaW5RdWVyaWVzQmx1ZWJpcmRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0byBjcmVhdGUgYW5kIHN0b3JlIE1QQyBrZXljaGFpbnMgd2l0aCBCaXRHby5cbiAgICogQHBhcmFtIHBhcmFtcyBwYXNzcGhyYXNlIHVzZWQgdG8gZW5jcnlwdCBzZWNyZXQgbWF0ZXJpYWxzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8S2V5Y2hhaW5zVHJpcGxldD59IG5ld2x5IGNyZWF0ZWQgVXNlciwgQmFja3VwLCBhbmQgQml0R28ga2V5c1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlTXBjKHBhcmFtczogQ3JlYXRlTXBjT3B0aW9ucyk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD4ge1xuICAgIGlmIChfLmlzVW5kZWZpbmVkKHBhcmFtcy5wYXNzcGhyYXNlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIHBhcmFtIHBhc3NwaHJhc2UnKTtcbiAgICB9XG5cbiAgICBsZXQgTXBjVXRpbHM7XG4gICAgc3dpdGNoIChwYXJhbXMubXVsdGlzaWdUeXBlKSB7XG4gICAgICBjYXNlICd0c3MnOlxuICAgICAgICBNcGNVdGlscyA9IFRzc1V0aWxzO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Jsc2RrZyc6XG4gICAgICAgIE1wY1V0aWxzID0gQmxzVXRpbHM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBtdWx0aS1zaWcgdHlwZScpO1xuICAgIH1cblxuICAgIGNvbnN0IG1wY1V0aWxzID0gbmV3IE1wY1V0aWxzKHRoaXMuYml0Z28sIHRoaXMuYmFzZUNvaW4pO1xuICAgIHJldHVybiBhd2FpdCBtcGNVdGlscy5jcmVhdGVLZXljaGFpbnMoe1xuICAgICAgcGFzc3BocmFzZTogcGFyYW1zLnBhc3NwaHJhc2UsXG4gICAgICBlbnRlcnByaXNlOiBwYXJhbXMuZW50ZXJwcmlzZSxcbiAgICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZTogcGFyYW1zLm9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,12 @@
1
+ export declare type LatestOptions = any;
2
+ export declare type YesterdayOptions = any;
3
+ export interface LastDaysOptions {
4
+ currencyName: string;
5
+ days?: string;
6
+ }
7
+ export interface IMarkets {
8
+ latest(params: LatestOptions): Promise<any>;
9
+ yesterday(params: YesterdayOptions): Promise<any>;
10
+ lastDays(params: LastDaysOptions): Promise<any>;
11
+ }
12
+ //# sourceMappingURL=iMarkets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iMarkets.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/market/iMarkets.ts"],"names":[],"mappings":"AAEA,oBAAY,aAAa,GAAG,GAAG,CAAC;AAIhC,oBAAY,gBAAgB,GAAG,GAAG,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACjD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaU1hcmtldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vbWFya2V0L2lNYXJrZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuLy8gZXhwb3J0IGludGVyZmFjZSBMYXRlc3RPcHRpb25zIHt9XG5leHBvcnQgdHlwZSBMYXRlc3RPcHRpb25zID0gYW55O1xuXG4vLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuLy8gZXhwb3J0IGludGVyZmFjZSBZZXN0ZXJkYXlPcHRpb25zIHt9XG5leHBvcnQgdHlwZSBZZXN0ZXJkYXlPcHRpb25zID0gYW55O1xuXG5leHBvcnQgaW50ZXJmYWNlIExhc3REYXlzT3B0aW9ucyB7XG4gIGN1cnJlbmN5TmFtZTogc3RyaW5nO1xuICBkYXlzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYXJrZXRzIHtcbiAgbGF0ZXN0KHBhcmFtczogTGF0ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgeWVzdGVyZGF5KHBhcmFtczogWWVzdGVyZGF5T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgbGFzdERheXMocGFyYW1zOiBMYXN0RGF5c09wdGlvbnMpOiBQcm9taXNlPGFueT47XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './iMarkets';
2
+ export * from './markets';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/market/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,15 @@
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("./iMarkets"), exports);
14
+ __exportStar(require("./markets"), exports);
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vbWFya2V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lNYXJrZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vbWFya2V0cyc7XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { IBaseCoin } from '../baseCoin';
2
+ import { BitGoBase } from '../bitgoBase';
3
+ import { IMarkets, LastDaysOptions, LatestOptions, YesterdayOptions } from '../market';
4
+ export declare class Markets implements IMarkets {
5
+ private readonly bitgo;
6
+ private readonly baseCoin;
7
+ constructor(bitgo: BitGoBase, baseCoin: IBaseCoin);
8
+ /**
9
+ * Get the latest price data
10
+ * @param params {}
11
+ * @returns {*} an object containing price and volume data from the
12
+ * current day in a number of currencies
13
+ **/
14
+ latest(params: LatestOptions): Promise<any>;
15
+ /**
16
+ * Get yesterday's price data
17
+ * @param params {}
18
+ * @returns {*} an object containing price and volume data from the
19
+ * previous day in a number of currencies
20
+ */
21
+ yesterday(params: YesterdayOptions): Promise<any>;
22
+ /**
23
+ * Get price data from up to 90 days prior to today
24
+ * @param params { currencyName: the code for the desired currency, for example USD }
25
+ * @returns {*} an object containing average prices from a number of previous days
26
+ */
27
+ lastDays(params: LastDaysOptions): Promise<any>;
28
+ }
29
+ //# sourceMappingURL=markets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/market/markets.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEvF,qBAAa,OAAQ,YAAW,QAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;gBAElB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;IAKxD;;;;;QAKI;IACE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjD;;;;;OAKG;IACG,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD;;;;OAIG;IACG,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAWtD"}
@@ -0,0 +1,70 @@
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.Markets = void 0;
23
+ /**
24
+ * Markets Object
25
+ * BitGo accessor to Bitcoin market data.
26
+ *
27
+ * Copyright 2022, BitGo, Inc. All Rights Reserved.
28
+ *
29
+ * @prettier
30
+ */
31
+ const common = __importStar(require("../../common"));
32
+ class Markets {
33
+ constructor(bitgo, baseCoin) {
34
+ this.bitgo = bitgo;
35
+ this.baseCoin = baseCoin;
36
+ }
37
+ /**
38
+ * Get the latest price data
39
+ * @param params {}
40
+ * @returns {*} an object containing price and volume data from the
41
+ * current day in a number of currencies
42
+ **/
43
+ async latest(params) {
44
+ return await this.bitgo.get(this.baseCoin.url('/market/latest')).result();
45
+ }
46
+ /**
47
+ * Get yesterday's price data
48
+ * @param params {}
49
+ * @returns {*} an object containing price and volume data from the
50
+ * previous day in a number of currencies
51
+ */
52
+ async yesterday(params) {
53
+ return await this.bitgo.get(this.baseCoin.url('/market/yesterday')).result();
54
+ }
55
+ /**
56
+ * Get price data from up to 90 days prior to today
57
+ * @param params { currencyName: the code for the desired currency, for example USD }
58
+ * @returns {*} an object containing average prices from a number of previous days
59
+ */
60
+ async lastDays(params) {
61
+ common.validateParams(params, ['currencyName'], []);
62
+ const days = params.days && !isNaN(parseInt(params.days, 10)) ? parseInt(params.days, 10) : 90;
63
+ if (days && days < 0) {
64
+ throw new Error('must use a non-negative number of days');
65
+ }
66
+ return this.bitgo.get(this.baseCoin.url('/market/last/' + days + '/' + params.currencyName)).result();
67
+ }
68
+ }
69
+ exports.Markets = Markets;
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9tYXJrZXQvbWFya2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7R0FPRztBQUNILHFEQUF1QztBQUt2QyxNQUFhLE9BQU87SUFJbEIsWUFBbUIsS0FBZ0IsRUFBRSxRQUFtQjtRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7O1FBS0k7SUFDSixLQUFLLENBQUMsTUFBTSxDQUFDLE1BQXFCO1FBQ2hDLE9BQU8sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUF3QjtRQUN0QyxPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQy9FLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUF1QjtRQUNwQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXBELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUUvRixJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUMzRDtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDeEcsQ0FBQztDQUNGO0FBN0NELDBCQTZDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWFya2V0cyBPYmplY3RcbiAqIEJpdEdvIGFjY2Vzc29yIHRvIEJpdGNvaW4gbWFya2V0IGRhdGEuXG4gKlxuICogQ29weXJpZ2h0IDIwMjIsIEJpdEdvLCBJbmMuICBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBjb21tb24gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IElCYXNlQ29pbiB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBJTWFya2V0cywgTGFzdERheXNPcHRpb25zLCBMYXRlc3RPcHRpb25zLCBZZXN0ZXJkYXlPcHRpb25zIH0gZnJvbSAnLi4vbWFya2V0JztcblxuZXhwb3J0IGNsYXNzIE1hcmtldHMgaW1wbGVtZW50cyBJTWFya2V0cyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYml0Z286IEJpdEdvQmFzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlQ29pbjogSUJhc2VDb2luO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luKSB7XG4gICAgdGhpcy5iaXRnbyA9IGJpdGdvO1xuICAgIHRoaXMuYmFzZUNvaW4gPSBiYXNlQ29pbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxhdGVzdCBwcmljZSBkYXRhXG4gICAqIEBwYXJhbSBwYXJhbXMge31cbiAgICogQHJldHVybnMgeyp9IGFuIG9iamVjdCBjb250YWluaW5nIHByaWNlIGFuZCB2b2x1bWUgZGF0YSBmcm9tIHRoZVxuICAgKiBjdXJyZW50IGRheSBpbiBhIG51bWJlciBvZiBjdXJyZW5jaWVzXG4gICAqKi9cbiAgYXN5bmMgbGF0ZXN0KHBhcmFtczogTGF0ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYmFzZUNvaW4udXJsKCcvbWFya2V0L2xhdGVzdCcpKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgeWVzdGVyZGF5J3MgcHJpY2UgZGF0YVxuICAgKiBAcGFyYW0gcGFyYW1zIHt9XG4gICAqIEByZXR1cm5zIHsqfSBhbiBvYmplY3QgY29udGFpbmluZyBwcmljZSBhbmQgdm9sdW1lIGRhdGEgZnJvbSB0aGVcbiAgICogcHJldmlvdXMgZGF5IGluIGEgbnVtYmVyIG9mIGN1cnJlbmNpZXNcbiAgICovXG4gIGFzeW5jIHllc3RlcmRheShwYXJhbXM6IFllc3RlcmRheU9wdGlvbnMpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJhc2VDb2luLnVybCgnL21hcmtldC95ZXN0ZXJkYXknKSkucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHByaWNlIGRhdGEgZnJvbSB1cCB0byA5MCBkYXlzIHByaW9yIHRvIHRvZGF5XG4gICAqIEBwYXJhbSBwYXJhbXMgeyBjdXJyZW5jeU5hbWU6IHRoZSBjb2RlIGZvciB0aGUgZGVzaXJlZCBjdXJyZW5jeSwgZm9yIGV4YW1wbGUgVVNEIH1cbiAgICogQHJldHVybnMgeyp9IGFuIG9iamVjdCBjb250YWluaW5nIGF2ZXJhZ2UgcHJpY2VzIGZyb20gYSBudW1iZXIgb2YgcHJldmlvdXMgZGF5c1xuICAgKi9cbiAgYXN5bmMgbGFzdERheXMocGFyYW1zOiBMYXN0RGF5c09wdGlvbnMpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbW1vbi52YWxpZGF0ZVBhcmFtcyhwYXJhbXMsIFsnY3VycmVuY3lOYW1lJ10sIFtdKTtcblxuICAgIGNvbnN0IGRheXMgPSBwYXJhbXMuZGF5cyAmJiAhaXNOYU4ocGFyc2VJbnQocGFyYW1zLmRheXMsIDEwKSkgPyBwYXJzZUludChwYXJhbXMuZGF5cywgMTApIDogOTA7XG5cbiAgICBpZiAoZGF5cyAmJiBkYXlzIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHVzZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIgb2YgZGF5cycpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh0aGlzLmJhc2VDb2luLnVybCgnL21hcmtldC9sYXN0LycgKyBkYXlzICsgJy8nICsgcGFyYW1zLmN1cnJlbmN5TmFtZSkpLnJlc3VsdCgpO1xuICB9XG59XG4iXX0=