@lidofinance/lsv-cli 1.0.0-alpha.47 → 1.0.0-alpha.49

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 (309) hide show
  1. package/README.md +1 -1
  2. package/dist/abi/Dashboard.d.ts +160 -0
  3. package/dist/abi/Dashboard.js +2 -0
  4. package/dist/abi/Dashboard.js.map +1 -1
  5. package/dist/abi/OperatorGrid.d.ts +166 -5
  6. package/dist/abi/OperatorGrid.js +15 -12
  7. package/dist/abi/OperatorGrid.js.map +1 -1
  8. package/dist/abi/VaultFactory.d.ts +504 -0
  9. package/dist/abi/VaultFactory.js +4 -0
  10. package/dist/abi/VaultFactory.js.map +1 -1
  11. package/dist/abi/VaultHub.d.ts +451 -106
  12. package/dist/abi/VaultHub.js +26 -23
  13. package/dist/abi/VaultHub.js.map +1 -1
  14. package/dist/command/index.js +2 -0
  15. package/dist/command/index.js.map +1 -1
  16. package/dist/configs/constants.d.ts +7 -9
  17. package/dist/contracts/vault-factory.d.ts +9414 -1350
  18. package/dist/features/dashboard.js +141 -111
  19. package/dist/features/dashboard.js.map +1 -1
  20. package/dist/features/index.d.ts +0 -1
  21. package/dist/features/index.js +0 -1
  22. package/dist/features/index.js.map +1 -1
  23. package/dist/features/operator-grid.js +13 -6
  24. package/dist/features/operator-grid.js.map +1 -1
  25. package/dist/features/pdg.d.ts +2 -0
  26. package/dist/features/pdg.js +43 -7
  27. package/dist/features/pdg.js.map +1 -1
  28. package/dist/features/vault-factory.d.ts +5 -0
  29. package/dist/features/vault-factory.js +7 -1
  30. package/dist/features/vault-factory.js.map +1 -1
  31. package/dist/features/vault-hub.js +16 -9
  32. package/dist/features/vault-hub.js.map +1 -1
  33. package/dist/features/vault.js +9 -7
  34. package/dist/features/vault.js.map +1 -1
  35. package/dist/programs/account/index.d.ts +3 -0
  36. package/dist/programs/account/index.js +4 -0
  37. package/dist/programs/account/index.js.map +1 -0
  38. package/dist/programs/account/main.d.ts +1 -0
  39. package/dist/programs/account/main.js +5 -0
  40. package/dist/programs/account/main.js.map +1 -0
  41. package/dist/programs/account/read.js +109 -0
  42. package/dist/programs/account/read.js.map +1 -0
  43. package/dist/programs/account/write.js +65 -0
  44. package/dist/programs/account/write.js.map +1 -0
  45. package/dist/programs/dashboard/read.js +15 -6
  46. package/dist/programs/dashboard/read.js.map +1 -1
  47. package/dist/programs/dashboard/write.js +83 -11
  48. package/dist/programs/dashboard/write.js.map +1 -1
  49. package/dist/programs/hub/read.js +4 -2
  50. package/dist/programs/hub/read.js.map +1 -1
  51. package/dist/programs/index.d.ts +2 -2
  52. package/dist/programs/index.js +2 -2
  53. package/dist/programs/index.js.map +1 -1
  54. package/dist/programs/metrics/index.d.ts +2 -0
  55. package/dist/programs/metrics/index.js +3 -0
  56. package/dist/programs/metrics/index.js.map +1 -0
  57. package/dist/programs/metrics/main.d.ts +1 -0
  58. package/dist/programs/metrics/main.js +3 -0
  59. package/dist/programs/metrics/main.js.map +1 -0
  60. package/dist/programs/metrics/read.d.ts +1 -0
  61. package/dist/programs/metrics/read.js +96 -0
  62. package/dist/programs/metrics/read.js.map +1 -0
  63. package/dist/programs/operator-grid/read.js +8 -2
  64. package/dist/programs/operator-grid/read.js.map +1 -1
  65. package/dist/programs/pdg/config.js +1 -0
  66. package/dist/programs/pdg/config.js.map +1 -1
  67. package/dist/programs/pdg/read.js +18 -4
  68. package/dist/programs/pdg/read.js.map +1 -1
  69. package/dist/programs/pdg/write.js +82 -78
  70. package/dist/programs/pdg/write.js.map +1 -1
  71. package/dist/programs/pdg-helpers.js +32 -27
  72. package/dist/programs/pdg-helpers.js.map +1 -1
  73. package/dist/programs/report/write.js +2 -37
  74. package/dist/programs/report/write.js.map +1 -1
  75. package/dist/programs/vault/write.js +13 -13
  76. package/dist/programs/vault/write.js.map +1 -1
  77. package/dist/programs/vault-factory/write.js +16 -2
  78. package/dist/programs/vault-factory/write.js.map +1 -1
  79. package/dist/programs/vault-viewer/read.js +31 -16
  80. package/dist/programs/vault-viewer/read.js.map +1 -1
  81. package/dist/providers/wallet.d.ts +11 -11
  82. package/dist/providers/wallet.js +3 -2
  83. package/dist/providers/wallet.js.map +1 -1
  84. package/dist/tests/__mocks__/@lodestar/types.d.ts +1 -0
  85. package/dist/tests/__mocks__/@lodestar/types.js +6 -0
  86. package/dist/tests/__mocks__/@lodestar/types.js.map +1 -0
  87. package/dist/tests/utils/arguments.test.d.ts +1 -0
  88. package/dist/tests/utils/arguments.test.js +92 -0
  89. package/dist/tests/utils/arguments.test.js.map +1 -0
  90. package/dist/tests/utils/calculate-overview.test.d.ts +1 -0
  91. package/dist/tests/utils/calculate-overview.test.js +30 -0
  92. package/dist/tests/utils/calculate-overview.test.js.map +1 -0
  93. package/dist/tests/utils/data-validators.test.d.ts +1 -0
  94. package/dist/tests/utils/data-validators.test.js +56 -0
  95. package/dist/tests/utils/data-validators.test.js.map +1 -0
  96. package/dist/tests/utils/error-handler.test.d.ts +1 -0
  97. package/dist/tests/utils/error-handler.test.js +51 -0
  98. package/dist/tests/utils/error-handler.test.js.map +1 -0
  99. package/dist/tests/utils/fetchCL.test.d.ts +1 -0
  100. package/dist/tests/utils/fetchCL.test.js +57 -0
  101. package/dist/tests/utils/fetchCL.test.js.map +1 -0
  102. package/dist/tests/utils/get-commands.test.d.ts +1 -0
  103. package/dist/tests/utils/get-commands.test.js +19 -0
  104. package/dist/tests/utils/get-commands.test.js.map +1 -0
  105. package/dist/tests/utils/get-deposit-data-root.test.d.ts +1 -0
  106. package/dist/tests/utils/get-deposit-data-root.test.js +31 -0
  107. package/dist/tests/utils/get-deposit-data-root.test.js.map +1 -0
  108. package/dist/tests/utils/get-value.test.d.ts +1 -0
  109. package/dist/tests/utils/get-value.test.js +13 -0
  110. package/dist/tests/utils/get-value.test.js.map +1 -0
  111. package/dist/tests/utils/health.test.d.ts +1 -0
  112. package/dist/tests/utils/health.test.js +22 -0
  113. package/dist/tests/utils/health.test.js.map +1 -0
  114. package/dist/tests/utils/interrupt-handler.test.d.ts +1 -0
  115. package/dist/tests/utils/interrupt-handler.test.js +15 -0
  116. package/dist/tests/utils/interrupt-handler.test.js.map +1 -0
  117. package/dist/tests/utils/ipfs.test.d.ts +1 -0
  118. package/dist/tests/utils/ipfs.test.js +98 -0
  119. package/dist/tests/utils/ipfs.test.js.map +1 -0
  120. package/dist/tests/utils/logging.test.d.ts +1 -0
  121. package/dist/tests/utils/logging.test.js +23 -0
  122. package/dist/tests/utils/logging.test.js.map +1 -0
  123. package/dist/tests/utils/report-proof.test.d.ts +1 -0
  124. package/dist/tests/utils/report-proof.test.js +29 -0
  125. package/dist/tests/utils/report-proof.test.js.map +1 -0
  126. package/dist/tests/utils/report-statistic.test.d.ts +1 -0
  127. package/dist/tests/utils/report-statistic.test.js +247 -0
  128. package/dist/tests/utils/report-statistic.test.js.map +1 -0
  129. package/dist/tests/utils/required-lock.test.d.ts +1 -0
  130. package/dist/tests/utils/required-lock.test.js +26 -0
  131. package/dist/tests/utils/required-lock.test.js.map +1 -0
  132. package/dist/tests/utils/resove-path.test.d.ts +1 -0
  133. package/dist/tests/utils/resove-path.test.js +18 -0
  134. package/dist/tests/utils/resove-path.test.js.map +1 -0
  135. package/dist/tests/utils/sleep.test.d.ts +1 -0
  136. package/dist/tests/utils/sleep.test.js +14 -0
  137. package/dist/tests/utils/sleep.test.js.map +1 -0
  138. package/dist/utils/arguments.d.ts +1 -0
  139. package/dist/utils/arguments.js +4 -1
  140. package/dist/utils/arguments.js.map +1 -1
  141. package/dist/utils/cache.d.ts +18 -0
  142. package/dist/utils/cache.js +109 -0
  143. package/dist/utils/cache.js.map +1 -0
  144. package/dist/utils/calculate-overview-v2.d.ts +28 -0
  145. package/dist/utils/calculate-overview-v2.js +57 -0
  146. package/dist/utils/calculate-overview-v2.js.map +1 -0
  147. package/dist/utils/calculate-overview.d.ts +1 -0
  148. package/dist/utils/calculate-overview.js +4 -1
  149. package/dist/utils/calculate-overview.js.map +1 -1
  150. package/dist/utils/charts/blessed/charts-apr.d.ts +91 -0
  151. package/dist/utils/charts/blessed/charts-apr.js +119 -0
  152. package/dist/utils/charts/blessed/charts-apr.js.map +1 -0
  153. package/dist/utils/charts/blessed/charts-rewards.d.ts +67 -0
  154. package/dist/utils/charts/blessed/charts-rewards.js +106 -0
  155. package/dist/utils/charts/blessed/charts-rewards.js.map +1 -0
  156. package/dist/utils/charts/blessed/constants.d.ts +22 -0
  157. package/dist/utils/charts/blessed/constants.js +23 -0
  158. package/dist/utils/charts/blessed/constants.js.map +1 -0
  159. package/dist/utils/charts/blessed/datasets/bottom-line.d.ts +19 -0
  160. package/dist/utils/charts/blessed/datasets/bottom-line.js +34 -0
  161. package/dist/utils/charts/blessed/datasets/bottom-line.js.map +1 -0
  162. package/dist/utils/charts/blessed/datasets/efficiency.d.ts +18 -0
  163. package/dist/utils/charts/blessed/datasets/efficiency.js +33 -0
  164. package/dist/utils/charts/blessed/datasets/efficiency.js.map +1 -0
  165. package/dist/utils/charts/blessed/datasets/gross-staking-apr.d.ts +18 -0
  166. package/dist/utils/charts/blessed/datasets/gross-staking-apr.js +33 -0
  167. package/dist/utils/charts/blessed/datasets/gross-staking-apr.js.map +1 -0
  168. package/dist/utils/charts/blessed/datasets/gross-staking-rewards.d.ts +24 -0
  169. package/dist/utils/charts/blessed/datasets/gross-staking-rewards.js +39 -0
  170. package/dist/utils/charts/blessed/datasets/gross-staking-rewards.js.map +1 -0
  171. package/dist/utils/charts/blessed/datasets/index.d.ts +9 -0
  172. package/dist/utils/charts/blessed/datasets/index.js +10 -0
  173. package/dist/utils/charts/blessed/datasets/index.js.map +1 -0
  174. package/dist/utils/charts/blessed/datasets/lido-apr.d.ts +19 -0
  175. package/dist/utils/charts/blessed/datasets/lido-apr.js +34 -0
  176. package/dist/utils/charts/blessed/datasets/lido-apr.js.map +1 -0
  177. package/dist/utils/charts/blessed/datasets/net-staking-apr.d.ts +18 -0
  178. package/dist/utils/charts/blessed/datasets/net-staking-apr.js +33 -0
  179. package/dist/utils/charts/blessed/datasets/net-staking-apr.js.map +1 -0
  180. package/dist/utils/charts/blessed/datasets/net-staking-rewards.d.ts +18 -0
  181. package/dist/utils/charts/blessed/datasets/net-staking-rewards.js +33 -0
  182. package/dist/utils/charts/blessed/datasets/net-staking-rewards.js.map +1 -0
  183. package/dist/utils/charts/blessed/datasets/node-operator-rewards.d.ts +24 -0
  184. package/dist/utils/charts/blessed/datasets/node-operator-rewards.js +39 -0
  185. package/dist/utils/charts/blessed/datasets/node-operator-rewards.js.map +1 -0
  186. package/dist/utils/charts/blessed/datasets/prepare-metrics.d.ts +33 -0
  187. package/dist/utils/charts/blessed/datasets/prepare-metrics.js +133 -0
  188. package/dist/utils/charts/blessed/datasets/prepare-metrics.js.map +1 -0
  189. package/dist/utils/charts/blessed/datasets/types.d.ts +4 -0
  190. package/dist/utils/charts/blessed/datasets/types.js +2 -0
  191. package/dist/utils/charts/blessed/datasets/types.js.map +1 -0
  192. package/dist/utils/charts/blessed/index.d.ts +3 -0
  193. package/dist/utils/charts/blessed/index.js +4 -0
  194. package/dist/utils/charts/blessed/index.js.map +1 -0
  195. package/dist/utils/charts/blessed/net-vs-lido-apr.d.ts +13 -0
  196. package/dist/utils/charts/blessed/net-vs-lido-apr.js +19 -0
  197. package/dist/utils/charts/blessed/net-vs-lido-apr.js.map +1 -0
  198. package/dist/utils/charts/blessed/utils.d.ts +62 -0
  199. package/dist/utils/charts/blessed/utils.js +84 -0
  200. package/dist/utils/charts/blessed/utils.js.map +1 -0
  201. package/dist/utils/charts/index.d.ts +2 -0
  202. package/dist/utils/charts/index.js +2 -0
  203. package/dist/utils/charts/index.js.map +1 -1
  204. package/dist/utils/charts/metrics.d.ts +16 -0
  205. package/dist/utils/charts/metrics.js +160 -0
  206. package/dist/utils/charts/metrics.js.map +1 -0
  207. package/dist/utils/charts/overview.js +5 -5
  208. package/dist/utils/charts/overview.js.map +1 -1
  209. package/dist/utils/charts/simple/index.d.ts +1 -0
  210. package/dist/utils/charts/simple/index.js +2 -0
  211. package/dist/utils/charts/simple/index.js.map +1 -0
  212. package/dist/utils/charts/simple/simple-charts.d.ts +2 -0
  213. package/dist/utils/charts/simple/simple-charts.js +81 -0
  214. package/dist/utils/charts/simple/simple-charts.js.map +1 -0
  215. package/dist/utils/commands/confirmations.d.ts +21 -0
  216. package/dist/utils/commands/confirmations.js +99 -0
  217. package/dist/utils/commands/confirmations.js.map +1 -0
  218. package/dist/utils/commands/dashboard.d.ts +2 -2
  219. package/dist/utils/commands/dashboard.js +84 -47
  220. package/dist/utils/commands/dashboard.js.map +1 -1
  221. package/dist/utils/commands/index.d.ts +3 -0
  222. package/dist/utils/commands/index.js +3 -0
  223. package/dist/utils/commands/index.js.map +1 -1
  224. package/dist/utils/commands/report.d.ts +7 -0
  225. package/dist/utils/commands/report.js +41 -0
  226. package/dist/utils/commands/report.js.map +1 -0
  227. package/dist/utils/commands/utils.d.ts +6 -0
  228. package/dist/utils/commands/utils.js +57 -0
  229. package/dist/utils/commands/utils.js.map +1 -0
  230. package/dist/utils/contract.d.ts +10 -1
  231. package/dist/utils/contract.js +61 -22
  232. package/dist/utils/contract.js.map +1 -1
  233. package/dist/utils/error-handler.d.ts +1 -1
  234. package/dist/utils/error-handler.js +2 -2
  235. package/dist/utils/error-handler.js.map +1 -1
  236. package/dist/utils/get-deposit-data-root.d.ts +1 -1
  237. package/dist/utils/get-deposit-data-root.js +3 -6
  238. package/dist/utils/get-deposit-data-root.js.map +1 -1
  239. package/dist/utils/health/health-utils.js +6 -6
  240. package/dist/utils/health/health-utils.js.map +1 -1
  241. package/dist/utils/index.d.ts +7 -1
  242. package/dist/utils/index.js +7 -1
  243. package/dist/utils/index.js.map +1 -1
  244. package/dist/utils/ipfs.d.ts +1 -0
  245. package/dist/utils/ipfs.js +29 -4
  246. package/dist/utils/ipfs.js.map +1 -1
  247. package/dist/utils/lido-apr.d.ts +2 -0
  248. package/dist/utils/lido-apr.js +8 -0
  249. package/dist/utils/lido-apr.js.map +1 -0
  250. package/dist/utils/logging/console.d.ts +9 -1
  251. package/dist/utils/logging/console.js +15 -2
  252. package/dist/utils/logging/console.js.map +1 -1
  253. package/dist/utils/logging/constants.d.ts +2 -0
  254. package/dist/utils/logging/constants.js +11 -5
  255. package/dist/utils/logging/constants.js.map +1 -1
  256. package/dist/utils/prompts/confirmations.d.ts +2 -0
  257. package/dist/utils/prompts/confirmations.js +18 -0
  258. package/dist/utils/prompts/confirmations.js.map +1 -0
  259. package/dist/utils/prompts/dashboard.d.ts +4 -0
  260. package/dist/utils/prompts/dashboard.js +20 -38
  261. package/dist/utils/prompts/dashboard.js.map +1 -1
  262. package/dist/utils/prompts/default.d.ts +4 -3
  263. package/dist/utils/prompts/default.js +3 -0
  264. package/dist/utils/prompts/default.js.map +1 -1
  265. package/dist/utils/prompts/index.d.ts +1 -0
  266. package/dist/utils/prompts/index.js +1 -0
  267. package/dist/utils/prompts/index.js.map +1 -1
  268. package/dist/utils/prompts/operations.js +5 -1
  269. package/dist/utils/prompts/operations.js.map +1 -1
  270. package/dist/utils/proof/first-validator-gindex.js +6 -1
  271. package/dist/utils/proof/first-validator-gindex.js.map +1 -1
  272. package/dist/utils/proof/merkle-utils.d.ts +2 -1
  273. package/dist/utils/proof/merkle-utils.js.map +1 -1
  274. package/dist/utils/proof/proofs.d.ts +5 -280
  275. package/dist/utils/proof/proofs.js.map +1 -1
  276. package/dist/utils/rebase-rewards.d.ts +8 -0
  277. package/dist/utils/rebase-rewards.js +6 -0
  278. package/dist/utils/rebase-rewards.js.map +1 -0
  279. package/dist/utils/report/index.d.ts +3 -0
  280. package/dist/utils/report/index.js +4 -0
  281. package/dist/utils/report/index.js.map +1 -0
  282. package/dist/utils/report/report-statistic.d.ts +52 -0
  283. package/dist/utils/report/report-statistic.js +128 -0
  284. package/dist/utils/report/report-statistic.js.map +1 -0
  285. package/dist/utils/{report.d.ts → report/report.d.ts} +13 -11
  286. package/dist/utils/report/report.js +146 -0
  287. package/dist/utils/report/report.js.map +1 -0
  288. package/dist/utils/report/statistic-data.d.ts +32 -0
  289. package/dist/utils/report/statistic-data.js +29 -0
  290. package/dist/utils/report/statistic-data.js.map +1 -0
  291. package/dist/utils/share-rate.d.ts +1 -0
  292. package/dist/utils/share-rate.js +16 -0
  293. package/dist/utils/share-rate.js.map +1 -0
  294. package/dist/utils/spinner/spinners.js +5 -2
  295. package/dist/utils/spinner/spinners.js.map +1 -1
  296. package/dist/utils/spinner/spinners.json +119 -0
  297. package/dist/version/index.js +1 -1
  298. package/package.json +17 -4
  299. package/dist/features/voting.d.ts +0 -7
  300. package/dist/features/voting.js +0 -133
  301. package/dist/features/voting.js.map +0 -1
  302. package/dist/programs/account.js +0 -147
  303. package/dist/programs/account.js.map +0 -1
  304. package/dist/programs/voting.js +0 -18
  305. package/dist/programs/voting.js.map +0 -1
  306. package/dist/utils/report.js +0 -73
  307. package/dist/utils/report.js.map +0 -1
  308. /package/dist/programs/{account.d.ts → account/read.d.ts} +0 -0
  309. /package/dist/programs/{voting.d.ts → account/write.d.ts} +0 -0
