@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,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encryptNShare = exports.createCombinedKey = void 0;
4
+ const tss_1 = require("./../../../account-lib/mpc/tss");
5
+ const utils_1 = require("./../../utils");
6
+ /**
7
+ * Combines NShares to combine the final TSS key
8
+ * This can only be used to create the User or Backup key since it requires the common keychain from BitGo first
9
+ *
10
+ * @param params.keyShare - TSS key share
11
+ * @param params.encryptedNShares - encrypted NShares with information on how to decrypt
12
+ * @param params.commonKeychain - expected common keychain of the combined key
13
+ * @returns {CombinedKey} combined TSS key
14
+ */
15
+ async function createCombinedKey(params) {
16
+ const MPC = new tss_1.Ecdsa();
17
+ const { keyShare, encryptedNShares, commonKeychain } = params;
18
+ const nShares = [];
19
+ let bitgoNShare;
20
+ let userNShare;
21
+ let backupNShare;
22
+ for (const encryptedNShare of encryptedNShares) {
23
+ const privateShare = await utils_1.readSignedMessage(encryptedNShare.nShare.encryptedPrivateShare, encryptedNShare.senderPublicArmor, encryptedNShare.recipientPrivateArmor);
24
+ const nShare = {
25
+ i: encryptedNShare.nShare.i,
26
+ j: encryptedNShare.nShare.j,
27
+ y: encryptedNShare.nShare.publicShare,
28
+ u: privateShare,
29
+ n: encryptedNShare.nShare.n,
30
+ chaincode: encryptedNShare.nShare.chaincode,
31
+ };
32
+ switch (encryptedNShare.nShare.j) {
33
+ case 1:
34
+ userNShare = nShare;
35
+ break;
36
+ case 2:
37
+ backupNShare = nShare;
38
+ break;
39
+ case 3:
40
+ bitgoNShare = nShare;
41
+ break;
42
+ default:
43
+ throw new Error('Invalid NShare index');
44
+ }
45
+ nShares.push(nShare);
46
+ }
47
+ if (!bitgoNShare) {
48
+ throw new Error('Missing BitGo N Share');
49
+ }
50
+ const combinedKey = MPC.keyCombine(keyShare.pShare, nShares);
51
+ if (combinedKey.xShare.y + combinedKey.xShare.chaincode !== commonKeychain) {
52
+ throw new Error('Common keychains do not match');
53
+ }
54
+ const signingMaterial = {
55
+ pShare: keyShare.pShare,
56
+ bitgoNShare,
57
+ backupNShare,
58
+ userNShare,
59
+ };
60
+ return {
61
+ signingMaterial,
62
+ commonKeychain,
63
+ };
64
+ }
65
+ exports.createCombinedKey = createCombinedKey;
66
+ /**
67
+ * Prepares a NShare to be exchanged with other key holders.
68
+ * Output is in a format that is usable within BitGo's ecosystem.
69
+ *
70
+ * @param params.keyShare - TSS key share of the party preparing exchange materials
71
+ * @param params.recipientIndex - index of the recipient (1, 2, or 3)
72
+ * @param params.recipientGpgPublicArmor - recipient's public gpg key in armor format
73
+ * @param params.senderGpgPrivateArmor - sender's private gpg key in armor format
74
+ * @returns { EncryptedNShare } encrypted Y Share
75
+ */
76
+ async function encryptNShare(params) {
77
+ const { keyShare, recipientIndex, recipientGpgPublicArmor, senderGpgPrivateArmor } = params;
78
+ const nShare = keyShare.nShares[recipientIndex];
79
+ if (!nShare) {
80
+ throw new Error('Invalid recipient');
81
+ }
82
+ const publicShare = keyShare.pShare.y;
83
+ const privateShare = nShare.u;
84
+ const encryptedPrivateShare = await utils_1.encryptAndSignText(privateShare, recipientGpgPublicArmor, senderGpgPrivateArmor);
85
+ return {
86
+ i: nShare.i,
87
+ j: nShare.j,
88
+ n: nShare.n,
89
+ publicShare,
90
+ encryptedPrivateShare,
91
+ chaincode: nShare.chaincode,
92
+ };
93
+ }
94
+ exports.encryptNShare = encryptNShare;
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2VjZHNhL2VjZHNhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUE4RDtBQUU5RCx5Q0FBc0U7QUFJdEU7Ozs7Ozs7O0dBUUc7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsTUFJdkM7SUFDQyxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQUssRUFBRSxDQUFDO0lBRXhCLE1BQU0sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzlELE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUU3QixJQUFJLFdBQStCLENBQUM7SUFDcEMsSUFBSSxVQUE4QixDQUFDO0lBQ25DLElBQUksWUFBZ0MsQ0FBQztJQUVyQyxLQUFLLE1BQU0sZUFBZSxJQUFJLGdCQUFnQixFQUFFO1FBQzlDLE1BQU0sWUFBWSxHQUFHLE1BQU0seUJBQWlCLENBQzFDLGVBQWUsQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQzVDLGVBQWUsQ0FBQyxpQkFBaUIsRUFDakMsZUFBZSxDQUFDLHFCQUFxQixDQUN0QyxDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQVc7WUFDckIsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQixDQUFDLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLENBQUMsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDckMsQ0FBQyxFQUFFLFlBQVk7WUFDZixDQUFDLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLFNBQVMsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVM7U0FDNUMsQ0FBQztRQUVGLFFBQVEsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7WUFDaEMsS0FBSyxDQUFDO2dCQUNKLFVBQVUsR0FBRyxNQUFNLENBQUM7Z0JBQ3BCLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osWUFBWSxHQUFHLE1BQU0sQ0FBQztnQkFDdEIsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixXQUFXLEdBQUcsTUFBTSxDQUFDO2dCQUNyQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN0QjtJQUVELElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBQzFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssY0FBYyxFQUFFO1FBQzFFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUNsRDtJQUVELE1BQU0sZUFBZSxHQUFvQjtRQUN2QyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07UUFDdkIsV0FBVztRQUNYLFlBQVk7UUFDWixVQUFVO0tBQ1gsQ0FBQztJQUVGLE9BQU87UUFDTCxlQUFlO1FBQ2YsY0FBYztLQUNmLENBQUM7QUFDSixDQUFDO0FBbkVELDhDQW1FQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSxhQUFhLENBQUMsTUFLbkM7SUFDQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUU1RixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDdEM7SUFFRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRTlCLE1BQU0scUJBQXFCLEdBQUcsTUFBTSwwQkFBa0IsQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUVySCxPQUFPO1FBQ0wsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ1gsV0FBVztRQUNYLHFCQUFxQjtRQUNyQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7S0FDNUIsQ0FBQztBQUNKLENBQUM7QUExQkQsc0NBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRUNEU0EsIEVjZHNhIH0gZnJvbSAnLi8uLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCB7IERlY3J5cHRhYmxlTlNoYXJlLCBDb21iaW5lZEtleSwgU2lnbmluZ01hdGVyaWFsLCBFbmNyeXB0ZWROU2hhcmUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGVuY3J5cHRBbmRTaWduVGV4dCwgcmVhZFNpZ25lZE1lc3NhZ2UgfSBmcm9tICcuLy4uLy4uL3V0aWxzJztcblxudHlwZSBOU2hhcmUgPSBFQ0RTQS5OU2hhcmU7XG50eXBlIEtleVNoYXJlID0gRUNEU0EuS2V5U2hhcmU7XG4vKipcbiAqIENvbWJpbmVzIE5TaGFyZXMgdG8gY29tYmluZSB0aGUgZmluYWwgVFNTIGtleVxuICogVGhpcyBjYW4gb25seSBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgVXNlciBvciBCYWNrdXAga2V5IHNpbmNlIGl0IHJlcXVpcmVzIHRoZSBjb21tb24ga2V5Y2hhaW4gZnJvbSBCaXRHbyBmaXJzdFxuICpcbiAqIEBwYXJhbSBwYXJhbXMua2V5U2hhcmUgLSBUU1Mga2V5IHNoYXJlXG4gKiBAcGFyYW0gcGFyYW1zLmVuY3J5cHRlZE5TaGFyZXMgLSBlbmNyeXB0ZWQgTlNoYXJlcyB3aXRoIGluZm9ybWF0aW9uIG9uIGhvdyB0byBkZWNyeXB0XG4gKiBAcGFyYW0gcGFyYW1zLmNvbW1vbktleWNoYWluIC0gZXhwZWN0ZWQgY29tbW9uIGtleWNoYWluIG9mIHRoZSBjb21iaW5lZCBrZXlcbiAqIEByZXR1cm5zIHtDb21iaW5lZEtleX0gY29tYmluZWQgVFNTIGtleVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29tYmluZWRLZXkocGFyYW1zOiB7XG4gIGtleVNoYXJlOiBLZXlTaGFyZTtcbiAgZW5jcnlwdGVkTlNoYXJlczogRGVjcnlwdGFibGVOU2hhcmVbXTtcbiAgY29tbW9uS2V5Y2hhaW46IHN0cmluZztcbn0pOiBQcm9taXNlPENvbWJpbmVkS2V5PiB7XG4gIGNvbnN0IE1QQyA9IG5ldyBFY2RzYSgpO1xuXG4gIGNvbnN0IHsga2V5U2hhcmUsIGVuY3J5cHRlZE5TaGFyZXMsIGNvbW1vbktleWNoYWluIH0gPSBwYXJhbXM7XG4gIGNvbnN0IG5TaGFyZXM6IE5TaGFyZVtdID0gW107XG5cbiAgbGV0IGJpdGdvTlNoYXJlOiBOU2hhcmUgfCB1bmRlZmluZWQ7XG4gIGxldCB1c2VyTlNoYXJlOiBOU2hhcmUgfCB1bmRlZmluZWQ7XG4gIGxldCBiYWNrdXBOU2hhcmU6IE5TaGFyZSB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGNvbnN0IGVuY3J5cHRlZE5TaGFyZSBvZiBlbmNyeXB0ZWROU2hhcmVzKSB7XG4gICAgY29uc3QgcHJpdmF0ZVNoYXJlID0gYXdhaXQgcmVhZFNpZ25lZE1lc3NhZ2UoXG4gICAgICBlbmNyeXB0ZWROU2hhcmUublNoYXJlLmVuY3J5cHRlZFByaXZhdGVTaGFyZSxcbiAgICAgIGVuY3J5cHRlZE5TaGFyZS5zZW5kZXJQdWJsaWNBcm1vcixcbiAgICAgIGVuY3J5cHRlZE5TaGFyZS5yZWNpcGllbnRQcml2YXRlQXJtb3JcbiAgICApO1xuXG4gICAgY29uc3QgblNoYXJlOiBOU2hhcmUgPSB7XG4gICAgICBpOiBlbmNyeXB0ZWROU2hhcmUublNoYXJlLmksXG4gICAgICBqOiBlbmNyeXB0ZWROU2hhcmUublNoYXJlLmosXG4gICAgICB5OiBlbmNyeXB0ZWROU2hhcmUublNoYXJlLnB1YmxpY1NoYXJlLFxuICAgICAgdTogcHJpdmF0ZVNoYXJlLFxuICAgICAgbjogZW5jcnlwdGVkTlNoYXJlLm5TaGFyZS5uLFxuICAgICAgY2hhaW5jb2RlOiBlbmNyeXB0ZWROU2hhcmUublNoYXJlLmNoYWluY29kZSxcbiAgICB9O1xuXG4gICAgc3dpdGNoIChlbmNyeXB0ZWROU2hhcmUublNoYXJlLmopIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgdXNlck5TaGFyZSA9IG5TaGFyZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGJhY2t1cE5TaGFyZSA9IG5TaGFyZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIGJpdGdvTlNoYXJlID0gblNoYXJlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBOU2hhcmUgaW5kZXgnKTtcbiAgICB9XG5cbiAgICBuU2hhcmVzLnB1c2goblNoYXJlKTtcbiAgfVxuXG4gIGlmICghYml0Z29OU2hhcmUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQml0R28gTiBTaGFyZScpO1xuICB9XG5cbiAgY29uc3QgY29tYmluZWRLZXkgPSBNUEMua2V5Q29tYmluZShrZXlTaGFyZS5wU2hhcmUsIG5TaGFyZXMpO1xuICBpZiAoY29tYmluZWRLZXkueFNoYXJlLnkgKyBjb21iaW5lZEtleS54U2hhcmUuY2hhaW5jb2RlICE9PSBjb21tb25LZXljaGFpbikge1xuICAgIHRocm93IG5ldyBFcnJvcignQ29tbW9uIGtleWNoYWlucyBkbyBub3QgbWF0Y2gnKTtcbiAgfVxuXG4gIGNvbnN0IHNpZ25pbmdNYXRlcmlhbDogU2lnbmluZ01hdGVyaWFsID0ge1xuICAgIHBTaGFyZToga2V5U2hhcmUucFNoYXJlLFxuICAgIGJpdGdvTlNoYXJlLFxuICAgIGJhY2t1cE5TaGFyZSxcbiAgICB1c2VyTlNoYXJlLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgc2lnbmluZ01hdGVyaWFsLFxuICAgIGNvbW1vbktleWNoYWluLFxuICB9O1xufVxuXG4vKipcbiAqIFByZXBhcmVzIGEgTlNoYXJlIHRvIGJlIGV4Y2hhbmdlZCB3aXRoIG90aGVyIGtleSBob2xkZXJzLlxuICogT3V0cHV0IGlzIGluIGEgZm9ybWF0IHRoYXQgaXMgdXNhYmxlIHdpdGhpbiBCaXRHbydzIGVjb3N5c3RlbS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zLmtleVNoYXJlIC0gVFNTIGtleSBzaGFyZSBvZiB0aGUgcGFydHkgcHJlcGFyaW5nIGV4Y2hhbmdlIG1hdGVyaWFsc1xuICogQHBhcmFtIHBhcmFtcy5yZWNpcGllbnRJbmRleCAtIGluZGV4IG9mIHRoZSByZWNpcGllbnQgKDEsIDIsIG9yIDMpXG4gKiBAcGFyYW0gcGFyYW1zLnJlY2lwaWVudEdwZ1B1YmxpY0FybW9yIC0gcmVjaXBpZW50J3MgcHVibGljIGdwZyBrZXkgaW4gYXJtb3IgZm9ybWF0XG4gKiBAcGFyYW0gcGFyYW1zLnNlbmRlckdwZ1ByaXZhdGVBcm1vciAtIHNlbmRlcidzIHByaXZhdGUgZ3BnIGtleSBpbiBhcm1vciBmb3JtYXRcbiAqIEByZXR1cm5zIHsgRW5jcnlwdGVkTlNoYXJlIH0gZW5jcnlwdGVkIFkgU2hhcmVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuY3J5cHROU2hhcmUocGFyYW1zOiB7XG4gIGtleVNoYXJlOiBLZXlTaGFyZTtcbiAgcmVjaXBpZW50SW5kZXg6IG51bWJlcjtcbiAgcmVjaXBpZW50R3BnUHVibGljQXJtb3I6IHN0cmluZztcbiAgc2VuZGVyR3BnUHJpdmF0ZUFybW9yOiBzdHJpbmc7XG59KTogUHJvbWlzZTxFbmNyeXB0ZWROU2hhcmU+IHtcbiAgY29uc3QgeyBrZXlTaGFyZSwgcmVjaXBpZW50SW5kZXgsIHJlY2lwaWVudEdwZ1B1YmxpY0FybW9yLCBzZW5kZXJHcGdQcml2YXRlQXJtb3IgfSA9IHBhcmFtcztcblxuICBjb25zdCBuU2hhcmUgPSBrZXlTaGFyZS5uU2hhcmVzW3JlY2lwaWVudEluZGV4XTtcbiAgaWYgKCFuU2hhcmUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcmVjaXBpZW50Jyk7XG4gIH1cblxuICBjb25zdCBwdWJsaWNTaGFyZSA9IGtleVNoYXJlLnBTaGFyZS55O1xuICBjb25zdCBwcml2YXRlU2hhcmUgPSBuU2hhcmUudTtcblxuICBjb25zdCBlbmNyeXB0ZWRQcml2YXRlU2hhcmUgPSBhd2FpdCBlbmNyeXB0QW5kU2lnblRleHQocHJpdmF0ZVNoYXJlLCByZWNpcGllbnRHcGdQdWJsaWNBcm1vciwgc2VuZGVyR3BnUHJpdmF0ZUFybW9yKTtcblxuICByZXR1cm4ge1xuICAgIGk6IG5TaGFyZS5pLFxuICAgIGo6IG5TaGFyZS5qLFxuICAgIG46IG5TaGFyZS5uLFxuICAgIHB1YmxpY1NoYXJlLFxuICAgIGVuY3J5cHRlZFByaXZhdGVTaGFyZSxcbiAgICBjaGFpbmNvZGU6IG5TaGFyZS5jaGFpbmNvZGUsXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ import * as ECDSAMethods from './ecdsa';
2
+ export * as ECDSAMethodTypes from './types';
3
+ export default ECDSAMethods;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/tss/ecdsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,SAAS,CAAC;AAExC,OAAO,KAAK,gBAAgB,MAAM,SAAS,CAAC;AAE5C,eAAe,YAAY,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.ECDSAMethodTypes = void 0;
23
+ const ECDSAMethods = __importStar(require("./ecdsa"));
24
+ exports.ECDSAMethodTypes = __importStar(require("./types"));
25
+ exports.default = ECDSAMethods;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2VjZHNhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBd0M7QUFFeEMsNERBQTRDO0FBRTVDLGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEVDRFNBTWV0aG9kcyBmcm9tICcuL2VjZHNhJztcblxuZXhwb3J0ICogYXMgRUNEU0FNZXRob2RUeXBlcyBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgRUNEU0FNZXRob2RzO1xuIl19
@@ -0,0 +1,30 @@
1
+ import { ECDSA } from './../../../account-lib/mpc/tss';
2
+ export declare type EncryptedNShare = {
3
+ i: number;
4
+ j: number;
5
+ n: string;
6
+ publicShare: string;
7
+ encryptedPrivateShare: string;
8
+ chaincode: string;
9
+ };
10
+ export declare type DecryptableNShare = {
11
+ nShare: EncryptedNShare;
12
+ recipientPrivateArmor: string;
13
+ senderPublicArmor: string;
14
+ };
15
+ export declare type CombinedKey = {
16
+ commonKeychain: string;
17
+ signingMaterial: SigningMaterial;
18
+ };
19
+ export declare type SigningMaterial = {
20
+ pShare: ECDSA.PShare;
21
+ bitgoNShare: ECDSA.NShare;
22
+ backupNShare?: ECDSA.NShare;
23
+ userNShare?: ECDSA.NShare;
24
+ };
25
+ export declare type CreateCombinedKeyParams = {
26
+ keyShare: ECDSA.KeyShare;
27
+ encryptedNShares: DecryptableNShare[];
28
+ commonKeychain: string;
29
+ };
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/tss/ecdsa/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAGvD,oBAAY,eAAe,GAAG;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,WAAW,EAAE,MAAM,CAAC;IAEpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,oBAAY,iBAAiB,GAAG;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAGF,oBAAY,WAAW,GAAG;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAGF,oBAAY,eAAe,GAAG;IAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IACrB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;CAC3B,CAAC;AAEF,oBAAY,uBAAuB,GAAG;IACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzB,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2VjZHNhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFQ0RTQSB9IGZyb20gJy4vLi4vLi4vLi4vYWNjb3VudC1saWIvbXBjL3Rzcyc7XG5cbi8vIE5TaGFyZSB0aGF0IGhhcyBiZWVuIGVuY3J5cHRlZCBhbmQgc2lnbmVkIHZpYSBHUEdcbmV4cG9ydCB0eXBlIEVuY3J5cHRlZE5TaGFyZSA9IHtcbiAgaTogbnVtYmVyO1xuICBqOiBudW1iZXI7XG4gIG46IHN0cmluZztcbiAgcHVibGljU2hhcmU6IHN0cmluZztcbiAgLy8gc2lnbmVkIGFuZCBlbmNyeXB0ZWQgZ3BnIGFybW9yXG4gIGVuY3J5cHRlZFByaXZhdGVTaGFyZTogc3RyaW5nO1xuICBjaGFpbmNvZGU6IHN0cmluZztcbn07XG5cbi8vIE5TaGFyZSB3aXRoIGluZm9ybWF0aW9uIG5lZWRlZCB0byBkZWNyeXB0IGFuZCB2ZXJpZnkgYSBHUEcgbWVzYXNnZVxuZXhwb3J0IHR5cGUgRGVjcnlwdGFibGVOU2hhcmUgPSB7XG4gIG5TaGFyZTogRW5jcnlwdGVkTlNoYXJlO1xuICByZWNpcGllbnRQcml2YXRlQXJtb3I6IHN0cmluZztcbiAgc2VuZGVyUHVibGljQXJtb3I6IHN0cmluZztcbn07XG5cbi8vIEZpbmFsIFRTUyBcIktleXBhaXJcIlxuZXhwb3J0IHR5cGUgQ29tYmluZWRLZXkgPSB7XG4gIGNvbW1vbktleWNoYWluOiBzdHJpbmc7XG4gIHNpZ25pbmdNYXRlcmlhbDogU2lnbmluZ01hdGVyaWFsO1xufTtcblxuLy8gUHJpdmF0ZSBwb3J0aW9uIG9mIGEgVFNTIGtleSwgdGhpcyBtdXN0IGJlIGhhbmRsZWQgbGlrZSBhbnkgb3RoZXIgcHJpdmF0ZSBrZXlcbmV4cG9ydCB0eXBlIFNpZ25pbmdNYXRlcmlhbCA9IHtcbiAgcFNoYXJlOiBFQ0RTQS5QU2hhcmU7XG4gIGJpdGdvTlNoYXJlOiBFQ0RTQS5OU2hhcmU7XG4gIGJhY2t1cE5TaGFyZT86IEVDRFNBLk5TaGFyZTtcbiAgdXNlck5TaGFyZT86IEVDRFNBLk5TaGFyZTtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUNvbWJpbmVkS2V5UGFyYW1zID0ge1xuICBrZXlTaGFyZTogRUNEU0EuS2V5U2hhcmU7XG4gIGVuY3J5cHRlZE5TaGFyZXM6IERlY3J5cHRhYmxlTlNoYXJlW107XG4gIGNvbW1vbktleWNoYWluOiBzdHJpbmc7XG59O1xuIl19
@@ -0,0 +1,102 @@
1
+ /// <reference types="node" />
2
+ import { GShare, KeyShare, PShare, SignShare, YShare } from './../../../account-lib/mpc/tss';
3
+ import { BitGoBase } from './../../bitgoBase';
4
+ import { DecryptableYShare, CombinedKey, EncryptedYShare } from './types';
5
+ import { SignatureShareRecord, TxRequest } from './../../utils';
6
+ /**
7
+ * Combines YShares to combine the final TSS key
8
+ * This can only be used to create the User or Backup key since it requires the common keychain from BitGo first
9
+ *
10
+ * @param params.keyShare - TSS key share
11
+ * @param params.encryptedYShares - encrypted YShares with information on how to decrypt
12
+ * @param params.commonKeychain - expected common keychain of the combined key
13
+ * @returns {CombinedKey} combined TSS key
14
+ */
15
+ export declare function createCombinedKey(params: {
16
+ keyShare: KeyShare;
17
+ encryptedYShares: DecryptableYShare[];
18
+ commonKeychain: string;
19
+ }): Promise<CombinedKey>;
20
+ /**
21
+ * Creates the User Sign Share containing the User XShare and the User to Bitgo RShare
22
+ *
23
+ * @param {Buffer} signablePayload - the signablePayload as a buffer
24
+ * @param {PShare} pShare - User's signing material
25
+ * @returns {Promise<SignShare>} - User Sign Share
26
+ */
27
+ export declare function createUserSignShare(signablePayload: Buffer, pShare: PShare): Promise<SignShare>;
28
+ /**
29
+ * Creates the User to Bitgo GShare
30
+ *
31
+ * @param {SignShare} userSignShare - the User Sign Share
32
+ * @param {SignatureShareRecord} bitgoToUserRShare - the Bitgo to User RShare
33
+ * @param {YShare} backupToUserYShare - the backup key Y share received during wallet creation
34
+ * @param {Buffer} signablePayload - the signable payload from a tx
35
+ * @returns {Promise<GShare>} - the User to Bitgo GShare
36
+ */
37
+ export declare function createUserToBitGoGShare(userSignShare: SignShare, bitgoToUserRShare: SignatureShareRecord, backupToUserYShare: YShare, bitgoToUserYShare: YShare, signablePayload: Buffer): Promise<GShare>;
38
+ /**
39
+ * Sends the User to Bitgo RShare to Bitgo
40
+ * @param {BitGoBase} bitgo - the bitgo instance
41
+ * @param {String} walletId - the wallet id
42
+ * @param {String} txRequestId - the txRequest Id
43
+ * @param {SignShare} userSignShare - the user Sign Share
44
+ * @param {String} encryptedSignerShare - signer share encrypted to bitgo key
45
+ * @returns {Promise<void>}
46
+ */
47
+ export declare function offerUserToBitgoRShare(bitgo: BitGoBase, walletId: string, txRequestId: string, userSignShare: SignShare, encryptedSignerShare: string): Promise<void>;
48
+ /**
49
+ * Gets the Bitgo to User RShare from Bitgo
50
+ *
51
+ * @param {BitGoBase} bitgo - the bitgo instance
52
+ * @param {String} walletId - the wallet id
53
+ * @param {String} txRequestId - the txRequest Id
54
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
55
+ */
56
+ export declare function getBitgoToUserRShare(bitgo: BitGoBase, walletId: string, txRequestId: string): Promise<SignatureShareRecord>;
57
+ /**
58
+ * Sends the User to Bitgo GShare to Bitgo
59
+ *
60
+ * @param {BitGoBase} bitgo - the bitgo instance
61
+ * @param {String} walletId - the wallet id
62
+ * @param {String} txRequestId - the txRequest Id
63
+ * @param {GShare} userToBitgoGShare - the User to Bitgo GShare
64
+ * @returns {Promise<void>}
65
+ */
66
+ export declare function sendUserToBitgoGShare(bitgo: BitGoBase, walletId: string, txRequestId: string, userToBitgoGShare: GShare): Promise<void>;
67
+ /**
68
+ * Gets the latest Tx Request by id
69
+ *
70
+ * @param {BitGoBase} bitgo - the bitgo instance
71
+ * @param {String} walletId - the wallet id
72
+ * @param {String} txRequestId - the txRequest Id
73
+ * @returns {Promise<TxRequest>}
74
+ */
75
+ export declare function getTxRequest(bitgo: BitGoBase, walletId: string, txRequestId: string): Promise<TxRequest>;
76
+ /**
77
+ * Sends a Signature Share
78
+ *
79
+ * @param {BitGoBase} bitgo - the bitgo instance
80
+ * @param {String} walletId - the wallet id *
81
+ * @param {String} txRequestId - the txRequest Id
82
+ * @param {SignatureShareRecord} signatureShare - a Signature Share
83
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
84
+ */
85
+ export declare function sendSignatureShare(bitgo: BitGoBase, walletId: string, txRequestId: string, signatureShare: SignatureShareRecord, signerShare?: string): Promise<SignatureShareRecord>;
86
+ /**
87
+ * Prepares a YShare to be exchanged with other key holders.
88
+ * Output is in a format that is usable within BitGo's ecosystem.
89
+ *
90
+ * @param params.keyShare - TSS key share of the party preparing exchange materials
91
+ * @param params.recipientIndex - index of the recipient (1, 2, or 3)
92
+ * @param params.recipientGpgPublicArmor - recipient's public gpg key in armor format
93
+ * @param params.senderGpgPrivateArmor - sender's private gpg key in armor format
94
+ * @returns { EncryptedYShare } encrypted Y Share
95
+ */
96
+ export declare function encryptYShare(params: {
97
+ keyShare: KeyShare;
98
+ recipientIndex: number;
99
+ recipientGpgPublicArmor: string;
100
+ senderGpgPrivateArmor: string;
101
+ }): Promise<EncryptedYShare>;
102
+ //# sourceMappingURL=eddsa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eddsa.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/tss/eddsa/eddsa.ts"],"names":[],"mappings":";AAAA,OAAc,EAAE,MAAM,EAAU,QAAQ,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACpH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAmB,eAAe,EAAE,MAAM,SAAS,CAAC;AAE3F,OAAO,EAGL,oBAAoB,EAEpB,SAAS,EACV,MAAM,eAAe,CAAC;AAGvB;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,QAAQ,EAAE,QAAQ,CAAC;IACnB,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,WAAW,CAAC,CA8DvB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAQrG;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,SAAS,EACxB,iBAAiB,EAAE,oBAAoB,EACvC,kBAAkB,EAAE,MAAM,EAC1B,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,SAAS,EACxB,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,CAAC,CAe/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAW9G;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,oBAAoB,EACpC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAQ/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE;IAC1C,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;CAC/B,GAAG,OAAO,CAAC,eAAe,CAAC,CAyB3B"}
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.encryptYShare = exports.sendSignatureShare = exports.getTxRequest = exports.sendUserToBitgoGShare = exports.getBitgoToUserRShare = exports.offerUserToBitgoRShare = exports.createUserToBitGoGShare = exports.createUserSignShare = exports.createCombinedKey = void 0;
7
+ const tss_1 = __importDefault(require("./../../../account-lib/mpc/tss"));
8
+ const types_1 = require("./../types");
9
+ const utils_1 = require("./../../utils");
10
+ const _ = require("lodash");
11
+ /**
12
+ * Combines YShares to combine the final TSS key
13
+ * This can only be used to create the User or Backup key since it requires the common keychain from BitGo first
14
+ *
15
+ * @param params.keyShare - TSS key share
16
+ * @param params.encryptedYShares - encrypted YShares with information on how to decrypt
17
+ * @param params.commonKeychain - expected common keychain of the combined key
18
+ * @returns {CombinedKey} combined TSS key
19
+ */
20
+ async function createCombinedKey(params) {
21
+ await tss_1.default.initialize();
22
+ const MPC = new tss_1.default();
23
+ const { keyShare, encryptedYShares, commonKeychain } = params;
24
+ const yShares = [];
25
+ let bitgoYShare;
26
+ let userYShare;
27
+ let backupYShare;
28
+ for (const encryptedYShare of encryptedYShares) {
29
+ const privateShare = await utils_1.readSignedMessage(encryptedYShare.yShare.encryptedPrivateShare, encryptedYShare.senderPublicArmor, encryptedYShare.recipientPrivateArmor);
30
+ const yShare = {
31
+ i: encryptedYShare.yShare.i,
32
+ j: encryptedYShare.yShare.j,
33
+ y: encryptedYShare.yShare.publicShare.slice(0, 64),
34
+ u: privateShare.slice(0, 64),
35
+ chaincode: privateShare.slice(64),
36
+ };
37
+ switch (encryptedYShare.yShare.j) {
38
+ case 1:
39
+ userYShare = yShare;
40
+ break;
41
+ case 2:
42
+ backupYShare = yShare;
43
+ break;
44
+ case 3:
45
+ bitgoYShare = yShare;
46
+ break;
47
+ default:
48
+ throw new Error('Invalid YShare index');
49
+ }
50
+ yShares.push(yShare);
51
+ }
52
+ const combinedKey = MPC.keyCombine(keyShare.uShare, yShares);
53
+ if (combinedKey.pShare.y + combinedKey.pShare.chaincode !== commonKeychain) {
54
+ throw new Error('Common keychains do not match');
55
+ }
56
+ if (!bitgoYShare) {
57
+ throw new Error('Missing BitGo Y Share');
58
+ }
59
+ const signingMaterial = {
60
+ uShare: keyShare.uShare,
61
+ bitgoYShare,
62
+ backupYShare,
63
+ userYShare,
64
+ };
65
+ return {
66
+ signingMaterial,
67
+ commonKeychain,
68
+ };
69
+ }
70
+ exports.createCombinedKey = createCombinedKey;
71
+ /**
72
+ * Creates the User Sign Share containing the User XShare and the User to Bitgo RShare
73
+ *
74
+ * @param {Buffer} signablePayload - the signablePayload as a buffer
75
+ * @param {PShare} pShare - User's signing material
76
+ * @returns {Promise<SignShare>} - User Sign Share
77
+ */
78
+ async function createUserSignShare(signablePayload, pShare) {
79
+ const MPC = await tss_1.default.initialize();
80
+ if (pShare.i !== types_1.ShareKeyPosition.USER) {
81
+ throw new Error('Invalid PShare, PShare doesnt belong to the User');
82
+ }
83
+ const jShare = { i: types_1.ShareKeyPosition.BITGO, j: types_1.ShareKeyPosition.USER };
84
+ return MPC.signShare(signablePayload, pShare, [jShare]);
85
+ }
86
+ exports.createUserSignShare = createUserSignShare;
87
+ /**
88
+ * Creates the User to Bitgo GShare
89
+ *
90
+ * @param {SignShare} userSignShare - the User Sign Share
91
+ * @param {SignatureShareRecord} bitgoToUserRShare - the Bitgo to User RShare
92
+ * @param {YShare} backupToUserYShare - the backup key Y share received during wallet creation
93
+ * @param {Buffer} signablePayload - the signable payload from a tx
94
+ * @returns {Promise<GShare>} - the User to Bitgo GShare
95
+ */
96
+ async function createUserToBitGoGShare(userSignShare, bitgoToUserRShare, backupToUserYShare, bitgoToUserYShare, signablePayload) {
97
+ if (userSignShare.xShare.i !== types_1.ShareKeyPosition.USER) {
98
+ throw new Error('Invalid XShare, doesnt belong to the User');
99
+ }
100
+ if (bitgoToUserRShare.from !== utils_1.SignatureShareType.BITGO || bitgoToUserRShare.to !== utils_1.SignatureShareType.USER) {
101
+ throw new Error('Invalid RShare, is not from Bitgo to User');
102
+ }
103
+ if (backupToUserYShare.i !== types_1.ShareKeyPosition.USER) {
104
+ throw new Error('Invalid YShare, doesnt belong to the User');
105
+ }
106
+ if (backupToUserYShare.j !== types_1.ShareKeyPosition.BACKUP) {
107
+ throw new Error('Invalid YShare, is not backup key');
108
+ }
109
+ const RShare = {
110
+ i: types_1.ShareKeyPosition.USER,
111
+ j: types_1.ShareKeyPosition.BITGO,
112
+ u: bitgoToUserYShare.u,
113
+ r: bitgoToUserRShare.share.substring(0, 64),
114
+ R: bitgoToUserRShare.share.substring(64, 128),
115
+ };
116
+ const MPC = await tss_1.default.initialize();
117
+ return MPC.sign(signablePayload, userSignShare.xShare, [RShare], [backupToUserYShare]);
118
+ }
119
+ exports.createUserToBitGoGShare = createUserToBitGoGShare;
120
+ /**
121
+ * Sends the User to Bitgo RShare to Bitgo
122
+ * @param {BitGoBase} bitgo - the bitgo instance
123
+ * @param {String} walletId - the wallet id
124
+ * @param {String} txRequestId - the txRequest Id
125
+ * @param {SignShare} userSignShare - the user Sign Share
126
+ * @param {String} encryptedSignerShare - signer share encrypted to bitgo key
127
+ * @returns {Promise<void>}
128
+ */
129
+ async function offerUserToBitgoRShare(bitgo, walletId, txRequestId, userSignShare, encryptedSignerShare) {
130
+ const rShare = userSignShare.rShares[types_1.ShareKeyPosition.BITGO];
131
+ if (_.isNil(rShare)) {
132
+ throw new Error('userToBitgo RShare not found');
133
+ }
134
+ if (rShare.i !== types_1.ShareKeyPosition.BITGO || rShare.j !== types_1.ShareKeyPosition.USER) {
135
+ throw new Error('Invalid RShare, is not from User to Bitgo');
136
+ }
137
+ const signatureShare = {
138
+ from: utils_1.SignatureShareType.USER,
139
+ to: utils_1.SignatureShareType.BITGO,
140
+ share: rShare.r + rShare.R,
141
+ };
142
+ await sendSignatureShare(bitgo, walletId, txRequestId, signatureShare, encryptedSignerShare);
143
+ }
144
+ exports.offerUserToBitgoRShare = offerUserToBitgoRShare;
145
+ /**
146
+ * Gets the Bitgo to User RShare from Bitgo
147
+ *
148
+ * @param {BitGoBase} bitgo - the bitgo instance
149
+ * @param {String} walletId - the wallet id
150
+ * @param {String} txRequestId - the txRequest Id
151
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
152
+ */
153
+ async function getBitgoToUserRShare(bitgo, walletId, txRequestId) {
154
+ const txRequest = await getTxRequest(bitgo, walletId, txRequestId);
155
+ const signatureShares = txRequest.signatureShares;
156
+ if (_.isNil(signatureShares) || _.isEmpty(signatureShares)) {
157
+ throw new Error(`No signatures shares found for id: ${txRequestId}`);
158
+ }
159
+ // at this point we expect the only share to be the RShare
160
+ const bitgoToUserRShare = signatureShares.find((sigShare) => sigShare.from === utils_1.SignatureShareType.BITGO && sigShare.to === utils_1.SignatureShareType.USER);
161
+ if (_.isNil(bitgoToUserRShare)) {
162
+ throw new Error(`Bitgo to User RShare not found for id: ${txRequestId}`);
163
+ }
164
+ return bitgoToUserRShare;
165
+ }
166
+ exports.getBitgoToUserRShare = getBitgoToUserRShare;
167
+ /**
168
+ * Sends the User to Bitgo GShare to Bitgo
169
+ *
170
+ * @param {BitGoBase} bitgo - the bitgo instance
171
+ * @param {String} walletId - the wallet id
172
+ * @param {String} txRequestId - the txRequest Id
173
+ * @param {GShare} userToBitgoGShare - the User to Bitgo GShare
174
+ * @returns {Promise<void>}
175
+ */
176
+ async function sendUserToBitgoGShare(bitgo, walletId, txRequestId, userToBitgoGShare) {
177
+ if (userToBitgoGShare.i !== types_1.ShareKeyPosition.USER) {
178
+ throw new Error('Invalid GShare, doesnt belong to the User');
179
+ }
180
+ const signatureShare = {
181
+ from: utils_1.SignatureShareType.USER,
182
+ to: utils_1.SignatureShareType.BITGO,
183
+ share: userToBitgoGShare.R + userToBitgoGShare.gamma,
184
+ };
185
+ await sendSignatureShare(bitgo, walletId, txRequestId, signatureShare);
186
+ }
187
+ exports.sendUserToBitgoGShare = sendUserToBitgoGShare;
188
+ /**
189
+ * Gets the latest Tx Request by id
190
+ *
191
+ * @param {BitGoBase} bitgo - the bitgo instance
192
+ * @param {String} walletId - the wallet id
193
+ * @param {String} txRequestId - the txRequest Id
194
+ * @returns {Promise<TxRequest>}
195
+ */
196
+ async function getTxRequest(bitgo, walletId, txRequestId) {
197
+ const txRequestRes = await bitgo
198
+ .get(bitgo.url('/wallet/' + walletId + '/txrequests', 2))
199
+ .query({ txRequestIds: txRequestId, latest: 'true' })
200
+ .result();
201
+ if (txRequestRes.txRequests.length <= 0) {
202
+ throw new Error(`Unable to find TxRequest with id ${txRequestId}`);
203
+ }
204
+ return txRequestRes.txRequests[0];
205
+ }
206
+ exports.getTxRequest = getTxRequest;
207
+ /**
208
+ * Sends a Signature Share
209
+ *
210
+ * @param {BitGoBase} bitgo - the bitgo instance
211
+ * @param {String} walletId - the wallet id *
212
+ * @param {String} txRequestId - the txRequest Id
213
+ * @param {SignatureShareRecord} signatureShare - a Signature Share
214
+ * @returns {Promise<SignatureShareRecord>} - a Signature Share
215
+ */
216
+ async function sendSignatureShare(bitgo, walletId, txRequestId, signatureShare, signerShare) {
217
+ return bitgo
218
+ .post(bitgo.url('/wallet/' + walletId + '/txrequests/' + txRequestId + '/signatureshares', 2))
219
+ .send({
220
+ signatureShare,
221
+ signerShare,
222
+ })
223
+ .result();
224
+ }
225
+ exports.sendSignatureShare = sendSignatureShare;
226
+ /**
227
+ * Prepares a YShare to be exchanged with other key holders.
228
+ * Output is in a format that is usable within BitGo's ecosystem.
229
+ *
230
+ * @param params.keyShare - TSS key share of the party preparing exchange materials
231
+ * @param params.recipientIndex - index of the recipient (1, 2, or 3)
232
+ * @param params.recipientGpgPublicArmor - recipient's public gpg key in armor format
233
+ * @param params.senderGpgPrivateArmor - sender's private gpg key in armor format
234
+ * @returns { EncryptedYShare } encrypted Y Share
235
+ */
236
+ async function encryptYShare(params) {
237
+ const { keyShare, recipientIndex, recipientGpgPublicArmor, senderGpgPrivateArmor } = params;
238
+ const yShare = keyShare.yShares[recipientIndex];
239
+ if (!yShare) {
240
+ throw new Error('Invalid recipient');
241
+ }
242
+ const publicShare = Buffer.concat([
243
+ Buffer.from(keyShare.uShare.y, 'hex'),
244
+ Buffer.from(keyShare.uShare.chaincode, 'hex'),
245
+ ]).toString('hex');
246
+ const privateShare = Buffer.concat([Buffer.from(yShare.u, 'hex'), Buffer.from(yShare.chaincode, 'hex')]).toString('hex');
247
+ const encryptedPrivateShare = await utils_1.encryptAndSignText(privateShare, recipientGpgPublicArmor, senderGpgPrivateArmor);
248
+ return {
249
+ i: yShare.i,
250
+ j: yShare.j,
251
+ publicShare,
252
+ encryptedPrivateShare,
253
+ };
254
+ }
255
+ exports.encryptYShare = encryptYShare;
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdHNzL2VkZHNhL2VkZHNhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlFQUFvSDtBQUdwSCxzQ0FBOEM7QUFDOUMseUNBTXVCO0FBQ3ZCLDRCQUE2QjtBQUU3Qjs7Ozs7Ozs7R0FRRztBQUNJLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxNQUl2QztJQUNDLE1BQU0sYUFBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksYUFBSyxFQUFFLENBQUM7SUFFeEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDOUQsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBRTdCLElBQUksV0FBK0IsQ0FBQztJQUNwQyxJQUFJLFVBQThCLENBQUM7SUFDbkMsSUFBSSxZQUFnQyxDQUFDO0lBRXJDLEtBQUssTUFBTSxlQUFlLElBQUksZ0JBQWdCLEVBQUU7UUFDOUMsTUFBTSxZQUFZLEdBQUcsTUFBTSx5QkFBaUIsQ0FDMUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFDNUMsZUFBZSxDQUFDLGlCQUFpQixFQUNqQyxlQUFlLENBQUMscUJBQXFCLENBQ3RDLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBVztZQUNyQixDQUFDLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLENBQUMsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xELENBQUMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUIsU0FBUyxFQUFFLFlBQVksQ0FBQyxLQUFLLENB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QUFDO0lBRXJILE9BQU87UUFDTCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDWCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDWCxXQUFXO1FBQ1gscUJBQXFCO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBOUJELHNDQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFZGRzYSwgeyBHU2hhcmUsIEpTaGFyZSwgS2V5U2hhcmUsIFBTaGFyZSwgUlNoYXJlLCBTaWduU2hhcmUsIFlTaGFyZSB9IGZyb20gJy4vLi4vLi4vLi4vYWNjb3VudC1saWIvbXBjL3Rzcyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLy4uLy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBEZWNyeXB0YWJsZVlTaGFyZSwgQ29tYmluZWRLZXksIFNpZ25pbmdNYXRlcmlhbCwgRW5jcnlwdGVkWVNoYXJlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTaGFyZUtleVBvc2l0aW9uIH0gZnJvbSAnLi8uLi90eXBlcyc7XG5pbXBvcnQge1xuICBlbmNyeXB0QW5kU2lnblRleHQsXG4gIHJlYWRTaWduZWRNZXNzYWdlLFxuICBTaWduYXR1cmVTaGFyZVJlY29yZCxcbiAgU2lnbmF0dXJlU2hhcmVUeXBlLFxuICBUeFJlcXVlc3QsXG59IGZyb20gJy4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IF8gPSByZXF1aXJlKCdsb2Rhc2gnKTtcblxuLyoqXG4gKiBDb21iaW5lcyBZU2hhcmVzIHRvIGNvbWJpbmUgdGhlIGZpbmFsIFRTUyBrZXlcbiAqIFRoaXMgY2FuIG9ubHkgYmUgdXNlZCB0byBjcmVhdGUgdGhlIFVzZXIgb3IgQmFja3VwIGtleSBzaW5jZSBpdCByZXF1aXJlcyB0aGUgY29tbW9uIGtleWNoYWluIGZyb20gQml0R28gZmlyc3RcbiAqXG4gKiBAcGFyYW0gcGFyYW1zLmtleVNoYXJlIC0gVFNTIGtleSBzaGFyZVxuICogQHBhcmFtIHBhcmFtcy5lbmNyeXB0ZWRZU2hhcmVzIC0gZW5jcnlwdGVkIFlTaGFyZXMgd2l0aCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZGVjcnlwdFxuICogQHBhcmFtIHBhcmFtcy5jb21tb25LZXljaGFpbiAtIGV4cGVjdGVkIGNvbW1vbiBrZXljaGFpbiBvZiB0aGUgY29tYmluZWQga2V5XG4gKiBAcmV0dXJucyB7Q29tYmluZWRLZXl9IGNvbWJpbmVkIFRTUyBrZXlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUNvbWJpbmVkS2V5KHBhcmFtczoge1xuICBrZXlTaGFyZTogS2V5U2hhcmU7XG4gIGVuY3J5cHRlZFlTaGFyZXM6IERlY3J5cHRhYmxlWVNoYXJlW107XG4gIGNvbW1vbktleWNoYWluOiBzdHJpbmc7XG59KTogUHJvbWlzZTxDb21iaW5lZEtleT4ge1xuICBhd2FpdCBFZGRzYS5pbml0aWFsaXplKCk7XG4gIGNvbnN0IE1QQyA9IG5ldyBFZGRzYSgpO1xuXG4gIGNvbnN0IHsga2V5U2hhcmUsIGVuY3J5cHRlZFlTaGFyZXMsIGNvbW1vbktleWNoYWluIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHlTaGFyZXM6IFlTaGFyZVtdID0gW107XG5cbiAgbGV0IGJpdGdvWVNoYXJlOiBZU2hhcmUgfCB1bmRlZmluZWQ7XG4gIGxldCB1c2VyWVNoYXJlOiBZU2hhcmUgfCB1bmRlZmluZWQ7XG4gIGxldCBiYWNrdXBZU2hhcmU6IFlTaGFyZSB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGNvbnN0IGVuY3J5cHRlZFlTaGFyZSBvZiBlbmNyeXB0ZWRZU2hhcmVzKSB7XG4gICAgY29uc3QgcHJpdmF0ZVNoYXJlID0gYXdhaXQgcmVhZFNpZ25lZE1lc3NhZ2UoXG4gICAgICBlbmNyeXB0ZWRZU2hhcmUueVNoYXJlLmVuY3J5cHRlZFByaXZhdGVTaGFyZSxcbiAgICAgIGVuY3J5cHRlZFlTaGFyZS5zZW5kZXJQdWJsaWNBcm1vcixcbiAgICAgIGVuY3J5cHRlZFlTaGFyZS5yZWNpcGllbnRQcml2YXRlQXJtb3JcbiAgICApO1xuXG4gICAgY29uc3QgeVNoYXJlOiBZU2hhcmUgPSB7XG4gICAgICBpOiBlbmNyeXB0ZWRZU2hhcmUueVNoYXJlLmksXG4gICAgICBqOiBlbmNyeXB0ZWRZU2hhcmUueVNoYXJlLmosXG4gICAgICB5OiBlbmNyeXB0ZWRZU2hhcmUueVNoYXJlLnB1YmxpY1NoYXJlLnNsaWNlKDAsIDY0KSxcbiAgICAgIHU6IHByaXZhdGVTaGFyZS5zbGljZSgwLCA2NCksXG4gICAgICBjaGFpbmNvZGU6IHByaXZhdGVTaGFyZS5zbGljZSg2NCksXG4gICAgfTtcblxuICAgIHN3aXRjaCAoZW5jcnlwdGVkWVNoYXJlLnlTaGFyZS5qKSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHVzZXJZU2hhcmUgPSB5U2hhcmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyOlxuICAgICAgICBiYWNrdXBZU2hhcmUgPSB5U2hhcmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgICBiaXRnb1lTaGFyZSA9IHlTaGFyZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgWVNoYXJlIGluZGV4Jyk7XG4gICAgfVxuXG4gICAgeVNoYXJlcy5wdXNoKHlTaGFyZSk7XG4gIH1cblxuICBjb25zdCBjb21iaW5lZEtleSA9IE1QQy5rZXlDb21iaW5lKGtleVNoYXJlLnVTaGFyZSwgeVNoYXJlcyk7XG4gIGlmIChjb21iaW5lZEtleS5wU2hhcmUueSArIGNvbWJpbmVkS2V5LnBTaGFyZS5jaGFpbmNvZGUgIT09IGNvbW1vbktleWNoYWluKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb21tb24ga2V5Y2hhaW5zIGRvIG5vdCBtYXRjaCcpO1xuICB9XG4gIGlmICghYml0Z29ZU2hhcmUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQml0R28gWSBTaGFyZScpO1xuICB9XG5cbiAgY29uc3Qgc2lnbmluZ01hdGVyaWFsOiBTaWduaW5nTWF0ZXJpYWwgPSB7XG4gICAgdVNoYXJlOiBrZXlTaGFyZS51U2hhcmUsXG4gICAgYml0Z29ZU2hhcmUsXG4gICAgYmFja3VwWVNoYXJlLFxuICAgIHVzZXJZU2hhcmUsXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBzaWduaW5nTWF0ZXJpYWwsXG4gICAgY29tbW9uS2V5Y2hhaW4sXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgVXNlciBTaWduIFNoYXJlIGNvbnRhaW5pbmcgdGhlIFVzZXIgWFNoYXJlIGFuZCB0aGUgVXNlciB0byBCaXRnbyBSU2hhcmVcbiAqXG4gKiBAcGFyYW0ge0J1ZmZlcn0gc2lnbmFibGVQYXlsb2FkIC0gdGhlIHNpZ25hYmxlUGF5bG9hZCBhcyBhIGJ1ZmZlclxuICogQHBhcmFtIHtQU2hhcmV9IHBTaGFyZSAtIFVzZXIncyBzaWduaW5nIG1hdGVyaWFsXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxTaWduU2hhcmU+fSAtIFVzZXIgU2lnbiBTaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVXNlclNpZ25TaGFyZShzaWduYWJsZVBheWxvYWQ6IEJ1ZmZlciwgcFNoYXJlOiBQU2hhcmUpOiBQcm9taXNlPFNpZ25TaGFyZT4ge1xuICBjb25zdCBNUEMgPSBhd2FpdCBFZGRzYS5pbml0aWFsaXplKCk7XG5cbiAgaWYgKHBTaGFyZS5pICE9PSBTaGFyZUtleVBvc2l0aW9uLlVTRVIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUFNoYXJlLCBQU2hhcmUgZG9lc250IGJlbG9uZyB0byB0aGUgVXNlcicpO1xuICB9XG4gIGNvbnN0IGpTaGFyZTogSlNoYXJlID0geyBpOiBTaGFyZUtleVBvc2l0aW9uLkJJVEdPLCBqOiBTaGFyZUtleVBvc2l0aW9uLlVTRVIgfTtcbiAgcmV0dXJuIE1QQy5zaWduU2hhcmUoc2lnbmFibGVQYXlsb2FkLCBwU2hhcmUsIFtqU2hhcmVdKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBVc2VyIHRvIEJpdGdvIEdTaGFyZVxuICpcbiAqIEBwYXJhbSB7U2lnblNoYXJlfSB1c2VyU2lnblNoYXJlIC0gdGhlIFVzZXIgU2lnbiBTaGFyZVxuICogQHBhcmFtIHtTaWduYXR1cmVTaGFyZVJlY29yZH0gYml0Z29Ub1VzZXJSU2hhcmUgLSB0aGUgQml0Z28gdG8gVXNlciBSU2hhcmVcbiAqIEBwYXJhbSB7WVNoYXJlfSBiYWNrdXBUb1VzZXJZU2hhcmUgLSB0aGUgYmFja3VwIGtleSBZIHNoYXJlIHJlY2VpdmVkIGR1cmluZyB3YWxsZXQgY3JlYXRpb25cbiAqIEBwYXJhbSB7QnVmZmVyfSBzaWduYWJsZVBheWxvYWQgLSB0aGUgc2lnbmFibGUgcGF5bG9hZCBmcm9tIGEgdHhcbiAqIEByZXR1cm5zIHtQcm9taXNlPEdTaGFyZT59IC0gdGhlIFVzZXIgdG8gQml0Z28gR1NoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVVc2VyVG9CaXRHb0dTaGFyZShcbiAgdXNlclNpZ25TaGFyZTogU2lnblNoYXJlLFxuICBiaXRnb1RvVXNlclJTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQsXG4gIGJhY2t1cFRvVXNlcllTaGFyZTogWVNoYXJlLFxuICBiaXRnb1RvVXNlcllTaGFyZTogWVNoYXJlLFxuICBzaWduYWJsZVBheWxvYWQ6IEJ1ZmZlclxuKTogUHJvbWlzZTxHU2hhcmU+IHtcbiAgaWYgKHVzZXJTaWduU2hhcmUueFNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBYU2hhcmUsIGRvZXNudCBiZWxvbmcgdG8gdGhlIFVzZXInKTtcbiAgfVxuICBpZiAoYml0Z29Ub1VzZXJSU2hhcmUuZnJvbSAhPT0gU2lnbmF0dXJlU2hhcmVUeXBlLkJJVEdPIHx8IGJpdGdvVG9Vc2VyUlNoYXJlLnRvICE9PSBTaWduYXR1cmVTaGFyZVR5cGUuVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSU2hhcmUsIGlzIG5vdCBmcm9tIEJpdGdvIHRvIFVzZXInKTtcbiAgfVxuICBpZiAoYmFja3VwVG9Vc2VyWVNoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBZU2hhcmUsIGRvZXNudCBiZWxvbmcgdG8gdGhlIFVzZXInKTtcbiAgfVxuICBpZiAoYmFja3VwVG9Vc2VyWVNoYXJlLmogIT09IFNoYXJlS2V5UG9zaXRpb24uQkFDS1VQKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFlTaGFyZSwgaXMgbm90IGJhY2t1cCBrZXknKTtcbiAgfVxuXG4gIGNvbnN0IFJTaGFyZTogUlNoYXJlID0ge1xuICAgIGk6IFNoYXJlS2V5UG9zaXRpb24uVVNFUixcbiAgICBqOiBTaGFyZUtleVBvc2l0aW9uLkJJVEdPLFxuICAgIHU6IGJpdGdvVG9Vc2VyWVNoYXJlLnUsXG4gICAgcjogYml0Z29Ub1VzZXJSU2hhcmUuc2hhcmUuc3Vic3RyaW5nKDAsIDY0KSxcbiAgICBSOiBiaXRnb1RvVXNlclJTaGFyZS5zaGFyZS5zdWJzdHJpbmcoNjQsIDEyOCksXG4gIH07XG5cbiAgY29uc3QgTVBDID0gYXdhaXQgRWRkc2EuaW5pdGlhbGl6ZSgpO1xuICByZXR1cm4gTVBDLnNpZ24oc2lnbmFibGVQYXlsb2FkLCB1c2VyU2lnblNoYXJlLnhTaGFyZSwgW1JTaGFyZV0sIFtiYWNrdXBUb1VzZXJZU2hhcmVdKTtcbn1cblxuLyoqXG4gKiBTZW5kcyB0aGUgVXNlciB0byBCaXRnbyBSU2hhcmUgdG8gQml0Z29cbiAqIEBwYXJhbSB7Qml0R29CYXNlfSBiaXRnbyAtIHRoZSBiaXRnbyBpbnN0YW5jZVxuICogQHBhcmFtIHtTdHJpbmd9IHdhbGxldElkIC0gdGhlIHdhbGxldCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICogQHBhcmFtIHtTaWduU2hhcmV9IHVzZXJTaWduU2hhcmUgLSB0aGUgdXNlciBTaWduIFNoYXJlXG4gKiBAcGFyYW0ge1N0cmluZ30gZW5jcnlwdGVkU2lnbmVyU2hhcmUgLSBzaWduZXIgc2hhcmUgZW5jcnlwdGVkIHRvIGJpdGdvIGtleVxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvZmZlclVzZXJUb0JpdGdvUlNoYXJlKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICB1c2VyU2lnblNoYXJlOiBTaWduU2hhcmUsXG4gIGVuY3J5cHRlZFNpZ25lclNoYXJlOiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByU2hhcmU6IFJTaGFyZSA9IHVzZXJTaWduU2hhcmUuclNoYXJlc1tTaGFyZUtleVBvc2l0aW9uLkJJVEdPXTtcbiAgaWYgKF8uaXNOaWwoclNoYXJlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlclRvQml0Z28gUlNoYXJlIG5vdCBmb3VuZCcpO1xuICB9XG4gIGlmIChyU2hhcmUuaSAhPT0gU2hhcmVLZXlQb3NpdGlvbi5CSVRHTyB8fCByU2hhcmUuaiAhPT0gU2hhcmVLZXlQb3NpdGlvbi5VU0VSKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFJTaGFyZSwgaXMgbm90IGZyb20gVXNlciB0byBCaXRnbycpO1xuICB9XG4gIGNvbnN0IHNpZ25hdHVyZVNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZCA9IHtcbiAgICBmcm9tOiBTaWduYXR1cmVTaGFyZVR5cGUuVVNFUixcbiAgICB0bzogU2lnbmF0dXJlU2hhcmVUeXBlLkJJVEdPLFxuICAgIHNoYXJlOiByU2hhcmUuciArIHJTaGFyZS5SLFxuICB9O1xuXG4gIGF3YWl0IHNlbmRTaWduYXR1cmVTaGFyZShiaXRnbywgd2FsbGV0SWQsIHR4UmVxdWVzdElkLCBzaWduYXR1cmVTaGFyZSwgZW5jcnlwdGVkU2lnbmVyU2hhcmUpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIEJpdGdvIHRvIFVzZXIgUlNoYXJlIGZyb20gQml0Z29cbiAqXG4gKiBAcGFyYW0ge0JpdEdvQmFzZX0gYml0Z28gLSB0aGUgYml0Z28gaW5zdGFuY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSB3YWxsZXRJZCAtIHRoZSB3YWxsZXQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkPn0gLSBhIFNpZ25hdHVyZSBTaGFyZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Qml0Z29Ub1VzZXJSU2hhcmUoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHdhbGxldElkOiBzdHJpbmcsXG4gIHR4UmVxdWVzdElkOiBzdHJpbmdcbik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmQ+IHtcbiAgY29uc3QgdHhSZXF1ZXN0ID0gYXdhaXQgZ2V0VHhSZXF1ZXN0KGJpdGdvLCB3YWxsZXRJZCwgdHhSZXF1ZXN0SWQpO1xuICBjb25zdCBzaWduYXR1cmVTaGFyZXMgPSB0eFJlcXVlc3Quc2lnbmF0dXJlU2hhcmVzO1xuICBpZiAoXy5pc05pbChzaWduYXR1cmVTaGFyZXMpIHx8IF8uaXNFbXB0eShzaWduYXR1cmVTaGFyZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBzaWduYXR1cmVzIHNoYXJlcyBmb3VuZCBmb3IgaWQ6ICR7dHhSZXF1ZXN0SWR9YCk7XG4gIH1cblxuICAvLyBhdCB0aGlzIHBvaW50IHdlIGV4cGVjdCB0aGUgb25seSBzaGFyZSB0byBiZSB0aGUgUlNoYXJlXG4gIGNvbnN0IGJpdGdvVG9Vc2VyUlNoYXJlID0gc2lnbmF0dXJlU2hhcmVzLmZpbmQoXG4gICAgKHNpZ1NoYXJlKSA9PiBzaWdTaGFyZS5mcm9tID09PSBTaWduYXR1cmVTaGFyZVR5cGUuQklUR08gJiYgc2lnU2hhcmUudG8gPT09IFNpZ25hdHVyZVNoYXJlVHlwZS5VU0VSXG4gICk7XG4gIGlmIChfLmlzTmlsKGJpdGdvVG9Vc2VyUlNoYXJlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQml0Z28gdG8gVXNlciBSU2hhcmUgbm90IGZvdW5kIGZvciBpZDogJHt0eFJlcXVlc3RJZH1gKTtcbiAgfVxuICByZXR1cm4gYml0Z29Ub1VzZXJSU2hhcmU7XG59XG5cbi8qKlxuICogU2VuZHMgdGhlIFVzZXIgdG8gQml0Z28gR1NoYXJlIHRvIEJpdGdvXG4gKlxuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcGFyYW0ge0dTaGFyZX0gdXNlclRvQml0Z29HU2hhcmUgLSB0aGUgVXNlciB0byBCaXRnbyBHU2hhcmVcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFVzZXJUb0JpdGdvR1NoYXJlKFxuICBiaXRnbzogQml0R29CYXNlLFxuICB3YWxsZXRJZDogc3RyaW5nLFxuICB0eFJlcXVlc3RJZDogc3RyaW5nLFxuICB1c2VyVG9CaXRnb0dTaGFyZTogR1NoYXJlXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKHVzZXJUb0JpdGdvR1NoYXJlLmkgIT09IFNoYXJlS2V5UG9zaXRpb24uVVNFUikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBHU2hhcmUsIGRvZXNudCBiZWxvbmcgdG8gdGhlIFVzZXInKTtcbiAgfVxuICBjb25zdCBzaWduYXR1cmVTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQgPSB7XG4gICAgZnJvbTogU2lnbmF0dXJlU2hhcmVUeXBlLlVTRVIsXG4gICAgdG86IFNpZ25hdHVyZVNoYXJlVHlwZS5CSVRHTyxcbiAgICBzaGFyZTogdXNlclRvQml0Z29HU2hhcmUuUiArIHVzZXJUb0JpdGdvR1NoYXJlLmdhbW1hLFxuICB9O1xuXG4gIGF3YWl0IHNlbmRTaWduYXR1cmVTaGFyZShiaXRnbywgd2FsbGV0SWQsIHR4UmVxdWVzdElkLCBzaWduYXR1cmVTaGFyZSk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbGF0ZXN0IFR4IFJlcXVlc3QgYnkgaWRcbiAqXG4gKiBAcGFyYW0ge0JpdEdvQmFzZX0gYml0Z28gLSB0aGUgYml0Z28gaW5zdGFuY2VcbiAqIEBwYXJhbSB7U3RyaW5nfSB3YWxsZXRJZCAtIHRoZSB3YWxsZXQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUeFJlcXVlc3QoYml0Z286IEJpdEdvQmFzZSwgd2FsbGV0SWQ6IHN0cmluZywgdHhSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gIGNvbnN0IHR4UmVxdWVzdFJlcyA9IGF3YWl0IGJpdGdvXG4gICAgLmdldChiaXRnby51cmwoJy93YWxsZXQvJyArIHdhbGxldElkICsgJy90eHJlcXVlc3RzJywgMikpXG4gICAgLnF1ZXJ5KHsgdHhSZXF1ZXN0SWRzOiB0eFJlcXVlc3RJZCwgbGF0ZXN0OiAndHJ1ZScgfSlcbiAgICAucmVzdWx0KCk7XG5cbiAgaWYgKHR4UmVxdWVzdFJlcy50eFJlcXVlc3RzLmxlbmd0aCA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZmluZCBUeFJlcXVlc3Qgd2l0aCBpZCAke3R4UmVxdWVzdElkfWApO1xuICB9XG5cbiAgcmV0dXJuIHR4UmVxdWVzdFJlcy50eFJlcXVlc3RzWzBdO1xufVxuXG4vKipcbiAqIFNlbmRzIGEgU2lnbmF0dXJlIFNoYXJlXG4gKlxuICogQHBhcmFtIHtCaXRHb0Jhc2V9IGJpdGdvIC0gdGhlIGJpdGdvIGluc3RhbmNlXG4gKiBAcGFyYW0ge1N0cmluZ30gd2FsbGV0SWQgLSB0aGUgd2FsbGV0IGlkICAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gKiBAcGFyYW0ge1NpZ25hdHVyZVNoYXJlUmVjb3JkfSBzaWduYXR1cmVTaGFyZSAtIGEgU2lnbmF0dXJlIFNoYXJlXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZD59IC0gYSBTaWduYXR1cmUgU2hhcmVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRTaWduYXR1cmVTaGFyZShcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgd2FsbGV0SWQ6IHN0cmluZyxcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZyxcbiAgc2lnbmF0dXJlU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkLFxuICBzaWduZXJTaGFyZT86IHN0cmluZ1xuKTogUHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZD4ge1xuICByZXR1cm4gYml0Z29cbiAgICAucG9zdChiaXRnby51cmwoJy93YWxsZXQvJyArIHdhbGxldElkICsgJy90eHJlcXVlc3RzLycgKyB0eFJlcXVlc3RJZCArICcvc2lnbmF0dXJlc2hhcmVzJywgMikpXG4gICAgLnNlbmQoe1xuICAgICAgc2lnbmF0dXJlU2hhcmUsXG4gICAgICBzaWduZXJTaGFyZSxcbiAgICB9KVxuICAgIC5yZXN1bHQoKTtcbn1cblxuLyoqXG4gKiBQcmVwYXJlcyBhIFlTaGFyZSB0byBiZSBleGNoYW5nZWQgd2l0aCBvdGhlciBrZXkgaG9sZGVycy5cbiAqIE91dHB1dCBpcyBpbiBhIGZvcm1hdCB0aGF0IGlzIHVzYWJsZSB3aXRoaW4gQml0R28ncyBlY29zeXN0ZW0uXG4gKlxuICogQHBhcmFtIHBhcmFtcy5rZXlTaGFyZSAtIFRTUyBrZXkgc2hhcmUgb2YgdGhlIHBhcnR5IHByZXBhcmluZyBleGNoYW5nZSBtYXRlcmlhbHNcbiAqIEBwYXJhbSBwYXJhbXMucmVjaXBpZW50SW5kZXggLSBpbmRleCBvZiB0aGUgcmVjaXBpZW50ICgxLCAyLCBvciAzKVxuICogQHBhcmFtIHBhcmFtcy5yZWNpcGllbnRHcGdQdWJsaWNBcm1vciAtIHJlY2lwaWVudCdzIHB1YmxpYyBncGcga2V5IGluIGFybW9yIGZvcm1hdFxuICogQHBhcmFtIHBhcmFtcy5zZW5kZXJHcGdQcml2YXRlQXJtb3IgLSBzZW5kZXIncyBwcml2YXRlIGdwZyBrZXkgaW4gYXJtb3IgZm9ybWF0XG4gKiBAcmV0dXJucyB7IEVuY3J5cHRlZFlTaGFyZSB9IGVuY3J5cHRlZCBZIFNoYXJlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbmNyeXB0WVNoYXJlKHBhcmFtczoge1xuICBrZXlTaGFyZTogS2V5U2hhcmU7XG4gIHJlY2lwaWVudEluZGV4OiBudW1iZXI7XG4gIHJlY2lwaWVudEdwZ1B1YmxpY0FybW9yOiBzdHJpbmc7XG4gIHNlbmRlckdwZ1ByaXZhdGVBcm1vcjogc3RyaW5nO1xufSk6IFByb21pc2U8RW5jcnlwdGVkWVNoYXJlPiB7XG4gIGNvbnN0IHsga2V5U2hhcmUsIHJlY2lwaWVudEluZGV4LCByZWNpcGllbnRHcGdQdWJsaWNBcm1vciwgc2VuZGVyR3BnUHJpdmF0ZUFybW9yIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgeVNoYXJlID0ga2V5U2hhcmUueVNoYXJlc1tyZWNpcGllbnRJbmRleF07XG4gIGlmICgheVNoYXJlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHJlY2lwaWVudCcpO1xuICB9XG5cbiAgY29uc3QgcHVibGljU2hhcmUgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBCdWZmZXIuZnJvbShrZXlTaGFyZS51U2hhcmUueSwgJ2hleCcpLFxuICAgIEJ1ZmZlci5mcm9tKGtleVNoYXJlLnVTaGFyZS5jaGFpbmNvZGUsICdoZXgnKSxcbiAgXSkudG9TdHJpbmcoJ2hleCcpO1xuXG4gIGNvbnN0IHByaXZhdGVTaGFyZSA9IEJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKHlTaGFyZS51LCAnaGV4JyksIEJ1ZmZlci5mcm9tKHlTaGFyZS5jaGFpbmNvZGUsICdoZXgnKV0pLnRvU3RyaW5nKFxuICAgICdoZXgnXG4gICk7XG5cbiAgY29uc3QgZW5jcnlwdGVkUHJpdmF0ZVNoYXJlID0gYXdhaXQgZW5jcnlwdEFuZFNpZ25UZXh0KHByaXZhdGVTaGFyZSwgcmVjaXBpZW50R3BnUHVibGljQXJtb3IsIHNlbmRlckdwZ1ByaXZhdGVBcm1vcik7XG5cbiAgcmV0dXJuIHtcbiAgICBpOiB5U2hhcmUuaSxcbiAgICBqOiB5U2hhcmUuaixcbiAgICBwdWJsaWNTaGFyZSxcbiAgICBlbmNyeXB0ZWRQcml2YXRlU2hhcmUsXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ import * as EDDSAMethods from './eddsa';
2
+ export * as EDDSAMethodTypes from './types';
3
+ export default EDDSAMethods;
4
+ export { createCombinedKey, createUserSignShare, createUserToBitGoGShare, offerUserToBitgoRShare, getBitgoToUserRShare, sendUserToBitgoGShare, getTxRequest, sendSignatureShare, encryptYShare, } from './eddsa';
5
+ export { EncryptedYShare, DecryptableYShare, CombinedKey, SigningMaterial } from './types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/tss/eddsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,gBAAgB,MAAM,SAAS,CAAC;AAE5C,eAAe,YAAY,CAAC;AAG5B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}