@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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaUJsc1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL2lCbHNVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VyaWFsaXplZEtleVBhaXIgfSBmcm9tICdvcGVucGdwJztcbmltcG9ydCB7IElCbHNLZXlQYWlyLCBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgS2V5Y2hhaW4gfSBmcm9tICcuLi9rZXljaGFpbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJsc1V0aWxzIHtcbiAgY3JlYXRlVXNlcktleWNoYWluKFxuICAgIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgdXNlcktleVNoYXJlOiBJQmxzS2V5UGFpcixcbiAgICBiYWNrdXBLZXlTaGFyZTogSUJsc0tleVBhaXIsXG4gICAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4sXG4gICAgcGFzc3BocmFzZTogc3RyaW5nLFxuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZTogc3RyaW5nXG4gICk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBjcmVhdGVCYWNrdXBLZXljaGFpbihcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogSUJsc0tleVBhaXIsXG4gICAgYmFja3VwS2V5U2hhcmU6IElCbHNLZXlQYWlyLFxuICAgIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluLFxuICAgIHBhc3NwaHJhc2U6IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlQml0Z29LZXljaGFpbihcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogSUJsc0tleVBhaXIsXG4gICAgYmFja3VwS2V5U2hhcmU6IElCbHNLZXlQYWlyLFxuICAgIGVudGVycHJpc2U6IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD47XG59XG4iXX0=
@@ -0,0 +1,64 @@
1
+ import type { SerializedKeyPair } from 'openpgp';
2
+ import { KeyShare } from '../../account-lib/mpc/tss';
3
+ import { IRequestTracer } from '../../api';
4
+ import { KeychainsTriplet } from '../baseCoin';
5
+ import { Keychain } from '../keychain';
6
+ import { Memo } from '../wallet';
7
+ export interface PrebuildTransactionWithIntentOptions {
8
+ reqId: IRequestTracer;
9
+ intentType: string;
10
+ sequenceId?: string;
11
+ recipients: {
12
+ address: string;
13
+ amount: string | number;
14
+ }[];
15
+ comment?: string;
16
+ memo?: Memo;
17
+ tokenName?: string;
18
+ nonce?: string;
19
+ }
20
+ export interface TxRequest {
21
+ txRequestId: string;
22
+ unsignedTxs: {
23
+ serializedTxHex: string;
24
+ signableHex: string;
25
+ feeInfo?: {
26
+ fee: number;
27
+ feeString: string;
28
+ };
29
+ derivationPath: string;
30
+ }[];
31
+ signatureShares?: SignatureShareRecord[];
32
+ apiVersion?: string;
33
+ }
34
+ export declare enum SignatureShareType {
35
+ USER = "user",
36
+ BACKUP = "backup",
37
+ BITGO = "bitgo"
38
+ }
39
+ export interface SignatureShareRecord {
40
+ from: SignatureShareType;
41
+ to: SignatureShareType;
42
+ share: string;
43
+ }
44
+ export interface ITssUtils {
45
+ createUserKeychain(userGpgKey: SerializedKeyPair<string>, userKeyShare: KeyShare, backupKeyShare: KeyShare, bitgoKeychain: Keychain, passphrase: string, originalPasscodeEncryptionCode: string): Promise<Keychain>;
46
+ createBackupKeychain(userGpgKey: SerializedKeyPair<string>, userKeyShare: KeyShare, backupKeyShare: KeyShare, bitgoKeychain: Keychain, passphrase: string): Promise<Keychain>;
47
+ createBitgoKeychain(userGpgKey: SerializedKeyPair<string>, userKeyShare: KeyShare, backupKeyShare: KeyShare, enterprise: string): Promise<Keychain>;
48
+ createKeychains(params: {
49
+ passphrase: string;
50
+ enterprise?: string;
51
+ originalPasscodeEncryptionCode?: string;
52
+ }): Promise<KeychainsTriplet>;
53
+ signTxRequest(params: {
54
+ txRequest: string | TxRequest;
55
+ prv: string;
56
+ reqId: IRequestTracer;
57
+ }): Promise<TxRequest>;
58
+ prebuildTxWithIntent(params: PrebuildTransactionWithIntentOptions, apiVersion?: string): Promise<TxRequest>;
59
+ deleteSignatureShares(txRequestId: string): Promise<SignatureShareRecord[]>;
60
+ sendTxRequest(txRequestId: string): Promise<any>;
61
+ recreateTxRequest(txRequestId: string, decryptedPrv: string, reqId: IRequestTracer): Promise<TxRequest>;
62
+ getTxRequest(txRequestId: string): Promise<TxRequest>;
63
+ }
64
+ //# sourceMappingURL=iTssUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iTssUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/iTssUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SignatureShareType = void 0;
4
+ var SignatureShareType;
5
+ (function (SignatureShareType) {
6
+ SignatureShareType["USER"] = "user";
7
+ SignatureShareType["BACKUP"] = "backup";
8
+ SignatureShareType["BITGO"] = "bitgo";
9
+ })(SignatureShareType = exports.SignatureShareType || (exports.SignatureShareType = {}));
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaVRzc1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL2lUc3NVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxQ0EsSUFBWSxrQkFJWDtBQUpELFdBQVksa0JBQWtCO0lBQzVCLG1DQUFhLENBQUE7SUFDYix1Q0FBaUIsQ0FBQTtJQUNqQixxQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxrQkFBa0IsR0FBbEIsMEJBQWtCLEtBQWxCLDBCQUFrQixRQUk3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEtleVBhaXIgfSBmcm9tICdvcGVucGdwJztcbmltcG9ydCB7IEtleVNoYXJlIH0gZnJvbSAnLi4vLi4vYWNjb3VudC1saWIvbXBjL3Rzcyc7XG5pbXBvcnQgeyBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgS2V5Y2hhaW4gfSBmcm9tICcuLi9rZXljaGFpbic7XG5pbXBvcnQgeyBNZW1vIH0gZnJvbSAnLi4vd2FsbGV0JztcblxuZXhwb3J0IGludGVyZmFjZSBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMge1xuICByZXFJZDogSVJlcXVlc3RUcmFjZXI7XG4gIGludGVudFR5cGU6IHN0cmluZztcbiAgc2VxdWVuY2VJZD86IHN0cmluZztcbiAgcmVjaXBpZW50czoge1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICBhbW91bnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgfVtdO1xuICBjb21tZW50Pzogc3RyaW5nO1xuICBtZW1vPzogTWVtbztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICBub25jZT86IHN0cmluZztcbn1cblxuLy8gY29tcGxldGUgd2l0aCBtb3JlIHByb3BzIGlmIG5lY2Nlc2FyeVxuZXhwb3J0IGludGVyZmFjZSBUeFJlcXVlc3Qge1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xuICB1bnNpZ25lZFR4czoge1xuICAgIHNlcmlhbGl6ZWRUeEhleDogc3RyaW5nO1xuICAgIHNpZ25hYmxlSGV4OiBzdHJpbmc7XG4gICAgZmVlSW5mbz86IHtcbiAgICAgIGZlZTogbnVtYmVyO1xuICAgICAgZmVlU3RyaW5nOiBzdHJpbmc7XG4gICAgfTtcbiAgICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICB9W107XG4gIHNpZ25hdHVyZVNoYXJlcz86IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gIGFwaVZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFNpZ25hdHVyZVNoYXJlVHlwZSB7XG4gIFVTRVIgPSAndXNlcicsXG4gIEJBQ0tVUCA9ICdiYWNrdXAnLFxuICBCSVRHTyA9ICdiaXRnbycsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlU2hhcmVSZWNvcmQge1xuICBmcm9tOiBTaWduYXR1cmVTaGFyZVR5cGU7XG4gIHRvOiBTaWduYXR1cmVTaGFyZVR5cGU7XG4gIHNoYXJlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRzc1V0aWxzIHtcbiAgY3JlYXRlVXNlcktleWNoYWluKFxuICAgIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgdXNlcktleVNoYXJlOiBLZXlTaGFyZSxcbiAgICBiYWNrdXBLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4sXG4gICAgcGFzc3BocmFzZTogc3RyaW5nLFxuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZTogc3RyaW5nXG4gICk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBjcmVhdGVCYWNrdXBLZXljaGFpbihcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgYmFja3VwS2V5U2hhcmU6IEtleVNoYXJlLFxuICAgIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluLFxuICAgIHBhc3NwaHJhc2U6IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlQml0Z29LZXljaGFpbihcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgYmFja3VwS2V5U2hhcmU6IEtleVNoYXJlLFxuICAgIGVudGVycHJpc2U6IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD47XG4gIHNpZ25UeFJlcXVlc3QocGFyYW1zOiB7IHR4UmVxdWVzdDogc3RyaW5nIHwgVHhSZXF1ZXN0OyBwcnY6IHN0cmluZzsgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyIH0pOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIHByZWJ1aWxkVHhXaXRoSW50ZW50KHBhcmFtczogUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLCBhcGlWZXJzaW9uPzogc3RyaW5nKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBkZWxldGVTaWduYXR1cmVTaGFyZXModHhSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmRbXT47XG4gIHNlbmRUeFJlcXVlc3QodHhSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgcmVjcmVhdGVUeFJlcXVlc3QodHhSZXF1ZXN0SWQ6IHN0cmluZywgZGVjcnlwdGVkUHJ2OiBzdHJpbmcsIHJlcUlkOiBJUmVxdWVzdFRyYWNlcik6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgZ2V0VHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFR4UmVxdWVzdD47XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import * as openpgpUtils from './opengpgUtils';
2
+ export * from './abstractUtxoCoinUtil';
3
+ export * from './blsUtils';
4
+ export * from './iBlsUtils';
5
+ export * from './iTssUtils';
6
+ export * from './mpcUtils';
7
+ export * from './opengpgUtils';
8
+ export * from './promise-utils';
9
+ export * from './tssUtils';
10
+ export * from './util';
11
+ export { openpgpUtils };
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAE/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,37 @@
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
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
22
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.openpgpUtils = void 0;
26
+ const openpgpUtils = __importStar(require("./opengpgUtils"));
27
+ exports.openpgpUtils = openpgpUtils;
28
+ __exportStar(require("./abstractUtxoCoinUtil"), exports);
29
+ __exportStar(require("./blsUtils"), exports);
30
+ __exportStar(require("./iBlsUtils"), exports);
31
+ __exportStar(require("./iTssUtils"), exports);
32
+ __exportStar(require("./mpcUtils"), exports);
33
+ __exportStar(require("./opengpgUtils"), exports);
34
+ __exportStar(require("./promise-utils"), exports);
35
+ __exportStar(require("./tssUtils"), exports);
36
+ __exportStar(require("./util"), exports);
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErQztBQVl0QyxvQ0FBWTtBQVZyQix5REFBdUM7QUFDdkMsNkNBQTJCO0FBQzNCLDhDQUE0QjtBQUM1Qiw4Q0FBNEI7QUFDNUIsNkNBQTJCO0FBQzNCLGlEQUErQjtBQUMvQixrREFBZ0M7QUFDaEMsNkNBQTJCO0FBQzNCLHlDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9wZW5wZ3BVdGlscyBmcm9tICcuL29wZW5ncGdVdGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWJzdHJhY3RVdHhvQ29pblV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9ibHNVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2lCbHNVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2lUc3NVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL21wY1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vb3BlbmdwZ1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvbWlzZS11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3Rzc1V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbCc7XG5cbmV4cG9ydCB7IG9wZW5wZ3BVdGlscyB9O1xuIl19
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { SerializedKeyPair } from 'openpgp';
5
+ import { IBaseCoin, KeychainsTriplet } from '../baseCoin';
6
+ import { BitGoBase } from '../bitgoBase';
7
+ import { Keychain, KeyType } from '../keychain';
8
+ export interface MpcKeyShare {
9
+ publicShare: string;
10
+ privateShare: string;
11
+ }
12
+ export declare abstract class MpcUtils {
13
+ protected bitgo: BitGoBase;
14
+ protected baseCoin: IBaseCoin;
15
+ constructor(bitgo: BitGoBase, baseCoin: IBaseCoin);
16
+ protected decryptPrivateShare(privateShare: string, userGpgKey: SerializedKeyPair<string>): Promise<string>;
17
+ protected createBitgoKeychainInWP(userGpgKey: SerializedKeyPair<string>, userKeyShare: MpcKeyShare, backupKeyShare: MpcKeyShare, keyType: KeyType, enterprise?: string): Promise<Keychain>;
18
+ /**
19
+ * Creates User, Backup, and BitGo MPC Keychains.
20
+ *
21
+ * @param params.passphrase - passphrase used to encrypt signing materials created for User and Backup
22
+ * @param params.enterprise - optional enterprise id that will be attached to the BitGo Keychain
23
+ * @param params.originalPasscodeEncryptionCode - optional encryption code used to reset the user's password, if absent, password recovery will not work
24
+ */
25
+ abstract createKeychains(params: {
26
+ passphrase: string;
27
+ enterprise?: string;
28
+ originalPasscodeEncryptionCode?: string;
29
+ }): Promise<KeychainsTriplet>;
30
+ }
31
+ //# sourceMappingURL=mpcUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpcUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/mpcUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAwC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,8BAAsB,QAAQ;IAC5B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAElB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS;cAKjC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;cAiBjG,uBAAuB,CACrC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,YAAY,EAAE,WAAW,EACzB,cAAc,EAAE,WAAW,EAC3B,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC;IA8BpB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,8BAA8B,CAAC,EAAE,MAAM,CAAC;KACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAC9B"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MpcUtils = void 0;
4
+ /**
5
+ * @prettier
6
+ */
7
+ const openpgp_1 = require("openpgp");
8
+ const opengpgUtils_1 = require("./opengpgUtils");
9
+ class MpcUtils {
10
+ constructor(bitgo, baseCoin) {
11
+ this.bitgo = bitgo;
12
+ this.baseCoin = baseCoin;
13
+ }
14
+ async decryptPrivateShare(privateShare, userGpgKey) {
15
+ const privateShareMessage = await openpgp_1.readMessage({
16
+ armoredMessage: privateShare,
17
+ });
18
+ const userGpgPrivateKey = await openpgp_1.readPrivateKey({ armoredKey: userGpgKey.privateKey });
19
+ const decryptedPrivateShare = (await openpgp_1.decrypt({
20
+ message: privateShareMessage,
21
+ decryptionKeys: [userGpgPrivateKey],
22
+ format: 'utf8',
23
+ })).data;
24
+ return decryptedPrivateShare;
25
+ }
26
+ async createBitgoKeychainInWP(userGpgKey, userKeyShare, backupKeyShare, keyType, enterprise) {
27
+ const bitgoKey = await opengpgUtils_1.getBitgoGpgPubKey(this.bitgo);
28
+ const encUserToBitGoMessage = await opengpgUtils_1.encryptText(userKeyShare.privateShare, bitgoKey);
29
+ const encBackupToBitGoMessage = await opengpgUtils_1.encryptText(backupKeyShare.privateShare, bitgoKey);
30
+ const createBitGoMPCParams = {
31
+ keyType,
32
+ source: 'bitgo',
33
+ keyShares: [
34
+ {
35
+ from: 'user',
36
+ to: 'bitgo',
37
+ publicShare: userKeyShare.publicShare,
38
+ privateShare: encUserToBitGoMessage,
39
+ },
40
+ {
41
+ from: 'backup',
42
+ to: 'bitgo',
43
+ publicShare: backupKeyShare.publicShare,
44
+ privateShare: encBackupToBitGoMessage,
45
+ },
46
+ ],
47
+ userGPGPublicKey: userGpgKey.publicKey,
48
+ backupGPGPublicKey: userGpgKey.publicKey,
49
+ enterprise: enterprise,
50
+ };
51
+ return await this.baseCoin.keychains().add(createBitGoMPCParams);
52
+ }
53
+ }
54
+ exports.MpcUtils = MpcUtils;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBjVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvbXBjVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxxQ0FBa0Y7QUFJbEYsaURBQWdFO0FBT2hFLE1BQXNCLFFBQVE7SUFJNUIsWUFBWSxLQUFnQixFQUFFLFFBQW1CO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFUyxLQUFLLENBQUMsbUJBQW1CLENBQUMsWUFBb0IsRUFBRSxVQUFxQztRQUM3RixNQUFNLG1CQUFtQixHQUFHLE1BQU0scUJBQVcsQ0FBQztZQUM1QyxjQUFjLEVBQUUsWUFBWTtTQUM3QixDQUFDLENBQUM7UUFDSCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sd0JBQWMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUV0RixNQUFNLHFCQUFxQixHQUFHLENBQzVCLE1BQU0saUJBQU8sQ0FBQztZQUNaLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsY0FBYyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDbkMsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUM7UUFFUCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFUyxLQUFLLENBQUMsdUJBQXVCLENBQ3JDLFVBQXFDLEVBQ3JDLFlBQXlCLEVBQ3pCLGNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLFVBQW1CO1FBRW5CLE1BQU0sUUFBUSxHQUFHLE1BQU0sZ0NBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0scUJBQXFCLEdBQUcsTUFBTSwwQkFBVyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckYsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLDBCQUFXLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUV6RixNQUFNLG9CQUFvQixHQUFHO1lBQzNCLE9BQU87WUFDUCxNQUFNLEVBQUUsT0FBTztZQUNmLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixFQUFFLEVBQUUsT0FBTztvQkFDWCxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7b0JBQ3JDLFlBQVksRUFBRSxxQkFBcUI7aUJBQ3BDO2dCQUNEO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLEVBQUUsRUFBRSxPQUFPO29CQUNYLFdBQVcsRUFBRSxjQUFjLENBQUMsV0FBVztvQkFDdkMsWUFBWSxFQUFFLHVCQUF1QjtpQkFDdEM7YUFDRjtZQUNELGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxTQUFTO1lBQ3RDLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxTQUFTO1lBQ3hDLFVBQVUsRUFBRSxVQUFVO1NBQ3ZCLENBQUM7UUFFRixPQUFPLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBY0Y7QUExRUQsNEJBMEVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgZGVjcnlwdCwgcmVhZE1lc3NhZ2UsIHJlYWRQcml2YXRlS2V5LCBTZXJpYWxpemVkS2V5UGFpciB9IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgSUJhc2VDb2luLCBLZXljaGFpbnNUcmlwbGV0IH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IEtleWNoYWluLCBLZXlUeXBlIH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgZW5jcnlwdFRleHQsIGdldEJpdGdvR3BnUHViS2V5IH0gZnJvbSAnLi9vcGVuZ3BnVXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1wY0tleVNoYXJlIHtcbiAgcHVibGljU2hhcmU6IHN0cmluZztcbiAgcHJpdmF0ZVNoYXJlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNcGNVdGlscyB7XG4gIHByb3RlY3RlZCBiaXRnbzogQml0R29CYXNlO1xuICBwcm90ZWN0ZWQgYmFzZUNvaW46IElCYXNlQ29pbjtcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luKSB7XG4gICAgdGhpcy5iaXRnbyA9IGJpdGdvO1xuICAgIHRoaXMuYmFzZUNvaW4gPSBiYXNlQ29pbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBkZWNyeXB0UHJpdmF0ZVNoYXJlKHByaXZhdGVTaGFyZTogc3RyaW5nLCB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBwcml2YXRlU2hhcmVNZXNzYWdlID0gYXdhaXQgcmVhZE1lc3NhZ2Uoe1xuICAgICAgYXJtb3JlZE1lc3NhZ2U6IHByaXZhdGVTaGFyZSxcbiAgICB9KTtcbiAgICBjb25zdCB1c2VyR3BnUHJpdmF0ZUtleSA9IGF3YWl0IHJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogdXNlckdwZ0tleS5wcml2YXRlS2V5IH0pO1xuXG4gICAgY29uc3QgZGVjcnlwdGVkUHJpdmF0ZVNoYXJlID0gKFxuICAgICAgYXdhaXQgZGVjcnlwdCh7XG4gICAgICAgIG1lc3NhZ2U6IHByaXZhdGVTaGFyZU1lc3NhZ2UsXG4gICAgICAgIGRlY3J5cHRpb25LZXlzOiBbdXNlckdwZ1ByaXZhdGVLZXldLFxuICAgICAgICBmb3JtYXQ6ICd1dGY4JyxcbiAgICAgIH0pXG4gICAgKS5kYXRhO1xuXG4gICAgcmV0dXJuIGRlY3J5cHRlZFByaXZhdGVTaGFyZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjcmVhdGVCaXRnb0tleWNoYWluSW5XUChcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIHVzZXJLZXlTaGFyZTogTXBjS2V5U2hhcmUsXG4gICAgYmFja3VwS2V5U2hhcmU6IE1wY0tleVNoYXJlLFxuICAgIGtleVR5cGU6IEtleVR5cGUsXG4gICAgZW50ZXJwcmlzZT86IHN0cmluZ1xuICApOiBQcm9taXNlPEtleWNoYWluPiB7XG4gICAgY29uc3QgYml0Z29LZXkgPSBhd2FpdCBnZXRCaXRnb0dwZ1B1YktleSh0aGlzLmJpdGdvKTtcbiAgICBjb25zdCBlbmNVc2VyVG9CaXRHb01lc3NhZ2UgPSBhd2FpdCBlbmNyeXB0VGV4dCh1c2VyS2V5U2hhcmUucHJpdmF0ZVNoYXJlLCBiaXRnb0tleSk7XG4gICAgY29uc3QgZW5jQmFja3VwVG9CaXRHb01lc3NhZ2UgPSBhd2FpdCBlbmNyeXB0VGV4dChiYWNrdXBLZXlTaGFyZS5wcml2YXRlU2hhcmUsIGJpdGdvS2V5KTtcblxuICAgIGNvbnN0IGNyZWF0ZUJpdEdvTVBDUGFyYW1zID0ge1xuICAgICAga2V5VHlwZSxcbiAgICAgIHNvdXJjZTogJ2JpdGdvJyxcbiAgICAgIGtleVNoYXJlczogW1xuICAgICAgICB7XG4gICAgICAgICAgZnJvbTogJ3VzZXInLFxuICAgICAgICAgIHRvOiAnYml0Z28nLFxuICAgICAgICAgIHB1YmxpY1NoYXJlOiB1c2VyS2V5U2hhcmUucHVibGljU2hhcmUsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlOiBlbmNVc2VyVG9CaXRHb01lc3NhZ2UsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tOiAnYmFja3VwJyxcbiAgICAgICAgICB0bzogJ2JpdGdvJyxcbiAgICAgICAgICBwdWJsaWNTaGFyZTogYmFja3VwS2V5U2hhcmUucHVibGljU2hhcmUsXG4gICAgICAgICAgcHJpdmF0ZVNoYXJlOiBlbmNCYWNrdXBUb0JpdEdvTWVzc2FnZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB1c2VyR1BHUHVibGljS2V5OiB1c2VyR3BnS2V5LnB1YmxpY0tleSxcbiAgICAgIGJhY2t1cEdQR1B1YmxpY0tleTogdXNlckdwZ0tleS5wdWJsaWNLZXksXG4gICAgICBlbnRlcnByaXNlOiBlbnRlcnByaXNlLFxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iYXNlQ29pbi5rZXljaGFpbnMoKS5hZGQoY3JlYXRlQml0R29NUENQYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgVXNlciwgQmFja3VwLCBhbmQgQml0R28gTVBDIEtleWNoYWlucy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcy5wYXNzcGhyYXNlIC0gcGFzc3BocmFzZSB1c2VkIHRvIGVuY3J5cHQgc2lnbmluZyBtYXRlcmlhbHMgY3JlYXRlZCBmb3IgVXNlciBhbmQgQmFja3VwXG4gICAqIEBwYXJhbSBwYXJhbXMuZW50ZXJwcmlzZSAtIG9wdGlvbmFsIGVudGVycHJpc2UgaWQgdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBCaXRHbyBLZXljaGFpblxuICAgKiBAcGFyYW0gcGFyYW1zLm9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZSAtIG9wdGlvbmFsIGVuY3J5cHRpb24gY29kZSB1c2VkIHRvIHJlc2V0IHRoZSB1c2VyJ3MgcGFzc3dvcmQsIGlmIGFic2VudCwgcGFzc3dvcmQgcmVjb3Zlcnkgd2lsbCBub3Qgd29ya1xuICAgKi9cbiAgYWJzdHJhY3QgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD47XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { Key } from 'openpgp';
2
+ import { BitGoBase } from '../bitgoBase';
3
+ /**
4
+ * Fetches BitGo's pubic gpg key used in MPC flows
5
+ * @param {BitGo} bitgo BitGo object
6
+ * @return {Key} public gpg key
7
+ */
8
+ export declare function getBitgoGpgPubKey(bitgo: BitGoBase): Promise<Key>;
9
+ /**
10
+ * Encrypts string using gpg key
11
+ * @DEPRECATED - should use encryptAndSignText instead for added security
12
+ *
13
+ * @param text string to encrypt
14
+ * @param key encryption key
15
+ * @return {string} encrypted string
16
+ *
17
+ * TODO(BG-47170): Delete once gpg signatures are fully supported
18
+ */
19
+ export declare function encryptText(text: string, key: Key): Promise<string>;
20
+ /**
21
+ * Encrypts and signs a string
22
+ * @param text string to encrypt and sign
23
+ * @param publicArmor public key to encrypt with
24
+ * @param privateArmor private key to sign with
25
+ */
26
+ export declare function encryptAndSignText(text: string, publicArmor: string, privateArmor: string): Promise<string>;
27
+ /**
28
+ * Reads a signed and encrypted message
29
+ *
30
+ * @param signed signed and encrypted message
31
+ * @param publicArmor public key to verify signature
32
+ * @param privateArmor private key to decrypt message
33
+ */
34
+ export declare function readSignedMessage(signed: string, publicArmor: string, privateArmor: string): Promise<string>;
35
+ /**
36
+ * Generates a signature
37
+ *
38
+ * @param text string to generate a signature for
39
+ * @param privateArmor private key as armored string
40
+ * @return {string} armored signature string
41
+ */
42
+ export declare function signText(text: string, privateArmor: string): Promise<string>;
43
+ /**
44
+ * Verifies signature was generated by the public key and matches the expected text
45
+ *
46
+ * @param text text that the signature was for
47
+ * @param armoredSignature signed message as an armored string
48
+ * @param publicArmor public key that generated the signature
49
+ */
50
+ export declare function verifySignature(text: string, armoredSignature: string, publicArmor: string): Promise<boolean>;
51
+ //# sourceMappingURL=opengpgUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opengpgUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/opengpgUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,GAAG,EAOJ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAQtE;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAczE;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBjH;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAalH;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlF;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBnH"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifySignature = exports.signText = exports.readSignedMessage = exports.encryptAndSignText = exports.encryptText = exports.getBitgoGpgPubKey = void 0;
4
+ const openpgp_1 = require("openpgp");
5
+ /**
6
+ * Fetches BitGo's pubic gpg key used in MPC flows
7
+ * @param {BitGo} bitgo BitGo object
8
+ * @return {Key} public gpg key
9
+ */
10
+ async function getBitgoGpgPubKey(bitgo) {
11
+ const constants = await bitgo.fetchConstants();
12
+ if (!constants.mpc || !constants.mpc.bitgoPublicKey) {
13
+ throw new Error('Unable to create MPC keys - bitgoPublicKey is missing from constants');
14
+ }
15
+ const bitgoPublicKeyStr = constants.mpc.bitgoPublicKey;
16
+ return await openpgp_1.readKey({ armoredKey: bitgoPublicKeyStr });
17
+ }
18
+ exports.getBitgoGpgPubKey = getBitgoGpgPubKey;
19
+ /**
20
+ * Encrypts string using gpg key
21
+ * @DEPRECATED - should use encryptAndSignText instead for added security
22
+ *
23
+ * @param text string to encrypt
24
+ * @param key encryption key
25
+ * @return {string} encrypted string
26
+ *
27
+ * TODO(BG-47170): Delete once gpg signatures are fully supported
28
+ */
29
+ async function encryptText(text, key) {
30
+ const messageToEncrypt = await openpgp_1.createMessage({
31
+ text,
32
+ });
33
+ return await openpgp_1.encrypt({
34
+ message: messageToEncrypt,
35
+ encryptionKeys: [key],
36
+ format: 'armored',
37
+ config: {
38
+ rejectCurves: new Set(),
39
+ showVersion: false,
40
+ showComment: false,
41
+ },
42
+ });
43
+ }
44
+ exports.encryptText = encryptText;
45
+ /**
46
+ * Encrypts and signs a string
47
+ * @param text string to encrypt and sign
48
+ * @param publicArmor public key to encrypt with
49
+ * @param privateArmor private key to sign with
50
+ */
51
+ async function encryptAndSignText(text, publicArmor, privateArmor) {
52
+ const publicKey = await openpgp_1.readKey({ armoredKey: publicArmor });
53
+ const privateKey = await openpgp_1.readPrivateKey({ armoredKey: privateArmor });
54
+ const message = await openpgp_1.createMessage({ text });
55
+ const signedMessage = await openpgp_1.encrypt({
56
+ message,
57
+ encryptionKeys: publicKey,
58
+ signingKeys: privateKey,
59
+ format: 'armored',
60
+ config: {
61
+ rejectCurves: new Set(),
62
+ showVersion: false,
63
+ showComment: false,
64
+ },
65
+ });
66
+ return signedMessage;
67
+ }
68
+ exports.encryptAndSignText = encryptAndSignText;
69
+ /**
70
+ * Reads a signed and encrypted message
71
+ *
72
+ * @param signed signed and encrypted message
73
+ * @param publicArmor public key to verify signature
74
+ * @param privateArmor private key to decrypt message
75
+ */
76
+ async function readSignedMessage(signed, publicArmor, privateArmor) {
77
+ const publicKey = await openpgp_1.readKey({ armoredKey: publicArmor });
78
+ const privateKey = await openpgp_1.readPrivateKey({ armoredKey: privateArmor });
79
+ const message = await openpgp_1.readMessage({ armoredMessage: signed });
80
+ const decrypted = await openpgp_1.decrypt({
81
+ message,
82
+ verificationKeys: publicKey,
83
+ decryptionKeys: privateKey,
84
+ expectSigned: true,
85
+ });
86
+ return decrypted.data;
87
+ }
88
+ exports.readSignedMessage = readSignedMessage;
89
+ /**
90
+ * Generates a signature
91
+ *
92
+ * @param text string to generate a signature for
93
+ * @param privateArmor private key as armored string
94
+ * @return {string} armored signature string
95
+ */
96
+ async function signText(text, privateArmor) {
97
+ const privateKey = await openpgp_1.readPrivateKey({ armoredKey: privateArmor });
98
+ const message = await openpgp_1.createMessage({ text });
99
+ const signature = await openpgp_1.sign({
100
+ message,
101
+ signingKeys: privateKey,
102
+ format: 'armored',
103
+ detached: true,
104
+ });
105
+ return signature;
106
+ }
107
+ exports.signText = signText;
108
+ /**
109
+ * Verifies signature was generated by the public key and matches the expected text
110
+ *
111
+ * @param text text that the signature was for
112
+ * @param armoredSignature signed message as an armored string
113
+ * @param publicArmor public key that generated the signature
114
+ */
115
+ async function verifySignature(text, armoredSignature, publicArmor) {
116
+ const publicKey = await openpgp_1.readKey({ armoredKey: publicArmor });
117
+ const signature = await openpgp_1.readSignature({ armoredSignature });
118
+ const message = await openpgp_1.createMessage({ text });
119
+ const verificationResult = await openpgp_1.verify({
120
+ message,
121
+ signature,
122
+ verificationKeys: publicKey,
123
+ });
124
+ if (verificationResult.signatures.length !== 1) {
125
+ throw new Error('Invalid number of signatures');
126
+ }
127
+ try {
128
+ await verificationResult.signatures[0].verified;
129
+ return text === verificationResult.data;
130
+ }
131
+ catch {
132
+ return false;
133
+ }
134
+ }
135
+ exports.verifySignature = verifySignature;
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmdwZ1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL29wZW5ncGdVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FXaUI7QUFHakI7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxLQUFnQjtJQUN0RCxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFO1FBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsc0VBQXNFLENBQUMsQ0FBQztLQUN6RjtJQUVELE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUF3QixDQUFDO0lBQ2pFLE9BQU8sTUFBTSxpQkFBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBUkQsOENBUUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSSxLQUFLLFVBQVUsV0FBVyxDQUFDLElBQVksRUFBRSxHQUFRO0lBQ3RELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSx1QkFBYSxDQUFDO1FBQzNDLElBQUk7S0FDTCxDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0saUJBQU8sQ0FBQztRQUNuQixPQUFPLEVBQUUsZ0JBQWdCO1FBQ3pCLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNyQixNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUU7WUFDTixZQUFZLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDdkIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLEtBQUs7U0FDbkI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBZEQsa0NBY0M7QUFFRDs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxrQkFBa0IsQ0FB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QUFNLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDaEQsT0FBTyxJQUFJLEtBQUssa0JBQWtCLENBQUMsSUFBSSxDQUFDO0tBQ3pDO0lBQUMsTUFBTTtRQUNOLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBcEJELDBDQW9CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZU1lc3NhZ2UsXG4gIGRlY3J5cHQsXG4gIGVuY3J5cHQsXG4gIEtleSxcbiAgcmVhZEtleSxcbiAgcmVhZE1lc3NhZ2UsXG4gIHJlYWRQcml2YXRlS2V5LFxuICByZWFkU2lnbmF0dXJlLFxuICBzaWduLFxuICB2ZXJpZnksXG59IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcblxuLyoqXG4gKiBGZXRjaGVzIEJpdEdvJ3MgcHViaWMgZ3BnIGtleSB1c2VkIGluIE1QQyBmbG93c1xuICogQHBhcmFtIHtCaXRHb30gYml0Z28gQml0R28gb2JqZWN0XG4gKiBAcmV0dXJuIHtLZXl9IHB1YmxpYyBncGcga2V5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCaXRnb0dwZ1B1YktleShiaXRnbzogQml0R29CYXNlKTogUHJvbWlzZTxLZXk+IHtcbiAgY29uc3QgY29uc3RhbnRzID0gYXdhaXQgYml0Z28uZmV0Y2hDb25zdGFudHMoKTtcbiAgaWYgKCFjb25zdGFudHMubXBjIHx8ICFjb25zdGFudHMubXBjLmJpdGdvUHVibGljS2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gY3JlYXRlIE1QQyBrZXlzIC0gYml0Z29QdWJsaWNLZXkgaXMgbWlzc2luZyBmcm9tIGNvbnN0YW50cycpO1xuICB9XG5cbiAgY29uc3QgYml0Z29QdWJsaWNLZXlTdHIgPSBjb25zdGFudHMubXBjLmJpdGdvUHVibGljS2V5IGFzIHN0cmluZztcbiAgcmV0dXJuIGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBiaXRnb1B1YmxpY0tleVN0ciB9KTtcbn1cblxuLyoqXG4gKiBFbmNyeXB0cyBzdHJpbmcgdXNpbmcgZ3BnIGtleVxuICogQERFUFJFQ0FURUQgLSBzaG91bGQgdXNlIGVuY3J5cHRBbmRTaWduVGV4dCBpbnN0ZWFkIGZvciBhZGRlZCBzZWN1cml0eVxuICpcbiAqIEBwYXJhbSB0ZXh0IHN0cmluZyB0byBlbmNyeXB0XG4gKiBAcGFyYW0ga2V5IGVuY3J5cHRpb24ga2V5XG4gKiBAcmV0dXJuIHtzdHJpbmd9IGVuY3J5cHRlZCBzdHJpbmdcbiAqXG4gKiBUT0RPKEJHLTQ3MTcwKTogRGVsZXRlIG9uY2UgZ3BnIHNpZ25hdHVyZXMgYXJlIGZ1bGx5IHN1cHBvcnRlZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdFRleHQodGV4dDogc3RyaW5nLCBrZXk6IEtleSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IG1lc3NhZ2VUb0VuY3J5cHQgPSBhd2FpdCBjcmVhdGVNZXNzYWdlKHtcbiAgICB0ZXh0LFxuICB9KTtcbiAgcmV0dXJuIGF3YWl0IGVuY3J5cHQoe1xuICAgIG1lc3NhZ2U6IG1lc3NhZ2VUb0VuY3J5cHQsXG4gICAgZW5jcnlwdGlvbktleXM6IFtrZXldLFxuICAgIGZvcm1hdDogJ2FybW9yZWQnLFxuICAgIGNvbmZpZzoge1xuICAgICAgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCksXG4gICAgICBzaG93VmVyc2lvbjogZmFsc2UsXG4gICAgICBzaG93Q29tbWVudDogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogRW5jcnlwdHMgYW5kIHNpZ25zIGEgc3RyaW5nXG4gKiBAcGFyYW0gdGV4dCBzdHJpbmcgdG8gZW5jcnlwdCBhbmQgc2lnblxuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdG8gZW5jcnlwdCB3aXRoXG4gKiBAcGFyYW0gcHJpdmF0ZUFybW9yIHByaXZhdGUga2V5IHRvIHNpZ24gd2l0aFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdEFuZFNpZ25UZXh0KHRleHQ6IHN0cmluZywgcHVibGljQXJtb3I6IHN0cmluZywgcHJpdmF0ZUFybW9yOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBwdWJsaWNLZXkgPSBhd2FpdCByZWFkS2V5KHsgYXJtb3JlZEtleTogcHVibGljQXJtb3IgfSk7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCByZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHByaXZhdGVBcm1vciB9KTtcblxuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgY3JlYXRlTWVzc2FnZSh7IHRleHQgfSk7XG5cbiAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IGF3YWl0IGVuY3J5cHQoe1xuICAgIG1lc3NhZ2UsXG4gICAgZW5jcnlwdGlvbktleXM6IHB1YmxpY0tleSxcbiAgICBzaWduaW5nS2V5czogcHJpdmF0ZUtleSxcbiAgICBmb3JtYXQ6ICdhcm1vcmVkJyxcbiAgICBjb25maWc6IHtcbiAgICAgIHJlamVjdEN1cnZlczogbmV3IFNldCgpLFxuICAgICAgc2hvd1ZlcnNpb246IGZhbHNlLFxuICAgICAgc2hvd0NvbW1lbnQ6IGZhbHNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiBzaWduZWRNZXNzYWdlO1xufVxuXG4vKipcbiAqIFJlYWRzIGEgc2lnbmVkIGFuZCBlbmNyeXB0ZWQgbWVzc2FnZVxuICpcbiAqIEBwYXJhbSBzaWduZWQgc2lnbmVkIGFuZCBlbmNyeXB0ZWQgbWVzc2FnZVxuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdG8gdmVyaWZ5IHNpZ25hdHVyZVxuICogQHBhcmFtIHByaXZhdGVBcm1vciBwcml2YXRlIGtleSB0byBkZWNyeXB0IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRTaWduZWRNZXNzYWdlKHNpZ25lZDogc3RyaW5nLCBwdWJsaWNBcm1vcjogc3RyaW5nLCBwcml2YXRlQXJtb3I6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBwdWJsaWNBcm1vciB9KTtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IHJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuXG4gIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCByZWFkTWVzc2FnZSh7IGFybW9yZWRNZXNzYWdlOiBzaWduZWQgfSk7XG4gIGNvbnN0IGRlY3J5cHRlZCA9IGF3YWl0IGRlY3J5cHQoe1xuICAgIG1lc3NhZ2UsXG4gICAgdmVyaWZpY2F0aW9uS2V5czogcHVibGljS2V5LFxuICAgIGRlY3J5cHRpb25LZXlzOiBwcml2YXRlS2V5LFxuICAgIGV4cGVjdFNpZ25lZDogdHJ1ZSxcbiAgfSk7XG5cbiAgcmV0dXJuIGRlY3J5cHRlZC5kYXRhO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHNpZ25hdHVyZVxuICpcbiAqIEBwYXJhbSB0ZXh0IHN0cmluZyB0byBnZW5lcmF0ZSBhIHNpZ25hdHVyZSBmb3JcbiAqIEBwYXJhbSBwcml2YXRlQXJtb3IgcHJpdmF0ZSBrZXkgYXMgYXJtb3JlZCBzdHJpbmdcbiAqIEByZXR1cm4ge3N0cmluZ30gYXJtb3JlZCBzaWduYXR1cmUgc3RyaW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaWduVGV4dCh0ZXh0OiBzdHJpbmcsIHByaXZhdGVBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IHJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgY3JlYXRlTWVzc2FnZSh7IHRleHQgfSk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHNpZ24oe1xuICAgIG1lc3NhZ2UsXG4gICAgc2lnbmluZ0tleXM6IHByaXZhdGVLZXksXG4gICAgZm9ybWF0OiAnYXJtb3JlZCcsXG4gICAgZGV0YWNoZWQ6IHRydWUsXG4gIH0pO1xuXG4gIHJldHVybiBzaWduYXR1cmU7XG59XG5cbi8qKlxuICogVmVyaWZpZXMgc2lnbmF0dXJlIHdhcyBnZW5lcmF0ZWQgYnkgdGhlIHB1YmxpYyBrZXkgYW5kIG1hdGNoZXMgdGhlIGV4cGVjdGVkIHRleHRcbiAqXG4gKiBAcGFyYW0gdGV4dCB0ZXh0IHRoYXQgdGhlIHNpZ25hdHVyZSB3YXMgZm9yXG4gKiBAcGFyYW0gYXJtb3JlZFNpZ25hdHVyZSBzaWduZWQgbWVzc2FnZSBhcyBhbiBhcm1vcmVkIHN0cmluZ1xuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdGhhdCBnZW5lcmF0ZWQgdGhlIHNpZ25hdHVyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5U2lnbmF0dXJlKHRleHQ6IHN0cmluZywgYXJtb3JlZFNpZ25hdHVyZTogc3RyaW5nLCBwdWJsaWNBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiBwdWJsaWNBcm1vciB9KTtcbiAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgcmVhZFNpZ25hdHVyZSh7IGFybW9yZWRTaWduYXR1cmUgfSk7XG4gIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBjcmVhdGVNZXNzYWdlKHsgdGV4dCB9KTtcbiAgY29uc3QgdmVyaWZpY2F0aW9uUmVzdWx0ID0gYXdhaXQgdmVyaWZ5KHtcbiAgICBtZXNzYWdlLFxuICAgIHNpZ25hdHVyZSxcbiAgICB2ZXJpZmljYXRpb25LZXlzOiBwdWJsaWNLZXksXG4gIH0pO1xuXG4gIGlmICh2ZXJpZmljYXRpb25SZXN1bHQuc2lnbmF0dXJlcy5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbnVtYmVyIG9mIHNpZ25hdHVyZXMnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgdmVyaWZpY2F0aW9uUmVzdWx0LnNpZ25hdHVyZXNbMF0udmVyaWZpZWQ7XG4gICAgcmV0dXJuIHRleHQgPT09IHZlcmlmaWNhdGlvblJlc3VsdC5kYXRhO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export declare type PromiseProps<T> = {
2
+ [K in keyof T]?: Promise<T[K] | undefined>;
3
+ };
4
+ export declare function promiseProps<T extends Record<string, unknown>>(obj: PromiseProps<T>): Promise<T>;
5
+ //# sourceMappingURL=promise-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-utils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/promise-utils.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAAE,CAAC;AAC7E,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMtG"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.promiseProps = void 0;
4
+ async function promiseProps(obj) {
5
+ const promKeys = Object.keys(obj);
6
+ return (await Promise.all(Object.values(obj))).reduce((acc, cur, idx) => {
7
+ acc[promKeys[idx]] = cur;
8
+ return acc;
9
+ }, {});
10
+ }
11
+ exports.promiseProps = promiseProps;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy9wcm9taXNlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNPLEtBQUssVUFBVSxZQUFZLENBQW9DLEdBQW9CO0lBQ3hGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFnQixDQUFDO0lBQ2pELE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN6RSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQztBQU5ELG9DQU1DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUHJvbWlzZVByb3BzPFQ+ID0geyBbSyBpbiBrZXlvZiBUXT86IFByb21pc2U8VFtLXSB8IHVuZGVmaW5lZD4gfTtcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9taXNlUHJvcHM8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PihvYmo6IFByb21pc2VQcm9wczxUPik6IFByb21pc2U8VD4ge1xuICBjb25zdCBwcm9tS2V5cyA9IE9iamVjdC5rZXlzKG9iaikgYXMgKGtleW9mIFQpW107XG4gIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwoT2JqZWN0LnZhbHVlcyhvYmopKSkucmVkdWNlKChhY2M6IFQsIGN1ciwgaWR4KSA9PiB7XG4gICAgYWNjW3Byb21LZXlzW2lkeF1dID0gY3VyO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cbiJdfQ==
@@ -0,0 +1,117 @@
1
+ import * as openpgp from 'openpgp';
2
+ import { KeyShare } from '../../account-lib/mpc/tss';
3
+ import { IRequestTracer } from '../../api';
4
+ import { IBaseCoin, KeychainsTriplet } from '../baseCoin';
5
+ import { BitGoBase } from '../bitgoBase';
6
+ import { Keychain } from '../keychain';
7
+ import { IWallet } from '../wallet';
8
+ import { ITssUtils, PrebuildTransactionWithIntentOptions, SignatureShareRecord, TxRequest } from './iTssUtils';
9
+ import { MpcUtils } from './mpcUtils';
10
+ /**
11
+ * Utility functions for TSS work flows.
12
+ */
13
+ export declare class TssUtils extends MpcUtils implements ITssUtils {
14
+ private _wallet?;
15
+ constructor(bitgo: BitGoBase, baseCoin: IBaseCoin, wallet?: IWallet);
16
+ private get wallet();
17
+ /**
18
+ * Creates a Keychain containing the User's TSS signing materials.
19
+ *
20
+ * @param userGpgKey - ephemeral GPG key to encrypt / decrypt sensitve data exchanged between user and server
21
+ * @param userKeyShare - user's TSS key share
22
+ * @param backupKeyShare - backup's TSS key share
23
+ * @param bitgoKeychain - previously created BitGo keychain; must be compatible with user and backup key shares
24
+ * @param passphrase - wallet passphrase used to encrypt user's signing materials
25
+ * @param [originalPasscodeEncryptionCode] - optional encryption code needed for wallet password reset for hot wallets
26
+ */
27
+ createUserKeychain(userGpgKey: openpgp.SerializedKeyPair<string>, userKeyShare: KeyShare, backupKeyShare: KeyShare, bitgoKeychain: Keychain, passphrase: string, originalPasscodeEncryptionCode?: string): Promise<Keychain>;
28
+ /**
29
+ * Creates a Keychain containing the Backup party's TSS signing materials.
30
+ *
31
+ * @param userGpgKey - ephemeral GPG key to encrypt / decrypt sensitve data exchanged between user and server
32
+ * @param userKeyShare - User's TSS Keyshare
33
+ * @param backupKeyShare - Backup's TSS Keyshare
34
+ * @param bitgoKeychain - previously created BitGo keychain; must be compatible with user and backup key shares
35
+ * @param passphrase - wallet passphrase used to encrypt user's signing materials
36
+ */
37
+ createBackupKeychain(userGpgKey: openpgp.SerializedKeyPair<string>, userKeyShare: KeyShare, backupKeyShare: KeyShare, bitgoKeychain: Keychain, passphrase: string): Promise<Keychain>;
38
+ /**
39
+ * Creates a Keychain containing BitGo's TSS signing materials.
40
+ *
41
+ * @param userGpgKey - ephemeral GPG key to encrypt / decrypt sensitve data exchanged between user and server
42
+ * @param userKeyShare - user's TSS key share
43
+ * @param backupKeyShare - backup's TSS key share
44
+ */
45
+ createBitgoKeychain(userGpgKey: openpgp.SerializedKeyPair<string>, userKeyShare: KeyShare, backupKeyShare: KeyShare, enterprise?: string): Promise<Keychain>;
46
+ /**
47
+ * Creates User, Backup, and BitGo TSS Keychains.
48
+ *
49
+ * @param params.passphrase - passphrase used to encrypt signing materials created for User and Backup
50
+ */
51
+ createKeychains(params: {
52
+ passphrase: string;
53
+ enterprise?: string;
54
+ originalPasscodeEncryptionCode?: string;
55
+ }): Promise<KeychainsTriplet>;
56
+ /**
57
+ * Signs the transaction associated to the transaction request.
58
+ *
59
+ * @param txRequest - transaction request object or id
60
+ * @param prv - decrypted private key
61
+ * @param reqId - request id
62
+ * @returns {Promise<TxRequest>} fully signed TxRequest object
63
+ */
64
+ signTxRequest(params: {
65
+ txRequest: string | TxRequest;
66
+ prv: string;
67
+ reqId: IRequestTracer;
68
+ }): Promise<TxRequest>;
69
+ /**
70
+ * Builds a tx request from params and verify it
71
+ *
72
+ * @param {PrebuildTransactionWithIntentOptions} params - parameters to build the tx
73
+ * @param apiVersion
74
+ * @returns {Promise<TxRequest>} - a built tx request
75
+ */
76
+ prebuildTxWithIntent(params: PrebuildTransactionWithIntentOptions, apiVersion?: string): Promise<TxRequest>;
77
+ /**
78
+ * Call delete signature shares for a txRequest, the endpoint delete the signatures and return them
79
+ *
80
+ * @param {string} txRequestId tx id reference to delete signature shares
81
+ * @returns {SignatureShareRecord[]}
82
+ */
83
+ deleteSignatureShares(txRequestId: string): Promise<SignatureShareRecord[]>;
84
+ /**
85
+ * Initialize the send procedure once Bitgo has the User To Bitgo GShare
86
+ *
87
+ * @param {String} txRequestId - the txRequest Id
88
+ * @returns {Promise<any>}
89
+ */
90
+ sendTxRequest(txRequestId: string): Promise<any>;
91
+ /**
92
+ * Delete signature shares, get the tx request without them from the db and sign it to finally send it.
93
+ *
94
+ * Note : This can be performed in order to reach latest network conditions required on pending approval flow.
95
+ *
96
+ * @param {String} txRequestId - the txRequest Id to make the requests.
97
+ * @param {String} decryptedPrv - decrypted prv to sign the tx request.
98
+ * @param {RequestTracer} reqId id tracer.
99
+ * @returns {Promise<any>}
100
+ */
101
+ recreateTxRequest(txRequestId: string, decryptedPrv: string, reqId: IRequestTracer): Promise<TxRequest>;
102
+ /**
103
+ * Gets the latest Tx Request by id
104
+ *
105
+ * @param {String} txRequestId - the txRequest Id
106
+ * @returns {Promise<TxRequest>}
107
+ */
108
+ getTxRequest(txRequestId: string): Promise<TxRequest>;
109
+ /**
110
+ * Get the commonPub portion of the commonKeychain.
111
+ *
112
+ * @param {String} commonKeychain
113
+ * @returns {string}
114
+ */
115
+ static getPublicKeyFromCommonKeychain(commonKeychain: string): string;
116
+ }
117
+ //# sourceMappingURL=tssUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tssUtils.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/tssUtils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAc,EAAE,QAAQ,EAAU,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAsB,QAAQ,EAAW,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,oCAAoC,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/G,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAYtC;;GAEG;AAEH,qBAAa,QAAS,SAAQ,QAAS,YAAW,SAAS;IACzD,OAAO,CAAC,OAAO,CAAC,CAAU;gBAEd,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO;IAKnE,OAAO,KAAK,MAAM,GAKjB;IAED;;;;;;;;;OASG;IACG,kBAAkB,CACtB,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC7C,YAAY,EAAE,QAAQ,EACtB,cAAc,EAAE,QAAQ,EACxB,aAAa,EAAE,QAAQ,EACvB,UAAU,EAAE,MAAM,EAClB,8BAA8B,CAAC,EAAE,MAAM,GACtC,OAAO,CAAC,QAAQ,CAAC;IA8CpB;;;;;;;;OAQG;IACG,oBAAoB,CACxB,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC7C,YAAY,EAAE,QAAQ,EACtB,cAAc,EAAE,QAAQ,EACxB,aAAa,EAAE,QAAQ,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC;IA6CpB;;;;;;OAMG;IACG,mBAAmB,CACvB,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC7C,YAAY,EAAE,QAAQ,EACtB,cAAc,EAAE,QAAQ,EACxB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,QAAQ,CAAC;IAqCpB;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,8BAA8B,CAAC,EAAE,MAAM,CAAC;KACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+C7B;;;;;;;OAOG;IACG,aAAa,CAAC,MAAM,EAAE;QAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,cAAc,CAAC;KACvB,GAAG,OAAO,CAAC,SAAS,CAAC;IAqDtB;;;;;;OAMG;IACG,oBAAoB,CAAC,MAAM,EAAE,oCAAoC,EAAE,UAAU,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IA4BjH;;;;;OAKG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAOjF;;;;;OAKG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAOtD;;;;;;;;;OASG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAO7G;;;;;OAKG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3D;;;;;OAKG;IACH,MAAM,CAAC,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;CAOtE"}