@lidofinance/lsv-cli 1.0.0-alpha.3 → 1.0.0-alpha.31

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 (401) hide show
  1. package/README.md +102 -1
  2. package/dist/abi/BlsHarness.d.ts +178 -0
  3. package/dist/abi/BlsHarness.js +232 -0
  4. package/dist/abi/BlsHarness.js.map +1 -0
  5. package/dist/abi/CLProofVerifier.d.ts +188 -0
  6. package/dist/abi/CLProofVerifier.js +247 -0
  7. package/dist/abi/CLProofVerifier.js.map +1 -0
  8. package/dist/abi/Dashboard.d.ts +1486 -0
  9. package/dist/abi/Dashboard.js +1920 -0
  10. package/dist/abi/Dashboard.js.map +1 -0
  11. package/dist/abi/LidoLocator.d.ts +330 -0
  12. package/dist/abi/LidoLocator.js +426 -0
  13. package/dist/abi/LidoLocator.js.map +1 -0
  14. package/dist/abi/OperatorGrid.d.ts +914 -0
  15. package/dist/abi/OperatorGrid.js +1185 -0
  16. package/dist/abi/OperatorGrid.js.map +1 -0
  17. package/dist/abi/PredepositGuarantee.d.ts +1382 -0
  18. package/dist/abi/PredepositGuarantee.js +1789 -0
  19. package/dist/abi/PredepositGuarantee.js.map +1 -0
  20. package/dist/abi/ReportChecker.d.ts +83 -0
  21. package/dist/abi/ReportChecker.js +109 -0
  22. package/dist/abi/ReportChecker.js.map +1 -0
  23. package/dist/abi/StEth.d.ts +372 -0
  24. package/dist/abi/StEth.js +493 -0
  25. package/dist/abi/StEth.js.map +1 -0
  26. package/dist/abi/StakingVault.d.ts +864 -0
  27. package/dist/abi/StakingVault.js +1112 -0
  28. package/dist/abi/StakingVault.js.map +1 -0
  29. package/dist/abi/TokenManager.d.ts +577 -0
  30. package/dist/abi/TokenManager.js +756 -0
  31. package/dist/abi/TokenManager.js.map +1 -0
  32. package/dist/abi/VaultFactory.d.ts +160 -0
  33. package/dist/abi/VaultFactory.js +209 -0
  34. package/dist/abi/VaultFactory.js.map +1 -0
  35. package/dist/abi/VaultHub.d.ts +1309 -0
  36. package/dist/abi/VaultHub.js +1245 -436
  37. package/dist/abi/VaultHub.js.map +1 -1
  38. package/dist/abi/VaultViewer.d.ts +223 -0
  39. package/dist/abi/VaultViewer.js +297 -0
  40. package/dist/abi/VaultViewer.js.map +1 -0
  41. package/dist/abi/Voting.d.ts +676 -0
  42. package/dist/abi/Voting.js +884 -0
  43. package/dist/abi/Voting.js.map +1 -0
  44. package/dist/abi/WstEth.d.ts +362 -0
  45. package/dist/abi/WstEth.js +478 -0
  46. package/dist/abi/WstEth.js.map +1 -0
  47. package/dist/abi/index.d.ts +15 -0
  48. package/dist/abi/index.js +17 -0
  49. package/dist/abi/index.js.map +1 -0
  50. package/dist/command/index.d.ts +2 -0
  51. package/dist/command/index.js +4 -5
  52. package/dist/command/index.js.map +1 -1
  53. package/dist/configs/constants.d.ts +36 -0
  54. package/dist/configs/constants.js +3 -0
  55. package/dist/configs/constants.js.map +1 -0
  56. package/dist/configs/deployed.d.ts +17 -0
  57. package/dist/configs/deployed.js +87 -52
  58. package/dist/configs/deployed.js.map +1 -1
  59. package/dist/configs/envs.d.ts +2 -0
  60. package/dist/configs/envs.js +8 -37
  61. package/dist/configs/envs.js.map +1 -1
  62. package/dist/configs/index.d.ts +3 -0
  63. package/dist/configs/index.js +3 -18
  64. package/dist/configs/index.js.map +1 -1
  65. package/dist/configs/utils.d.ts +4 -0
  66. package/dist/configs/utils.js +22 -0
  67. package/dist/configs/utils.js.map +1 -0
  68. package/dist/contracts/blsHarness.d.ts +947 -0
  69. package/dist/contracts/blsHarness.js +24 -0
  70. package/dist/contracts/blsHarness.js.map +1 -0
  71. package/dist/contracts/clProofVerifier.d.ts +2647 -0
  72. package/dist/contracts/clProofVerifier.js +23 -0
  73. package/dist/contracts/clProofVerifier.js.map +1 -0
  74. package/dist/contracts/dashboard.d.ts +4 -0
  75. package/dist/contracts/dashboard.js +11 -0
  76. package/dist/contracts/dashboard.js.map +1 -0
  77. package/dist/contracts/index.d.ts +15 -0
  78. package/dist/contracts/index.js +15 -17
  79. package/dist/contracts/index.js.map +1 -1
  80. package/dist/contracts/locator.d.ts +6935 -0
  81. package/dist/contracts/locator.js +16 -0
  82. package/dist/contracts/locator.js.map +1 -0
  83. package/dist/contracts/operator-grid.d.ts +3 -0
  84. package/dist/contracts/operator-grid.js +17 -0
  85. package/dist/contracts/operator-grid.js.map +1 -0
  86. package/dist/contracts/pdg.d.ts +3 -0
  87. package/dist/contracts/pdg.js +17 -0
  88. package/dist/contracts/pdg.js.map +1 -0
  89. package/dist/contracts/reportChecker.d.ts +758 -0
  90. package/dist/contracts/reportChecker.js +23 -0
  91. package/dist/contracts/reportChecker.js.map +1 -0
  92. package/dist/contracts/steth.d.ts +27706 -0
  93. package/dist/contracts/steth.js +18 -0
  94. package/dist/contracts/steth.js.map +1 -0
  95. package/dist/contracts/token-manager.d.ts +3 -0
  96. package/dist/contracts/token-manager.js +13 -0
  97. package/dist/contracts/token-manager.js.map +1 -0
  98. package/dist/contracts/vault-factory.d.ts +2678 -0
  99. package/dist/contracts/vault-factory.js +14 -0
  100. package/dist/contracts/vault-factory.js.map +1 -0
  101. package/dist/contracts/vault-hub.d.ts +3 -0
  102. package/dist/contracts/vault-hub.js +14 -16
  103. package/dist/contracts/vault-hub.js.map +1 -1
  104. package/dist/contracts/vault-viewer.d.ts +2681 -0
  105. package/dist/contracts/vault-viewer.js +23 -0
  106. package/dist/contracts/vault-viewer.js.map +1 -0
  107. package/dist/contracts/vault.d.ts +3 -0
  108. package/dist/contracts/vault.js +11 -0
  109. package/dist/contracts/vault.js.map +1 -0
  110. package/dist/contracts/voting.d.ts +6 -0
  111. package/dist/contracts/voting.js +19 -0
  112. package/dist/contracts/voting.js.map +1 -0
  113. package/dist/contracts/wsteth.d.ts +24690 -0
  114. package/dist/contracts/wsteth.js +18 -0
  115. package/dist/contracts/wsteth.js.map +1 -0
  116. package/dist/features/advanced-config.d.ts +5 -0
  117. package/dist/features/advanced-config.js +17 -0
  118. package/dist/features/advanced-config.js.map +1 -0
  119. package/dist/features/dashboard.d.ts +5 -0
  120. package/dist/features/dashboard.js +210 -0
  121. package/dist/features/dashboard.js.map +1 -0
  122. package/dist/features/index.d.ts +8 -0
  123. package/dist/features/index.js +9 -0
  124. package/dist/features/index.js.map +1 -0
  125. package/dist/features/operator-grid.d.ts +2 -0
  126. package/dist/features/operator-grid.js +57 -0
  127. package/dist/features/operator-grid.js.map +1 -0
  128. package/dist/features/pdg.d.ts +2 -0
  129. package/dist/features/pdg.js +79 -0
  130. package/dist/features/pdg.js.map +1 -0
  131. package/dist/features/token-manager.d.ts +0 -0
  132. package/dist/features/token-manager.js +7 -0
  133. package/dist/features/token-manager.js.map +1 -0
  134. package/dist/features/vault-factory.d.ts +8 -0
  135. package/dist/features/vault-factory.js +52 -0
  136. package/dist/features/vault-factory.js.map +1 -0
  137. package/dist/features/vault-hub.d.ts +2 -0
  138. package/dist/features/vault-hub.js +81 -0
  139. package/dist/features/vault-hub.js.map +1 -0
  140. package/dist/features/vault.d.ts +2 -0
  141. package/dist/features/vault.js +54 -0
  142. package/dist/features/vault.js.map +1 -0
  143. package/dist/features/voting.d.ts +7 -0
  144. package/dist/features/voting.js +125 -0
  145. package/dist/features/voting.js.map +1 -0
  146. package/dist/index.d.ts +3 -0
  147. package/dist/index.js +8 -5
  148. package/dist/index.js.map +1 -1
  149. package/dist/programs/account.d.ts +1 -0
  150. package/dist/programs/account.js +135 -0
  151. package/dist/programs/account.js.map +1 -0
  152. package/dist/programs/config.d.ts +1 -0
  153. package/dist/programs/config.js +31 -0
  154. package/dist/programs/config.js.map +1 -0
  155. package/dist/programs/dashboard/config.d.ts +2 -0
  156. package/dist/programs/dashboard/config.js +111 -0
  157. package/dist/programs/dashboard/config.js.map +1 -0
  158. package/dist/programs/dashboard/index.d.ts +3 -0
  159. package/dist/programs/dashboard/index.js +4 -0
  160. package/dist/programs/dashboard/index.js.map +1 -0
  161. package/dist/programs/dashboard/main.d.ts +1 -0
  162. package/dist/programs/dashboard/main.js +5 -0
  163. package/dist/programs/dashboard/main.js.map +1 -0
  164. package/dist/programs/dashboard/read.d.ts +1 -0
  165. package/dist/programs/dashboard/read.js +76 -0
  166. package/dist/programs/dashboard/read.js.map +1 -0
  167. package/dist/programs/dashboard/write.d.ts +1 -0
  168. package/dist/programs/dashboard/write.js +408 -0
  169. package/dist/programs/dashboard/write.js.map +1 -0
  170. package/dist/programs/hub/config.d.ts +2 -0
  171. package/dist/programs/hub/config.js +123 -0
  172. package/dist/programs/hub/config.js.map +1 -0
  173. package/dist/programs/hub/index.d.ts +3 -0
  174. package/dist/programs/hub/index.js +4 -0
  175. package/dist/programs/hub/index.js.map +1 -0
  176. package/dist/programs/hub/main.d.ts +1 -0
  177. package/dist/programs/hub/main.js +5 -0
  178. package/dist/programs/hub/main.js.map +1 -0
  179. package/dist/programs/hub/read.d.ts +1 -0
  180. package/dist/programs/hub/read.js +57 -0
  181. package/dist/programs/hub/read.js.map +1 -0
  182. package/dist/programs/hub/write.d.ts +1 -0
  183. package/dist/programs/hub/write.js +217 -0
  184. package/dist/programs/hub/write.js.map +1 -0
  185. package/dist/programs/index.d.ts +11 -0
  186. package/dist/programs/index.js +11 -17
  187. package/dist/programs/index.js.map +1 -1
  188. package/dist/programs/operator-grid/config.d.ts +2 -0
  189. package/dist/programs/operator-grid/config.js +81 -0
  190. package/dist/programs/operator-grid/config.js.map +1 -0
  191. package/dist/programs/operator-grid/index.d.ts +3 -0
  192. package/dist/programs/operator-grid/index.js +4 -0
  193. package/dist/programs/operator-grid/index.js.map +1 -0
  194. package/dist/programs/operator-grid/main.d.ts +1 -0
  195. package/dist/programs/operator-grid/main.js +5 -0
  196. package/dist/programs/operator-grid/main.js.map +1 -0
  197. package/dist/programs/operator-grid/read.d.ts +1 -0
  198. package/dist/programs/operator-grid/read.js +24 -0
  199. package/dist/programs/operator-grid/read.js.map +1 -0
  200. package/dist/programs/operator-grid/write.d.ts +1 -0
  201. package/dist/programs/operator-grid/write.js +109 -0
  202. package/dist/programs/operator-grid/write.js.map +1 -0
  203. package/dist/programs/pdg/config.d.ts +2 -0
  204. package/dist/programs/pdg/config.js +133 -0
  205. package/dist/programs/pdg/config.js.map +1 -0
  206. package/dist/programs/pdg/index.d.ts +3 -0
  207. package/dist/programs/pdg/index.js +4 -0
  208. package/dist/programs/pdg/index.js.map +1 -0
  209. package/dist/programs/pdg/main.d.ts +1 -0
  210. package/dist/programs/pdg/main.js +5 -0
  211. package/dist/programs/pdg/main.js.map +1 -0
  212. package/dist/programs/pdg/read.d.ts +1 -0
  213. package/dist/programs/pdg/read.js +24 -0
  214. package/dist/programs/pdg/read.js.map +1 -0
  215. package/dist/programs/pdg/write.d.ts +1 -0
  216. package/dist/programs/pdg/write.js +311 -0
  217. package/dist/programs/pdg/write.js.map +1 -0
  218. package/dist/programs/pdg-helpers.d.ts +1 -0
  219. package/dist/programs/pdg-helpers.js +207 -0
  220. package/dist/programs/pdg-helpers.js.map +1 -0
  221. package/dist/programs/report.d.ts +1 -0
  222. package/dist/programs/report.js +89 -0
  223. package/dist/programs/report.js.map +1 -0
  224. package/dist/programs/vault/config.d.ts +2 -0
  225. package/dist/programs/vault/config.js +70 -0
  226. package/dist/programs/vault/config.js.map +1 -0
  227. package/dist/programs/vault/index.d.ts +3 -0
  228. package/dist/programs/vault/index.js +4 -0
  229. package/dist/programs/vault/index.js.map +1 -0
  230. package/dist/programs/vault/main.d.ts +1 -0
  231. package/dist/programs/vault/main.js +3 -0
  232. package/dist/programs/vault/main.js.map +1 -0
  233. package/dist/programs/vault/read.d.ts +1 -0
  234. package/dist/programs/vault/read.js +25 -0
  235. package/dist/programs/vault/read.js.map +1 -0
  236. package/dist/programs/vault/write.d.ts +1 -0
  237. package/dist/programs/vault/write.js +203 -0
  238. package/dist/programs/vault/write.js.map +1 -0
  239. package/dist/programs/vault-factory/config.d.ts +2 -0
  240. package/dist/programs/vault-factory/config.js +2 -0
  241. package/dist/programs/vault-factory/config.js.map +1 -0
  242. package/dist/programs/vault-factory/index.d.ts +3 -0
  243. package/dist/programs/vault-factory/index.js +4 -0
  244. package/dist/programs/vault-factory/index.js.map +1 -0
  245. package/dist/programs/vault-factory/main.d.ts +1 -0
  246. package/dist/programs/vault-factory/main.js +5 -0
  247. package/dist/programs/vault-factory/main.js.map +1 -0
  248. package/dist/programs/vault-factory/read.d.ts +1 -0
  249. package/dist/programs/vault-factory/read.js +24 -0
  250. package/dist/programs/vault-factory/read.js.map +1 -0
  251. package/dist/programs/vault-factory/write.d.ts +1 -0
  252. package/dist/programs/vault-factory/write.js +72 -0
  253. package/dist/programs/vault-factory/write.js.map +1 -0
  254. package/dist/programs/vault-viewer/config.d.ts +2 -0
  255. package/dist/programs/vault-viewer/config.js +85 -0
  256. package/dist/programs/vault-viewer/config.js.map +1 -0
  257. package/dist/programs/vault-viewer/index.d.ts +2 -0
  258. package/dist/programs/vault-viewer/index.js +3 -0
  259. package/dist/programs/vault-viewer/index.js.map +1 -0
  260. package/dist/programs/vault-viewer/main.d.ts +1 -0
  261. package/dist/programs/vault-viewer/main.js +10 -0
  262. package/dist/programs/vault-viewer/main.js.map +1 -0
  263. package/dist/programs/vault-viewer/read.d.ts +1 -0
  264. package/dist/programs/vault-viewer/read.js +55 -0
  265. package/dist/programs/vault-viewer/read.js.map +1 -0
  266. package/dist/programs/voting.d.ts +1 -0
  267. package/dist/programs/voting.js +18 -0
  268. package/dist/programs/voting.js.map +1 -0
  269. package/dist/providers/index.d.ts +1 -0
  270. package/dist/providers/index.js +1 -17
  271. package/dist/providers/index.js.map +1 -1
  272. package/dist/providers/wallet.d.ts +6897 -0
  273. package/dist/providers/wallet.js +20 -29
  274. package/dist/providers/wallet.js.map +1 -1
  275. package/dist/types/common.d.ts +31 -0
  276. package/dist/types/common.js +2 -0
  277. package/dist/types/common.js.map +1 -0
  278. package/dist/types/config.d.ts +23 -0
  279. package/dist/types/config.js +2 -0
  280. package/dist/types/config.js.map +1 -0
  281. package/dist/types/index.d.ts +2 -0
  282. package/dist/types/index.js +3 -0
  283. package/dist/types/index.js.map +1 -0
  284. package/dist/utils/arguments.d.ts +13 -0
  285. package/dist/utils/arguments.js +67 -0
  286. package/dist/utils/arguments.js.map +1 -0
  287. package/dist/utils/bls.d.ts +21 -0
  288. package/dist/utils/bls.js +101 -0
  289. package/dist/utils/bls.js.map +1 -0
  290. package/dist/utils/calculate-overview.d.ts +19 -0
  291. package/dist/utils/calculate-overview.js +55 -0
  292. package/dist/utils/calculate-overview.js.map +1 -0
  293. package/dist/utils/commands/dashboard.d.ts +6 -0
  294. package/dist/utils/commands/dashboard.js +103 -0
  295. package/dist/utils/commands/dashboard.js.map +1 -0
  296. package/dist/utils/commands/index.d.ts +1 -0
  297. package/dist/utils/commands/index.js +2 -0
  298. package/dist/utils/commands/index.js.map +1 -0
  299. package/dist/utils/contract.d.ts +25 -0
  300. package/dist/utils/contract.js +138 -0
  301. package/dist/utils/contract.js.map +1 -0
  302. package/dist/utils/data-validators.d.ts +6 -0
  303. package/dist/utils/data-validators.js +54 -0
  304. package/dist/utils/data-validators.js.map +1 -0
  305. package/dist/utils/error-handler.d.ts +1 -0
  306. package/dist/utils/error-handler.js +13 -0
  307. package/dist/utils/error-handler.js.map +1 -0
  308. package/dist/utils/fetchCL.d.ts +14 -0
  309. package/dist/utils/fetchCL.js +57 -0
  310. package/dist/utils/fetchCL.js.map +1 -0
  311. package/dist/utils/get-commands.d.ts +2 -0
  312. package/dist/utils/get-commands.js +11 -0
  313. package/dist/utils/get-commands.js.map +1 -0
  314. package/dist/utils/get-deposit-data-root.d.ts +7 -0
  315. package/dist/utils/get-deposit-data-root.js +40 -0
  316. package/dist/utils/get-deposit-data-root.js.map +1 -0
  317. package/dist/utils/get-value.d.ts +1 -0
  318. package/dist/utils/get-value.js +5 -11
  319. package/dist/utils/get-value.js.map +1 -1
  320. package/dist/utils/health.d.ts +27748 -0
  321. package/dist/utils/health.js +84 -0
  322. package/dist/utils/health.js.map +1 -0
  323. package/dist/utils/index.d.ts +22 -0
  324. package/dist/utils/index.js +22 -17
  325. package/dist/utils/index.js.map +1 -1
  326. package/dist/utils/ipfs.d.ts +6 -0
  327. package/dist/utils/ipfs.js +54 -0
  328. package/dist/utils/ipfs.js.map +1 -0
  329. package/dist/utils/logging/console.d.ts +7 -0
  330. package/dist/utils/logging/console.js +23 -0
  331. package/dist/utils/logging/console.js.map +1 -0
  332. package/dist/utils/logging/constants.d.ts +2 -0
  333. package/dist/utils/logging/constants.js +12 -0
  334. package/dist/utils/logging/constants.js.map +1 -0
  335. package/dist/utils/logging/index.d.ts +1 -0
  336. package/dist/utils/logging/index.js +2 -0
  337. package/dist/utils/logging/index.js.map +1 -0
  338. package/dist/utils/prompts/dashboard.d.ts +29 -0
  339. package/dist/utils/prompts/dashboard.js +63 -0
  340. package/dist/utils/prompts/dashboard.js.map +1 -0
  341. package/dist/utils/prompts/default.d.ts +3 -0
  342. package/dist/utils/prompts/default.js +17 -0
  343. package/dist/utils/prompts/default.js.map +1 -0
  344. package/dist/utils/prompts/index.d.ts +5 -0
  345. package/dist/utils/prompts/index.js +6 -0
  346. package/dist/utils/prompts/index.js.map +1 -0
  347. package/dist/utils/prompts/operations.d.ts +9 -0
  348. package/dist/utils/prompts/operations.js +41 -0
  349. package/dist/utils/prompts/operations.js.map +1 -0
  350. package/dist/utils/prompts/predeposit-guarantee.d.ts +3 -0
  351. package/dist/utils/prompts/predeposit-guarantee.js +22 -0
  352. package/dist/utils/prompts/predeposit-guarantee.js.map +1 -0
  353. package/dist/utils/prompts/vault.d.ts +2 -0
  354. package/dist/utils/prompts/vault.js +14 -0
  355. package/dist/utils/prompts/vault.js.map +1 -0
  356. package/dist/utils/proof/create-proof.d.ts +11 -0
  357. package/dist/utils/proof/create-proof.js +38 -0
  358. package/dist/utils/proof/create-proof.js.map +1 -0
  359. package/dist/utils/proof/first-validator-gindex.d.ts +1 -0
  360. package/dist/utils/proof/first-validator-gindex.js +27 -0
  361. package/dist/utils/proof/first-validator-gindex.js.map +1 -0
  362. package/dist/utils/proof/index.d.ts +4 -0
  363. package/dist/utils/proof/index.js +5 -0
  364. package/dist/utils/proof/index.js.map +1 -0
  365. package/dist/utils/proof/merkle-utils.d.ts +54 -0
  366. package/dist/utils/proof/merkle-utils.js +173 -0
  367. package/dist/utils/proof/merkle-utils.js.map +1 -0
  368. package/dist/utils/proof/proofs.d.ts +305 -0
  369. package/dist/utils/proof/proofs.js +52 -0
  370. package/dist/utils/proof/proofs.js.map +1 -0
  371. package/dist/utils/proof/report-proof.d.ts +5 -0
  372. package/dist/utils/proof/report-proof.js +26 -0
  373. package/dist/utils/proof/report-proof.js.map +1 -0
  374. package/dist/utils/read-programs-by-abi.d.ts +18 -0
  375. package/dist/utils/read-programs-by-abi.js +87 -0
  376. package/dist/utils/read-programs-by-abi.js.map +1 -0
  377. package/dist/utils/report.d.ts +75 -0
  378. package/dist/utils/report.js +68 -0
  379. package/dist/utils/report.js.map +1 -0
  380. package/dist/utils/required-lock.d.ts +5 -0
  381. package/dist/utils/required-lock.js +21 -0
  382. package/dist/utils/required-lock.js.map +1 -0
  383. package/dist/utils/resolve-path.d.ts +1 -0
  384. package/dist/utils/resolve-path.js +10 -0
  385. package/dist/utils/resolve-path.js.map +1 -0
  386. package/dist/utils/sleep.d.ts +1 -0
  387. package/dist/utils/sleep.js +4 -0
  388. package/dist/utils/sleep.js.map +1 -0
  389. package/dist/utils/spinner/index.d.ts +1 -0
  390. package/dist/utils/spinner/index.js +2 -0
  391. package/dist/utils/spinner/index.js.map +1 -0
  392. package/dist/utils/spinner/spinners.d.ts +7 -0
  393. package/dist/utils/spinner/spinners.js +16 -0
  394. package/dist/utils/spinner/spinners.js.map +1 -0
  395. package/dist/utils/spinner/spinners.json +119 -0
  396. package/dist/version/index.d.ts +1 -0
  397. package/dist/version/index.js +1 -0
  398. package/dist/version/index.js.map +1 -0
  399. package/package.json +61 -12
  400. package/dist/programs/vault-hub.js +0 -137
  401. package/dist/programs/vault-hub.js.map +0 -1
