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

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 (363) hide show
  1. package/dist/src/account-lib/baseCoin/baseKeyPair.d.ts +27 -0
  2. package/dist/src/account-lib/baseCoin/baseKeyPair.d.ts.map +1 -0
  3. package/dist/src/account-lib/baseCoin/baseKeyPair.js +3 -0
  4. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts +71 -0
  5. package/dist/src/account-lib/baseCoin/baseTransaction.d.ts.map +1 -0
  6. package/dist/src/account-lib/baseCoin/baseTransaction.js +69 -0
  7. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts +128 -0
  8. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts.map +1 -0
  9. package/dist/src/account-lib/baseCoin/baseTransactionBuilder.js +138 -0
  10. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.d.ts +29 -0
  11. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.d.ts.map +1 -0
  12. package/dist/src/account-lib/baseCoin/baseTransactionBuilderFactory.js +19 -0
  13. package/dist/src/account-lib/baseCoin/baseUtils.d.ts +45 -0
  14. package/dist/src/account-lib/baseCoin/baseUtils.d.ts.map +1 -0
  15. package/dist/src/account-lib/baseCoin/baseUtils.js +3 -0
  16. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +75 -0
  17. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +1 -0
  18. package/dist/src/account-lib/baseCoin/blsKeyPair.js +179 -0
  19. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +50 -0
  20. package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -0
  21. package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +145 -0
  22. package/dist/src/account-lib/baseCoin/enum.d.ts +45 -0
  23. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -0
  24. package/dist/src/account-lib/baseCoin/enum.js +74 -0
  25. package/dist/src/account-lib/baseCoin/errors.d.ts +59 -0
  26. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -0
  27. package/dist/src/account-lib/baseCoin/errors.js +105 -0
  28. package/dist/src/account-lib/baseCoin/iface.d.ts +155 -0
  29. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -0
  30. package/dist/src/account-lib/baseCoin/iface.js +38 -0
  31. package/dist/src/account-lib/baseCoin/index.d.ts +12 -0
  32. package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -0
  33. package/dist/src/account-lib/baseCoin/index.js +31 -0
  34. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts +55 -0
  35. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +1 -0
  36. package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +124 -0
  37. package/dist/src/account-lib/index.d.ts +5 -0
  38. package/dist/src/account-lib/index.d.ts.map +1 -0
  39. package/dist/src/account-lib/index.js +17 -0
  40. package/dist/src/account-lib/mpc/curves/baseCurve.d.ts +19 -0
  41. package/dist/src/account-lib/mpc/curves/baseCurve.d.ts.map +1 -0
  42. package/dist/src/account-lib/mpc/curves/baseCurve.js +6 -0
  43. package/dist/src/account-lib/mpc/curves/ed25519.d.ts +17 -0
  44. package/dist/src/account-lib/mpc/curves/ed25519.d.ts.map +1 -0
  45. package/dist/src/account-lib/mpc/curves/ed25519.js +57 -0
  46. package/dist/src/account-lib/mpc/curves/index.d.ts +6 -0
  47. package/dist/src/account-lib/mpc/curves/index.d.ts.map +1 -0
  48. package/dist/src/account-lib/mpc/curves/index.js +8 -0
  49. package/dist/src/account-lib/mpc/curves/secp256k1.d.ts +17 -0
  50. package/dist/src/account-lib/mpc/curves/secp256k1.d.ts.map +1 -0
  51. package/dist/src/account-lib/mpc/curves/secp256k1.js +70 -0
  52. package/dist/src/account-lib/mpc/hdTree.d.ts +24 -0
  53. package/dist/src/account-lib/mpc/hdTree.d.ts.map +1 -0
  54. package/dist/src/account-lib/mpc/hdTree.js +94 -0
  55. package/dist/src/account-lib/mpc/index.d.ts +8 -0
  56. package/dist/src/account-lib/mpc/index.d.ts.map +1 -0
  57. package/dist/src/account-lib/mpc/index.js +23 -0
  58. package/dist/src/account-lib/mpc/shamir.d.ts +26 -0
  59. package/dist/src/account-lib/mpc/shamir.d.ts.map +1 -0
  60. package/dist/src/account-lib/mpc/shamir.js +86 -0
  61. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +25 -0
  62. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -0
  63. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +121 -0
  64. package/dist/src/account-lib/mpc/tss/ecdsa/index.d.ts +4 -0
  65. package/dist/src/account-lib/mpc/tss/ecdsa/index.d.ts.map +1 -0
  66. package/dist/src/account-lib/mpc/tss/ecdsa/index.js +29 -0
  67. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +40 -0
  68. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -0
  69. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +3 -0
  70. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +29 -0
  71. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -0
  72. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +276 -0
  73. package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts +4 -0
  74. package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts.map +1 -0
  75. package/dist/src/account-lib/mpc/tss/eddsa/index.js +30 -0
  76. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +70 -0
  77. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -0
  78. package/dist/src/account-lib/mpc/tss/eddsa/types.js +3 -0
  79. package/dist/src/account-lib/mpc/tss/index.d.ts +6 -0
  80. package/dist/src/account-lib/mpc/tss/index.d.ts.map +1 -0
  81. package/dist/src/account-lib/mpc/tss/index.js +35 -0
  82. package/dist/src/account-lib/mpc/util.d.ts +8 -0
  83. package/dist/src/account-lib/mpc/util.d.ts.map +1 -0
  84. package/dist/src/account-lib/mpc/util.js +42 -0
  85. package/dist/src/account-lib/util/crypto.d.ts +106 -0
  86. package/dist/src/account-lib/util/crypto.d.ts.map +1 -0
  87. package/dist/src/account-lib/util/crypto.js +269 -0
  88. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +49 -0
  89. package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +1 -0
  90. package/dist/src/account-lib/util/ed25519KeyDeriver.js +87 -0
  91. package/dist/src/api/bip32path.d.ts +24 -0
  92. package/dist/src/api/bip32path.d.ts.map +1 -0
  93. package/dist/src/api/bip32path.js +45 -0
  94. package/dist/src/api/index.d.ts +3 -0
  95. package/dist/src/api/index.d.ts.map +1 -0
  96. package/dist/src/{v2 → api}/index.js +2 -2
  97. package/dist/src/api/types.d.ts +20 -0
  98. package/dist/src/api/types.d.ts.map +1 -0
  99. package/dist/src/api/types.js +3 -0
  100. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +230 -0
  101. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -0
  102. package/dist/src/bitgo/baseCoin/baseCoin.js +292 -0
  103. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +257 -0
  104. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -0
  105. package/dist/src/bitgo/baseCoin/iBaseCoin.js +3 -0
  106. package/dist/src/bitgo/baseCoin/index.d.ts +3 -0
  107. package/dist/src/bitgo/baseCoin/index.d.ts.map +1 -0
  108. package/dist/src/bitgo/baseCoin/index.js +15 -0
  109. package/dist/src/bitgo/bip32util.d.ts +17 -0
  110. package/dist/src/bitgo/bip32util.d.ts.map +1 -0
  111. package/dist/src/bitgo/bip32util.js +59 -0
  112. package/dist/src/bitgo/bitcoin.d.ts +16 -0
  113. package/dist/src/bitgo/bitcoin.d.ts.map +1 -0
  114. package/dist/src/bitgo/bitcoin.js +52 -0
  115. package/dist/src/bitgo/bitgoBase.d.ts +22 -0
  116. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -0
  117. package/dist/src/bitgo/bitgoBase.js +3 -0
  118. package/dist/src/bitgo/coinFactory.d.ts +31 -0
  119. package/dist/src/bitgo/coinFactory.d.ts.map +1 -0
  120. package/dist/src/bitgo/coinFactory.js +59 -0
  121. package/dist/src/bitgo/config.d.ts +8 -0
  122. package/dist/src/bitgo/config.d.ts.map +1 -0
  123. package/dist/src/bitgo/config.js +25 -0
  124. package/dist/src/bitgo/ecdh.d.ts +24 -0
  125. package/dist/src/bitgo/ecdh.d.ts.map +1 -0
  126. package/dist/src/bitgo/ecdh.js +80 -0
  127. package/dist/src/bitgo/enterprise/enterprise.d.ts +64 -0
  128. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -0
  129. package/dist/src/bitgo/enterprise/enterprise.js +120 -0
  130. package/dist/src/bitgo/enterprise/enterprises.d.ts +25 -0
  131. package/dist/src/bitgo/enterprise/enterprises.d.ts.map +1 -0
  132. package/dist/src/bitgo/enterprise/enterprises.js +70 -0
  133. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +15 -0
  134. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -0
  135. package/dist/src/bitgo/enterprise/iEnterprise.js +3 -0
  136. package/dist/src/bitgo/enterprise/iEnterprises.d.ts +10 -0
  137. package/dist/src/bitgo/enterprise/iEnterprises.d.ts.map +1 -0
  138. package/dist/src/bitgo/enterprise/iEnterprises.js +3 -0
  139. package/dist/src/bitgo/enterprise/index.d.ts +5 -0
  140. package/dist/src/bitgo/enterprise/index.d.ts.map +1 -0
  141. package/dist/src/bitgo/enterprise/index.js +17 -0
  142. package/dist/src/{v2 → bitgo}/environments.d.ts +0 -0
  143. package/dist/src/bitgo/environments.d.ts.map +1 -0
  144. package/dist/src/bitgo/environments.js +142 -0
  145. package/dist/src/bitgo/errors.d.ts +83 -0
  146. package/dist/src/bitgo/errors.d.ts.map +1 -0
  147. package/dist/src/bitgo/errors.js +163 -0
  148. package/dist/src/bitgo/index.d.ts +26 -0
  149. package/dist/src/bitgo/index.d.ts.map +1 -0
  150. package/dist/src/bitgo/index.js +51 -0
  151. package/dist/src/bitgo/internal/index.d.ts +3 -0
  152. package/dist/src/bitgo/internal/index.d.ts.map +1 -0
  153. package/dist/src/bitgo/internal/index.js +15 -0
  154. package/dist/src/bitgo/internal/internal.d.ts +19 -0
  155. package/dist/src/bitgo/internal/internal.d.ts.map +1 -0
  156. package/dist/src/bitgo/internal/internal.js +33 -0
  157. package/dist/src/bitgo/internal/keycard.d.ts +33 -0
  158. package/dist/src/bitgo/internal/keycard.d.ts.map +1 -0
  159. package/dist/src/bitgo/internal/keycard.js +304 -0
  160. package/dist/src/bitgo/keychain/iKeychains.d.ts +118 -0
  161. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -0
  162. package/dist/src/bitgo/keychain/iKeychains.js +10 -0
  163. package/dist/src/bitgo/keychain/index.d.ts +3 -0
  164. package/dist/src/bitgo/keychain/index.d.ts.map +1 -0
  165. package/dist/src/bitgo/keychain/index.js +15 -0
  166. package/dist/src/bitgo/keychain/keychains.d.ts +90 -0
  167. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -0
  168. package/dist/src/bitgo/keychain/keychains.js +280 -0
  169. package/dist/src/bitgo/market/iMarkets.d.ts +12 -0
  170. package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -0
  171. package/dist/src/bitgo/market/iMarkets.js +3 -0
  172. package/dist/src/bitgo/market/index.d.ts +3 -0
  173. package/dist/src/bitgo/market/index.d.ts.map +1 -0
  174. package/dist/src/bitgo/market/index.js +15 -0
  175. package/dist/src/bitgo/market/markets.d.ts +29 -0
  176. package/dist/src/bitgo/market/markets.d.ts.map +1 -0
  177. package/dist/src/bitgo/market/markets.js +70 -0
  178. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +73 -0
  179. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -0
  180. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +28 -0
  181. package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts +16 -0
  182. package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts.map +1 -0
  183. package/dist/src/bitgo/pendingApproval/iPendingApprovals.js +3 -0
  184. package/dist/src/bitgo/pendingApproval/index.d.ts +5 -0
  185. package/dist/src/bitgo/pendingApproval/index.d.ts.map +1 -0
  186. package/dist/src/bitgo/pendingApproval/index.js +17 -0
  187. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +99 -0
  188. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -0
  189. package/dist/src/bitgo/pendingApproval/pendingApproval.js +319 -0
  190. package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts +19 -0
  191. package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts.map +1 -0
  192. package/dist/src/bitgo/pendingApproval/pendingApprovals.js +76 -0
  193. package/dist/src/bitgo/recovery/index.d.ts +2 -0
  194. package/dist/src/bitgo/recovery/index.d.ts.map +1 -0
  195. package/dist/src/bitgo/recovery/index.js +14 -0
  196. package/dist/src/bitgo/recovery/initiate.d.ts +49 -0
  197. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -0
  198. package/dist/src/bitgo/recovery/initiate.js +119 -0
  199. package/dist/src/bitgo/trading/affirmation.d.ts +35 -0
  200. package/dist/src/bitgo/trading/affirmation.d.ts.map +1 -0
  201. package/dist/src/bitgo/trading/affirmation.js +53 -0
  202. package/dist/src/bitgo/trading/affirmations.d.ts +23 -0
  203. package/dist/src/bitgo/trading/affirmations.d.ts.map +1 -0
  204. package/dist/src/bitgo/trading/affirmations.js +45 -0
  205. package/dist/src/bitgo/trading/iAffirmation.d.ts +15 -0
  206. package/dist/src/bitgo/trading/iAffirmation.d.ts.map +1 -0
  207. package/dist/src/bitgo/trading/iAffirmation.js +13 -0
  208. package/dist/src/bitgo/trading/iAffirmations.d.ts +10 -0
  209. package/dist/src/bitgo/trading/iAffirmations.d.ts.map +1 -0
  210. package/dist/src/bitgo/trading/iAffirmations.js +3 -0
  211. package/dist/src/bitgo/trading/iSettlement.d.ts +25 -0
  212. package/dist/src/bitgo/trading/iSettlement.d.ts.map +1 -0
  213. package/dist/src/bitgo/trading/iSettlement.js +17 -0
  214. package/dist/src/bitgo/trading/iSettlements.d.ts +19 -0
  215. package/dist/src/bitgo/trading/iSettlements.d.ts.map +1 -0
  216. package/dist/src/bitgo/trading/iSettlements.js +3 -0
  217. package/dist/src/bitgo/trading/iTradingAccount.d.ts +41 -0
  218. package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -0
  219. package/dist/src/bitgo/trading/iTradingAccount.js +3 -0
  220. package/dist/src/bitgo/trading/iTradingPartner.d.ts +14 -0
  221. package/dist/src/bitgo/trading/iTradingPartner.d.ts.map +1 -0
  222. package/dist/src/bitgo/trading/iTradingPartner.js +17 -0
  223. package/dist/src/bitgo/trading/iTradingPartners.d.ts +15 -0
  224. package/dist/src/bitgo/trading/iTradingPartners.d.ts.map +1 -0
  225. package/dist/src/bitgo/trading/iTradingPartners.js +9 -0
  226. package/dist/src/bitgo/trading/index.d.ts +18 -0
  227. package/dist/src/bitgo/trading/index.d.ts.map +1 -0
  228. package/dist/src/bitgo/trading/index.js +30 -0
  229. package/dist/src/bitgo/trading/lock.d.ts +16 -0
  230. package/dist/src/bitgo/trading/lock.d.ts.map +1 -0
  231. package/dist/src/bitgo/trading/lock.js +12 -0
  232. package/dist/src/bitgo/trading/payload.d.ts +22 -0
  233. package/dist/src/bitgo/trading/payload.d.ts.map +1 -0
  234. package/dist/src/bitgo/trading/payload.js +3 -0
  235. package/dist/src/bitgo/trading/settlement.d.ts +16 -0
  236. package/dist/src/bitgo/trading/settlement.d.ts.map +1 -0
  237. package/dist/src/bitgo/trading/settlement.js +21 -0
  238. package/dist/src/bitgo/trading/settlements.d.ts +32 -0
  239. package/dist/src/bitgo/trading/settlements.d.ts.map +1 -0
  240. package/dist/src/bitgo/trading/settlements.js +61 -0
  241. package/dist/src/bitgo/trading/trade.d.ts +29 -0
  242. package/dist/src/bitgo/trading/trade.d.ts.map +1 -0
  243. package/dist/src/bitgo/trading/trade.js +11 -0
  244. package/dist/src/bitgo/trading/tradingAccount.d.ts +53 -0
  245. package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -0
  246. package/dist/src/bitgo/trading/tradingAccount.js +127 -0
  247. package/dist/src/bitgo/trading/tradingPartner.d.ts +26 -0
  248. package/dist/src/bitgo/trading/tradingPartner.d.ts.map +1 -0
  249. package/dist/src/bitgo/trading/tradingPartner.js +31 -0
  250. package/dist/src/bitgo/trading/tradingPartners.d.ts +24 -0
  251. package/dist/src/bitgo/trading/tradingPartners.d.ts.map +1 -0
  252. package/dist/src/bitgo/trading/tradingPartners.js +32 -0
  253. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +35 -0
  254. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -0
  255. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +95 -0
  256. package/dist/src/bitgo/tss/ecdsa/index.d.ts +4 -0
  257. package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -0
  258. package/dist/src/bitgo/tss/ecdsa/index.js +26 -0
  259. package/dist/src/bitgo/tss/ecdsa/types.d.ts +30 -0
  260. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -0
  261. package/dist/src/bitgo/tss/ecdsa/types.js +3 -0
  262. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +102 -0
  263. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -0
  264. package/dist/src/bitgo/tss/eddsa/eddsa.js +256 -0
  265. package/dist/src/bitgo/tss/eddsa/index.d.ts +6 -0
  266. package/dist/src/bitgo/tss/eddsa/index.d.ts.map +1 -0
  267. package/dist/src/bitgo/tss/eddsa/index.js +37 -0
  268. package/dist/src/bitgo/tss/eddsa/types.d.ts +23 -0
  269. package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -0
  270. package/dist/src/bitgo/tss/eddsa/types.js +3 -0
  271. package/dist/src/bitgo/tss/index.d.ts +6 -0
  272. package/dist/src/bitgo/tss/index.d.ts.map +1 -0
  273. package/dist/src/bitgo/tss/index.js +42 -0
  274. package/dist/src/bitgo/tss/types.d.ts +6 -0
  275. package/dist/src/bitgo/tss/types.d.ts.map +1 -0
  276. package/dist/src/bitgo/tss/types.js +10 -0
  277. package/dist/src/bitgo/types.d.ts +4 -0
  278. package/dist/src/bitgo/types.d.ts.map +1 -0
  279. package/dist/src/bitgo/types.js +3 -0
  280. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +6 -0
  281. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -0
  282. package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +30 -0
  283. package/dist/src/bitgo/utils/blsUtils.d.ts +51 -0
  284. package/dist/src/bitgo/utils/blsUtils.d.ts.map +1 -0
  285. package/dist/src/bitgo/utils/blsUtils.js +166 -0
  286. package/dist/src/bitgo/utils/iBlsUtils.d.ts +14 -0
  287. package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +1 -0
  288. package/dist/src/bitgo/utils/iBlsUtils.js +3 -0
  289. package/dist/src/bitgo/utils/index.d.ts +12 -0
  290. package/dist/src/bitgo/utils/index.d.ts.map +1 -0
  291. package/dist/src/bitgo/utils/index.js +37 -0
  292. package/dist/src/bitgo/utils/mpcUtils.d.ts +31 -0
  293. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -0
  294. package/dist/src/bitgo/utils/mpcUtils.js +55 -0
  295. package/dist/src/bitgo/utils/opengpgUtils.d.ts +51 -0
  296. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -0
  297. package/dist/src/bitgo/utils/opengpgUtils.js +136 -0
  298. package/dist/src/bitgo/utils/promise-utils.d.ts +5 -0
  299. package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -0
  300. package/dist/src/bitgo/utils/promise-utils.js +12 -0
  301. package/dist/src/bitgo/utils/triple.d.ts +3 -0
  302. package/dist/src/bitgo/utils/triple.d.ts.map +1 -0
  303. package/dist/src/bitgo/utils/triple.js +8 -0
  304. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +117 -0
  305. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -0
  306. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +351 -0
  307. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +5 -0
  308. package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -0
  309. package/dist/src/bitgo/utils/tss/eddsa/index.js +29 -0
  310. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +72 -0
  311. package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -0
  312. package/dist/src/bitgo/utils/tss/eddsa/types.js +10 -0
  313. package/dist/src/bitgo/utils/tss/index.d.ts +4 -0
  314. package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -0
  315. package/dist/src/bitgo/utils/tss/index.js +29 -0
  316. package/dist/src/bitgo/utils/util.d.ts +77 -0
  317. package/dist/src/bitgo/utils/util.d.ts.map +1 -0
  318. package/dist/src/bitgo/utils/util.js +198 -0
  319. package/dist/src/bitgo/wallet/iWallet.d.ts +510 -0
  320. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -0
  321. package/dist/src/bitgo/wallet/iWallet.js +3 -0
  322. package/dist/src/bitgo/wallet/iWallets.d.ts +105 -0
  323. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -0
  324. package/dist/src/bitgo/wallet/iWallets.js +3 -0
  325. package/dist/src/bitgo/wallet/index.d.ts +5 -0
  326. package/dist/src/bitgo/wallet/index.d.ts.map +1 -0
  327. package/dist/src/bitgo/wallet/index.js +17 -0
  328. package/dist/src/bitgo/wallet/wallet.d.ts +650 -0
  329. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -0
  330. package/dist/src/bitgo/wallet/wallet.js +2039 -0
  331. package/dist/src/bitgo/wallet/wallets.d.ts +134 -0
  332. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -0
  333. package/dist/src/bitgo/wallet/wallets.js +605 -0
  334. package/dist/src/bitgo/webhook/iWebhooks.d.ts +26 -0
  335. package/dist/src/bitgo/webhook/iWebhooks.d.ts.map +1 -0
  336. package/dist/src/bitgo/webhook/iWebhooks.js +3 -0
  337. package/dist/src/bitgo/webhook/index.d.ts +3 -0
  338. package/dist/src/bitgo/webhook/index.d.ts.map +1 -0
  339. package/dist/src/bitgo/webhook/index.js +15 -0
  340. package/dist/src/bitgo/webhook/webhooks.d.ts +43 -0
  341. package/dist/src/bitgo/webhook/webhooks.d.ts.map +1 -0
  342. package/dist/src/bitgo/webhook/webhooks.js +102 -0
  343. package/dist/src/{bigojsError.d.ts → bitgojsError.d.ts} +1 -1
  344. package/dist/src/bitgojsError.d.ts.map +1 -0
  345. package/dist/src/bitgojsError.js +11 -0
  346. package/dist/src/common.d.ts +1 -1
  347. package/dist/src/common.d.ts.map +1 -1
  348. package/dist/src/common.js +3 -3
  349. package/dist/src/index.d.ts +4 -2
  350. package/dist/src/index.d.ts.map +1 -1
  351. package/dist/src/index.js +6 -5
  352. package/dist/tsconfig.tsbuildinfo +3501 -150
  353. package/package.json +28 -4
  354. package/CHANGELOG.md +0 -8
  355. package/dist/src/bigojsError.d.ts.map +0 -1
  356. package/dist/src/bigojsError.js +0 -11
  357. package/dist/src/v2/environments.d.ts.map +0 -1
  358. package/dist/src/v2/environments.js +0 -142
  359. package/dist/src/v2/index.d.ts +0 -3
  360. package/dist/src/v2/index.d.ts.map +0 -1
  361. package/dist/src/v2/types.d.ts +0 -2
  362. package/dist/src/v2/types.d.ts.map +0 -1
  363. package/dist/src/v2/types.js +0 -3