@@ -22,24 +22,26 @@ export const getVaultHubBaseInfo = async () => {
22
22
  const CONTRACT_ADDRESS = contract.address;
23
23
  hideSpinner();
24
24
  const payload = {
25
- CONNECT_DEPOSIT: `${formatEther(CONNECT_DEPOSIT)} ETH`,
25
+ CONTRACT_ADDRESS,
26
26
  DEFAULT_ADMIN_ROLE,
27
27
  LIDO,
28
28
  LIDO_LOCATOR,
29
29
  PAUSE_INFINITELY,
30
30
  PAUSE_ROLE,
31
- REPORT_FRESHNESS_DELTA,
32
- reportFreshnessDeltaHours: `${Number(REPORT_FRESHNESS_DELTA) / 60 / 60} hours`,
33
31
  RESUME_ROLE,
34
32
  VAULT_MASTER_ROLE,
35
33
  VAULT_REGISTRY_ROLE,
34
+ operatorGrid,
35
+ CONNECT_DEPOSIT: `${formatEther(CONNECT_DEPOSIT)} ETH`,
36
+ REPORT_FRESHNESS_DELTA,
37
+ reportFreshnessDeltaHours: `${Number(REPORT_FRESHNESS_DELTA) / 60 / 60} hours`,
36
38
  resumeSinceTimestamp,
37
39
  isPaused,
38
- operatorGrid,
39
40
  vaultsCount,
40
- CONTRACT_ADDRESS,
41
41
  };
42
- logResult(Object.entries(payload));
42
+ logResult({
43
+ data: Object.entries(payload).map(([key, value]) => [key, value]),
44
+ });
43
45
  }
