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

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 (354) hide show
  1. package/CHANGELOG.md +115 -0
  2. package/dist/src/account-lib/baseCoin/baseKeyPair.d.ts +27 -0
  3. package/dist/src/account-lib/baseCoin/baseKeyPair.d.ts.map +1 -0
  4. package/dist/src/account-lib/baseCoin/baseKeyPair.js +3 -0
  5. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts +71 -0
  6. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts.map +1 -0
  7. package/dist/src/account-lib/baseCoin/baseTransaction.js +69 -0
  8. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts +128 -0
  9. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts.map +1 -0
  10. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.js +138 -0
  11. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.d.ts +29 -0
  12. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.d.ts.map +1 -0
  13. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.js +19 -0
  14. package/dist/src/account-lib/baseCoin/baseUtils.d.ts +45 -0
  15. package/dist/src/account-lib/baseCoin/baseUtils.d.ts.map +1 -0
  16. package/dist/src/account-lib/baseCoin/baseUtils.js +3 -0
  17. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +75 -0
  18. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +1 -0
  19. package/dist/src/account-lib/baseCoin/blsKeyPair.js +179 -0
  20. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +50 -0
  21. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -0
  22. package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +145 -0
  23. package/dist/src/account-lib/baseCoin/enum.d.ts +43 -0
  24. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -0
  25. package/dist/src/account-lib/baseCoin/enum.js +70 -0
  26. package/dist/src/account-lib/baseCoin/errors.d.ts +59 -0
  27. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -0
  28. package/dist/src/account-lib/baseCoin/errors.js +105 -0
  29. package/dist/src/account-lib/baseCoin/iface.d.ts +155 -0
  30. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -0
  31. package/dist/src/account-lib/baseCoin/iface.js +38 -0
  32. package/dist/src/account-lib/baseCoin/index.d.ts +12 -0
  33. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -0
  34. package/dist/src/account-lib/baseCoin/index.js +31 -0
  35. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts +55 -0
  36. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +1 -0
  37. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +124 -0
  38. package/dist/src/account-lib/index.d.ts +5 -0
  39. package/dist/src/account-lib/index.d.ts.map +1 -0
  40. package/dist/src/account-lib/index.js +17 -0
  41. package/dist/src/account-lib/mpc/curves/baseCurve.d.ts +19 -0
  42. package/dist/src/account-lib/mpc/curves/baseCurve.d.ts.map +1 -0
  43. package/dist/src/account-lib/mpc/curves/baseCurve.js +6 -0
  44. package/dist/src/account-lib/mpc/curves/ed25519.d.ts +17 -0
  45. package/dist/src/account-lib/mpc/curves/ed25519.d.ts.map +1 -0
  46. package/dist/src/account-lib/mpc/curves/ed25519.js +57 -0
  47. package/dist/src/account-lib/mpc/curves/index.d.ts +6 -0
  48. package/dist/src/account-lib/mpc/curves/index.d.ts.map +1 -0
  49. package/dist/src/account-lib/mpc/curves/index.js +8 -0
  50. package/dist/src/account-lib/mpc/curves/secp256k1.d.ts +17 -0
  51. package/dist/src/account-lib/mpc/curves/secp256k1.d.ts.map +1 -0
  52. package/dist/src/account-lib/mpc/curves/secp256k1.js +70 -0
  53. package/dist/src/account-lib/mpc/hdTree.d.ts +24 -0
  54. package/dist/src/account-lib/mpc/hdTree.d.ts.map +1 -0
  55. package/dist/src/account-lib/mpc/hdTree.js +94 -0
  56. package/dist/src/account-lib/mpc/index.d.ts +8 -0
  57. package/dist/src/account-lib/mpc/index.d.ts.map +1 -0
  58. package/dist/src/account-lib/mpc/index.js +23 -0
  59. package/dist/src/account-lib/mpc/shamir.d.ts +26 -0
  60. package/dist/src/account-lib/mpc/shamir.d.ts.map +1 -0
  61. package/dist/src/account-lib/mpc/shamir.js +86 -0
  62. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +25 -0
  63. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -0
  64. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +121 -0
  65. package/dist/src/account-lib/mpc/tss/ecdsa/index.d.ts +4 -0
  66. package/dist/src/account-lib/mpc/tss/ecdsa/index.d.ts.map +1 -0
  67. package/dist/src/account-lib/mpc/tss/ecdsa/index.js +29 -0
  68. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +40 -0
  69. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -0
  70. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +3 -0
  71. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +29 -0
  72. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -0
  73. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +273 -0
  74. package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts +4 -0
  75. package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts.map +1 -0
  76. package/dist/src/account-lib/mpc/tss/eddsa/index.js +30 -0
  77. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +70 -0
  78. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -0
  79. package/dist/src/account-lib/mpc/tss/eddsa/types.js +3 -0
  80. package/dist/src/account-lib/mpc/tss/index.d.ts +6 -0
  81. package/dist/src/account-lib/mpc/tss/index.d.ts.map +1 -0
  82. package/dist/src/account-lib/mpc/tss/index.js +35 -0
  83. package/dist/src/account-lib/mpc/util.d.ts +8 -0
  84. package/dist/src/account-lib/mpc/util.d.ts.map +1 -0
  85. package/dist/src/account-lib/mpc/util.js +42 -0
  86. package/dist/src/account-lib/util/crypto.d.ts +106 -0
  87. package/dist/src/account-lib/util/crypto.d.ts.map +1 -0
  88. package/dist/src/account-lib/util/crypto.js +269 -0
  89. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +49 -0
  90. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +1 -0
  91. package/dist/src/account-lib/util/ed25519KeyDeriver.js +87 -0
  92. package/dist/src/api/bip32path.d.ts +24 -0
  93. package/dist/src/api/bip32path.d.ts.map +1 -0
  94. package/dist/src/api/bip32path.js +45 -0
  95. package/dist/src/api/index.d.ts +3 -0
  96. package/dist/src/api/index.d.ts.map +1 -0
  97. package/dist/src/{v2 → api}/index.js +2 -2
  98. package/dist/src/api/types.d.ts +20 -0
  99. package/dist/src/api/types.d.ts.map +1 -0
  100. package/dist/src/api/types.js +3 -0
  101. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +230 -0
  102. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -0
  103. package/dist/src/bitgo/baseCoin/baseCoin.js +292 -0
  104. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +257 -0
  105. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -0
  106. package/dist/src/bitgo/baseCoin/iBaseCoin.js +3 -0
  107. package/dist/src/bitgo/baseCoin/index.d.ts +3 -0
  108. package/dist/src/bitgo/baseCoin/index.d.ts.map +1 -0
  109. package/dist/src/bitgo/baseCoin/index.js +15 -0
  110. package/dist/src/bitgo/bip32util.d.ts +17 -0
  111. package/dist/src/bitgo/bip32util.d.ts.map +1 -0
  112. package/dist/src/bitgo/bip32util.js +59 -0
  113. package/dist/src/bitgo/bitcoin.d.ts +16 -0
  114. package/dist/src/bitgo/bitcoin.d.ts.map +1 -0
  115. package/dist/src/bitgo/bitcoin.js +52 -0
  116. package/dist/src/bitgo/bitgoBase.d.ts +22 -0
  117. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -0
  118. package/dist/src/bitgo/bitgoBase.js +3 -0
  119. package/dist/src/bitgo/coinFactory.d.ts +31 -0
  120. package/dist/src/bitgo/coinFactory.d.ts.map +1 -0
  121. package/dist/src/bitgo/coinFactory.js +59 -0
  122. package/dist/src/bitgo/config.d.ts +8 -0
  123. package/dist/src/bitgo/config.d.ts.map +1 -0
  124. package/dist/src/bitgo/config.js +25 -0
  125. package/dist/src/bitgo/ecdh.d.ts +24 -0
  126. package/dist/src/bitgo/ecdh.d.ts.map +1 -0
  127. package/dist/src/bitgo/ecdh.js +80 -0
  128. package/dist/src/bitgo/enterprise/enterprise.d.ts +64 -0
  129. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -0
  130. package/dist/src/bitgo/enterprise/enterprise.js +120 -0
  131. package/dist/src/bitgo/enterprise/enterprises.d.ts +25 -0
  132. package/dist/src/bitgo/enterprise/enterprises.d.ts.map +1 -0
  133. package/dist/src/bitgo/enterprise/enterprises.js +70 -0
  134. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +15 -0
  135. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -0
  136. package/dist/src/bitgo/enterprise/iEnterprise.js +3 -0
  137. package/dist/src/bitgo/enterprise/iEnterprises.d.ts +10 -0
  138. package/dist/src/bitgo/enterprise/iEnterprises.d.ts.map +1 -0
  139. package/dist/src/bitgo/enterprise/iEnterprises.js +3 -0
  140. package/dist/src/bitgo/enterprise/index.d.ts +5 -0
  141. package/dist/src/bitgo/enterprise/index.d.ts.map +1 -0
  142. package/dist/src/bitgo/enterprise/index.js +17 -0
  143. package/dist/src/{v2 → bitgo}/environments.d.ts +0 -0
  144. package/dist/src/bitgo/environments.d.ts.map +1 -0
  145. package/dist/src/bitgo/environments.js +142 -0
  146. package/dist/src/bitgo/errors.d.ts +83 -0
  147. package/dist/src/bitgo/errors.d.ts.map +1 -0
  148. package/dist/src/bitgo/errors.js +163 -0
  149. package/dist/src/bitgo/index.d.ts +26 -0
  150. package/dist/src/bitgo/index.d.ts.map +1 -0
  151. package/dist/src/bitgo/index.js +51 -0
  152. package/dist/src/bitgo/internal/index.d.ts +3 -0
  153. package/dist/src/bitgo/internal/index.d.ts.map +1 -0
  154. package/dist/src/bitgo/internal/index.js +15 -0
  155. package/dist/src/bitgo/internal/internal.d.ts +19 -0
  156. package/dist/src/bitgo/internal/internal.d.ts.map +1 -0
  157. package/dist/src/bitgo/internal/internal.js +33 -0
  158. package/dist/src/bitgo/internal/keycard.d.ts +33 -0
  159. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -0
  160. package/dist/src/bitgo/internal/keycard.js +304 -0
  161. package/dist/src/bitgo/keychain/iKeychains.d.ts +118 -0
  162. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -0
  163. package/dist/src/bitgo/keychain/iKeychains.js +10 -0
  164. package/dist/src/bitgo/keychain/index.d.ts +3 -0
  165. package/dist/src/bitgo/keychain/index.d.ts.map +1 -0
  166. package/dist/src/bitgo/keychain/index.js +15 -0
  167. package/dist/src/bitgo/keychain/keychains.d.ts +90 -0
  168. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -0
  169. package/dist/src/bitgo/keychain/keychains.js +280 -0
  170. package/dist/src/bitgo/market/iMarkets.d.ts +12 -0
  171. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -0
  172. package/dist/src/bitgo/market/iMarkets.js +3 -0
  173. package/dist/src/bitgo/market/index.d.ts +3 -0
  174. package/dist/src/bitgo/market/index.d.ts.map +1 -0
  175. package/dist/src/bitgo/market/index.js +15 -0
  176. package/dist/src/bitgo/market/markets.d.ts +29 -0
  177. package/dist/src/bitgo/market/markets.d.ts.map +1 -0
  178. package/dist/src/bitgo/market/markets.js +70 -0
  179. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +73 -0
  180. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -0
  181. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +28 -0
  182. package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts +16 -0
  183. package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts.map +1 -0
  184. package/dist/src/bitgo/pendingApproval/iPendingApprovals.js +3 -0
  185. package/dist/src/bitgo/pendingApproval/index.d.ts +5 -0
  186. package/dist/src/bitgo/pendingApproval/index.d.ts.map +1 -0
  187. package/dist/src/bitgo/pendingApproval/index.js +17 -0
  188. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +99 -0
  189. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -0
  190. package/dist/src/bitgo/pendingApproval/pendingApproval.js +319 -0
  191. package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts +19 -0
  192. package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts.map +1 -0
  193. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +76 -0
  194. package/dist/src/bitgo/recovery/index.d.ts +2 -0
  195. package/dist/src/bitgo/recovery/index.d.ts.map +1 -0
  196. package/dist/src/bitgo/recovery/index.js +14 -0
  197. package/dist/src/bitgo/recovery/initiate.d.ts +49 -0
  198. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -0
  199. package/dist/src/bitgo/recovery/initiate.js +119 -0
  200. package/dist/src/bitgo/trading/affirmation.d.ts +35 -0
  201. package/dist/src/bitgo/trading/affirmation.d.ts.map +1 -0
  202. package/dist/src/bitgo/trading/affirmation.js +53 -0
  203. package/dist/src/bitgo/trading/affirmations.d.ts +23 -0
  204. package/dist/src/bitgo/trading/affirmations.d.ts.map +1 -0
  205. package/dist/src/bitgo/trading/affirmations.js +45 -0
  206. package/dist/src/bitgo/trading/iAffirmation.d.ts +15 -0
  207. package/dist/src/bitgo/trading/iAffirmation.d.ts.map +1 -0
  208. package/dist/src/bitgo/trading/iAffirmation.js +13 -0
  209. package/dist/src/bitgo/trading/iAffirmations.d.ts +10 -0
  210. package/dist/src/bitgo/trading/iAffirmations.d.ts.map +1 -0
  211. package/dist/src/bitgo/trading/iAffirmations.js +3 -0
  212. package/dist/src/bitgo/trading/iSettlement.d.ts +25 -0
  213. package/dist/src/bitgo/trading/iSettlement.d.ts.map +1 -0
  214. package/dist/src/bitgo/trading/iSettlement.js +17 -0
  215. package/dist/src/bitgo/trading/iSettlements.d.ts +19 -0
  216. package/dist/src/bitgo/trading/iSettlements.d.ts.map +1 -0
  217. package/dist/src/bitgo/trading/iSettlements.js +3 -0
  218. package/dist/src/bitgo/trading/iTradingAccount.d.ts +41 -0
  219. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -0
  220. package/dist/src/bitgo/trading/iTradingAccount.js +3 -0
  221. package/dist/src/bitgo/trading/iTradingPartner.d.ts +14 -0
  222. package/dist/src/bitgo/trading/iTradingPartner.d.ts.map +1 -0
  223. package/dist/src/bitgo/trading/iTradingPartner.js +17 -0
  224. package/dist/src/bitgo/trading/iTradingPartners.d.ts +15 -0
  225. package/dist/src/bitgo/trading/iTradingPartners.d.ts.map +1 -0
  226. package/dist/src/bitgo/trading/iTradingPartners.js +9 -0
  227. package/dist/src/bitgo/trading/index.d.ts +18 -0
  228. package/dist/src/bitgo/trading/index.d.ts.map +1 -0
  229. package/dist/src/bitgo/trading/index.js +30 -0
  230. package/dist/src/bitgo/trading/lock.d.ts +16 -0
  231. package/dist/src/bitgo/trading/lock.d.ts.map +1 -0
  232. package/dist/src/bitgo/trading/lock.js +12 -0
  233. package/dist/src/bitgo/trading/payload.d.ts +22 -0
  234. package/dist/src/bitgo/trading/payload.d.ts.map +1 -0
  235. package/dist/src/bitgo/trading/payload.js +3 -0
  236. package/dist/src/bitgo/trading/settlement.d.ts +16 -0
  237. package/dist/src/bitgo/trading/settlement.d.ts.map +1 -0
  238. package/dist/src/bitgo/trading/settlement.js +21 -0
  239. package/dist/src/bitgo/trading/settlements.d.ts +32 -0
  240. package/dist/src/bitgo/trading/settlements.d.ts.map +1 -0
  241. package/dist/src/bitgo/trading/settlements.js +61 -0
  242. package/dist/src/bitgo/trading/trade.d.ts +29 -0
  243. package/dist/src/bitgo/trading/trade.d.ts.map +1 -0
  244. package/dist/src/bitgo/trading/trade.js +11 -0
  245. package/dist/src/bitgo/trading/tradingAccount.d.ts +53 -0
  246. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -0
  247. package/dist/src/bitgo/trading/tradingAccount.js +127 -0
  248. package/dist/src/bitgo/trading/tradingPartner.d.ts +26 -0
  249. package/dist/src/bitgo/trading/tradingPartner.d.ts.map +1 -0
  250. package/dist/src/bitgo/trading/tradingPartner.js +31 -0
  251. package/dist/src/bitgo/trading/tradingPartners.d.ts +24 -0
  252. package/dist/src/bitgo/trading/tradingPartners.d.ts.map +1 -0
  253. package/dist/src/bitgo/trading/tradingPartners.js +32 -0
  254. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +102 -0
  255. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -0
  256. package/dist/src/bitgo/tss/eddsa/eddsa.js +256 -0
  257. package/dist/src/bitgo/tss/eddsa/index.d.ts +6 -0
  258. package/dist/src/bitgo/tss/eddsa/index.d.ts.map +1 -0
  259. package/dist/src/bitgo/tss/eddsa/index.js +37 -0
  260. package/dist/src/bitgo/tss/eddsa/types.d.ts +23 -0
  261. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -0
  262. package/dist/src/bitgo/tss/eddsa/types.js +3 -0
  263. package/dist/src/bitgo/tss/index.d.ts +5 -0
  264. package/dist/src/bitgo/tss/index.d.ts.map +1 -0
  265. package/dist/src/bitgo/tss/index.js +39 -0
  266. package/dist/src/bitgo/tss/types.d.ts +6 -0
  267. package/dist/src/bitgo/tss/types.d.ts.map +1 -0
  268. package/dist/src/bitgo/tss/types.js +10 -0
  269. package/dist/src/bitgo/types.d.ts +4 -0
  270. package/dist/src/bitgo/types.d.ts.map +1 -0
  271. package/dist/src/bitgo/types.js +3 -0
  272. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +6 -0
  273. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -0
  274. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +30 -0
  275. package/dist/src/bitgo/utils/blsUtils.d.ts +51 -0
  276. package/dist/src/bitgo/utils/blsUtils.d.ts.map +1 -0
  277. package/dist/src/bitgo/utils/blsUtils.js +166 -0
  278. package/dist/src/bitgo/utils/iBlsUtils.d.ts +14 -0
  279. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +1 -0
  280. package/dist/src/bitgo/utils/iBlsUtils.js +3 -0
  281. package/dist/src/bitgo/utils/index.d.ts +12 -0
  282. package/dist/src/bitgo/utils/index.d.ts.map +1 -0
  283. package/dist/src/bitgo/utils/index.js +37 -0
  284. package/dist/src/bitgo/utils/mpcUtils.d.ts +31 -0
  285. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -0
  286. package/dist/src/bitgo/utils/mpcUtils.js +55 -0
  287. package/dist/src/bitgo/utils/opengpgUtils.d.ts +51 -0
  288. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -0
  289. package/dist/src/bitgo/utils/opengpgUtils.js +136 -0
  290. package/dist/src/bitgo/utils/promise-utils.d.ts +5 -0
  291. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -0
  292. package/dist/src/bitgo/utils/promise-utils.js +12 -0
  293. package/dist/src/bitgo/utils/triple.d.ts +3 -0
  294. package/dist/src/bitgo/utils/triple.d.ts.map +1 -0
  295. package/dist/src/bitgo/utils/triple.js +8 -0
  296. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +117 -0
  297. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -0
  298. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +351 -0
  299. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +5 -0
  300. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -0
  301. package/dist/src/bitgo/utils/tss/eddsa/index.js +29 -0
  302. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +72 -0
  303. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -0
  304. package/dist/src/bitgo/utils/tss/eddsa/types.js +10 -0
  305. package/dist/src/bitgo/utils/tss/index.d.ts +4 -0
  306. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -0
  307. package/dist/src/bitgo/utils/tss/index.js +29 -0
  308. package/dist/src/bitgo/utils/util.d.ts +77 -0
  309. package/dist/src/bitgo/utils/util.d.ts.map +1 -0
  310. package/dist/src/bitgo/utils/util.js +198 -0
  311. package/dist/src/bitgo/wallet/iWallet.d.ts +510 -0
  312. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -0
  313. package/dist/src/bitgo/wallet/iWallet.js +3 -0
  314. package/dist/src/bitgo/wallet/iWallets.d.ts +105 -0
  315. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -0
  316. package/dist/src/bitgo/wallet/iWallets.js +3 -0
  317. package/dist/src/bitgo/wallet/index.d.ts +5 -0
  318. package/dist/src/bitgo/wallet/index.d.ts.map +1 -0
  319. package/dist/src/bitgo/wallet/index.js +17 -0
  320. package/dist/src/bitgo/wallet/wallet.d.ts +650 -0
  321. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -0
  322. package/dist/src/bitgo/wallet/wallet.js +2039 -0
  323. package/dist/src/bitgo/wallet/wallets.d.ts +134 -0
  324. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -0
  325. package/dist/src/bitgo/wallet/wallets.js +605 -0
  326. package/dist/src/bitgo/webhook/iWebhooks.d.ts +26 -0
  327. package/dist/src/bitgo/webhook/iWebhooks.d.ts.map +1 -0
  328. package/dist/src/bitgo/webhook/iWebhooks.js +3 -0
  329. package/dist/src/bitgo/webhook/index.d.ts +3 -0
  330. package/dist/src/bitgo/webhook/index.d.ts.map +1 -0
  331. package/dist/src/bitgo/webhook/index.js +15 -0
  332. package/dist/src/bitgo/webhook/webhooks.d.ts +43 -0
  333. package/dist/src/bitgo/webhook/webhooks.d.ts.map +1 -0
  334. package/dist/src/bitgo/webhook/webhooks.js +102 -0
  335. package/dist/src/{bigojsError.d.ts → bitgojsError.d.ts} +1 -1
  336. package/dist/src/bitgojsError.d.ts.map +1 -0
  337. package/dist/src/bitgojsError.js +11 -0
  338. package/dist/src/common.d.ts +1 -1
  339. package/dist/src/common.d.ts.map +1 -1
  340. package/dist/src/common.js +3 -3
  341. package/dist/src/index.d.ts +4 -2
  342. package/dist/src/index.d.ts.map +1 -1
  343. package/dist/src/index.js +6 -5
  344. package/dist/tsconfig.tsbuildinfo +3458 -153
  345. package/package.json +27 -3
  346. package/dist/src/bigojsError.d.ts.map +0 -1
  347. package/dist/src/bigojsError.js +0 -11
  348. package/dist/src/v2/environments.d.ts.map +0 -1
  349. package/dist/src/v2/environments.js +0 -142
  350. package/dist/src/v2/index.d.ts +0 -3
  351. package/dist/src/v2/index.d.ts.map +0 -1
  352. package/dist/src/v2/types.d.ts +0 -2
  353. package/dist/src/v2/types.d.ts.map +0 -1
  354. package/dist/src/v2/types.js +0 -3
