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

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 (345) hide show
  1. package/CHANGELOG.md +222 -0
  2. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +2 -2
  3. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -1
  4. package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +1 -1
  5. package/dist/src/account-lib/baseCoin/enum.d.ts +9 -4
  6. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  7. package/dist/src/account-lib/baseCoin/enum.js +15 -6
  8. package/dist/src/account-lib/baseCoin/errors.d.ts +0 -6
  9. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -1
  10. package/dist/src/account-lib/baseCoin/errors.js +2 -11
  11. package/dist/src/account-lib/baseCoin/iface.d.ts +2 -9
  12. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
  13. package/dist/src/account-lib/baseCoin/iface.js +1 -1
  14. package/dist/src/account-lib/baseCoin/index.d.ts +1 -1
  15. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -1
  16. package/dist/src/account-lib/baseCoin/index.js +3 -2
  17. package/dist/src/account-lib/index.d.ts +1 -0
  18. package/dist/src/account-lib/index.d.ts.map +1 -1
  19. package/dist/src/account-lib/index.js +2 -1
  20. package/dist/src/account-lib/mpc/curves/baseCurve.d.ts +19 -0
  21. package/dist/src/account-lib/mpc/curves/baseCurve.d.ts.map +1 -0
  22. package/dist/src/account-lib/mpc/curves/baseCurve.js +6 -0
  23. package/dist/src/account-lib/mpc/curves/ed25519.d.ts +17 -0
  24. package/dist/src/account-lib/mpc/curves/ed25519.d.ts.map +1 -0
  25. package/dist/src/account-lib/mpc/curves/ed25519.js +57 -0
  26. package/dist/src/account-lib/mpc/curves/index.d.ts +6 -0
  27. package/dist/src/account-lib/mpc/curves/index.d.ts.map +1 -0
  28. package/dist/src/account-lib/mpc/curves/index.js +8 -0
  29. package/dist/src/account-lib/mpc/curves/secp256k1.d.ts +17 -0
  30. package/dist/src/account-lib/mpc/curves/secp256k1.d.ts.map +1 -0
  31. package/dist/src/account-lib/mpc/curves/secp256k1.js +70 -0
  32. package/dist/src/account-lib/mpc/hdTree.d.ts +24 -0
  33. package/dist/src/account-lib/mpc/hdTree.d.ts.map +1 -0
  34. package/dist/src/account-lib/mpc/hdTree.js +94 -0
  35. package/dist/src/account-lib/mpc/index.d.ts +8 -0
  36. package/dist/src/account-lib/mpc/index.d.ts.map +1 -0
  37. package/dist/src/account-lib/mpc/index.js +23 -0
  38. package/dist/src/account-lib/mpc/shamir.d.ts +26 -0
  39. package/dist/src/account-lib/mpc/shamir.d.ts.map +1 -0
  40. package/dist/src/account-lib/mpc/shamir.js +86 -0
  41. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +71 -0
  42. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -0
  43. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +329 -0
  44. package/dist/src/account-lib/mpc/tss/ecdsa/index.d.ts +4 -0
  45. package/dist/src/account-lib/mpc/tss/ecdsa/index.d.ts.map +1 -0
  46. package/dist/src/account-lib/mpc/tss/ecdsa/index.js +29 -0
  47. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +150 -0
  48. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -0
  49. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +3 -0
  50. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +29 -0
  51. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -0
  52. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +276 -0
  53. package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts +4 -0
  54. package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts.map +1 -0
  55. package/dist/src/account-lib/mpc/tss/eddsa/index.js +30 -0
  56. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +70 -0
  57. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -0
  58. package/dist/src/account-lib/mpc/tss/eddsa/types.js +3 -0
  59. package/dist/src/account-lib/mpc/tss/index.d.ts +6 -0
  60. package/dist/src/account-lib/mpc/tss/index.d.ts.map +1 -0
  61. package/dist/src/account-lib/mpc/tss/index.js +35 -0
  62. package/dist/src/account-lib/mpc/util.d.ts +15 -0
  63. package/dist/src/account-lib/mpc/util.d.ts.map +1 -0
  64. package/dist/src/account-lib/mpc/util.js +52 -0
  65. package/dist/src/api/bip32path.d.ts +24 -0
  66. package/dist/src/api/bip32path.d.ts.map +1 -0
  67. package/dist/src/api/bip32path.js +45 -0
  68. package/dist/src/api/index.d.ts +3 -0
  69. package/dist/src/api/index.d.ts.map +1 -0
  70. package/dist/src/{v2 → api}/index.js +2 -2
  71. package/dist/src/api/types.d.ts +20 -0
  72. package/dist/src/api/types.d.ts.map +1 -0
  73. package/dist/src/api/types.js +3 -0
  74. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +235 -0
  75. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -0
  76. package/dist/src/bitgo/baseCoin/baseCoin.js +300 -0
  77. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +259 -0
  78. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -0
  79. package/dist/src/bitgo/baseCoin/iBaseCoin.js +3 -0
  80. package/dist/src/bitgo/baseCoin/index.d.ts +3 -0
  81. package/dist/src/bitgo/baseCoin/index.d.ts.map +1 -0
  82. package/dist/src/bitgo/baseCoin/index.js +15 -0
  83. package/dist/src/bitgo/bip32util.d.ts +17 -0
  84. package/dist/src/bitgo/bip32util.d.ts.map +1 -0
  85. package/dist/src/bitgo/bip32util.js +59 -0
  86. package/dist/src/bitgo/bitcoin.d.ts +16 -0
  87. package/dist/src/bitgo/bitcoin.d.ts.map +1 -0
  88. package/dist/src/bitgo/bitcoin.js +52 -0
  89. package/dist/src/bitgo/bitgoBase.d.ts +22 -0
  90. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -0
  91. package/dist/src/bitgo/bitgoBase.js +3 -0
  92. package/dist/src/bitgo/coinFactory.d.ts +35 -0
  93. package/dist/src/bitgo/coinFactory.d.ts.map +1 -0
  94. package/dist/src/bitgo/coinFactory.js +59 -0
  95. package/dist/src/bitgo/config.d.ts +93 -0
  96. package/dist/src/bitgo/config.d.ts.map +1 -0
  97. package/dist/src/bitgo/config.js +72 -0
  98. package/dist/src/bitgo/ecdh.d.ts +24 -0
  99. package/dist/src/bitgo/ecdh.d.ts.map +1 -0
  100. package/dist/src/bitgo/ecdh.js +80 -0
  101. package/dist/src/bitgo/enterprise/enterprise.d.ts +64 -0
  102. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -0
  103. package/dist/src/bitgo/enterprise/enterprise.js +120 -0
  104. package/dist/src/bitgo/enterprise/enterprises.d.ts +25 -0
  105. package/dist/src/bitgo/enterprise/enterprises.d.ts.map +1 -0
  106. package/dist/src/bitgo/enterprise/enterprises.js +70 -0
  107. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +15 -0
  108. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -0
  109. package/dist/src/bitgo/enterprise/iEnterprise.js +3 -0
  110. package/dist/src/bitgo/enterprise/iEnterprises.d.ts +10 -0
  111. package/dist/src/bitgo/enterprise/iEnterprises.d.ts.map +1 -0
  112. package/dist/src/bitgo/enterprise/iEnterprises.js +3 -0
  113. package/dist/src/bitgo/enterprise/index.d.ts +5 -0
  114. package/dist/src/bitgo/enterprise/index.d.ts.map +1 -0
  115. package/dist/src/bitgo/enterprise/index.js +17 -0
  116. package/dist/src/{v2 → bitgo}/environments.d.ts +0 -0
  117. package/dist/src/bitgo/environments.d.ts.map +1 -0
  118. package/dist/src/bitgo/environments.js +142 -0
  119. package/dist/src/bitgo/errors.d.ts +83 -0
  120. package/dist/src/bitgo/errors.d.ts.map +1 -0
  121. package/dist/src/bitgo/errors.js +163 -0
  122. package/dist/src/bitgo/index.d.ts +27 -0
  123. package/dist/src/bitgo/index.d.ts.map +1 -0
  124. package/dist/src/bitgo/index.js +52 -0
  125. package/dist/src/bitgo/internal/index.d.ts +3 -0
  126. package/dist/src/bitgo/internal/index.d.ts.map +1 -0
  127. package/dist/src/bitgo/internal/index.js +15 -0
  128. package/dist/src/bitgo/internal/internal.d.ts +19 -0
  129. package/dist/src/bitgo/internal/internal.d.ts.map +1 -0
  130. package/dist/src/bitgo/internal/internal.js +33 -0
  131. package/dist/src/bitgo/internal/keycard.d.ts +33 -0
  132. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -0
  133. package/dist/src/bitgo/internal/keycard.js +304 -0
  134. package/dist/src/bitgo/keychain/iKeychains.d.ts +118 -0
  135. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -0
  136. package/dist/src/bitgo/keychain/iKeychains.js +10 -0
  137. package/dist/src/bitgo/keychain/index.d.ts +3 -0
  138. package/dist/src/bitgo/keychain/index.d.ts.map +1 -0
  139. package/dist/src/bitgo/keychain/index.js +15 -0
  140. package/dist/src/bitgo/keychain/keychains.d.ts +90 -0
  141. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -0
  142. package/dist/src/bitgo/keychain/keychains.js +280 -0
  143. package/dist/src/bitgo/market/iMarkets.d.ts +12 -0
  144. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -0
  145. package/dist/src/bitgo/market/iMarkets.js +3 -0
  146. package/dist/src/bitgo/market/index.d.ts +3 -0
  147. package/dist/src/bitgo/market/index.d.ts.map +1 -0
  148. package/dist/src/bitgo/market/index.js +15 -0
  149. package/dist/src/bitgo/market/markets.d.ts +29 -0
  150. package/dist/src/bitgo/market/markets.d.ts.map +1 -0
  151. package/dist/src/bitgo/market/markets.js +70 -0
  152. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +73 -0
  153. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -0
  154. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +28 -0
  155. package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts +16 -0
  156. package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts.map +1 -0
  157. package/dist/src/bitgo/pendingApproval/iPendingApprovals.js +3 -0
  158. package/dist/src/bitgo/pendingApproval/index.d.ts +5 -0
  159. package/dist/src/bitgo/pendingApproval/index.d.ts.map +1 -0
  160. package/dist/src/bitgo/pendingApproval/index.js +17 -0
  161. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +99 -0
  162. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -0
  163. package/dist/src/bitgo/pendingApproval/pendingApproval.js +319 -0
  164. package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts +19 -0
  165. package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts.map +1 -0
  166. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +76 -0
  167. package/dist/src/bitgo/recovery/index.d.ts +2 -0
  168. package/dist/src/bitgo/recovery/index.d.ts.map +1 -0
  169. package/dist/src/bitgo/recovery/index.js +14 -0
  170. package/dist/src/bitgo/recovery/initiate.d.ts +49 -0
  171. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -0
  172. package/dist/src/bitgo/recovery/initiate.js +119 -0
  173. package/dist/src/bitgo/staking/iStakingWallet.d.ts +69 -0
  174. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -0
  175. package/dist/src/bitgo/staking/iStakingWallet.js +3 -0
  176. package/dist/src/bitgo/staking/index.d.ts +3 -0
  177. package/dist/src/bitgo/staking/index.d.ts.map +1 -0
  178. package/dist/src/bitgo/staking/index.js +15 -0
  179. package/dist/src/bitgo/staking/stakingWallet.d.ts +67 -0
  180. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -0
  181. package/dist/src/bitgo/staking/stakingWallet.js +153 -0
  182. package/dist/src/bitgo/trading/affirmation.d.ts +35 -0
  183. package/dist/src/bitgo/trading/affirmation.d.ts.map +1 -0
  184. package/dist/src/bitgo/trading/affirmation.js +53 -0
  185. package/dist/src/bitgo/trading/affirmations.d.ts +23 -0
  186. package/dist/src/bitgo/trading/affirmations.d.ts.map +1 -0
  187. package/dist/src/bitgo/trading/affirmations.js +45 -0
  188. package/dist/src/bitgo/trading/iAffirmation.d.ts +15 -0
  189. package/dist/src/bitgo/trading/iAffirmation.d.ts.map +1 -0
  190. package/dist/src/bitgo/trading/iAffirmation.js +13 -0
  191. package/dist/src/bitgo/trading/iAffirmations.d.ts +10 -0
  192. package/dist/src/bitgo/trading/iAffirmations.d.ts.map +1 -0
  193. package/dist/src/bitgo/trading/iAffirmations.js +3 -0
  194. package/dist/src/bitgo/trading/iSettlement.d.ts +25 -0
  195. package/dist/src/bitgo/trading/iSettlement.d.ts.map +1 -0
  196. package/dist/src/bitgo/trading/iSettlement.js +17 -0
  197. package/dist/src/bitgo/trading/iSettlements.d.ts +19 -0
  198. package/dist/src/bitgo/trading/iSettlements.d.ts.map +1 -0
  199. package/dist/src/bitgo/trading/iSettlements.js +3 -0
  200. package/dist/src/bitgo/trading/iTradingAccount.d.ts +41 -0
  201. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -0
  202. package/dist/src/bitgo/trading/iTradingAccount.js +3 -0
  203. package/dist/src/bitgo/trading/iTradingPartner.d.ts +14 -0
  204. package/dist/src/bitgo/trading/iTradingPartner.d.ts.map +1 -0
  205. package/dist/src/bitgo/trading/iTradingPartner.js +17 -0
  206. package/dist/src/bitgo/trading/iTradingPartners.d.ts +15 -0
  207. package/dist/src/bitgo/trading/iTradingPartners.d.ts.map +1 -0
  208. package/dist/src/bitgo/trading/iTradingPartners.js +9 -0
  209. package/dist/src/bitgo/trading/index.d.ts +18 -0
  210. package/dist/src/bitgo/trading/index.d.ts.map +1 -0
  211. package/dist/src/bitgo/trading/index.js +30 -0
  212. package/dist/src/bitgo/trading/lock.d.ts +16 -0
  213. package/dist/src/bitgo/trading/lock.d.ts.map +1 -0
  214. package/dist/src/bitgo/trading/lock.js +12 -0
  215. package/dist/src/bitgo/trading/payload.d.ts +22 -0
  216. package/dist/src/bitgo/trading/payload.d.ts.map +1 -0
  217. package/dist/src/bitgo/trading/payload.js +3 -0
  218. package/dist/src/bitgo/trading/settlement.d.ts +16 -0
  219. package/dist/src/bitgo/trading/settlement.d.ts.map +1 -0
  220. package/dist/src/bitgo/trading/settlement.js +21 -0
  221. package/dist/src/bitgo/trading/settlements.d.ts +32 -0
  222. package/dist/src/bitgo/trading/settlements.d.ts.map +1 -0
  223. package/dist/src/bitgo/trading/settlements.js +61 -0
  224. package/dist/src/bitgo/trading/trade.d.ts +29 -0
  225. package/dist/src/bitgo/trading/trade.d.ts.map +1 -0
  226. package/dist/src/bitgo/trading/trade.js +11 -0
  227. package/dist/src/bitgo/trading/tradingAccount.d.ts +53 -0
  228. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -0
  229. package/dist/src/bitgo/trading/tradingAccount.js +127 -0
  230. package/dist/src/bitgo/trading/tradingPartner.d.ts +26 -0
  231. package/dist/src/bitgo/trading/tradingPartner.d.ts.map +1 -0
  232. package/dist/src/bitgo/trading/tradingPartner.js +31 -0
  233. package/dist/src/bitgo/trading/tradingPartners.d.ts +24 -0
  234. package/dist/src/bitgo/trading/tradingPartners.d.ts.map +1 -0
  235. package/dist/src/bitgo/trading/tradingPartners.js +32 -0
  236. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +35 -0
  237. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -0
  238. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +95 -0
  239. package/dist/src/bitgo/tss/ecdsa/index.d.ts +4 -0
  240. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -0
  241. package/dist/src/bitgo/tss/ecdsa/index.js +26 -0
  242. package/dist/src/bitgo/tss/ecdsa/types.d.ts +30 -0
  243. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -0
  244. package/dist/src/bitgo/tss/ecdsa/types.js +3 -0
  245. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +102 -0
  246. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -0
  247. package/dist/src/bitgo/tss/eddsa/eddsa.js +256 -0
  248. package/dist/src/bitgo/tss/eddsa/index.d.ts +6 -0
  249. package/dist/src/bitgo/tss/eddsa/index.d.ts.map +1 -0
  250. package/dist/src/bitgo/tss/eddsa/index.js +37 -0
  251. package/dist/src/bitgo/tss/eddsa/types.d.ts +23 -0
  252. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -0
  253. package/dist/src/bitgo/tss/eddsa/types.js +3 -0
  254. package/dist/src/bitgo/tss/index.d.ts +6 -0
  255. package/dist/src/bitgo/tss/index.d.ts.map +1 -0
  256. package/dist/src/bitgo/tss/index.js +42 -0
  257. package/dist/src/bitgo/tss/types.d.ts +6 -0
  258. package/dist/src/bitgo/tss/types.d.ts.map +1 -0
  259. package/dist/src/bitgo/tss/types.js +10 -0
  260. package/dist/src/bitgo/types.d.ts +4 -0
  261. package/dist/src/bitgo/types.d.ts.map +1 -0
  262. package/dist/src/bitgo/types.js +3 -0
  263. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +6 -0
  264. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -0
  265. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +30 -0
  266. package/dist/src/bitgo/utils/blsUtils.d.ts +51 -0
  267. package/dist/src/bitgo/utils/blsUtils.d.ts.map +1 -0
  268. package/dist/src/bitgo/utils/blsUtils.js +166 -0
  269. package/dist/src/bitgo/utils/iBlsUtils.d.ts +14 -0
  270. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +1 -0
  271. package/dist/src/bitgo/utils/iBlsUtils.js +3 -0
  272. package/dist/src/bitgo/utils/index.d.ts +12 -0
  273. package/dist/src/bitgo/utils/index.d.ts.map +1 -0
  274. package/dist/src/bitgo/utils/index.js +37 -0
  275. package/dist/src/bitgo/utils/mpcUtils.d.ts +31 -0
  276. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -0
  277. package/dist/src/bitgo/utils/mpcUtils.js +55 -0
  278. package/dist/src/bitgo/utils/opengpgUtils.d.ts +51 -0
  279. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -0
  280. package/dist/src/bitgo/utils/opengpgUtils.js +136 -0
  281. package/dist/src/bitgo/utils/promise-utils.d.ts +5 -0
  282. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -0
  283. package/dist/src/bitgo/utils/promise-utils.js +12 -0
  284. package/dist/src/bitgo/utils/triple.d.ts +3 -0
  285. package/dist/src/bitgo/utils/triple.d.ts.map +1 -0
  286. package/dist/src/bitgo/utils/triple.js +8 -0
  287. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +118 -0
  288. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -0
  289. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +352 -0
  290. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +5 -0
  291. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -0
  292. package/dist/src/bitgo/utils/tss/eddsa/index.js +29 -0
  293. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +73 -0
  294. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -0
  295. package/dist/src/bitgo/utils/tss/eddsa/types.js +10 -0
  296. package/dist/src/bitgo/utils/tss/index.d.ts +4 -0
  297. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -0
  298. package/dist/src/bitgo/utils/tss/index.js +29 -0
  299. package/dist/src/bitgo/utils/util.d.ts +77 -0
  300. package/dist/src/bitgo/utils/util.d.ts.map +1 -0
  301. package/dist/src/bitgo/utils/util.js +198 -0
  302. package/dist/src/bitgo/wallet/iWallet.d.ts +518 -0
  303. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -0
  304. package/dist/src/bitgo/wallet/iWallet.js +3 -0
  305. package/dist/src/bitgo/wallet/iWallets.d.ts +105 -0
  306. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -0
  307. package/dist/src/bitgo/wallet/iWallets.js +3 -0
  308. package/dist/src/bitgo/wallet/index.d.ts +5 -0
  309. package/dist/src/bitgo/wallet/index.d.ts.map +1 -0
  310. package/dist/src/bitgo/wallet/index.js +17 -0
  311. package/dist/src/bitgo/wallet/wallet.d.ts +656 -0
  312. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -0
  313. package/dist/src/bitgo/wallet/wallet.js +2056 -0
  314. package/dist/src/bitgo/wallet/wallets.d.ts +134 -0
  315. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -0
  316. package/dist/src/bitgo/wallet/wallets.js +605 -0
  317. package/dist/src/bitgo/webhook/iWebhooks.d.ts +26 -0
  318. package/dist/src/bitgo/webhook/iWebhooks.d.ts.map +1 -0
  319. package/dist/src/bitgo/webhook/iWebhooks.js +3 -0
  320. package/dist/src/bitgo/webhook/index.d.ts +3 -0
  321. package/dist/src/bitgo/webhook/index.d.ts.map +1 -0
  322. package/dist/src/bitgo/webhook/index.js +15 -0
  323. package/dist/src/bitgo/webhook/webhooks.d.ts +43 -0
  324. package/dist/src/bitgo/webhook/webhooks.d.ts.map +1 -0
  325. package/dist/src/bitgo/webhook/webhooks.js +102 -0
  326. package/dist/src/{bigojsError.d.ts → bitgojsError.d.ts} +1 -1
  327. package/dist/src/bitgojsError.d.ts.map +1 -0
  328. package/dist/src/bitgojsError.js +11 -0
  329. package/dist/src/common.d.ts +1 -1
  330. package/dist/src/common.d.ts.map +1 -1
  331. package/dist/src/common.js +3 -3
  332. package/dist/src/index.d.ts +3 -2
  333. package/dist/src/index.d.ts.map +1 -1
  334. package/dist/src/index.js +5 -5
  335. package/dist/tsconfig.tsbuildinfo +2817 -1848
  336. package/package.json +15 -6
  337. package/dist/src/bigojsError.d.ts.map +0 -1
  338. package/dist/src/bigojsError.js +0 -11
  339. package/dist/src/v2/environments.d.ts.map +0 -1
  340. package/dist/src/v2/environments.js +0 -142
  341. package/dist/src/v2/index.d.ts +0 -3
  342. package/dist/src/v2/index.d.ts.map +0 -1
  343. package/dist/src/v2/types.d.ts +0 -2
  344. package/dist/src/v2/types.d.ts.map +0 -1
  345. package/dist/src/v2/types.js +0 -3