44
46
  catch (err) {
45
47
  hideSpinner();
@@ -64,14 +66,19 @@ export const getVaultHubRoles = async () => {
64
66
  };
65
67
  const result = await Promise.all(Object.entries(roles).map(async ([key, value]) => {
66
68
  const accounts = await contract.read.getRoleMembers([value]);
67
- const roleName = `${key} (${value})`;
68
69
  return {
69
- Role: roleName,
70
+ Role: key,
71
+ Keccak: value,
70
72
  Members: accounts.length > 0 ? accounts.join(', ') : 'None',
71
73
  };
72
74
  }));
73
75
  hideSpinner();
74
- logResult(result);
76
+ logResult({
77
+ data: result.map(({ Role, Keccak, Members }) => [Role, Keccak, Members]),
78
+ params: {
79
+ head: ['Role', 'Keccak', 'Members'],
80
+ },
81
+ });
75
82
  }
76
83
  catch (err) {
77
84
  hideSpinner();
@@ -1 +1 @@
1
- {"version":3,"file":"vault-hub.js","sourceRoot":"","sources":["../../features/vault-hub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault-hub.js","sourceRoot":"","sources":["../../features/vault-hub.ts"],"names":[],"mappings":"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"}
@@ -28,23 +28,25 @@ export const getVaultBaseInfo = async (address) => {
28
28
  const payload = {
29
29
  DEPOSIT_CONTRACT,
30
30
  PUBLIC_KEY_LENGTH,
31
- beaconChainDepositsPaused,
31
+ CONTRACT_ADDRESS,
32
+ owner,
32
33
  depositor,
34
+ nodeOperator,
35
+ vaultHub,
36
+ vaultHubAuthorized,
37
+ beaconChainDepositsPaused,
33
38
  initializedVersion,
34
- owner,
35
39
  version,
36
- vaultHubAuthorized,
37
- vaultHub,
38
40
  totalValue: `${formatEther(totalValue)} ETH`,
39
41
  inOutDelta: `${formatEther(inOutDelta)} ETH`,
40
42
  balance: `${formatEther(balance)} ETH`,
41
- nodeOperator,
42
43
  locked: `${formatEther(locked)} ETH`,
43
44
  unlocked: `${formatEther(unlocked)} ETH`,
44
- CONTRACT_ADDRESS,
45
45
  isOwnerContract,
46
46
  };
47
- logResult(Object.entries(payload));
47
+ logResult({
48
+ data: Object.entries(payload).map(([key, value]) => [key, value]),
49
+ });
48
50
  }
49
51
  catch (err) {
50
52
  hideSpinner();
@@ -1 +1 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../features/vault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../features/vault.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './main.js';
2
+ export * from './read.js';
3
+ export * from './write.js';
@@ -0,0 +1,4 @@
1
+ export * from './main.js';
2
+ export * from './read.js';
3
+ export * from './write.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../programs/account/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const account: import("commander").Command;
@@ -0,0 +1,5 @@
1
+ import { program } from '../../command/index.js';
2
+ export const account = program
3
+ .command('account')
4
+ .description('account utilities');
5
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../programs/account/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO;KAC3B,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { Option } from 'commander';
2
+ import { encodeFunctionData, formatEther, parseEther } from 'viem';
3
+ import { getStethContract, getWstethContract } from '../../contracts/index.js';
4
+ import { getWalletWithAccount, getPublicClient, getAccount } from '../../providers/index.js';
5
+ import { printError, showSpinner, logResult, getCommandsJson, logInfo, stringToAddress, callReadMethod, } from '../../utils/index.js';
6
+ import { account } from './main.js';
7
+ const accountRead = account
8
+ .command('read')
9
+ .aliases(['r'])
10
+ .description('report read commands');
11
+ accountRead.addOption(new Option('-cmd2json'));
12
+ accountRead.on('option:-cmd2json', function () {
13
+ logInfo(getCommandsJson(accountRead));
14
+ process.exit();
15
+ });
16
+ accountRead
17
+ .command('info')
18
+ .description('general account info.')
19
+ .argument('[address]', 'wallet address to check (optional)', stringToAddress)
20
+ .action(async (providedAddress) => {
21
+ const publicClient = getPublicClient();
22
+ let address;
23
+ if (providedAddress) {
24
+ // Use provided address
25
+ address = providedAddress;
26
+ }
27
+ else {
28
+ // Use wallet address from config
29
+ const walletClient = getWalletWithAccount();
30
+ const walletAddress = walletClient.account?.address;
31
+ if (!walletAddress) {
32
+ printError(new Error('No account address found'), 'No account address found. Please provide an address as argument or configure PRIVATE_KEY.');
33
+ return;
34
+ }
35
+ address = walletAddress;
36
+ }
37
+ try {
38
+ const stETHContract = await getStethContract();
39
+ const wstETHContract = await getWstethContract();
40
+ const hideSpinner = showSpinner();
41
+ const balance = await publicClient.getBalance({ address });
42
+ const stETHBalance = await stETHContract.read.balanceOf([address]);
43
+ const wstETHBalance = await wstETHContract.read.balanceOf([address]);
44
+ hideSpinner();
45
+ logResult({
46
+ data: [
47
+ ['Address', address],
48
+ ['Balance (ETH)', formatEther(balance)],
49
+ ['Balance (STETH)', formatEther(stETHBalance)],
50
+ ['Balance (WSTETH)', formatEther(wstETHBalance)],
51
+ ],
52
+ });
53
+ }
54
+ catch (err) {
55
+ printError(err, 'Error when getting account info');
56
+ }
57
+ });
58
+ accountRead
59
+ .command('steth-allowance-populate-tx')
60
+ .alias('steth-allowance-tx')
61
+ .description('populate tx for steth allowance')
62
+ .argument('<address>', 'address to set allowance for', stringToAddress)
63
+ .argument('<amount>', 'amount of steth to allow')
64
+ .action(async (address, amount) => {
65
+ const stethContract = await getStethContract();
66
+ const tx = encodeFunctionData({
67
+ abi: stethContract.abi,
68
+ functionName: 'approve',
69
+ args: [address, parseEther(amount)],
70
+ });
71
+ logInfo(tx);
72
+ });
73
+ accountRead
74
+ .command('get-steth-allowance')
75
+ .description('get steth allowance for an address')
76
+ .argument('<address>', 'address to get allowance for', stringToAddress)
77
+ .action(async (address) => {
78
+ const accountAddress = getAccount().address;
79
+ const stethContract = await getStethContract();
80
+ await callReadMethod(stethContract, 'allowance', [accountAddress, address]);
81
+ });
82
+ accountRead
83
+ .command('wsteth-allowance-populate-tx')
84
+ .alias('wsteth-allowance-tx')
85
+ .description('populate tx for wsteth allowance')
86
+ .argument('<address>', 'address to set allowance for', stringToAddress)
87
+ .argument('<amount>', 'amount of wsteth to allow (in wstETH)')
88
+ .action(async (address, amount) => {
89
+ const wstethContract = await getWstethContract();
90
+ const tx = encodeFunctionData({
91
+ abi: wstethContract.abi,
92
+ functionName: 'approve',
93
+ args: [address, parseEther(amount)],
94
+ });
95
+ logInfo(tx);
96
+ });
97
+ accountRead
98
+ .command('get-wsteth-allowance')
99
+ .description('get wsteth allowance for an address')
100
+ .argument('<address>', 'address to get allowance for', stringToAddress)
101
+ .action(async (address) => {
102
+ const accountAddress = getAccount().address;
103
+ const wstethContract = await getWstethContract();
104
+ await callReadMethod(wstethContract, 'allowance', [
105
+ accountAddress,
106
+ address,
107
+ ]);
108
+ });
109
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/account/read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { formatEther, parseEther } from 'viem';
2
+ import { generatePrivateKey } from 'viem/accounts';
3
+ import { Option } from 'commander';
4
+ import { Wallet } from 'ethers';
5
+ import { getStethContract, getWstethContract } from '../../contracts/index.js';
6
+ import { getCommandsJson, logInfo, callWriteMethodWithReceipt, stringToAddress, confirmOperation, } from '../../utils/index.js';
7
+ import { account } from './main.js';
8
+ const accountWrite = account
9
+ .command('write')
10
+ .aliases(['w'])
11
+ .description('account write commands');
12
+ accountWrite.addOption(new Option('-cmd2json'));
13
+ accountWrite.on('option:-cmd2json', function () {
14
+ logInfo(getCommandsJson(accountWrite));
15
+ process.exit();
16
+ });
17
+ accountWrite
18
+ .command('generate-key')
19
+ .description('generate a new key. Disclaimer: this command is not recommended for production use.')
20
+ .action(async () => {
21
+ const privateKey = generatePrivateKey();
22
+ logInfo(`Private key: ${privateKey}`);
23
+ });
24
+ accountWrite
25
+ .command('generate-encrypted-account')
26
+ .description('generate a new encrypted account')
27
+ .argument('<password>', 'password for the encrypted account')
28
+ .action(async (password) => {
29
+ const randomPrivateKey = Wallet.createRandom();
30
+ const encrypted = await randomPrivateKey.encrypt(password);
31
+ logInfo(`Encrypted account: ${encrypted}`);
32
+ });
33
+ accountWrite
34
+ .command('steth-allowance')
35
+ .description('set allowance for steth contract')
36
+ .argument('<address>', 'address to set allowance for', stringToAddress)
37
+ .argument('<amount>', 'amount of steth to allow (in stETH)')
38
+ .action(async (address, amount) => {
39
+ const stethContract = await getStethContract();
40
+ const confirm = await confirmOperation(`Are you sure you want to set allowance ${formatEther(parseEther(amount))} for ${address}?`);
41
+ if (!confirm)
42
+ return;
43
+ await callWriteMethodWithReceipt({
44
+ contract: stethContract,
45
+ methodName: 'approve',
46
+ payload: [address, parseEther(amount)],
47
+ });
48
+ });
49
+ accountWrite
50
+ .command('wsteth-allowance')
51
+ .description('set allowance for wsteth contract')
52
+ .argument('<address>', 'address to set allowance for', stringToAddress)
53
+ .argument('<amount>', 'amount of wsteth to allow')
54
+ .action(async (address, amount) => {
55
+ const wstethContract = await getWstethContract();
56
+ const confirm = await confirmOperation(`Are you sure you want to set allowance ${formatEther(parseEther(amount))} for ${address}?`);
57
+ if (!confirm)
58
+ return;
59
+ await callWriteMethodWithReceipt({
60
+ contract: wstethContract,
61
+ methodName: 'approve',
62
+ payload: [address, parseEther(amount)],
63
+ });
64
+ });
65
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../programs/account/write.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Option } from 'commander';
3
3
  import { DashboardAbi } from '../../abi/index.js';
4
4
  import { getDashboardBaseInfo, getDashboardRoles, getDashboardHealth, getDashboardOverview, } from '../../features/index.js';
5
5
  import { getDashboardContract, getStakingVaultContract } from '../../contracts/index.js';
6
- import { generateReadCommands, logResult, logInfo, getCommandsJson, stringToAddress, callReadMethod, getRequiredLockByShares, callReadMethodSilent, } from '../../utils/index.js';
6
+ import { generateReadCommands, logResult, logInfo, getCommandsJson, stringToAddress, callReadMethod, getRequiredLockByShares, callReadMethodSilent, getConfirmationsInfo, } from '../../utils/index.js';
7
7
  import { dashboard } from './main.js';
8
8
  import { readCommandConfig } from './config.js';
9
9
  const dashboardRead = dashboard
@@ -66,10 +66,12 @@ dashboardRead
66
66
  .action(async (address, newShares) => {
67
67
  const { requiredLock, currentLock } = await getRequiredLockByShares(address, newShares);
68
68
  logResult({
69
- 'Required Lock (wei)': requiredLock,
70
- 'Required Lock (shares)': formatEther(requiredLock),
71
- 'Current Lock (wei)': currentLock,
72
- 'Current Lock (shares)': formatEther(currentLock),
69
+ data: [
70
+ ['Required Lock (wei)', requiredLock],
71
+ ['Required Lock (shares)', formatEther(requiredLock)],
72
+ ['Current Lock (wei)', currentLock],
73
+ ['Current Lock (shares)', formatEther(currentLock)],
74
+ ],
73
75
  });
74
76
  });
75
77
  dashboardRead
@@ -81,8 +83,15 @@ dashboardRead
81
83
  const contract = getStakingVaultContract(vault);
82
84
  const owner = await callReadMethodSilent(contract, 'owner');
83
85
  logResult({
84
- 'Dashboard Address': owner,
86
+ data: [['Dashboard Address', owner]],
85
87
  });
86
88
  });