@@ -0,0 +1,26 @@
1
+ import Curve from './curves';
2
+ export default class Shamir {
3
+ curve: Curve;
4
+ constructor(curve: Curve);
5
+ /**
6
+ * Perform Shamir sharing on the secret `secret` to the degree `threshold - 1` split `numShares`
7
+ * ways. The split secret requires `threshold` shares to be reconstructed.
8
+ *
9
+ * @param secret secret to split
10
+ * @param threshold share threshold required to reconstruct secret
11
+ * @param numShares total number of shares to split to split secret into
12
+ * @param indices
13
+ * @returns Dictionary of shares. Each key is an int in the range 1<=x<=numShares
14
+ * representing that share's free term.
15
+ */
16
+ split(secret: bigint, threshold: number, numShares: number, indices?: Array<number>): Record<number, bigint>;
17
+ /**
18
+ * Reconstitute a secret from a dictionary of shares. The number of shares must
19
+ * be equal to `t` to reconstitute the original secret.
20
+ *
21
+ * @param shares dictionary of shares. each key is the free term of the share
22
+ * @returns secret
23
+ */
24
+ combine(shares: Record<number, bigint>): bigint;
25
+ }
26
+ //# sourceMappingURL=shamir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shamir.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/mpc/shamir.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,UAAU,CAAC;AAG7B,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,KAAK,EAAE,KAAK,CAAC;gBAED,KAAK,EAAE,KAAK;IAIxB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiC5G;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CA2BhD"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require('assert');
4
+ const crypto = require('crypto');
5
+ const util_1 = require("./util");
6
+ class Shamir {
7
+ constructor(curve) {
8
+ this.curve = curve;
9
+ }
10
+ /**
11
+ * Perform Shamir sharing on the secret `secret` to the degree `threshold - 1` split `numShares`
12
+ * ways. The split secret requires `threshold` shares to be reconstructed.
13
+ *
14
+ * @param secret secret to split
15
+ * @param threshold share threshold required to reconstruct secret
16
+ * @param numShares total number of shares to split to split secret into
17
+ * @param indices
18
+ * @returns Dictionary of shares. Each key is an int in the range 1<=x<=numShares
19
+ * representing that share's free term.
20
+ */
21
+ split(secret, threshold, numShares, indices) {
22
+ let bigIndices;
23
+ if (indices) {
24
+ bigIndices = indices.map((i) => BigInt(i));
25
+ }
26
+ else {
27
+ // make range(1, n + 1)
28
+ bigIndices = Array(numShares)
29
+ .fill(null)
30
+ .map((_, i) => BigInt(i + 1));
31
+ }
32
+ assert(threshold > 1);
33
+ assert(threshold <= numShares);
34
+ const coefs = [];
35
+ for (let ind = 0; ind < threshold - 1; ind++) {
36
+ const coeff = util_1.clamp(util_1.bigIntFromBufferLE(crypto.createHmac('sha256', ind.toString(10)).update(util_1.bigIntToBufferLE(secret, 32)).digest()));
37
+ coefs.push(coeff);
38
+ }
39
+ coefs.push(secret);
40
+ const shares = {};
41
+ for (let ind = 0; ind < bigIndices.length; ind++) {
42
+ const x = bigIndices[ind];
43
+ let partial = coefs[0];
44
+ for (let other = 1; other < coefs.length; other++) {
45
+ partial = this.curve.scalarAdd(coefs[other], this.curve.scalarMult(partial, x));
46
+ }
47
+ shares[parseInt(x.toString(), 10)] = partial;
48
+ }
49
+ return shares;
50
+ }
51
+ /**
52
+ * Reconstitute a secret from a dictionary of shares. The number of shares must
53
+ * be equal to `t` to reconstitute the original secret.
54
+ *
55
+ * @param shares dictionary of shares. each key is the free term of the share
56
+ * @returns secret
57
+ */
58
+ combine(shares) {
59
+ let s = BigInt(0);
60
+ for (const i in shares) {
61
+ const yi = shares[i];
62
+ const xi = BigInt(i);
63
+ let num = BigInt(1);
64
+ let denum = BigInt(1);
65
+ for (const j in shares) {
66
+ const xj = BigInt(j);
67
+ if (xi !== xj) {
68
+ num = this.curve.scalarMult(num, xj);
69
+ }
70
+ }
71
+ for (const j in shares) {
72
+ const xj = BigInt(j);
73
+ if (xi !== xj) {
74
+ denum = this.curve.scalarMult(denum, this.curve.scalarSub(xj, xi));
75
+ }
76
+ }
77
+ const inverted = this.curve.scalarInvert(denum);
78
+ const innerMultiplied = this.curve.scalarMult(num, inverted);
79
+ const multiplied = this.curve.scalarMult(innerMultiplied, yi);
80
+ s = this.curve.scalarAdd(multiplied, s);
81
+ }
82
+ return s;
83
+ }
84
+ }
85
+ exports.default = Shamir;
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhbWlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL21wYy9zaGFtaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRWpDLGlDQUFxRTtBQUVyRSxNQUFxQixNQUFNO0lBR3pCLFlBQVksS0FBWTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQUssQ0FBQyxNQUFjLEVBQUUsU0FBaUIsRUFBRSxTQUFpQixFQUFFLE9BQXVCO1FBQ2pGLElBQUksVUFBeUIsQ0FBQztRQUM5QixJQUFJLE9BQU8sRUFBRTtZQUNYLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBQ0wsdUJBQXVCO1lBQ3ZCLFVBQVUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO2lCQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQztRQUNELE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDM0IsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFNBQVMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDNUMs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QUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0Y7QUFyRkQseUJBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5jb25zdCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTtcbmltcG9ydCBDdXJ2ZSBmcm9tICcuL2N1cnZlcyc7XG5pbXBvcnQgeyBiaWdJbnRGcm9tQnVmZmVyTEUsIGJpZ0ludFRvQnVmZmVyTEUsIGNsYW1wIH0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2hhbWlyIHtcbiAgY3VydmU6IEN1cnZlO1xuXG4gIGNvbnN0cnVjdG9yKGN1cnZlOiBDdXJ2ZSkge1xuICAgIHRoaXMuY3VydmUgPSBjdXJ2ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIFNoYW1pciBzaGFyaW5nIG9uIHRoZSBzZWNyZXQgYHNlY3JldGAgdG8gdGhlIGRlZ3JlZSBgdGhyZXNob2xkIC0gMWAgc3BsaXQgYG51bVNoYXJlc2BcbiAgICogd2F5cy4gVGhlIHNwbGl0IHNlY3JldCByZXF1aXJlcyBgdGhyZXNob2xkYCBzaGFyZXMgdG8gYmUgcmVjb25zdHJ1Y3RlZC5cbiAgICpcbiAgICogQHBhcmFtIHNlY3JldCBzZWNyZXQgdG8gc3BsaXRcbiAgICogQHBhcmFtIHRocmVzaG9sZCBzaGFyZSB0aHJlc2hvbGQgcmVxdWlyZWQgdG8gcmVjb25zdHJ1Y3Qgc2VjcmV0XG4gICAqIEBwYXJhbSBudW1TaGFyZXMgdG90YWwgbnVtYmVyIG9mIHNoYXJlcyB0byBzcGxpdCB0byBzcGxpdCBzZWNyZXQgaW50b1xuICAgKiBAcGFyYW0gaW5kaWNlc1xuICAgKiBAcmV0dXJucyBEaWN0aW9uYXJ5IG9mIHNoYXJlcy4gRWFjaCBrZXkgaXMgYW4gaW50IGluIHRoZSByYW5nZSAxPD14PD1udW1TaGFyZXNcbiAgICogcmVwcmVzZW50aW5nIHRoYXQgc2hhcmUncyBmcmVlIHRlcm0uXG4gICAqL1xuICBzcGxpdChzZWNyZXQ6IGJpZ2ludCwgdGhyZXNob2xkOiBudW1iZXIsIG51bVNoYXJlczogbnVtYmVyLCBpbmRpY2VzPzogQXJyYXk8bnVtYmVyPik6IFJlY29yZDxudW1iZXIsIGJpZ2ludD4ge1xuICAgIGxldCBiaWdJbmRpY2VzOiBBcnJheTxiaWdpbnQ+O1xuICAgIGlmIChpbmRpY2VzKSB7XG4gICAgICBiaWdJbmRpY2VzID0gaW5kaWNlcy5tYXAoKGkpID0+IEJpZ0ludChpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG1ha2UgcmFuZ2UoMSwgbiArIDEpXG4gICAgICBiaWdJbmRpY2VzID0gQXJyYXkobnVtU2hhcmVzKVxuICAgICAgICAuZmlsbChudWxsKVxuICAgICAgICAubWFwKChfLCBpKSA9PiBCaWdJbnQoaSArIDEpKTtcbiAgICB9XG4gICAgYXNzZXJ0KHRocmVzaG9sZCA+IDEpO1xuICAgIGFzc2VydCh0aHJlc2hvbGQgPD0gbnVtU2hhcmVzKTtcbiAgICBjb25zdCBjb2VmczogYmlnaW50W10gPSBbXTtcbiAgICBmb3IgKGxldCBpbmQgPSAwOyBpbmQgPCB0aHJlc2hvbGQgLSAxOyBpbmQrKykge1xuICAgICAgY29uc3QgY29lZmYgPSBjbGFtcChcbiAgICAgICAgYmlnSW50RnJvbUJ1ZmZlckxFKGNyeXB0by5jcmVhdGVIbWFjKCdzaGEyNTYnLCBpbmQudG9TdHJpbmcoMTApKS51cGRhdGUoYmlnSW50VG9CdWZmZXJMRShzZWNyZXQsIDMyKSkuZGlnZXN0KCkpXG4gICAgICApO1xuICAgICAgY29lZnMucHVzaChjb2VmZik7XG4gICAgfVxuICAgIGNvZWZzLnB1c2goc2VjcmV0KTtcblxuICAgIGNvbnN0IHNoYXJlczogUmVjb3JkPG51bWJlciwgYmlnaW50PiA9IHt9O1xuICAgIGZvciAobGV0IGluZCA9IDA7IGluZCA8IGJpZ0luZGljZXMubGVuZ3RoOyBpbmQrKykge1xuICAgICAgY29uc3QgeCA9IGJpZ0luZGljZXNbaW5kXTtcbiAgICAgIGxldCBwYXJ0aWFsID0gY29lZnNbMF07XG4gICAgICBmb3IgKGxldCBvdGhlciA9IDE7IG90aGVyIDwgY29lZnMubGVuZ3RoOyBvdGhlcisrKSB7XG4gICAgICAgIHBhcnRpYWwgPSB0aGlzLmN1cnZlLnNjYWxhckFkZChjb2Vmc1tvdGhlcl0sIHRoaXMuY3VydmUuc2NhbGFyTXVsdChwYXJ0aWFsLCB4KSk7XG4gICAgICB9XG4gICAgICBzaGFyZXNbcGFyc2VJbnQoeC50b1N0cmluZygpLCAxMCldID0gcGFydGlhbDtcbiAgICB9XG4gICAgcmV0dXJuIHNoYXJlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvbnN0aXR1dGUgYSBzZWNyZXQgZnJvbSBhIGRpY3Rpb25hcnkgb2Ygc2hhcmVzLiBUaGUgbnVtYmVyIG9mIHNoYXJlcyBtdXN0XG4gICAqIGJlIGVxdWFsIHRvIGB0YCB0byByZWNvbnN0aXR1dGUgdGhlIG9yaWdpbmFsIHNlY3JldC5cbiAgICpcbiAgICogQHBhcmFtIHNoYXJlcyBkaWN0aW9uYXJ5IG9mIHNoYXJlcy4gZWFjaCBrZXkgaXMgdGhlIGZyZWUgdGVybSBvZiB0aGUgc2hhcmVcbiAgICogQHJldHVybnMgc2VjcmV0XG4gICAqL1xuICBjb21iaW5lKHNoYXJlczogUmVjb3JkPG51bWJlciwgYmlnaW50Pik6IGJpZ2ludCB7XG4gICAgbGV0IHMgPSBCaWdJbnQoMCk7XG4gICAgZm9yIChjb25zdCBpIGluIHNoYXJlcykge1xuICAgICAgY29uc3QgeWkgPSBzaGFyZXNbaV07XG4gICAgICBjb25zdCB4aSA9IEJpZ0ludChpKTtcbiAgICAgIGxldCBudW0gPSBCaWdJbnQoMSk7XG4gICAgICBsZXQgZGVudW0gPSBCaWdJbnQoMSk7XG5cbiAgICAgIGZvciAoY29uc3QgaiBpbiBzaGFyZXMpIHtcbiAgICAgICAgY29uc3QgeGogPSBCaWdJbnQoaik7XG4gICAgICAgIGlmICh4aSAhPT0geGopIHtcbiAgICAgICAgICBudW0gPSB0aGlzLmN1cnZlLnNjYWxhck11bHQobnVtLCB4aik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgaiBpbiBzaGFyZXMpIHtcbiAgICAgICAgY29uc3QgeGogPSBCaWdJbnQoaik7XG4gICAgICAgIGlmICh4aSAhPT0geGopIHtcbiAgICAgICAgICBkZW51bSA9IHRoaXMuY3VydmUuc2NhbGFyTXVsdChkZW51bSwgdGhpcy5jdXJ2ZS5zY2FsYXJTdWIoeGosIHhpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IGludmVydGVkID0gdGhpcy5jdXJ2ZS5zY2FsYXJJbnZlcnQoZGVudW0pO1xuICAgICAgY29uc3QgaW5uZXJNdWx0aXBsaWVkID0gdGhpcy5jdXJ2ZS5zY2FsYXJNdWx0KG51bSwgaW52ZXJ0ZWQpO1xuICAgICAgY29uc3QgbXVsdGlwbGllZCA9IHRoaXMuY3VydmUuc2NhbGFyTXVsdChpbm5lck11bHRpcGxpZWQsIHlpKTtcbiAgICAgIHMgPSB0aGlzLmN1cnZlLnNjYWxhckFkZChtdWx0aXBsaWVkLCBzKTtcbiAgICB9XG4gICAgcmV0dXJuIHM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Secp256k1Curve } from '../../curves';
2
+ import Shamir from '../../shamir';
3
+ import { NShare, PShare, KeyShare, KeyCombined } from './types';
4
+ export default class Ecdsa {
5
+ static curve: Secp256k1Curve;
6
+ static shamir: Shamir;
7
+ /**
8
+ * Generate shares for participant at index and split keys `(threshold,numShares)` ways.
9
+ * @param {number} index participant index
10
+ * @param {number} threshold Signing threshold
11
+ * @param {number} numShares Number of shares
12
+ * @returns {Promise<KeyShare>} Returns the private p-share
13
+ * and n-shares to be distributed to participants at their corresponding index.
14
+ */
15
+ keyShare(index: number, threshold: number, numShares: number): Promise<KeyShare>;
16
+ /**
17
+ * Combine data shared during the key generation protocol.
18
+ * @param {KeyShare} participantShares private p-share and
19
+ * n-shares received from all other participants.
20
+ * @returns {KeyCombined} Returns the participant private x-share
21
+ * and y-shares to be used when generating signing shares.
22
+ */
23
+ keyCombine(pShare: PShare, nShares: NShare[]): KeyCombined;
24
+ }
25
+ //# sourceMappingURL=ecdsa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,MAAM,CAAC,KAAK,EAAE,cAAc,CAAwB;IACpD,MAAM,CAAC,MAAM,EAAE,MAAM,CAA2B;IAChD;;;;;;;OAOG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyCtF;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW;CAkC3D"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const paillierBigint = __importStar(require("paillier-bigint"));
26
+ const crypto_1 = require("crypto");
27
+ const crypto_2 = require("../../../util/crypto");
28
+ const util_1 = require("../../util");
29
+ const curves_1 = require("../../curves");
30
+ const shamir_1 = __importDefault(require("../../shamir"));
31
+ class Ecdsa {
32
+ /**
33
+ * Generate shares for participant at index and split keys `(threshold,numShares)` ways.
34
+ * @param {number} index participant index
35
+ * @param {number} threshold Signing threshold
36
+ * @param {number} numShares Number of shares
37
+ * @returns {Promise<KeyShare>} Returns the private p-share
38
+ * and n-shares to be distributed to participants at their corresponding index.
39
+ */
40
+ async keyShare(index, threshold, numShares) {
41
+ if (!(index > 0 && index <= numShares && threshold <= numShares && threshold > 0)) {
42
+ throw 'Invalid KeyShare Config';
43
+ }
44
+ // Generate additively homomorphic encryption key.
45
+ const { publicKey, privateKey } = await paillierBigint.generateRandomKeys(3072, true);
46
+ const u = Ecdsa.curve.scalarRandom();
47
+ const y = Ecdsa.curve.basePointMult(u);
48
+ const chaincode = crypto_1.randomBytes(32);
49
+ // Compute secret shares of the private key
50
+ const uShares = Ecdsa.shamir.split(u, threshold, numShares);
51
+ const currentParticipant = {
52
+ i: index,
53
+ l: crypto_2.bigIntToHex(privateKey.lambda),
54
+ m: crypto_2.bigIntToHex(privateKey.mu),
55
+ n: crypto_2.bigIntToHex(publicKey.n),
56
+ y: crypto_2.bigIntToHex(y),
57
+ u: crypto_2.bigIntToHex(uShares[index]),
58
+ chaincode: chaincode.toString('hex'),
59
+ };
60
+ const keyShare = {
61
+ pShare: currentParticipant,
62
+ nShares: {},
63
+ };
64
+ for (const share in uShares) {
65
+ const participantIndex = parseInt(share, 10);
66
+ if (participantIndex !== index) {
67
+ keyShare.nShares[participantIndex] = {
68
+ i: participantIndex,
69
+ j: currentParticipant['i'],
70
+ n: crypto_2.bigIntToHex(publicKey.n),
71
+ y: crypto_2.bigIntToHex(y),
72
+ u: crypto_2.bigIntToHex(uShares[participantIndex]),
73
+ chaincode: chaincode.toString('hex'),
74
+ };
75
+ }
76
+ }
77
+ return keyShare;
78
+ }
79
+ /**
80
+ * Combine data shared during the key generation protocol.
81
+ * @param {KeyShare} participantShares private p-share and
82
+ * n-shares received from all other participants.
83
+ * @returns {KeyCombined} Returns the participant private x-share
84
+ * and y-shares to be used when generating signing shares.
85
+ */
86
+ keyCombine(pShare, nShares) {
87
+ const allShares = [pShare, ...nShares];
88
+ // Compute the public key.
89
+ const y = allShares.map((participant) => BigInt(participant['y'])).reduce(Ecdsa.curve.pointAdd);
90
+ // Add secret shares
91
+ const x = allShares.map((participant) => BigInt(participant['u'])).reduce(Ecdsa.curve.scalarAdd);
92
+ // Chaincode will be used in future when we add support for key derivation for ecdsa
93
+ const chaincodes = [pShare, ...nShares].map(({ chaincode }) => util_1.bigIntFromBufferBE(Buffer.from(chaincode, 'hex')));
94
+ const chaincode = chaincodes.reduce((acc, chaincode) => Ecdsa.curve.scalarReduce(acc + chaincode));
95
+ const participants = {
96
+ xShare: {
97
+ i: pShare.i,
98
+ l: pShare.l,
99
+ m: pShare.m,
100
+ n: pShare.n,
101
+ y: crypto_2.bigIntToHex(y),
102
+ x: crypto_2.bigIntToHex(x),
103
+ chaincode: util_1.bigIntToBufferBE(chaincode, 32).toString('hex'),
104
+ },
105
+ yShares: {},
106
+ };
107
+ for (const share in nShares) {
108
+ const participantIndex = nShares[share]['j'];
109
+ participants.yShares[participantIndex] = {
110
+ i: pShare.i,
111
+ j: nShares[share]['j'],
112
+ n: nShares[share]['n'],
113
+ };
114
+ }
115
+ return participants;
116
+ }
117
+ }
118
+ exports.default = Ecdsa;
119
+ Ecdsa.curve = new curves_1.Secp256k1Curve();
120
+ Ecdsa.shamir = new shamir_1.default(Ecdsa.curve);
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS9lY2RzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBa0Q7QUFDbEQsbUNBQXFDO0FBQ3JDLGlEQUFtRDtBQUNuRCxxQ0FBa0U7QUFDbEUseUNBQThDO0FBQzlDLDBEQUFrQztBQUdsQyxNQUFxQixLQUFLO0lBR3hCOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQWEsRUFBRSxTQUFpQixFQUFFLFNBQWlCO1FBQ2hFLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNqRixNQUFNLHlCQUF5QixDQUFDO1NBQ2pDO1FBQ0Qsa0RBQWtEO1FBQ2xELE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsTUFBTSxTQUFTLEdBQUcsb0JBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQywyQ0FBMkM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1RCxNQUFNLGtCQUFrQixHQUFXO1lBQ2pDLENBQUMsRUFBRSxLQUFLO1lBQ1IsQ0FBQyxFQUFFLG9CQUFX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QUMsQ0FBQztnQkFDakIsU0FBUyxFQUFFLHVCQUFnQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2FBQzNEO1lBQ0QsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBRUYsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUU7WUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHO2dCQUN2QyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3RCLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO2FBQ3ZCLENBQUM7U0FDSDtRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7O0FBNUZILHdCQTZGQztBQTVGUSxXQUFLLEdBQW1CLElBQUksdUJBQWMsRUFBRSxDQUFDO0FBQzdDLFlBQU0sR0FBVyxJQUFJLGdCQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGFpbGxpZXJCaWdpbnQgZnJvbSAncGFpbGxpZXItYmlnaW50JztcbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IGJpZ0ludFRvSGV4IH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9jcnlwdG8nO1xuaW1wb3J0IHsgYmlnSW50RnJvbUJ1ZmZlckJFLCBiaWdJbnRUb0J1ZmZlckJFIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQgeyBTZWNwMjU2azFDdXJ2ZSB9IGZyb20gJy4uLy4uL2N1cnZlcyc7XG5pbXBvcnQgU2hhbWlyIGZyb20gJy4uLy4uL3NoYW1pcic7XG5pbXBvcnQgeyBOU2hhcmUsIFBTaGFyZSwgS2V5U2hhcmUsIEtleUNvbWJpbmVkIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVjZHNhIHtcbiAgc3RhdGljIGN1cnZlOiBTZWNwMjU2azFDdXJ2ZSA9IG5ldyBTZWNwMjU2azFDdXJ2ZSgpO1xuICBzdGF0aWMgc2hhbWlyOiBTaGFtaXIgPSBuZXcgU2hhbWlyKEVjZHNhLmN1cnZlKTtcbiAgLyoqXG4gICAqIEdlbmVyYXRlIHNoYXJlcyBmb3IgcGFydGljaXBhbnQgYXQgaW5kZXggYW5kIHNwbGl0IGtleXMgYCh0aHJlc2hvbGQsbnVtU2hhcmVzKWAgd2F5cy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IHBhcnRpY2lwYW50IGluZGV4XG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aHJlc2hvbGQgU2lnbmluZyB0aHJlc2hvbGRcbiAgICogQHBhcmFtIHtudW1iZXJ9IG51bVNoYXJlcyAgTnVtYmVyIG9mIHNoYXJlc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxLZXlTaGFyZT59IFJldHVybnMgdGhlIHByaXZhdGUgcC1zaGFyZVxuICAgKiBhbmQgbi1zaGFyZXMgdG8gYmUgZGlzdHJpYnV0ZWQgdG8gcGFydGljaXBhbnRzIGF0IHRoZWlyIGNvcnJlc3BvbmRpbmcgaW5kZXguXG4gICAqL1xuICBhc3luYyBrZXlTaGFyZShpbmRleDogbnVtYmVyLCB0aHJlc2hvbGQ6IG51bWJlciwgbnVtU2hhcmVzOiBudW1iZXIpOiBQcm9taXNlPEtleVNoYXJlPiB7XG4gICAgaWYgKCEoaW5kZXggPiAwICYmIGluZGV4IDw9IG51bVNoYXJlcyAmJiB0aHJlc2hvbGQgPD0gbnVtU2hhcmVzICYmIHRocmVzaG9sZCA+IDApKSB7XG4gICAgICB0aHJvdyAnSW52YWxpZCBLZXlTaGFyZSBDb25maWcnO1xuICAgIH1cbiAgICAvLyBHZW5lcmF0ZSBhZGRpdGl2ZWx5IGhvbW9tb3JwaGljIGVuY3J5cHRpb24ga2V5LlxuICAgIGNvbnN0IHsgcHVibGljS2V5LCBwcml2YXRlS2V5IH0gPSBhd2FpdCBwYWlsbGllckJpZ2ludC5nZW5lcmF0ZVJhbmRvbUtleXMoMzA3MiwgdHJ1ZSk7XG4gICAgY29uc3QgdSA9IEVjZHNhLmN1cnZlLnNjYWxhclJhbmRvbSgpO1xuICAgIGNvbnN0IHkgPSBFY2RzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHUpO1xuICAgIGNvbnN0IGNoYWluY29kZSA9IHJhbmRvbUJ5dGVzKDMyKTtcbiAgICAvLyBDb21wdXRlIHNlY3JldCBzaGFyZXMgb2YgdGhlIHByaXZhdGUga2V5XG4gICAgY29uc3QgdVNoYXJlcyA9IEVjZHNhLnNoYW1pci5zcGxpdCh1LCB0aHJlc2hvbGQsIG51bVNoYXJlcyk7XG4gICAgY29uc3QgY3VycmVudFBhcnRpY2lwYW50OiBQU2hhcmUgPSB7XG4gICAgICBpOiBpbmRleCxcbiAgICAgIGw6IGJpZ0ludFRvSGV4KHByaXZhdGVLZXkubGFtYmRhKSxcbiAgICAgIG06IGJpZ0ludFRvSGV4KHByaXZhdGVLZXkubXUpLFxuICAgICAgbjogYmlnSW50VG9IZXgocHVibGljS2V5Lm4pLFxuICAgICAgeTogYmlnSW50VG9IZXgoeSksXG4gICAgICB1OiBiaWdJbnRUb0hleCh1U2hhcmVzW2luZGV4XSksXG4gICAgICBjaGFpbmNvZGU6IGNoYWluY29kZS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICBjb25zdCBrZXlTaGFyZTogS2V5U2hhcmUgPSB7XG4gICAgICBwU2hhcmU6IGN1cnJlbnRQYXJ0aWNpcGFudCxcbiAgICAgIG5TaGFyZXM6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IHNoYXJlIGluIHVTaGFyZXMpIHtcbiAgICAgIGNvbnN0IHBhcnRpY2lwYW50SW5kZXggPSBwYXJzZUludChzaGFyZSwgMTApO1xuICAgICAgaWYgKHBhcnRpY2lwYW50SW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgIGtleVNoYXJlLm5TaGFyZXNbcGFydGljaXBhbnRJbmRleF0gPSB7XG4gICAgICAgICAgaTogcGFydGljaXBhbnRJbmRleCxcbiAgICAgICAgICBqOiBjdXJyZW50UGFydGljaXBhbnRbJ2knXSxcbiAgICAgICAgICBuOiBiaWdJbnRUb0hleChwdWJsaWNLZXkubiksXG4gICAgICAgICAgeTogYmlnSW50VG9IZXgoeSksXG4gICAgICAgICAgdTogYmlnSW50VG9IZXgodVNoYXJlc1twYXJ0aWNpcGFudEluZGV4XSksXG4gICAgICAgICAgY2hhaW5jb2RlOiBjaGFpbmNvZGUudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB9IGFzIE5TaGFyZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGtleVNoYXJlO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbWJpbmUgZGF0YSBzaGFyZWQgZHVyaW5nIHRoZSBrZXkgZ2VuZXJhdGlvbiBwcm90b2NvbC5cbiAgICogQHBhcmFtIHtLZXlTaGFyZX0gcGFydGljaXBhbnRTaGFyZXMgcHJpdmF0ZSBwLXNoYXJlIGFuZFxuICAgKiBuLXNoYXJlcyByZWNlaXZlZCBmcm9tIGFsbCBvdGhlciBwYXJ0aWNpcGFudHMuXG4gICAqIEByZXR1cm5zIHtLZXlDb21iaW5lZH0gUmV0dXJucyB0aGUgcGFydGljaXBhbnQgcHJpdmF0ZSB4LXNoYXJlXG4gICAqIGFuZCB5LXNoYXJlcyB0byBiZSB1c2VkIHdoZW4gZ2VuZXJhdGluZyBzaWduaW5nIHNoYXJlcy5cbiAgICovXG4gIGtleUNvbWJpbmUocFNoYXJlOiBQU2hhcmUsIG5TaGFyZXM6IE5TaGFyZVtdKTogS2V5Q29tYmluZWQge1xuICAgIGNvbnN0IGFsbFNoYXJlcyA9IFtwU2hhcmUsIC4uLm5TaGFyZXNdO1xuICAgIC8vIENvbXB1dGUgdGhlIHB1YmxpYyBrZXkuXG4gICAgY29uc3QgeSA9IGFsbFNoYXJlcy5tYXAoKHBhcnRpY2lwYW50KSA9PiBCaWdJbnQocGFydGljaXBhbnRbJ3knXSkpLnJlZHVjZShFY2RzYS5jdXJ2ZS5wb2ludEFkZCk7XG4gICAgLy8gQWRkIHNlY3JldCBzaGFyZXNcbiAgICBjb25zdCB4ID0gYWxsU2hhcmVzLm1hcCgocGFydGljaXBhbnQpID0+IEJpZ0ludChwYXJ0aWNpcGFudFsndSddKSkucmVkdWNlKEVjZHNhLmN1cnZlLnNjYWxhckFkZCk7XG5cbiAgICAvLyBDaGFpbmNvZGUgd2lsbCBiZSB1c2VkIGluIGZ1dHVyZSB3aGVuIHdlIGFkZCBzdXBwb3J0IGZvciBrZXkgZGVyaXZhdGlvbiBmb3IgZWNkc2FcbiAgICBjb25zdCBjaGFpbmNvZGVzID0gW3BTaGFyZSwgLi4ublNoYXJlc10ubWFwKCh7IGNoYWluY29kZSB9KSA9PiBiaWdJbnRGcm9tQnVmZmVyQkUoQnVmZmVyLmZyb20oY2hhaW5jb2RlLCAnaGV4JykpKTtcbiAgICBjb25zdCBjaGFpbmNvZGUgPSBjaGFpbmNvZGVzLnJlZHVjZSgoYWNjLCBjaGFpbmNvZGUpID0+IEVjZHNhLmN1cnZlLnNjYWxhclJlZHVjZShhY2MgKyBjaGFpbmNvZGUpKTtcblxuICAgIGNvbnN0IHBhcnRpY2lwYW50czogS2V5Q29tYmluZWQgPSB7XG4gICAgICB4U2hhcmU6IHtcbiAgICAgICAgaTogcFNoYXJlLmksXG4gICAgICAgIGw6IHBTaGFyZS5sLFxuICAgICAgICBtOiBwU2hhcmUubSxcbiAgICAgICAgbjogcFNoYXJlLm4sXG4gICAgICAgIHk6IGJpZ0ludFRvSGV4KHkpLFxuICAgICAgICB4OiBiaWdJbnRUb0hleCh4KSxcbiAgICAgICAgY2hhaW5jb2RlOiBiaWdJbnRUb0J1ZmZlckJFKGNoYWluY29kZSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH0sXG4gICAgICB5U2hhcmVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBzaGFyZSBpbiBuU2hhcmVzKSB7XG4gICAgICBjb25zdCBwYXJ0aWNpcGFudEluZGV4ID0gblNoYXJlc1tzaGFyZV1bJ2onXTtcbiAgICAgIHBhcnRpY2lwYW50cy55U2hhcmVzW3BhcnRpY2lwYW50SW5kZXhdID0ge1xuICAgICAgICBpOiBwU2hhcmUuaSxcbiAgICAgICAgajogblNoYXJlc1tzaGFyZV1bJ2onXSxcbiAgICAgICAgbjogblNoYXJlc1tzaGFyZV1bJ24nXSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBwYXJ0aWNpcGFudHM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ import Ecdsa from './ecdsa';
2
+ export * as ECDSA from './types';
3
+ export default Ecdsa;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/ecdsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,eAAe,KAAK,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ECDSA = void 0;
26
+ const ecdsa_1 = __importDefault(require("./ecdsa"));
27
+ exports.ECDSA = __importStar(require("./types"));
28
+ exports.default = ecdsa_1.default;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLGlEQUFpQztBQUVqQyxrQkFBZSxlQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRWNkc2EgZnJvbSAnLi9lY2RzYSc7XG5cbmV4cG9ydCAqIGFzIEVDRFNBIGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBFY2RzYTtcbiJdfQ==
@@ -0,0 +1,40 @@
1
+ export interface PShare {
2
+ i: number;
3
+ l: string;
4
+ m: string;
5
+ u: string;
6
+ n: string;
7
+ y: string;
8
+ chaincode: string;
9
+ }
10
+ export interface NShare {
11
+ i: number;
12
+ j: number;
13
+ n: string;
14
+ u: string;
15
+ y: string;
16
+ chaincode: string;
17
+ }
18
+ export declare type KeyShare = {
19
+ pShare: PShare;
20
+ nShares: Record<number, NShare>;
21
+ };
22
+ export interface XShare {
23
+ i: number;
24
+ l: string;
25
+ m: string;
26
+ n: string;
27
+ y: string;
28
+ x: string;
29
+ chaincode: string;
30
+ }
31
+ export interface YShare {
32
+ i: number;
33
+ j: number;
34
+ n: string;
35
+ }
36
+ export interface KeyCombined {
37
+ xShare: XShare;
38
+ yShares: Record<number, YShare>;
39
+ }
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/ecdsa/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,oBAAY,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAGF,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUHJpdmF0ZSBzaGFyZSBvZiB0aGUgdXNlciBnZW5lcmF0ZWQgZHVyaW5nIGtleSBnZW5lcmF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIFBTaGFyZSB7XG4gIGk6IG51bWJlcjsgLy8gcGFydGljaXBhbnQgaW5kZXhcbiAgbDogc3RyaW5nOyAvLyBsYW1iZGEgdmFsdWUgZm9yIHBhaWxsaWVyIHNlY3JldCBrZXlcbiAgbTogc3RyaW5nOyAvLyBtdSB2YWx1ZSBmb3IgcGFpbGxpZXIgc2VjcmV0IGtleVxuICB1OiBzdHJpbmc7IC8vIHNoYW1pciBzaGFyZSBvZiBzZWNyZXRcbiAgbjogc3RyaW5nOyAvLyBuID0+IChwIC4gcSkgd2hlcmUgcCBhbmQgcSBhcmUgdGhlIHR3byByYW5kb20gcHJpbWUgbnVtYmVycyBjaG9zZW4gZm9yIHBhaWxsaWVyIGVuY3J5cHRpb25cbiAgeTogc3RyaW5nO1xuICBjaGFpbmNvZGU6IHN0cmluZztcbn1cblxuLy8gTlNoYXJlcyB3aGljaCBpcyBzaGFyZWQgdG8gdGhlIG90aGVyIHBhcnRpY2lwYW50cyBkdXJpbmcga2V5IGdlbmVyYXRpb25cbmV4cG9ydCBpbnRlcmZhY2UgTlNoYXJlIHtcbiAgaTogbnVtYmVyOyAvLyBwYXJ0aWNpcGFudCBpbmRleFxuICBqOiBudW1iZXI7IC8vIHRhcmdldCBwYXJ0aWNpcGFudCBpbmRleFxuICBuOiBzdHJpbmc7XG4gIHU6IHN0cmluZzsgLy8gc2hhbWlyIHNoYXJlIG9mIHNlY3JldCBhdCBqJ3RoIGluZGV4XG4gIHk6IHN0cmluZztcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEtleVNoYXJlID0ge1xuICBwU2hhcmU6IFBTaGFyZTtcbiAgblNoYXJlczogUmVjb3JkPG51bWJlciwgTlNoYXJlPjtcbn07XG5cbi8vIFByaXZhdGUgWFNoYXJlIG9mIHRoZSBjdXJyZW50IHBhcnRpY2lwYW50XG5leHBvcnQgaW50ZXJmYWNlIFhTaGFyZSB7XG4gIGk6IG51bWJlcjtcbiAgbDogc3RyaW5nO1xuICBtOiBzdHJpbmc7XG4gIG46IHN0cmluZztcbiAgeTogc3RyaW5nOyAvLyBjb21iaW5lZCBwdWJsaWMga2V5XG4gIHg6IHN0cmluZzsgLy8gY29tYmluZWQgc2VjcmV0XG4gIGNoYWluY29kZTogc3RyaW5nO1xufVxuXG4vLyBZU2hhcmVzIHVzZWQgZHVyaW5nIHNpZ25hdHVyZSBnZW5lcmF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIFlTaGFyZSB7XG4gIGk6IG51bWJlcjtcbiAgajogbnVtYmVyO1xuICBuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Q29tYmluZWQge1xuICB4U2hhcmU6IFhTaGFyZTtcbiAgeVNoYXJlczogUmVjb3JkPG51bWJlciwgWVNoYXJlPjtcbn1cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ /// <reference types="node" />
2
+ import { Ed25519Curve } from '../../curves';
3
+ import Shamir from '../../shamir';
4
+ import HDTree from '../../hdTree';
5
+ import { KeyShare, UShare, YShare, KeyCombine, PShare, SubkeyShare, JShare, SignShare, Signature, XShare, RShare, GShare } from './types';
6
+ export default class Eddsa {
7
+ static curve: Ed25519Curve;
8
+ static shamir: Shamir;
9
+ static initialized: boolean;
10
+ static initialize(hdTree?: HDTree): Promise<Eddsa>;
11
+ hdTree?: HDTree;
12
+ constructor(hdTree?: HDTree);
13
+ keyShare(index: number, threshold: number, numShares: number, seed?: Buffer): KeyShare;
14
+ keyCombine(uShare: UShare, yShares: YShare[]): KeyCombine;
15
+ /**
16
+ * Derives a child common keychain from common keychain
17
+ *
18
+ * @param commonKeychain - common keychain as a hex string
19
+ * @param path - bip32 path
20
+ * @return {string} derived common keychain as a hex string
21
+ */
22
+ deriveUnhardened(commonKeychain: string, path: string): string;
23
+ keyDerive(uShare: UShare, yShares: YShare[], path: string): SubkeyShare;
24
+ signShare(message: Buffer, pShare: PShare, jShares: JShare[]): SignShare;
25
+ sign(message: Buffer, playerShare: XShare, rShares: RShare[], yShares?: YShare[]): GShare;
26
+ signCombine(shares: GShare[]): Signature;
27
+ verify(message: Buffer, signature: Signature): boolean;
28
+ }
29
+ //# sourceMappingURL=eddsa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eddsa.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/eddsa/eddsa.ts"],"names":[],"mappings":";AAiCA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,OAAO,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,UAAU,EACV,MAAM,EACN,WAAW,EACX,MAAM,EACN,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACP,MAAM,SAAS,CAAC;AAKjB,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,MAAM,CAAC,KAAK,EAAE,YAAY,CAAsB;IAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAA2B;IAChD,MAAM,CAAC,WAAW,UAAS;WAEd,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IASxD,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEJ,MAAM,CAAC,EAAE,MAAM;IAI3B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ;IA2CtF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU;IAgCzD;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAqB9D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IA0DvE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;IAyCxE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,MAAM;IA0B7F,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS;IAkBxC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;CAKvD"}