@@ -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,3 @@
1
+ export declare type Triple<T> = [T, T, T];
2
+ export declare function isTriple<T>(arr: T[]): arr is Triple<T>;
3
+ //# sourceMappingURL=triple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triple.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/utils/triple.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAElC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAEtD"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTriple = void 0;
4
+ function isTriple(arr) {
5
+ return arr.length === 3;
6
+ }
7
+ exports.isTriple = isTriple;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3RyaXBsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixRQUFRLENBQUksR0FBUTtJQUNsQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFGRCw0QkFFQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFRyaXBsZTxUPiA9IFtULCBULCBUXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVHJpcGxlPFQ+KGFycjogVFtdKTogYXJyIGlzIFRyaXBsZTxUPiB7XG4gIHJldHVybiBhcnIubGVuZ3RoID09PSAzO1xufVxuIl19
@@ -0,0 +1,118 @@
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 './types';
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 lite or full
74
+ * @param preview boolean indicating if this is to preview a tx request, which will not initiate policy checks or pending approvals
75
+ * @returns {Promise<TxRequest>} - a built tx request
76
+ */
77
+ prebuildTxWithIntent(params: PrebuildTransactionWithIntentOptions, apiVersion?: string, preview?: boolean): Promise<TxRequest>;
78
+ /**
79
+ * Call delete signature shares for a txRequest, the endpoint delete the signatures and return them
80
+ *
81
+ * @param {string} txRequestId tx id reference to delete signature shares
82
+ * @returns {SignatureShareRecord[]}
83
+ */
84
+ deleteSignatureShares(txRequestId: string): Promise<SignatureShareRecord[]>;
85
+ /**
86
+ * Initialize the send procedure once Bitgo has the User To Bitgo GShare
87
+ *
88
+ * @param {String} txRequestId - the txRequest Id
89
+ * @returns {Promise<any>}
90
+ */
91
+ sendTxRequest(txRequestId: string): Promise<any>;
92
+ /**
93
+ * Delete signature shares, get the tx request without them from the db and sign it to finally send it.
94
+ *
95
+ * Note : This can be performed in order to reach latest network conditions required on pending approval flow.
96
+ *
97
+ * @param {String} txRequestId - the txRequest Id to make the requests.
98
+ * @param {String} decryptedPrv - decrypted prv to sign the tx request.
99
+ * @param {RequestTracer} reqId id tracer.
100
+ * @returns {Promise<any>}
101
+ */
102
+ recreateTxRequest(txRequestId: string, decryptedPrv: string, reqId: IRequestTracer): Promise<TxRequest>;
103
+ /**
104
+ * Gets the latest Tx Request by id
105
+ *
106
+ * @param {String} txRequestId - the txRequest Id
107
+ * @returns {Promise<TxRequest>}
108
+ */
109
+ getTxRequest(txRequestId: string): Promise<TxRequest>;
110
+ /**
111
+ * Get the commonPub portion of the commonKeychain.
112
+ *
113
+ * @param {String} commonKeychain
114
+ * @returns {string}
115
+ */
116
+ static getPublicKeyFromCommonKeychain(commonKeychain: string): string;
117
+ }
118
+ //# sourceMappingURL=eddsa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eddsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/eddsa.ts"],"names":[],"mappings":"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"}