89
+ dashboardRead
90
+ .command('confirmations-log')
91
+ .description('get pending confirmations')
92
+ .argument('<address>', 'dashboard address', stringToAddress)
93
+ .action(async (address) => {
94
+ await getConfirmationsInfo(address);
95
+ });
87
96
  generateReadCommands(DashboardAbi, getDashboardContract, dashboardRead, readCommandConfig);
88
97
  //# sourceMappingURL=read.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/dashboard/read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/dashboard/read.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { parseEther, formatEther } from 'viem';
2
2
  import { Option } from 'commander';
3
+ import { getAccount } from '../../providers/index.js';
3
4
  import { getDashboardContract, getStakingVaultContract } from '../../contracts/index.js';
4
- import { callReadMethod, callWriteMethodWithReceipt, stringToBigIntArray, jsonToRoleAssignment, confirmOperation, stringToBigInt, mintShares, burnShares, parseDepositArray, logInfo, getCommandsJson, stringToAddress, mintSteth, burnSteth, createPDGProof, } from '../../utils/index.js';
5
+ import { callReadMethod, callWriteMethodWithReceipt, jsonToRoleAssignment, confirmOperation, stringToBigInt, mintShares, burnShares, parseDepositArray, logInfo, getCommandsJson, stringToAddress, mintSteth, burnSteth, createPDGProof, confirmProposal, formatBP, callReadMethodSilent, showSpinner, checkIsReportFresh, stringToBigIntArrayWei, stringToHexArray, } from '../../utils/index.js';
5
6
  import { dashboard } from './main.js';