package/README.md CHANGED
@@ -1 +1,102 @@
1
- # liquid-staking-vault-cli
1
+ # Lido Staking Vault CLI
2
+
3
+ A command-line interface (CLI) tool for managing lido staking vaults. Simplify your staking operations with intuitive commands and streamlined workflows.
4
+
5
+ ## Changelog
6
+
7
+ For changes between versions see [Changelog](./CHANGELOG.md)
8
+
9
+ ## Table of Contents
10
+
11
+ - [Features](#features)
12
+ - [Prerequisites](#prerequisites)
13
+ - [Installation](#installation)
14
+ - [Configuration](#configuration)
15
+ - [Usage](#usage)
16
+ - [Examples](#examples)
17
+ - [Programs](#programs)
18
+ - [License](#license)
19
+
20
+ ## Features
21
+
22
+ - **Easy Setup**: Quick installation and configuration to get you started.
23
+ - **Vault Management**: Create, update, and delete staking vaults with simple commands.
24
+ - **Monitoring**: Track vault metrics.
25
+
26
+ ## Prerequisites
27
+
28
+ - **Node.js**: Ensure you have Node.js (v20 or later) installed.
29
+ - **npm**: Node Package Manager is required to install dependencies.
30
+
31
+ ## Installation
32
+
33
+ ### NPM
34
+
35
+ ```bash
36
+ git clone git@github.com:lidofinance/lido-staking-vault-cli.git
37
+ ```
38
+
39
+ ## Configuration
40
+
41
+ Before using the CLI, configure your environment variables. You can set them in a `.env` file in your project root.
42
+
43
+ ```.env
44
+ CHAIN_ID=560048 // required
45
+ CL_URL=url
46
+ EL_URL=url
47
+
48
+ # Contract addresses
49
+ DEPLOYED=deployed-hoodi-vaults-testnet.json // required
50
+
51
+ # Wallet
52
+ PRIVATE_KEY=0x
53
+ ```
54
+
55
+ If you plan to manage contracts the **privateKey** is required property for this type of operations.
56
+ For using elLink in a right way be attentive to match rpc resolver link and its chain ID.
57
+
58
+ ## Usage
59
+
60
+ After installation and configuration, you can start using the CLI to manage your staking vaults.
61
+
62
+ ```bash
63
+ yarn start [command] [options]
64
+ ```
65
+
66
+ ```bash
67
+ yarn start -h
68
+ ```
69
+
70
+ ### Examples
71
+
72
+ **VaultHub constants**
73
+
74
+ ```bash
75
+ yarn start hub r info
76
+ ```
77
+
78
+ **Count of all vaults**
79
+
80
+ ```bash
81
+ yarn start hub r v-count
82
+ ```
83
+
84
+ ## Programs
85
+
86
+ - [Account](https://lidofinance.github.io/lido-staking-vault-cli/commands/account)
87
+ - [VaultHub](https://lidofinance.github.io/lido-staking-vault-cli/commands/vault-hub)
88
+ - [VaultFactory](https://lidofinance.github.io/lido-staking-vault-cli/commands/vault-factory)
89
+ - [Vault](https://lidofinance.github.io/lido-staking-vault-cli/commands/vault)
90
+ - [Dashboard](https://lidofinance.github.io/lido-staking-vault-cli/commands/dashboard)
91
+ - [PredepositGuarantee](https://lidofinance.github.io/lido-staking-vault-cli/commands/predeposit-guarantee)
92
+ - [OperatorGrid](https://lidofinance.github.io/lido-staking-vault-cli/commands/operator-grid)
93
+ - [VaultViewer](https://lidofinance.github.io/lido-staking-vault-cli/commands/vault-viewer)
94
+ - [Report](https://lidofinance.github.io/lido-staking-vault-cli/commands/report)
95
+
96
+ ## Documentation
97
+
98
+ For additional information about available methods and functionality, refer to the [the documentation for the Lido Staking Vault CLI](https://lidofinance.github.io/lido-staking-vault-cli/).
99
+
100
+ ## License
101
+
102
+ This project is licensed under the [MIT License](LICENSE).
@@ -0,0 +1,178 @@
1
+ export declare const BLSHarnessAbi: readonly [{
2
+ readonly inputs: readonly [];
3
+ readonly stateMutability: "nonpayable";
4
+ readonly type: "constructor";
5
+ }, {
6
+ readonly inputs: readonly [];
7
+ readonly name: "InputHasInfinityPoints";
8
+ readonly type: "error";
9
+ }, {
10
+ readonly inputs: readonly [];
11
+ readonly name: "InvalidPubkeyLength";
12
+ readonly type: "error";
13
+ }, {
14
+ readonly inputs: readonly [];
15
+ readonly name: "InvalidSignature";
16
+ readonly type: "error";
17
+ }, {
18
+ readonly inputs: readonly [];
19
+ readonly name: "LOCAL_MESSAGE_1";
20
+ readonly outputs: readonly [{
21
+ readonly components: readonly [{
22
+ readonly components: readonly [{
23
+ readonly internalType: "bytes";
24
+ readonly name: "pubkey";
25
+ readonly type: "bytes";
26
+ }, {
27
+ readonly internalType: "bytes";
28
+ readonly name: "signature";
29
+ readonly type: "bytes";
30
+ }, {
31
+ readonly internalType: "uint256";
32
+ readonly name: "amount";
33
+ readonly type: "uint256";
34
+ }, {
35
+ readonly internalType: "bytes32";
36
+ readonly name: "depositDataRoot";
37
+ readonly type: "bytes32";
38
+ }];
39
+ readonly internalType: "struct StakingVaultDeposit";
40
+ readonly name: "deposit";
41
+ readonly type: "tuple";
42
+ }, {
43
+ readonly components: readonly [{
44
+ readonly components: readonly [{
45
+ readonly internalType: "bytes32";
46
+ readonly name: "a";
47
+ readonly type: "bytes32";
48
+ }, {
49
+ readonly internalType: "bytes32";
50
+ readonly name: "b";
51
+ readonly type: "bytes32";
52
+ }];
53
+ readonly internalType: "struct BLS12_381.Fp";
54
+ readonly name: "pubkeyY";
55
+ readonly type: "tuple";
56
+ }, {
57
+ readonly components: readonly [{
58
+ readonly internalType: "bytes32";
59
+ readonly name: "c0_a";
60
+ readonly type: "bytes32";
61
+ }, {
62
+ readonly internalType: "bytes32";
63
+ readonly name: "c0_b";
64
+ readonly type: "bytes32";
65
+ }, {
66
+ readonly internalType: "bytes32";
67
+ readonly name: "c1_a";
68
+ readonly type: "bytes32";
69
+ }, {
70
+ readonly internalType: "bytes32";
71
+ readonly name: "c1_b";
72
+ readonly type: "bytes32";
73
+ }];
74
+ readonly internalType: "struct BLS12_381.Fp2";
75
+ readonly name: "signatureY";
76
+ readonly type: "tuple";
77
+ }];
78
+ readonly internalType: "struct BLS12_381.DepositY";
79
+ readonly name: "depositYComponents";
80
+ readonly type: "tuple";
81
+ }, {
82
+ readonly internalType: "bytes32";
83
+ readonly name: "withdrawalCredentials";
84
+ readonly type: "bytes32";
85
+ }];
86
+ readonly internalType: "struct PrecomputedDepositMessage";
87
+ readonly name: "";
88
+ readonly type: "tuple";
89
+ }];
90
+ readonly stateMutability: "pure";
91
+ readonly type: "function";
92
+ }, {
93
+ readonly inputs: readonly [];
94
+ readonly name: "verifier";
95
+ readonly outputs: readonly [{
96
+ readonly internalType: "contract BLS__HarnessVerifier";
97
+ readonly name: "";
98
+ readonly type: "address";
99
+ }];
100
+ readonly stateMutability: "view";
101
+ readonly type: "function";
102
+ }, {
103
+ readonly inputs: readonly [];
104
+ readonly name: "verifyBLSSupport";
105
+ readonly outputs: readonly [];
106
+ readonly stateMutability: "view";
107
+ readonly type: "function";
108
+ }, {
109
+ readonly inputs: readonly [{
110
+ readonly components: readonly [{
111
+ readonly internalType: "bytes";
112
+ readonly name: "pubkey";
113
+ readonly type: "bytes";
114
+ }, {
115
+ readonly internalType: "bytes";
116
+ readonly name: "signature";
117
+ readonly type: "bytes";
118
+ }, {
119
+ readonly internalType: "uint256";
120
+ readonly name: "amount";
121
+ readonly type: "uint256";
122
+ }, {
123
+ readonly internalType: "bytes32";
124
+ readonly name: "depositDataRoot";
125
+ readonly type: "bytes32";
126
+ }];
127
+ readonly internalType: "struct StakingVaultDeposit";
128
+ readonly name: "deposit";
129
+ readonly type: "tuple";
130
+ }, {
131
+ readonly components: readonly [{
132
+ readonly components: readonly [{
133
+ readonly internalType: "bytes32";
134
+ readonly name: "a";
135
+ readonly type: "bytes32";
136
+ }, {
137
+ readonly internalType: "bytes32";
138
+ readonly name: "b";
139
+ readonly type: "bytes32";
140
+ }];
141
+ readonly internalType: "struct BLS12_381.Fp";
142
+ readonly name: "pubkeyY";
143
+ readonly type: "tuple";
144
+ }, {
145
+ readonly components: readonly [{
146
+ readonly internalType: "bytes32";
147
+ readonly name: "c0_a";
148
+ readonly type: "bytes32";
149
+ }, {
150
+ readonly internalType: "bytes32";
151
+ readonly name: "c0_b";
152
+ readonly type: "bytes32";
153
+ }, {
154
+ readonly internalType: "bytes32";
155
+ readonly name: "c1_a";
156
+ readonly type: "bytes32";
157
+ }, {
158
+ readonly internalType: "bytes32";
159
+ readonly name: "c1_b";
160
+ readonly type: "bytes32";
161
+ }];
162
+ readonly internalType: "struct BLS12_381.Fp2";
163
+ readonly name: "signatureY";
164
+ readonly type: "tuple";
165
+ }];
166
+ readonly internalType: "struct BLS12_381.DepositY";
167
+ readonly name: "depositY";
168
+ readonly type: "tuple";
169
+ }, {
170
+ readonly internalType: "bytes32";
171
+ readonly name: "withdrawalCredentials";
172
+ readonly type: "bytes32";
173
+ }];
174
+ readonly name: "verifyDepositMessage";
175
+ readonly outputs: readonly [];
176
+ readonly stateMutability: "view";
177
+ readonly type: "function";
178
+ }];
@@ -0,0 +1,232 @@
1
+ export const BLSHarnessAbi = [
2
+ {
3
+ inputs: [],
4
+ stateMutability: 'nonpayable',
5
+ type: 'constructor',
6
+ },
7
+ {
8
+ inputs: [],
9
+ name: 'InputHasInfinityPoints',
10
+ type: 'error',
11
+ },
12
+ {
13
+ inputs: [],
14
+ name: 'InvalidPubkeyLength',
15
+ type: 'error',
16
+ },
17
+ {
18
+ inputs: [],
19
+ name: 'InvalidSignature',
20
+ type: 'error',
21
+ },
22
+ {
23
+ inputs: [],
24
+ name: 'LOCAL_MESSAGE_1',
25
+ outputs: [
26
+ {
27
+ components: [
28
+ {
29
+ components: [
30
+ {
31
+ internalType: 'bytes',
32
+ name: 'pubkey',
33
+ type: 'bytes',
34
+ },
35
+ {
36
+ internalType: 'bytes',
37
+ name: 'signature',
38
+ type: 'bytes',
39
+ },
40
+ {
41
+ internalType: 'uint256',
42
+ name: 'amount',
43
+ type: 'uint256',
44
+ },
45
+ {
46
+ internalType: 'bytes32',
47
+ name: 'depositDataRoot',
48
+ type: 'bytes32',
49
+ },
50
+ ],
51
+ internalType: 'struct StakingVaultDeposit',
52
+ name: 'deposit',
53
+ type: 'tuple',
54
+ },
55
+ {
56
+ components: [
57
+ {
58
+ components: [
59
+ {
60
+ internalType: 'bytes32',
61
+ name: 'a',
62
+ type: 'bytes32',
63
+ },
64
+ {
65
+ internalType: 'bytes32',
66
+ name: 'b',
67
+ type: 'bytes32',
68
+ },
69
+ ],
70
+ internalType: 'struct BLS12_381.Fp',
71
+ name: 'pubkeyY',
72
+ type: 'tuple',
73
+ },
74
+ {
75
+ components: [
76
+ {
77
+ internalType: 'bytes32',
78
+ name: 'c0_a',
79
+ type: 'bytes32',
80
+ },
81
+ {
82
+ internalType: 'bytes32',
83
+ name: 'c0_b',
84
+ type: 'bytes32',
85
+ },
86
+ {
87
+ internalType: 'bytes32',
88
+ name: 'c1_a',
89
+ type: 'bytes32',
90
+ },
91
+ {
92
+ internalType: 'bytes32',
93
+ name: 'c1_b',
94
+ type: 'bytes32',
95
+ },
96
+ ],
97
+ internalType: 'struct BLS12_381.Fp2',
98
+ name: 'signatureY',
99
+ type: 'tuple',
100
+ },
101
+ ],
102
+ internalType: 'struct BLS12_381.DepositY',
103
+ name: 'depositYComponents',
104
+ type: 'tuple',
105
+ },
106
+ {
107
+ internalType: 'bytes32',
108
+ name: 'withdrawalCredentials',
109
+ type: 'bytes32',
110
+ },
111
+ ],
112
+ internalType: 'struct PrecomputedDepositMessage',
113
+ name: '',
114
+ type: 'tuple',
115
+ },
116
+ ],
117
+ stateMutability: 'pure',
118
+ type: 'function',
119
+ },
120
+ {
121
+ inputs: [],
122
+ name: 'verifier',
123
+ outputs: [
124
+ {
125
+ internalType: 'contract BLS__HarnessVerifier',
126
+ name: '',
127
+ type: 'address',
128
+ },
129
+ ],
130
+ stateMutability: 'view',
131
+ type: 'function',
132
+ },
133
+ {
134
+ inputs: [],
135
+ name: 'verifyBLSSupport',
136
+ outputs: [],
137
+ stateMutability: 'view',
138
+ type: 'function',
139
+ },
140
+ {
141
+ inputs: [
142
+ {
143
+ components: [
144
+ {
145
+ internalType: 'bytes',
146
+ name: 'pubkey',
147
+ type: 'bytes',
148
+ },
149
+ {
150
+ internalType: 'bytes',
151
+ name: 'signature',
152
+ type: 'bytes',
153
+ },
154
+ {
155
+ internalType: 'uint256',
156
+ name: 'amount',
157
+ type: 'uint256',
158
+ },
159
+ {
160
+ internalType: 'bytes32',
161
+ name: 'depositDataRoot',
162
+ type: 'bytes32',
163
+ },
164
+ ],
165
+ internalType: 'struct StakingVaultDeposit',
166
+ name: 'deposit',
167
+ type: 'tuple',
168
+ },
169
+ {
170
+ components: [
171
+ {
172
+ components: [
173
+ {
174
+ internalType: 'bytes32',
175
+ name: 'a',
176
+ type: 'bytes32',
177
+ },
178
+ {
179
+ internalType: 'bytes32',
180
+ name: 'b',
181
+ type: 'bytes32',
182
+ },
183
+ ],
184
+ internalType: 'struct BLS12_381.Fp',
185
+ name: 'pubkeyY',
186
+ type: 'tuple',
187
+ },
188
+ {
189
+ components: [
190
+ {
191
+ internalType: 'bytes32',
192
+ name: 'c0_a',
193
+ type: 'bytes32',
194
+ },
195
+ {
196
+ internalType: 'bytes32',
197
+ name: 'c0_b',
198
+ type: 'bytes32',
199
+ },
200
+ {
201
+ internalType: 'bytes32',
202
+ name: 'c1_a',
203
+ type: 'bytes32',
204
+ },
205
+ {
206
+ internalType: 'bytes32',
207
+ name: 'c1_b',
208
+ type: 'bytes32',
209
+ },
210
+ ],
211
+ internalType: 'struct BLS12_381.Fp2',
212
+ name: 'signatureY',
213
+ type: 'tuple',
214
+ },
215
+ ],
216
+ internalType: 'struct BLS12_381.DepositY',
217
+ name: 'depositY',
218
+ type: 'tuple',
219
+ },
220
+ {
221
+ internalType: 'bytes32',
222
+ name: 'withdrawalCredentials',
223
+ type: 'bytes32',
224
+ },
225
+ ],
226
+ name: 'verifyDepositMessage',
227
+ outputs: [],
228
+ stateMutability: 'view',
229
+ type: 'function',
230
+ },
231
+ ];
232
+ //# sourceMappingURL=BlsHarness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlsHarness.js","sourceRoot":"","sources":["../../abi/BlsHarness.ts"],"names":[],"mappings":"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"}