@@ -0,0 +1,75 @@
1
+ /// <reference types="node" />
2
+ import { BaseKeyPair } from './baseKeyPair';
3
+ import { AddressFormat } from './enum';
4
+ import { BlsKeys, KeyPairOptions } from './iface';
5
+ /**
6
+ * Base class for BLS keypairs.
7
+ */
8
+ export declare abstract class BlsKeyPair implements BaseKeyPair {
9
+ protected keyPair: BlsKeys;
10
+ /**
11
+ * Public constructor. By default, creates a key pair with a random polynomial.
12
+ *
13
+ * @param {KeyPairOptions} source Either a dkg options, a public and secret shares, or a private key
14
+ */
15
+ protected constructor(source?: KeyPairOptions);
16
+ createShares(threshold: number, participants: number): void;
17
+ /**
18
+ * Note - this is not possible using BLS. BLS does not support prvkey derived key gen
19
+ *
20
+ * @param {string[]} prv a hexadecimal private key
21
+ */
22
+ recordKeysFromPrivateKey(prv: string): void;
23
+ /**
24
+ * Note - this is not possible using BLS. BLS does not support pubkey derived key gen
25
+ *
26
+ * @param {string} pub - An extended, compressed, or uncompressed public key
27
+ */
28
+ recordKeysFromPublicKey(pub: string): void;
29
+ getAddress(format?: AddressFormat): string;
30
+ getKeys(): any;
31
+ /**
32
+ * Signs bytes using the key pair
33
+ *
34
+ * @param msg The message bytes to sign
35
+ * @return signature of the bytes using this keypair
36
+ */
37
+ sign(msg: Buffer): Promise<string>;
38
+ /**
39
+ * Aggregates the secret shares of different key pairs into one private key
40
+ *
41
+ * @param prvKeys an array of secret shares
42
+ * @returns a private key
43
+ */
44
+ static aggregatePrvkeys(prvKeys: string[]): string;
45
+ /**
46
+ * Aggregates the public shares of different key pairs into a common public key
47
+ *
48
+ * @param pubKeys an array of public shares
49
+ * @returns a common public key
50
+ */
51
+ static aggregatePubkeys(pubKeys: string[]): string;
52
+ /**
53
+ * Aggregates the message signed by different key pairs into one sign
54
+ *
55
+ * @param signatures the message signed by different key pairs. The signer id is relevant to ensure a valid signature.
56
+ * @example <caption> E.g., the message is signed by user and wallet, then signatures would be:</caption>
57
+ * {
58
+ * 1: BigInt(messageSignedWithUserPrv),
59
+ * 3: BigInt(messageSignedWithWalletPrv),
60
+ * }
61
+ * @returns a signature combining all the provided signed messages
62
+ */
63
+ static aggregateSignatures(signatures: {
64
+ [n: number]: bigint;
65
+ }): string;
66
+ /**
67
+ * Verifies the signature for this key pair
68
+ * @param pub The public key with which to verify the signature
69
+ * @param msg The message to verify the signature with
70
+ * @param signature the signature to verify
71
+ * @return true if the signature is valid, else false
72
+ */
73
+ static verifySignature(pub: string, msg: Buffer, signature: string): Promise<boolean>;
74
+ }
75
+ //# sourceMappingURL=blsKeyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blsKeyPair.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/baseCoin/blsKeyPair.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAiC,MAAM,SAAS,CAAC;AAMjF;;GAEG;AACH,8BAAsB,UAAW,YAAW,WAAW;IACrD,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,SAAS,aAAa,MAAM,CAAC,EAAE,cAAc;IAoB7C,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAa3D;;;;OAIG;IACH,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;OAIG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI1C,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM;IAI1C,OAAO,IAAI,GAAG;IAId;;;;;OAKG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQxC;;;;;OAKG;WACW,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAWzD;;;;;OAKG;WACW,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAUzD;;;;;;;;;;OAUG;WACW,mBAAmB,CAAC,UAAU,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM;IAS9E;;;;;;OAMG;WACiB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAInG"}
@@ -0,0 +1,179 @@
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.BlsKeyPair = void 0;
26
+ const assert_1 = __importDefault(require("assert"));
27
+ const BLS = __importStar(require("@bitgo/bls-dkg"));
28
+ const errors_1 = require("./errors");
29
+ const iface_1 = require("./iface");
30
+ const crypto_1 = require("../util/crypto");
31
+ const DEFAULT_SIGNATURE_THRESHOLD = 2;
32
+ const DEFAULT_SIGNATURE_PARTICIPANTS = 3;
33
+ /**
34
+ * Base class for BLS keypairs.
35
+ */
36
+ class BlsKeyPair {
37
+ /**
38
+ * Public constructor. By default, creates a key pair with a random polynomial.
39
+ *
40
+ * @param {KeyPairOptions} source Either a dkg options, a public and secret shares, or a private key
41
+ */
42
+ constructor(source) {
43
+ if (!source) {
44
+ this.createShares(DEFAULT_SIGNATURE_THRESHOLD, DEFAULT_SIGNATURE_PARTICIPANTS);
45
+ }
46
+ else if (iface_1.isDkg(source)) {
47
+ this.createShares(source.threshold, source.participants);
48
+ }
49
+ else if (iface_1.isBlsKey(source)) {
50
+ assert_1.default(source.secretShares.every(crypto_1.isValidBLSPrivateKey), 'Invalid private keys');
51
+ assert_1.default(crypto_1.isValidBLSPublicKey(source.publicShare), 'Invalid public key');
52
+ this.keyPair = source;
53
+ }
54
+ else if (iface_1.isPrivateKey(source)) {
55
+ this.keyPair = {
56
+ prv: source.prv,
57
+ publicShare: '',
58
+ secretShares: [],
59
+ };
60
+ }
61
+ else {
62
+ throw new Error('Invalid key pair options');
63
+ }
64
+ }
65
+ createShares(threshold, participants) {
66
+ if (participants < threshold) {
67
+ throw new Error('Participants should be greater than threshold');
68
+ }
69
+ const polynomial = BLS.generatePolynomial(threshold);
70
+ const keySecretShares = BLS.secretShares(polynomial, participants);
71
+ const keyPublicShare = BLS.publicShare(polynomial);
72
+ this.keyPair = {
73
+ secretShares: keySecretShares.map((secretShare) => crypto_1.bigIntToHex(secretShare)),
74
+ publicShare: crypto_1.bigIntToHex(keyPublicShare),
75
+ };
76
+ }
77
+ /**
78
+ * Note - this is not possible using BLS. BLS does not support prvkey derived key gen
79
+ *
80
+ * @param {string[]} prv a hexadecimal private key
81
+ */
82
+ recordKeysFromPrivateKey(prv) {
83
+ throw new errors_1.NotImplementedError('Private key derivation is not supported in bls');
84
+ }
85
+ /**
86
+ * Note - this is not possible using BLS. BLS does not support pubkey derived key gen
87
+ *
88
+ * @param {string} pub - An extended, compressed, or uncompressed public key
89
+ */
90
+ recordKeysFromPublicKey(pub) {
91
+ throw new errors_1.NotImplementedError('Public key derivation is not supported in bls');
92
+ }
93
+ getAddress(format) {
94
+ throw new errors_1.NotImplementedError('getAddress not implemented');
95
+ }
96
+ getKeys() {
97
+ throw new errors_1.NotImplementedError('getKeys not implemented');
98
+ }
99
+ /**
100
+ * Signs bytes using the key pair
101
+ *
102
+ * @param msg The message bytes to sign
103
+ * @return signature of the bytes using this keypair
104
+ */
105
+ async sign(msg) {
106
+ var _a;
107
+ if ((_a = this.keyPair) === null || _a === void 0 ? void 0 : _a.prv) {
108
+ const signedMessage = await BLS.sign(msg, BigInt(this.keyPair.prv));
109
+ return crypto_1.bigIntToHex(signedMessage);
110
+ }
111
+ throw new Error('Missing private key');
112
+ }
113
+ /**
114
+ * Aggregates the secret shares of different key pairs into one private key
115
+ *
116
+ * @param prvKeys an array of secret shares
117
+ * @returns a private key
118
+ */
119
+ static aggregatePrvkeys(prvKeys) {
120
+ assert_1.default(prvKeys.every(crypto_1.isValidBLSPrivateKey), 'Invalid private keys');
121
+ try {
122
+ const secretShares = prvKeys.map((secretShare) => BigInt(secretShare));
123
+ const prv = BLS.mergeSecretShares(secretShares);
124
+ return crypto_1.bigIntToHex(prv);
125
+ }
126
+ catch (e) {
127
+ throw new Error('Error aggregating prvkeys: ' + e);
128
+ }
129
+ }
130
+ /**
131
+ * Aggregates the public shares of different key pairs into a common public key
132
+ *
133
+ * @param pubKeys an array of public shares
134
+ * @returns a common public key
135
+ */
136
+ static aggregatePubkeys(pubKeys) {
137
+ try {
138
+ const secretShares = pubKeys.map((secretShare) => BigInt(secretShare));
139
+ const commonPubKey = BLS.mergePublicShares(secretShares);
140
+ return crypto_1.bigIntToHex(commonPubKey);
141
+ }
142
+ catch (e) {
143
+ throw new Error('Error aggregating pubkeys: ' + e);
144
+ }
145
+ }
146
+ /**
147
+ * Aggregates the message signed by different key pairs into one sign
148
+ *
149
+ * @param signatures the message signed by different key pairs. The signer id is relevant to ensure a valid signature.
150
+ * @example <caption> E.g., the message is signed by user and wallet, then signatures would be:</caption>
151
+ * {
152
+ * 1: BigInt(messageSignedWithUserPrv),
153
+ * 3: BigInt(messageSignedWithWalletPrv),
154
+ * }
155
+ * @returns a signature combining all the provided signed messages
156
+ */
157
+ static aggregateSignatures(signatures) {
158
+ try {
159
+ const signature = BLS.mergeSignatures(signatures);
160
+ return crypto_1.bigIntToHex(signature);
161
+ }
162
+ catch (e) {
163
+ throw new Error('Error aggregating signatures: ' + e);
164
+ }
165
+ }
166
+ /**
167
+ * Verifies the signature for this key pair
168
+ * @param pub The public key with which to verify the signature
169
+ * @param msg The message to verify the signature with
170
+ * @param signature the signature to verify
171
+ * @return true if the signature is valid, else false
172
+ */
173
+ static async verifySignature(pub, msg, signature) {
174
+ assert_1.default(crypto_1.isValidBLSPublicKey(pub), `Invalid public key: ${pub}`);
175
+ return await BLS.verify(BigInt(signature), msg, BigInt(pub));
176
+ }
177
+ }
178
+ exports.BlsKeyPair = BlsKeyPair;
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxzS2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9iYXNlQ29pbi9ibHNLZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQXNDO0FBR3RDLHFDQUErQztBQUMvQyxtQ0FBaUY7QUFDakYsMkNBQXdGO0FBRXhGLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxDQUFDO0FBRXpDOztHQUVHO0FBQ0gsTUFBc0IsVUFBVTtJQUc5Qjs7OztPQUlHO0lBQ0gsWUFBc0IsTUFBdUI7UUFDM0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsMkJBQTJCLEVBQUUsOEJBQThCLENBQUMsQ0FBQztTQUNoRjthQUFNLElBQUksYUFBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDMUQ7YUFBTSxJQUFJLGdCQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDM0IsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyw2QkFBb0IsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFDaEYsZ0JBQU0sQ0FBQyw0QkFBbUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztTQUN2QjthQUFNLElBQUksb0JBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHO2dCQUNiLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDZixXQUFXLEVBQUUsRUFBRTtnQkFD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QUN6RCxPQUFPLG9CQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDbEM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFtQztRQUNuRSxJQUFJO1lBQ0YsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRCxPQUFPLG9CQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0I7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxTQUFpQjtRQUM3RSxnQkFBTSxDQUFDLDRCQUFtQixDQUFDLEdBQUcsQ0FBQyxFQUFFLHVCQUF1QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGO0FBakpELGdDQWlKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIEJMUyBmcm9tICdAYml0Z28vYmxzLWRrZyc7XG5pbXBvcnQgeyBCYXNlS2V5UGFpciB9IGZyb20gJy4vYmFzZUtleVBhaXInO1xuaW1wb3J0IHsgQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4vZW51bSc7XG5pbXBvcnQgeyBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgQmxzS2V5cywgS2V5UGFpck9wdGlvbnMsIGlzRGtnLCBpc0Jsc0tleSwgaXNQcml2YXRlS2V5IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBpc1ZhbGlkQkxTUHVibGljS2V5LCBpc1ZhbGlkQkxTUHJpdmF0ZUtleSwgYmlnSW50VG9IZXggfSBmcm9tICcuLi91dGlsL2NyeXB0byc7XG5cbmNvbnN0IERFRkFVTFRfU0lHTkFUVVJFX1RIUkVTSE9MRCA9IDI7XG5jb25zdCBERUZBVUxUX1NJR05BVFVSRV9QQVJUSUNJUEFOVFMgPSAzO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIEJMUyBrZXlwYWlycy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJsc0tleVBhaXIgaW1wbGVtZW50cyBCYXNlS2V5UGFpciB7XG4gIHByb3RlY3RlZCBrZXlQYWlyOiBCbHNLZXlzO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIHBvbHlub21pYWwuXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5UGFpck9wdGlvbnN9IHNvdXJjZSBFaXRoZXIgYSBka2cgb3B0aW9ucywgYSBwdWJsaWMgYW5kIHNlY3JldCBzaGFyZXMsIG9yIGEgcHJpdmF0ZSBrZXlcbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIGlmICghc291cmNlKSB7XG4gICAgICB0aGlzLmNyZWF0ZVNoYXJlcyhERUZBVUxUX1NJR05BVFVSRV9USFJFU0hPTEQsIERFRkFVTFRfU0lHTkFUVVJFX1BBUlRJQ0lQQU5UUyk7XG4gICAgfSBlbHNlIGlmIChpc0RrZyhzb3VyY2UpKSB7XG4gICAgICB0aGlzLmNyZWF0ZVNoYXJlcyhzb3VyY2UudGhyZXNob2xkLCBzb3VyY2UucGFydGljaXBhbnRzKTtcbiAgICB9IGVsc2UgaWYgKGlzQmxzS2V5KHNvdXJjZSkpIHtcbiAgICAgIGFzc2VydChzb3VyY2Uuc2VjcmV0U2hhcmVzLmV2ZXJ5KGlzVmFsaWRCTFNQcml2YXRlS2V5KSwgJ0ludmFsaWQgcHJpdmF0ZSBrZXlzJyk7XG4gICAgICBhc3NlcnQoaXNWYWxpZEJMU1B1YmxpY0tleShzb3VyY2UucHVibGljU2hhcmUpLCAnSW52YWxpZCBwdWJsaWMga2V5Jyk7XG4gICAgICB0aGlzLmtleVBhaXIgPSBzb3VyY2U7XG4gICAgfSBlbHNlIGlmIChpc1ByaXZhdGVLZXkoc291cmNlKSkge1xuICAgICAgdGhpcy5rZXlQYWlyID0ge1xuICAgICAgICBwcnY6IHNvdXJjZS5wcnYsXG4gICAgICAgIHB1YmxpY1NoYXJlOiAnJyxcbiAgICAgICAgc2VjcmV0U2hhcmVzOiBbXSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJyk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlU2hhcmVzKHRocmVzaG9sZDogbnVtYmVyLCBwYXJ0aWNpcGFudHM6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChwYXJ0aWNpcGFudHMgPCB0aHJlc2hvbGQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGFydGljaXBhbnRzIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhyZXNob2xkJyk7XG4gICAgfVxuICAgIGNvbnN0IHBvbHlub21pYWwgPSBCTFMuZ2VuZXJhdGVQb2x5bm9taWFsKHRocmVzaG9sZCk7XG4gICAgY29uc3Qga2V5U2VjcmV0U2hhcmVzID0gQkxTLnNlY3JldFNoYXJlcyhwb2x5bm9taWFsLCBwYXJ0aWNpcGFudHMpO1xuICAgIGNvbnN0IGtleVB1YmxpY1NoYXJlID0gQkxTLnB1YmxpY1NoYXJlKHBvbHlub21pYWwpO1xuICAgIHRoaXMua2V5UGFpciA9IHtcbiAgICAgIHNlY3JldFNoYXJlczoga2V5U2VjcmV0U2hhcmVzLm1hcCgoc2VjcmV0U2hhcmUpID0+IGJpZ0ludFRvSGV4KHNlY3JldFNoYXJlKSksXG4gICAgICBwdWJsaWNTaGFyZTogYmlnSW50VG9IZXgoa2V5UHVibGljU2hhcmUpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTm90ZSAtIHRoaXMgaXMgbm90IHBvc3NpYmxlIHVzaW5nIEJMUy4gQkxTIGRvZXMgbm90IHN1cHBvcnQgcHJ2a2V5IGRlcml2ZWQga2V5IGdlblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwcnYgYSBoZXhhZGVjaW1hbCBwcml2YXRlIGtleVxuICAgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHBydjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ1ByaXZhdGUga2V5IGRlcml2YXRpb24gaXMgbm90IHN1cHBvcnRlZCBpbiBibHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RlIC0gdGhpcyBpcyBub3QgcG9zc2libGUgdXNpbmcgQkxTLiBCTFMgZG9lcyBub3Qgc3VwcG9ydCBwdWJrZXkgZGVyaXZlZCBrZXkgZ2VuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwdWIgLSBBbiBleHRlbmRlZCwgY29tcHJlc3NlZCwgb3IgdW5jb21wcmVzc2VkIHB1YmxpYyBrZXlcbiAgICovXG4gIHJlY29yZEtleXNGcm9tUHVibGljS2V5KHB1Yjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ1B1YmxpYyBrZXkgZGVyaXZhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIGJscycpO1xuICB9XG5cbiAgZ2V0QWRkcmVzcyhmb3JtYXQ/OiBBZGRyZXNzRm9ybWF0KTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignZ2V0QWRkcmVzcyBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGdldEtleXMoKTogYW55IHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignZ2V0S2V5cyBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBieXRlcyB1c2luZyB0aGUga2V5IHBhaXJcbiAgICpcbiAgICogQHBhcmFtIG1zZyBUaGUgbWVzc2FnZSBieXRlcyB0byBzaWduXG4gICAqIEByZXR1cm4gc2lnbmF0dXJlIG9mIHRoZSBieXRlcyB1c2luZyB0aGlzIGtleXBhaXJcbiAgICovXG4gIGFzeW5jIHNpZ24obXNnOiBCdWZmZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLmtleVBhaXI/LnBydikge1xuICAgICAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IGF3YWl0IEJMUy5zaWduKG1zZywgQmlnSW50KHRoaXMua2V5UGFpci5wcnYpKTtcbiAgICAgIHJldHVybiBiaWdJbnRUb0hleChzaWduZWRNZXNzYWdlKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gIH1cblxuICAvKipcbiAgICogQWdncmVnYXRlcyB0aGUgc2VjcmV0IHNoYXJlcyBvZiBkaWZmZXJlbnQga2V5IHBhaXJzIGludG8gb25lIHByaXZhdGUga2V5XG4gICAqXG4gICAqIEBwYXJhbSBwcnZLZXlzIGFuIGFycmF5IG9mIHNlY3JldCBzaGFyZXNcbiAgICogQHJldHVybnMgYSBwcml2YXRlIGtleVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhZ2dyZWdhdGVQcnZrZXlzKHBydktleXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICBhc3NlcnQocHJ2S2V5cy5ldmVyeShpc1ZhbGlkQkxTUHJpdmF0ZUtleSksICdJbnZhbGlkIHByaXZhdGUga2V5cycpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWNyZXRTaGFyZXMgPSBwcnZLZXlzLm1hcCgoc2VjcmV0U2hhcmUpID0+IEJpZ0ludChzZWNyZXRTaGFyZSkpO1xuICAgICAgY29uc3QgcHJ2ID0gQkxTLm1lcmdlU2VjcmV0U2hhcmVzKHNlY3JldFNoYXJlcyk7XG4gICAgICByZXR1cm4gYmlnSW50VG9IZXgocHJ2KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGFnZ3JlZ2F0aW5nIHBydmtleXM6ICcgKyBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWdncmVnYXRlcyB0aGUgcHVibGljIHNoYXJlcyBvZiBkaWZmZXJlbnQga2V5IHBhaXJzIGludG8gYSBjb21tb24gcHVibGljIGtleVxuICAgKlxuICAgKiBAcGFyYW0gcHViS2V5cyBhbiBhcnJheSBvZiBwdWJsaWMgc2hhcmVzXG4gICAqIEByZXR1cm5zIGEgY29tbW9uIHB1YmxpYyBrZXlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYWdncmVnYXRlUHVia2V5cyhwdWJLZXlzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlY3JldFNoYXJlcyA9IHB1YktleXMubWFwKChzZWNyZXRTaGFyZSkgPT4gQmlnSW50KHNlY3JldFNoYXJlKSk7XG4gICAgICBjb25zdCBjb21tb25QdWJLZXkgPSBCTFMubWVyZ2VQdWJsaWNTaGFyZXMoc2VjcmV0U2hhcmVzKTtcbiAgICAgIHJldHVybiBiaWdJbnRUb0hleChjb21tb25QdWJLZXkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgYWdncmVnYXRpbmcgcHVia2V5czogJyArIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZ2dyZWdhdGVzIHRoZSBtZXNzYWdlIHNpZ25lZCBieSBkaWZmZXJlbnQga2V5IHBhaXJzIGludG8gb25lIHNpZ25cbiAgICpcbiAgICogQHBhcmFtIHNpZ25hdHVyZXMgdGhlIG1lc3NhZ2Ugc2lnbmVkIGJ5IGRpZmZlcmVudCBrZXkgcGFpcnMuIFRoZSBzaWduZXIgaWQgaXMgcmVsZXZhbnQgdG8gZW5zdXJlIGEgdmFsaWQgc2lnbmF0dXJlLlxuICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj4gRS5nLiwgdGhlIG1lc3NhZ2UgaXMgc2lnbmVkIGJ5IHVzZXIgYW5kIHdhbGxldCwgdGhlbiBzaWduYXR1cmVzIHdvdWxkIGJlOjwvY2FwdGlvbj5cbiAgICoge1xuICAgKiAgIDE6IEJpZ0ludChtZXNzYWdlU2lnbmVkV2l0aFVzZXJQcnYpLFxuICAgKiAgIDM6IEJpZ0ludChtZXNzYWdlU2lnbmVkV2l0aFdhbGxldFBydiksXG4gICAqIH1cbiAgICogQHJldHVybnMgYSBzaWduYXR1cmUgY29tYmluaW5nIGFsbCB0aGUgcHJvdmlkZWQgc2lnbmVkIG1lc3NhZ2VzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFnZ3JlZ2F0ZVNpZ25hdHVyZXMoc2lnbmF0dXJlczogeyBbbjogbnVtYmVyXTogYmlnaW50IH0pOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaWduYXR1cmUgPSBCTFMubWVyZ2VTaWduYXR1cmVzKHNpZ25hdHVyZXMpO1xuICAgICAgcmV0dXJuIGJpZ0ludFRvSGV4KHNpZ25hdHVyZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBhZ2dyZWdhdGluZyBzaWduYXR1cmVzOiAnICsgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoZSBzaWduYXR1cmUgZm9yIHRoaXMga2V5IHBhaXJcbiAgICogQHBhcmFtIHB1YiBUaGUgcHVibGljIGtleSB3aXRoIHdoaWNoIHRvIHZlcmlmeSB0aGUgc2lnbmF0dXJlXG4gICAqIEBwYXJhbSBtc2cgVGhlIG1lc3NhZ2UgdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmUgd2l0aFxuICAgKiBAcGFyYW0gc2lnbmF0dXJlIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc2lnbmF0dXJlIGlzIHZhbGlkLCBlbHNlIGZhbHNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIHZlcmlmeVNpZ25hdHVyZShwdWI6IHN0cmluZywgbXNnOiBCdWZmZXIsIHNpZ25hdHVyZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgYXNzZXJ0KGlzVmFsaWRCTFNQdWJsaWNLZXkocHViKSwgYEludmFsaWQgcHVibGljIGtleTogJHtwdWJ9YCk7XG4gICAgcmV0dXJuIGF3YWl0IEJMUy52ZXJpZnkoQmlnSW50KHNpZ25hdHVyZSksIG1zZywgQmlnSW50KHB1YikpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { BaseKeyPair } from './baseKeyPair';
2
+ import { AddressFormat } from './enum';
3
+ import { DefaultKeys, KeyPairOptions } from './iface';
4
+ export declare abstract class Ed25519KeyPair implements BaseKeyPair {
5
+ protected keyPair: DefaultKeys;
6
+ protected source?: KeyPairOptions;
7
+ /**
8
+ * Public constructor. By default, creates a key pair with a random master seed.
9
+ *
10
+ * @param {KeyPairOptions} source Either a master seed, a private key, or a public key
11
+ */
12
+ protected constructor(source?: KeyPairOptions);
13
+ private getKeyPair;
14
+ private setKeyPair;
15
+ /** @inheritdoc */
16
+ recordKeysFromPrivateKey(prv: string): void;
17
+ /** @inheritdoc */
18
+ recordKeysFromPublicKey(pub: string): void;
19
+ abstract recordKeysFromPrivateKeyInProtocolFormat(prv: string): DefaultKeys;
20
+ abstract recordKeysFromPublicKeyInProtocolFormat(pub: string): DefaultKeys;
21
+ /** @inheritdoc */
22
+ abstract getAddress(format?: AddressFormat): string;
23
+ /** @inheritdoc */
24
+ abstract getKeys(): any;
25
+ /**
26
+ * Generates a signature for an arbitrary string with the current private key using the ed25519 public-key signature
27
+ * system.
28
+ *
29
+ * @param {string} message to produce a signature for
30
+ * @returns {Uint8Array} The signature produced for the message
31
+ * @throws if there is no private key
32
+ */
33
+ signMessage(message: string): Uint8Array;
34
+ /**
35
+ * Verifies a message signature using the current public key.
36
+ *
37
+ * @param {string} message signed
38
+ * @param {Uint8Array} signature to verify
39
+ * @returns {boolean} True if the message was signed with the current key pair
40
+ */
41
+ verifySignature(message: Uint8Array | string, signature: Uint8Array): boolean;
42
+ /**
43
+ * Derives a hardened child key pair using this key pair's secret key
44
+ * as the seed.
45
+ *
46
+ * @param path derivation path
47
+ */
48
+ deriveHardened(path: string): DefaultKeys;
49
+ }
50
+ //# sourceMappingURL=ed25519KeyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519KeyPair.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/baseCoin/ed25519KeyPair.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAqC,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzF,8BAAsB,cAAe,YAAW,WAAW;IACzD,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAElC;;;;OAIG;IACH,SAAS,aAAa,MAAM,CAAC,EAAE,cAAc;IAkB7C,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,UAAU;IAIlB,kBAAkB;IAClB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAc3C,kBAAkB;IAClB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ1C,QAAQ,CAAC,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAE3E,QAAQ,CAAC,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAE1E,kBAAkB;IAClB,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM;IAEnD,kBAAkB;IAClB,QAAQ,CAAC,OAAO,IAAI,GAAG;IAEvB;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IASxC;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO;IAc7E;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;CAU1C"}
@@ -0,0 +1,145 @@
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.Ed25519KeyPair = void 0;
23
+ const nacl = __importStar(require("tweetnacl"));
24
+ const crypto_1 = require("../util/crypto");
25
+ const ed25519KeyDeriver_1 = require("../util/ed25519KeyDeriver");
26
+ const iface_1 = require("./iface");
27
+ const DEFAULT_SEED_SIZE_BYTES = 32;
28
+ class Ed25519KeyPair {
29
+ /**
30
+ * Public constructor. By default, creates a key pair with a random master seed.
31
+ *
32
+ * @param {KeyPairOptions} source Either a master seed, a private key, or a public key
33
+ */
34
+ constructor(source) {
35
+ let naclKeyPair;
36
+ if (!source) {
37
+ const seed = nacl.randomBytes(DEFAULT_SEED_SIZE_BYTES);
38
+ naclKeyPair = nacl.sign.keyPair.fromSeed(seed);
39
+ this.setKeyPair(naclKeyPair);
40
+ }
41
+ else if (iface_1.isSeed(source)) {
42
+ naclKeyPair = nacl.sign.keyPair.fromSeed(source.seed);
43
+ this.setKeyPair(naclKeyPair);
44
+ }
45
+ else if (iface_1.isPrivateKey(source)) {
46
+ this.recordKeysFromPrivateKey(source.prv);
47
+ }
48
+ else if (iface_1.isPublicKey(source)) {
49
+ this.recordKeysFromPublicKey(source.pub);
50
+ }
51
+ else {
52
+ throw new Error('Invalid key pair options');
53
+ }
54
+ }
55
+ getKeyPair(naclKeyPair) {
56
+ return {
57
+ prv: crypto_1.toHex(naclKeyPair.secretKey.slice(0, 32)),
58
+ pub: crypto_1.toHex(naclKeyPair.publicKey),
59
+ };
60
+ }
61
+ setKeyPair(naclKeyPair) {
62
+ this.keyPair = this.getKeyPair(naclKeyPair);
63
+ }
64
+ /** @inheritdoc */
65
+ recordKeysFromPrivateKey(prv) {
66
+ if (crypto_1.isValidEd25519Seed(prv)) {
67
+ const decodedPrv = crypto_1.toUint8Array(prv);
68
+ const naclKeyPair = nacl.sign.keyPair.fromSeed(decodedPrv);
69
+ this.setKeyPair(naclKeyPair);
70
+ }
71
+ else if (crypto_1.isValidEd25519SecretKey(prv)) {
72
+ const decodedPrv = crypto_1.toUint8Array(prv);
73
+ const naclKeyPair = nacl.sign.keyPair.fromSecretKey(decodedPrv);
74
+ this.setKeyPair(naclKeyPair);
75
+ }
76
+ else {
77
+ this.keyPair = this.recordKeysFromPrivateKeyInProtocolFormat(prv);
78
+ }
79
+ }
80
+ /** @inheritdoc */
81
+ recordKeysFromPublicKey(pub) {
82
+ if (crypto_1.isValidEd25519PublicKey(pub)) {
83
+ this.keyPair = { pub };
84
+ }
85
+ else {
86
+ this.keyPair = this.recordKeysFromPublicKeyInProtocolFormat(pub);
87
+ }
88
+ }
89
+ /**
90
+ * Generates a signature for an arbitrary string with the current private key using the ed25519 public-key signature
91
+ * system.
92
+ *
93
+ * @param {string} message to produce a signature for
94
+ * @returns {Uint8Array} The signature produced for the message
95
+ * @throws if there is no private key
96
+ */
97
+ signMessage(message) {
98
+ var _a;
99
+ const messageToSign = crypto_1.toUint8Array(Buffer.from(message).toString('hex'));
100
+ const prv = (_a = this.keyPair) === null || _a === void 0 ? void 0 : _a.prv;
101
+ if (!prv) {
102
+ throw new Error('Missing private key');
103
+ }
104
+ return nacl.sign.detached(messageToSign, nacl.sign.keyPair.fromSeed(crypto_1.toUint8Array(prv)).secretKey);
105
+ }
106
+ /**
107
+ * Verifies a message signature using the current public key.
108
+ *
109
+ * @param {string} message signed
110
+ * @param {Uint8Array} signature to verify
111
+ * @returns {boolean} True if the message was signed with the current key pair
112
+ */
113
+ verifySignature(message, signature) {
114
+ var _a;
115
+ let messageToVerify;
116
+ if (typeof message === 'string') {
117
+ messageToVerify = crypto_1.toUint8Array(Buffer.from(message).toString('hex'));
118
+ }
119
+ else {
120
+ messageToVerify = message;
121
+ }
122
+ if (!((_a = this.keyPair) === null || _a === void 0 ? void 0 : _a.pub)) {
123
+ return false;
124
+ }
125
+ const publicKey = crypto_1.toUint8Array(this.keyPair.pub);
126
+ return nacl.sign.detached.verify(messageToVerify, signature, publicKey);
127
+ }
128
+ /**
129
+ * Derives a hardened child key pair using this key pair's secret key
130
+ * as the seed.
131
+ *
132
+ * @param path derivation path
133
+ */
134
+ deriveHardened(path) {
135
+ var _a;
136
+ if (!((_a = this.keyPair) === null || _a === void 0 ? void 0 : _a.prv)) {
137
+ throw new Error('need private key to derive hardened keypair');
138
+ }
139
+ const seed = ed25519KeyDeriver_1.Ed25519KeyDeriver.derivePath(path, this.keyPair.prv).key;
140
+ const derivedKeyPair = nacl.sign.keyPair.fromSeed(seed);
141
+ return this.getKeyPair(derivedKeyPair);
142
+ }
143
+ }
144
+ exports.Ed25519KeyPair = Ed25519KeyPair;
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWQyNTUxOUtleVBhaXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvYmFzZUNvaW4vZWQyNTUxOUtleVBhaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFrQztBQUNsQywyQ0FNd0I7QUFDeEIsaUVBQThEO0FBRzlELG1DQUF5RjtBQUV6RixNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUVuQyxNQUFzQixjQUFjO0lBSWxDOzs7O09BSUc7SUFDSCxZQUFzQixNQUF1QjtRQUMzQyxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3ZELFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM5QjthQUFNLElBQUksY0FBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDOUI7YUFBTSxJQUFJLG9CQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQzthQUFNLElBQUksbUJBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFDO2FBQU07WUFDTCxNQUFNLElBQUksS0FB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LFNBQVMsR0FBRyxxQkFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsSUFBWTs7UUFDekIsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxHQUFHLENBQUEsRUFBRTtZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDaEU7UUFFRCxNQUFNLElBQUksR0FBRyxxQ0FBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3RFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBOUhELHdDQThIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG5hY2wgZnJvbSAndHdlZXRuYWNsJztcbmltcG9ydCB7XG4gIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5LFxuICBpc1ZhbGlkRWQyNTUxOVNlY3JldEtleSxcbiAgaXNWYWxpZEVkMjU1MTlTZWVkLFxuICB0b0hleCxcbiAgdG9VaW50OEFycmF5LFxufSBmcm9tICcuLi91dGlsL2NyeXB0byc7XG5pbXBvcnQgeyBFZDI1NTE5S2V5RGVyaXZlciB9IGZyb20gJy4uL3V0aWwvZWQyNTUxOUtleURlcml2ZXInO1xuaW1wb3J0IHsgQmFzZUtleVBhaXIgfSBmcm9tICcuL2Jhc2VLZXlQYWlyJztcbmltcG9ydCB7IEFkZHJlc3NGb3JtYXQgfSBmcm9tICcuL2VudW0nO1xuaW1wb3J0IHsgaXNQcml2YXRlS2V5LCBpc1B1YmxpY0tleSwgaXNTZWVkLCBEZWZhdWx0S2V5cywgS2V5UGFpck9wdGlvbnMgfSBmcm9tICcuL2lmYWNlJztcblxuY29uc3QgREVGQVVMVF9TRUVEX1NJWkVfQllURVMgPSAzMjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVkMjU1MTlLZXlQYWlyIGltcGxlbWVudHMgQmFzZUtleVBhaXIge1xuICBwcm90ZWN0ZWQga2V5UGFpcjogRGVmYXVsdEtleXM7XG4gIHByb3RlY3RlZCBzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucztcblxuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHtLZXlQYWlyT3B0aW9uc30gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5LCBvciBhIHB1YmxpYyBrZXlcbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIGxldCBuYWNsS2V5UGFpcjtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgY29uc3Qgc2VlZCA9IG5hY2wucmFuZG9tQnl0ZXMoREVGQVVMVF9TRUVEX1NJWkVfQllURVMpO1xuICAgICAgbmFjbEtleVBhaXIgPSBuYWNsLnNpZ24ua2V5UGFpci5mcm9tU2VlZChzZWVkKTtcbiAgICAgIHRoaXMuc2V0S2V5UGFpcihuYWNsS2V5UGFpcik7XG4gICAgfSBlbHNlIGlmIChpc1NlZWQoc291cmNlKSkge1xuICAgICAgbmFjbEtleVBhaXIgPSBuYWNsLnNpZ24ua2V5UGFpci5mcm9tU2VlZChzb3VyY2Uuc2VlZCk7XG4gICAgICB0aGlzLnNldEtleVBhaXIobmFjbEtleVBhaXIpO1xuICAgIH0gZWxzZSBpZiAoaXNQcml2YXRlS2V5KHNvdXJjZSkpIHtcbiAgICAgIHRoaXMucmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHNvdXJjZS5wcnYpO1xuICAgIH0gZWxzZSBpZiAoaXNQdWJsaWNLZXkoc291cmNlKSkge1xuICAgICAgdGhpcy5yZWNvcmRLZXlzRnJvbVB1YmxpY0tleShzb3VyY2UucHViKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGtleSBwYWlyIG9wdGlvbnMnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEtleVBhaXIobmFjbEtleVBhaXI6IG5hY2wuU2lnbktleVBhaXIpOiBEZWZhdWx0S2V5cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBydjogdG9IZXgobmFjbEtleVBhaXIuc2VjcmV0S2V5LnNsaWNlKDAsIDMyKSksXG4gICAgICBwdWI6IHRvSGV4KG5hY2xLZXlQYWlyLnB1YmxpY0tleSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0S2V5UGFpcihuYWNsS2V5UGFpcjogbmFjbC5TaWduS2V5UGFpcik6IHZvaWQge1xuICAgIHRoaXMua2V5UGFpciA9IHRoaXMuZ2V0S2V5UGFpcihuYWNsS2V5UGFpcik7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHBydjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGlzVmFsaWRFZDI1NTE5U2VlZChwcnYpKSB7XG4gICAgICBjb25zdCBkZWNvZGVkUHJ2ID0gdG9VaW50OEFycmF5KHBydik7XG4gICAgICBjb25zdCBuYWNsS2V5UGFpciA9IG5hY2wuc2lnbi5rZXlQYWlyLmZyb21TZWVkKGRlY29kZWRQcnYpO1xuICAgICAgdGhpcy5zZXRLZXlQYWlyKG5hY2xLZXlQYWlyKTtcbiAgICB9IGVsc2UgaWYgKGlzVmFsaWRFZDI1NTE5U2VjcmV0S2V5KHBydikpIHtcbiAgICAgIGNvbnN0IGRlY29kZWRQcnYgPSB0b1VpbnQ4QXJyYXkocHJ2KTtcbiAgICAgIGNvbnN0IG5hY2xLZXlQYWlyID0gbmFjbC5zaWduLmtleVBhaXIuZnJvbVNlY3JldEtleShkZWNvZGVkUHJ2KTtcbiAgICAgIHRoaXMuc2V0S2V5UGFpcihuYWNsS2V5UGFpcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMua2V5UGFpciA9IHRoaXMucmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5SW5Qcm90b2NvbEZvcm1hdChwcnYpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleShwdWI6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShwdWIpKSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSB7IHB1YiB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSB0aGlzLnJlY29yZEtleXNGcm9tUHVibGljS2V5SW5Qcm90b2NvbEZvcm1hdChwdWIpO1xuICAgIH1cbiAgfVxuXG4gIGFic3RyYWN0IHJlY29yZEtleXNGcm9tUHJpdmF0ZUtleUluUHJvdG9jb2xGb3JtYXQocHJ2OiBzdHJpbmcpOiBEZWZhdWx0S2V5cztcblxuICBhYnN0cmFjdCByZWNvcmRLZXlzRnJvbVB1YmxpY0tleUluUHJvdG9jb2xGb3JtYXQocHViOiBzdHJpbmcpOiBEZWZhdWx0S2V5cztcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgYWJzdHJhY3QgZ2V0QWRkcmVzcyhmb3JtYXQ/OiBBZGRyZXNzRm9ybWF0KTogc3RyaW5nO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBhYnN0cmFjdCBnZXRLZXlzKCk6IGFueTtcblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgc2lnbmF0dXJlIGZvciBhbiBhcmJpdHJhcnkgc3RyaW5nIHdpdGggdGhlIGN1cnJlbnQgcHJpdmF0ZSBrZXkgdXNpbmcgdGhlIGVkMjU1MTkgcHVibGljLWtleSBzaWduYXR1cmVcbiAgICogc3lzdGVtLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSB0byBwcm9kdWNlIGEgc2lnbmF0dXJlIGZvclxuICAgKiBAcmV0dXJucyB7VWludDhBcnJheX0gVGhlIHNpZ25hdHVyZSBwcm9kdWNlZCBmb3IgdGhlIG1lc3NhZ2VcbiAgICogQHRocm93cyBpZiB0aGVyZSBpcyBubyBwcml2YXRlIGtleVxuICAgKi9cbiAgc2lnbk1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKTogVWludDhBcnJheSB7XG4gICAgY29uc3QgbWVzc2FnZVRvU2lnbiA9IHRvVWludDhBcnJheShCdWZmZXIuZnJvbShtZXNzYWdlKS50b1N0cmluZygnaGV4JykpO1xuICAgIGNvbnN0IHBydiA9IHRoaXMua2V5UGFpcj8ucHJ2O1xuICAgIGlmICghcHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hY2wuc2lnbi5kZXRhY2hlZChtZXNzYWdlVG9TaWduLCBuYWNsLnNpZ24ua2V5UGFpci5mcm9tU2VlZCh0b1VpbnQ4QXJyYXkocHJ2KSkuc2VjcmV0S2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBhIG1lc3NhZ2Ugc2lnbmF0dXJlIHVzaW5nIHRoZSBjdXJyZW50IHB1YmxpYyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIHNpZ25lZFxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IHNpZ25hdHVyZSB0byB2ZXJpZnlcbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIG1lc3NhZ2Ugd2FzIHNpZ25lZCB3aXRoIHRoZSBjdXJyZW50IGtleSBwYWlyXG4gICAqL1xuICB2ZXJpZnlTaWduYXR1cmUobWVzc2FnZTogVWludDhBcnJheSB8IHN0cmluZywgc2lnbmF0dXJlOiBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gICAgbGV0IG1lc3NhZ2VUb1ZlcmlmeTtcbiAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBtZXNzYWdlVG9WZXJpZnkgPSB0b1VpbnQ4QXJyYXkoQnVmZmVyLmZyb20obWVzc2FnZSkudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWVzc2FnZVRvVmVyaWZ5ID0gbWVzc2FnZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmtleVBhaXI/LnB1Yikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBwdWJsaWNLZXkgPSB0b1VpbnQ4QXJyYXkodGhpcy5rZXlQYWlyLnB1Yik7XG4gICAgcmV0dXJuIG5hY2wuc2lnbi5kZXRhY2hlZC52ZXJpZnkobWVzc2FnZVRvVmVyaWZ5LCBzaWduYXR1cmUsIHB1YmxpY0tleSk7XG4gIH1cblxuICAvKipcbiAgICogRGVyaXZlcyBhIGhhcmRlbmVkIGNoaWxkIGtleSBwYWlyIHVzaW5nIHRoaXMga2V5IHBhaXIncyBzZWNyZXQga2V5XG4gICAqIGFzIHRoZSBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCBkZXJpdmF0aW9uIHBhdGhcbiAgICovXG4gIGRlcml2ZUhhcmRlbmVkKHBhdGg6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICBpZiAoIXRoaXMua2V5UGFpcj8ucHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25lZWQgcHJpdmF0ZSBrZXkgdG8gZGVyaXZlIGhhcmRlbmVkIGtleXBhaXInKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWVkID0gRWQyNTUxOUtleURlcml2ZXIuZGVyaXZlUGF0aChwYXRoLCB0aGlzLmtleVBhaXIucHJ2KS5rZXk7XG4gICAgY29uc3QgZGVyaXZlZEtleVBhaXIgPSBuYWNsLnNpZ24ua2V5UGFpci5mcm9tU2VlZChzZWVkKTtcblxuICAgIHJldHVybiB0aGlzLmdldEtleVBhaXIoZGVyaXZlZEtleVBhaXIpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Internal metadata. Defines the type of transaction.
3
+ */
4
+ export declare enum TransactionType {
5
+ Send = 0,
6
+ SendERC721 = 1,
7
+ SendERC1155 = 2,
8
+ WalletInitialization = 3,
9
+ AddressInitialization = 4,
10
+ AssociatedTokenAccountInitialization = 5,
11
+ FlushTokens = 6,
12
+ FlushCoins = 7,
13
+ SingleSigSend = 8,
14
+ AccountUpdate = 9,
15
+ StakingLock = 10,
16
+ StakingVote = 11,
17
+ StakingUnvote = 12,
18
+ StakingActivate = 13,
19
+ StakingUnlock = 14,
20
+ StakingWithdraw = 15,
21
+ ContractCall = 16,
22
+ StakingDeactivate = 17,
23
+ Batch = 18,
24
+ StakingClaim = 19,
25
+ addDelegator = 20,
26
+ addValidator = 21
27
+ }
28
+ /**
29
+ * Generic list of encoding formats. Can be used as arguments for methods inputs.
30
+ */
31
+ export declare enum AddressFormat {
32
+ hex = "hex",
33
+ base58 = "base58",
34
+ substrate = "substrate",
35
+ polkadot = "polkadot"
36
+ }
37
+ export declare enum StakingOperationTypes {
38
+ LOCK = 0,
39
+ VOTE = 1,
40
+ UNVOTE = 2,
41
+ ACTIVATE = 3,
42
+ UNLOCK = 4,
43
+ WITHDRAW = 5
44
+ }
45
+ //# sourceMappingURL=enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/baseCoin/enum.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,IAAA;IAEJ,UAAU,IAAA;IAEV,WAAW,IAAA;IAEX,oBAAoB,IAAA;IAEpB,qBAAqB,IAAA;IAErB,oCAAoC,IAAA;IAEpC,WAAW,IAAA;IAEX,UAAU,IAAA;IAEV,aAAa,IAAA;IAEb,aAAa,IAAA;IAEb,WAAW,KAAA;IAEX,WAAW,KAAA;IAEX,aAAa,KAAA;IAEb,eAAe,KAAA;IAEf,aAAa,KAAA;IAEb,eAAe,KAAA;IAEf,YAAY,KAAA;IAEZ,iBAAiB,KAAA;IAEjB,KAAK,KAAA;IAEL,YAAY,KAAA;IAEZ,YAAY,KAAA;IAEZ,YAAY,KAAA;CACb;AAED;;GAEG;AACH,oBAAY,aAAa;IACvB,GAAG,QAAQ;IACX,MAAM,WAAW;IAEjB,SAAS,cAAc;IAEvB,QAAQ,aAAa;CACtB;AAED,oBAAY,qBAAqB;IAC/B,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,QAAQ,IAAA;CACT"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StakingOperationTypes = exports.AddressFormat = exports.TransactionType = void 0;
4
+ /**
5
+ * Internal metadata. Defines the type of transaction.
6
+ */
7
+ var TransactionType;
8
+ (function (TransactionType) {
9
+ TransactionType[TransactionType["Send"] = 0] = "Send";
10
+ // Send ERC721 compliant tokens
11
+ TransactionType[TransactionType["SendERC721"] = 1] = "SendERC721";
12
+ // Send ERC1155 compliant tokens
13
+ TransactionType[TransactionType["SendERC1155"] = 2] = "SendERC1155";
14
+ // Initialize a wallet on-chain (e.g. Multi-sig contract deployment)
15
+ TransactionType[TransactionType["WalletInitialization"] = 3] = "WalletInitialization";
16
+ // Initialize an address on-chain(e.g. Forwarder contract deployment)
17
+ TransactionType[TransactionType["AddressInitialization"] = 4] = "AddressInitialization";
18
+ // Initialized an associated token account
19
+ TransactionType[TransactionType["AssociatedTokenAccountInitialization"] = 5] = "AssociatedTokenAccountInitialization";
20
+ // Flush tokens from a forwarder address to its base address
21
+ TransactionType[TransactionType["FlushTokens"] = 6] = "FlushTokens";
22
+ // Flush native coins (eg. ETH) from a forwarder address to base address
23
+ TransactionType[TransactionType["FlushCoins"] = 7] = "FlushCoins";
24
+ // Send a raw single-sig transaction
25
+ TransactionType[TransactionType["SingleSigSend"] = 8] = "SingleSigSend";
26
+ // Update an account on-chain (e.g. Public key revelation operation for Tezos)
27
+ TransactionType[TransactionType["AccountUpdate"] = 9] = "AccountUpdate";
28
+ // Lock
29
+ TransactionType[TransactionType["StakingLock"] = 10] = "StakingLock";
30
+ // Vote
31
+ TransactionType[TransactionType["StakingVote"] = 11] = "StakingVote";
32
+ // Unvote
33
+ TransactionType[TransactionType["StakingUnvote"] = 12] = "StakingUnvote";
34
+ // Activate
35
+ TransactionType[TransactionType["StakingActivate"] = 13] = "StakingActivate";
36
+ // Unlock
37
+ TransactionType[TransactionType["StakingUnlock"] = 14] = "StakingUnlock";
38
+ // Withdraw
39
+ TransactionType[TransactionType["StakingWithdraw"] = 15] = "StakingWithdraw";
40
+ // Handle smart contract calls
41
+ TransactionType[TransactionType["ContractCall"] = 16] = "ContractCall";
42
+ // Deactivate
43
+ TransactionType[TransactionType["StakingDeactivate"] = 17] = "StakingDeactivate";
44
+ // Batch of multiple transactions broadcast as a single transaction
45
+ TransactionType[TransactionType["Batch"] = 18] = "Batch";
46
+ // Claim the staking rewards
47
+ TransactionType[TransactionType["StakingClaim"] = 19] = "StakingClaim";
48
+ // Add delegator to p-chain
49
+ TransactionType[TransactionType["addDelegator"] = 20] = "addDelegator";
50
+ // Add validator to p-chain
51
+ TransactionType[TransactionType["addValidator"] = 21] = "addValidator";
52
+ })(TransactionType = exports.TransactionType || (exports.TransactionType = {}));
53
+ /**
54
+ * Generic list of encoding formats. Can be used as arguments for methods inputs.
55
+ */
56
+ var AddressFormat;
57
+ (function (AddressFormat) {
58
+ AddressFormat["hex"] = "hex";
59
+ AddressFormat["base58"] = "base58";
60
+ // format for westend addresses
61
+ AddressFormat["substrate"] = "substrate";
62
+ // format for polkadot mainnet addresses
63
+ AddressFormat["polkadot"] = "polkadot";
64
+ })(AddressFormat = exports.AddressFormat || (exports.AddressFormat = {}));
65
+ var StakingOperationTypes;
66
+ (function (StakingOperationTypes) {
67
+ StakingOperationTypes[StakingOperationTypes["LOCK"] = 0] = "LOCK";
68
+ StakingOperationTypes[StakingOperationTypes["VOTE"] = 1] = "VOTE";
69
+ StakingOperationTypes[StakingOperationTypes["UNVOTE"] = 2] = "UNVOTE";
70
+ StakingOperationTypes[StakingOperationTypes["ACTIVATE"] = 3] = "ACTIVATE";
71
+ StakingOperationTypes[StakingOperationTypes["UNLOCK"] = 4] = "UNLOCK";
72
+ StakingOperationTypes[StakingOperationTypes["WITHDRAW"] = 5] = "WITHDRAW";
73
+ })(StakingOperationTypes = exports.StakingOperationTypes || (exports.StakingOperationTypes = {}));
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9iYXNlQ29pbi9lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsSUFBWSxlQTRDWDtBQTVDRCxXQUFZLGVBQWU7SUFDekIscURBQUksQ0FBQTtJQUNKLCtCQUErQjtJQUMvQixpRUFBVSxDQUFBO0lBQ1YsZ0NBQWdDO0lBQ2hDLG1FQUFXLENBQUE7SUFDWCxvRUFBb0U7SUFDcEUscUZBQW9CLENBQUE7SUFDcEIscUVBQXFFO0lBQ3JFLHVGQUFxQixDQUFBO0lBQ3JCLDBDQUEwQztJQUMxQyxxSEFBb0MsQ0FBQTtJQUNwQyw0REFBNEQ7SUFDNUQsbUVBQVcsQ0FBQTtJQUNYLHdFQUF3RTtJQUN4RSxpRUFBVSxDQUFBO0lBQ1Ysb0NBQW9DO0lBQ3BDLHVFQUFhLENBQUE7SUFDYiw4RUFBOEU7SUFDOUUsdUVBQWEsQ0FBQTtJQUNiLE9BQU87SUFDUCxvRUFBVyxDQUFBO0lBQ1gsT0FBTztJQUNQLG9FQUFXLENBQUE7SUFDWCxTQUFTO0lBQ1Qsd0VBQWEsQ0FBQTtJQUNiLFdBQVc7SUFDWCw0RUFBZSxDQUFBO0lBQ2YsU0FBUztJQUNULHdFQUFhLENBQUE7SUFDYixXQUFXO0lBQ1gsNEVBQWUsQ0FBQTtJQUNmLDhCQUE4QjtJQUM5QixzRUFBWSxDQUFBO0lBQ1osYUFBYTtJQUNiLGdGQUFpQixDQUFBO0lBQ2pCLG1FQUFtRTtJQUNuRSx3REFBSyxDQUFBO0lBQ0wsNEJBQTRCO0lBQzVCLHNFQUFZLENBQUE7SUFDWiwyQkFBMkI7SUFDM0Isc0VBQVksQ0FBQTtJQUNaLDJCQUEyQjtJQUMzQixzRUFBWSxDQUFBO0FBQ2QsQ0FBQyxFQTVDVyxlQUFlLEdBQWYsdUJBQWUsS0FBZix1QkFBZSxRQTRDMUI7QUFFRDs7R0FFRztBQUNILElBQVksYUFPWDtBQVBELFdBQVksYUFBYTtJQUN2Qiw0QkFBVyxDQUFBO0lBQ1gsa0NBQWlCLENBQUE7SUFDakIsK0JBQStCO0lBQy9CLHdDQUF1QixDQUFBO0lBQ3ZCLHdDQUF3QztJQUN4QyxzQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBUFcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFPeEI7QUFFRCxJQUFZLHFCQU9YO0FBUEQsV0FBWSxxQkFBcUI7SUFDL0IsaUVBQUksQ0FBQTtJQUNKLGlFQUFJLENBQUE7SUFDSixxRUFBTSxDQUFBO0lBQ04seUVBQVEsQ0FBQTtJQUNSLHFFQUFNLENBQUE7SUFDTix5RUFBUSxDQUFBO0FBQ1YsQ0FBQyxFQVBXLHFCQUFxQixHQUFyQiw2QkFBcUIsS0FBckIsNkJBQXFCLFFBT2hDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlcm5hbCBtZXRhZGF0YS4gRGVmaW5lcyB0aGUgdHlwZSBvZiB0cmFuc2FjdGlvbi5cbiAqL1xuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25UeXBlIHtcbiAgU2VuZCxcbiAgLy8gU2VuZCBFUkM3MjEgY29tcGxpYW50IHRva2Vuc1xuICBTZW5kRVJDNzIxLFxuICAvLyBTZW5kIEVSQzExNTUgY29tcGxpYW50IHRva2Vuc1xuICBTZW5kRVJDMTE1NSxcbiAgLy8gSW5pdGlhbGl6ZSBhIHdhbGxldCBvbi1jaGFpbiAoZS5nLiBNdWx0aS1zaWcgY29udHJhY3QgZGVwbG95bWVudClcbiAgV2FsbGV0SW5pdGlhbGl6YXRpb24sXG4gIC8vIEluaXRpYWxpemUgYW4gYWRkcmVzcyBvbi1jaGFpbihlLmcuIEZvcndhcmRlciBjb250cmFjdCBkZXBsb3ltZW50KVxuICBBZGRyZXNzSW5pdGlhbGl6YXRpb24sXG4gIC8vIEluaXRpYWxpemVkIGFuIGFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudFxuICBBc3NvY2lhdGVkVG9rZW5BY2NvdW50SW5pdGlhbGl6YXRpb24sXG4gIC8vIEZsdXNoIHRva2VucyBmcm9tIGEgZm9yd2FyZGVyIGFkZHJlc3MgdG8gaXRzIGJhc2UgYWRkcmVzc1xuICBGbHVzaFRva2VucyxcbiAgLy8gRmx1c2ggbmF0aXZlIGNvaW5zIChlZy4gRVRIKSBmcm9tIGEgZm9yd2FyZGVyIGFkZHJlc3MgdG8gYmFzZSBhZGRyZXNzXG4gIEZsdXNoQ29pbnMsXG4gIC8vIFNlbmQgYSByYXcgc2luZ2xlLXNpZyB0cmFuc2FjdGlvblxuICBTaW5nbGVTaWdTZW5kLFxuICAvLyBVcGRhdGUgYW4gYWNjb3VudCBvbi1jaGFpbiAoZS5nLiBQdWJsaWMga2V5IHJldmVsYXRpb24gb3BlcmF0aW9uIGZvciBUZXpvcylcbiAgQWNjb3VudFVwZGF0ZSxcbiAgLy8gTG9ja1xuICBTdGFraW5nTG9jayxcbiAgLy8gVm90ZVxuICBTdGFraW5nVm90ZSxcbiAgLy8gVW52b3RlXG4gIFN0YWtpbmdVbnZvdGUsXG4gIC8vIEFjdGl2YXRlXG4gIFN0YWtpbmdBY3RpdmF0ZSxcbiAgLy8gVW5sb2NrXG4gIFN0YWtpbmdVbmxvY2ssXG4gIC8vIFdpdGhkcmF3XG4gIFN0YWtpbmdXaXRoZHJhdyxcbiAgLy8gSGFuZGxlIHNtYXJ0IGNvbnRyYWN0IGNhbGxzXG4gIENvbnRyYWN0Q2FsbCxcbiAgLy8gRGVhY3RpdmF0ZVxuICBTdGFraW5nRGVhY3RpdmF0ZSxcbiAgLy8gQmF0Y2ggb2YgbXVsdGlwbGUgdHJhbnNhY3Rpb25zIGJyb2FkY2FzdCBhcyBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICBCYXRjaCxcbiAgLy8gQ2xhaW0gdGhlIHN0YWtpbmcgcmV3YXJkc1xuICBTdGFraW5nQ2xhaW0sXG4gIC8vIEFkZCBkZWxlZ2F0b3IgdG8gcC1jaGFpblxuICBhZGREZWxlZ2F0b3IsXG4gIC8vIEFkZCB2YWxpZGF0b3IgdG8gcC1jaGFpblxuICBhZGRWYWxpZGF0b3IsXG59XG5cbi8qKlxuICogR2VuZXJpYyBsaXN0IG9mIGVuY29kaW5nIGZvcm1hdHMuIENhbiBiZSB1c2VkIGFzIGFyZ3VtZW50cyBmb3IgbWV0aG9kcyBpbnB1dHMuXG4gKi9cbmV4cG9ydCBlbnVtIEFkZHJlc3NGb3JtYXQge1xuICBoZXggPSAnaGV4JyxcbiAgYmFzZTU4ID0gJ2Jhc2U1OCcsXG4gIC8vIGZvcm1hdCBmb3Igd2VzdGVuZCBhZGRyZXNzZXNcbiAgc3Vic3RyYXRlID0gJ3N1YnN0cmF0ZScsXG4gIC8vIGZvcm1hdCBmb3IgcG9sa2Fkb3QgbWFpbm5ldCBhZGRyZXNzZXNcbiAgcG9sa2Fkb3QgPSAncG9sa2Fkb3QnLFxufVxuXG5leHBvcnQgZW51bSBTdGFraW5nT3BlcmF0aW9uVHlwZXMge1xuICBMT0NLLFxuICBWT1RFLFxuICBVTlZPVEUsXG4gIEFDVElWQVRFLFxuICBVTkxPQ0ssXG4gIFdJVEhEUkFXLFxufVxuIl19