6
7
  const dashboardWrite = dashboard
7
8
  .command('write')
@@ -75,6 +76,9 @@ dashboardWrite
75
76
  const confirm = await confirmOperation(`Are you sure you want to withdraw ${ether} from the staking vault ${vault} to ${recipient}?`);
76
77
  if (!confirm)
77
78
  return;
79
+ const isReportFresh = await checkIsReportFresh(contract);
80
+ if (!isReportFresh)
81
+ return;
78
82
  await callWriteMethodWithReceipt({
79
83
  contract,
80
84
  methodName: 'withdraw',
@@ -119,21 +123,26 @@ dashboardWrite
119
123
  .command('trigger-validator-withdrawal')
120
124
  .description('triggers the withdrawal of a validator from the staking vault')
121
125
  .argument('<address>', 'dashboard address', stringToAddress)
122
- .argument('<pubkeys>', 'pubkeys of the validators to withdraw')
123
- .argument('<amounts>', 'amounts of ether to withdraw', stringToBigIntArray)
126
+ .argument('<pubkeys>', 'pubkeys of the validators to withdraw. Comma separated list of pubkeys', stringToHexArray)
127
+ .argument('<amounts>', 'amounts of ether to withdraw. Comma separated list of amounts', stringToBigIntArrayWei)
124
128
  .argument('<recipient>', 'address of the recipient', stringToAddress)
125
129
  .action(async (address, pubkeys, amounts, recipient) => {
130
+ const mergedPubkeys = pubkeys.join('');
126
131
  const contract = getDashboardContract(address);
127
132
  const vault = await callReadMethod(contract, 'stakingVault');
128
133
  const vaultContract = getStakingVaultContract(vault);
129
134
  const fee = await callReadMethod(vaultContract, 'calculateValidatorWithdrawalFee', [BigInt(amounts.length)]);
130
- const confirm = await confirmOperation(`Are you sure you want to trigger the withdrawal of the validators ${pubkeys} from the staking vault ${vault} to ${recipient} with amounts ${amounts}?`);
135
+ const confirmationMessage = `Are you sure you want to trigger the withdrawal of the validators
136
+ ${pubkeys.join(', ')}
137
+ from the staking vault ${vault} to ${recipient}
138
+ with amounts ${amounts.map((amount) => formatEther(amount)).join(', ')} ETH?`;
139
+ const confirm = await confirmOperation(confirmationMessage);
131
140
  if (!confirm)
132
141
  return;
133
142
  await callWriteMethodWithReceipt({
134
143
  contract,
135
144
  methodName: 'triggerValidatorWithdrawal',
136
- payload: [pubkeys, amounts, recipient],
145
+ payload: [mergedPubkeys, amounts.map(BigInt), recipient],
137
146
  value: fee,
138
147
  });
139
148
  });
@@ -360,19 +369,19 @@ dashboardWrite
360
369
  .argument('<address>', 'dashboard address', stringToAddress)
361
370
  .argument('<deposits>', 'array of IStakingVault.Deposit structs containing deposit data', parseDepositArray)
362
371
  .addHelpText('after', `Deposit format:
363
- '{
372
+ '[{
364
373
  "pubkey": "...",
365
374
  "signature": "...",
366
375
  "amount": "...",
367
376
  "deposit_data_root": "..."
368
377
  }
369
378
  {second deposit}
370
- ...'`)
379
+ ...]'`)
371
380
  .action(async (address, deposits) => {
372
381
  const contract = getDashboardContract(address);
373
382
  const vault = await callReadMethod(contract, 'stakingVault');
374
383
  const confirm = await confirmOperation(`Are you sure you want to unguaranteed deposit ${deposits.length} deposits to the beacon chain in the staking vault ${vault}?
375
- Deposits: ${JSON.stringify(deposits)}`);
384
+ Pubkeys: ${deposits.map((i) => i.pubkey).join(', ')}`);
376
385
  if (!confirm)
377
386
  return;
378
387
  await callWriteMethodWithReceipt({
@@ -388,17 +397,31 @@ dashboardWrite
388
397
  .argument('<address>', 'dashboard address', stringToAddress)
389
398
  .argument('<validatorIndex...>', 'index of the validator to prove')
390
399
  .action(async (address, validatorIndexes) => {
400
+ const account = getAccount();
391
401
  const contract = getDashboardContract(address);
392
402
  const vault = await callReadMethod(contract, 'stakingVault');
393
403
  const vaultContract = getStakingVaultContract(vault);
394
- const pdgContract = await callReadMethod(vaultContract, 'depositor');
404
+ const pdgContract = await callReadMethodSilent(vaultContract, 'depositor');
395
405
  for (const validatorIndex of validatorIndexes) {
406
+ const hideSpinner = showSpinner({
407
+ type: 'bouncingBar',
408
+ message: `Making proof for validator ${validatorIndex}...`,
409
+ });
396
410
  const packageProof = await createPDGProof(Number(validatorIndex));
397
411
  const { proof, pubkey, childBlockTimestamp } = packageProof;
398
- const confirm = await confirmOperation(`Are you sure you want to prove ${proof.length} validators to the Predeposit Guarantee contract ${pdgContract} in the staking vault ${vault}?
399
- Witnesses: ${JSON.stringify(proof)}`);
412
+ hideSpinner();
413
+ const confirm = await confirmOperation(`Are you sure you want to prove ${pubkey} validator (${validatorIndex}) to the Predeposit Guarantee contract ${pdgContract} in the staking vault ${vault}?
414
+ Witnesses length: ${proof.length}`);
400
415
  if (!confirm)
401
416
  return;
417
+ const PDG_PROVE_VALIDATOR_ROLE = await callReadMethodSilent(contract, 'PDG_PROVE_VALIDATOR_ROLE');
418
+ const hasRole = await callReadMethodSilent(contract, 'hasRole', [
419
+ PDG_PROVE_VALIDATOR_ROLE,
420
+ account.address,
421
+ ]);
422
+ if (!hasRole) {
423
+ throw new Error(`You do not have role (PDG_PROVE_VALIDATOR_ROLE - ${PDG_PROVE_VALIDATOR_ROLE}) to prove validators to PDG`);
424
+ }
402
425
  await callWriteMethodWithReceipt({
403
426
  contract,
404
427
  methodName: 'proveUnknownValidatorsToPDG',
@@ -550,4 +573,53 @@ dashboardWrite
550
573
  payload: [parseEther(amount), currentAdjustment],
551
574
  });
552
575
  });
576
+ dashboardWrite
577
+ .command('confirm-proposal')
578
+ .description('Confirms a proposal')
579
+ .argument('<address>', 'dashboard address', stringToAddress)
580
+ .action(async (address) => {
581
+ const contract = getDashboardContract(address);
582
+ const log = await confirmProposal(address);
583
+ if (!log)
584
+ return;
585
+ await callWriteMethodWithReceipt({
586
+ contract,
587
+ methodName: log.decodedData.functionName,
588
+ payload: log.decodedData.args,
589
+ });
590
+ });
591
+ dashboardWrite
592
+ .command('set-confirm-expiry')
593
+ .description('Sets the confirm expiry')
594
+ .argument('<address>', 'dashboard address', stringToAddress)
595
+ .argument('<expiry>', 'expiry in seconds', stringToBigInt)
596
+ .action(async (address, expiry) => {
597
+ const contract = getDashboardContract(address);
598
+ const hours = Number(expiry) / 3600;
599
+ const confirm = await confirmOperation(`Are you sure you want to set the confirm expiry to ${expiry} seconds (${hours} hours)?`);
600
+ if (!confirm)
601
+ return;
602
+ await callWriteMethodWithReceipt({
603
+ contract,
604
+ methodName: 'setConfirmExpiry',
605
+ payload: [expiry],
606
+ });
607
+ });
608
+ dashboardWrite
609
+ .command('set-node-operator-fee')
610
+ .description('Sets the node operator fee')
611
+ .argument('<address>', 'dashboard address', stringToAddress)
612
+ .argument('<fee>', 'the new node operator fee in basis points', stringToBigInt)
613
+ .action(async (address, fee) => {
614
+ const contract = getDashboardContract(address);
615
+ const percentage = formatBP(fee);
616
+ const confirm = await confirmOperation(`Are you sure you want to set the node operator fee ${fee} in basis points (${percentage})?`);
617
+ if (!confirm)
618
+ return;
619
+ await callWriteMethodWithReceipt({
620
+ contract,
621
+ methodName: 'setNodeOperatorFeeBP',
622
+ payload: [fee],
623
+ });
624
+ });
553
625
  //# sourceMappingURL=write.js.map