@lidofinance/lsv-cli 1.3.1 → 1.4.0-alpha.1

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 (493) hide show
  1. package/dist/abi/AccessControlConfirmable.js.map +1 -1
  2. package/dist/abi/Dashboard.d.ts +24 -0
  3. package/dist/abi/Dashboard.js.map +1 -1
  4. package/dist/abi/LazyOracle.js.map +1 -1
  5. package/dist/abi/LidoLocator.js.map +1 -1
  6. package/dist/abi/OperatorGrid.js.map +1 -1
  7. package/dist/abi/PredepositGuarantee.d.ts +48 -0
  8. package/dist/abi/PredepositGuarantee.js +32 -0
  9. package/dist/abi/PredepositGuarantee.js.map +1 -1
  10. package/dist/abi/StEth.d.ts +1175 -59
  11. package/dist/abi/StEth.js +885 -320
  12. package/dist/abi/StEth.js.map +1 -1
  13. package/dist/abi/StakingVault.js.map +1 -1
  14. package/dist/abi/ValidatorConsolidationRequests.js.map +1 -1
  15. package/dist/abi/VaultFactory.js.map +1 -1
  16. package/dist/abi/VaultHub.js.map +1 -1
  17. package/dist/abi/VaultViewer.js.map +1 -1
  18. package/dist/abi/WstEth.js.map +1 -1
  19. package/dist/abi/defi-wrapper/Distributor.js.map +1 -1
  20. package/dist/abi/defi-wrapper/Factory.d.ts +532 -657
  21. package/dist/abi/defi-wrapper/Factory.js +1083 -647
  22. package/dist/abi/defi-wrapper/Factory.js.map +1 -1
  23. package/dist/abi/defi-wrapper/OssifiableProxy.d.ts +71 -0
  24. package/dist/abi/defi-wrapper/OssifiableProxy.js +93 -0
  25. package/dist/abi/defi-wrapper/OssifiableProxy.js.map +1 -0
  26. package/dist/abi/defi-wrapper/StrategyFactory.d.ts +59 -0
  27. package/dist/abi/defi-wrapper/StrategyFactory.js +37 -0
  28. package/dist/abi/defi-wrapper/StrategyFactory.js.map +1 -0
  29. package/dist/abi/defi-wrapper/StvPool.js.map +1 -1
  30. package/dist/abi/defi-wrapper/StvStETHPool.d.ts +38 -32
  31. package/dist/abi/defi-wrapper/StvStETHPool.js +50 -42
  32. package/dist/abi/defi-wrapper/StvStETHPool.js.map +1 -1
  33. package/dist/abi/defi-wrapper/TimeLock.d.ts +770 -0
  34. package/dist/abi/defi-wrapper/TimeLock.js +999 -0
  35. package/dist/abi/defi-wrapper/TimeLock.js.map +1 -0
  36. package/dist/abi/defi-wrapper/WithdrawalQueue.js.map +1 -1
  37. package/dist/abi/defi-wrapper/index.d.ts +3 -0
  38. package/dist/abi/defi-wrapper/index.js +3 -0
  39. package/dist/abi/defi-wrapper/index.js.map +1 -1
  40. package/dist/command/index.js +12 -1
  41. package/dist/command/index.js.map +1 -1
  42. package/dist/configs/constants.d.ts +4 -4
  43. package/dist/contracts/dashboard-impl.d.ts +4 -3
  44. package/dist/contracts/dashboard-impl.js +5 -8
  45. package/dist/contracts/dashboard-impl.js.map +1 -1
  46. package/dist/contracts/dashboard.d.ts +4 -3
  47. package/dist/contracts/dashboard.js +1 -1
  48. package/dist/contracts/dashboard.js.map +1 -1
  49. package/dist/contracts/defi-wrapper/distributor.d.ts +5 -4
  50. package/dist/contracts/defi-wrapper/distributor.js +2 -2
  51. package/dist/contracts/defi-wrapper/distributor.js.map +1 -1
  52. package/dist/contracts/defi-wrapper/factory.d.ts +5 -4
  53. package/dist/contracts/defi-wrapper/factory.js +2 -2
  54. package/dist/contracts/defi-wrapper/factory.js.map +1 -1
  55. package/dist/contracts/defi-wrapper/index.d.ts +3 -0
  56. package/dist/contracts/defi-wrapper/index.js +3 -0
  57. package/dist/contracts/defi-wrapper/index.js.map +1 -1
  58. package/dist/contracts/defi-wrapper/ossifiable-proxy.d.ts +5 -0
  59. package/dist/contracts/defi-wrapper/ossifiable-proxy.js +12 -0
  60. package/dist/contracts/defi-wrapper/ossifiable-proxy.js.map +1 -0
  61. package/dist/contracts/defi-wrapper/strategy-factory.d.ts +5 -0
  62. package/dist/contracts/defi-wrapper/strategy-factory.js +12 -0
  63. package/dist/contracts/defi-wrapper/strategy-factory.js.map +1 -0
  64. package/dist/contracts/defi-wrapper/stv-pool.d.ts +5 -4
  65. package/dist/contracts/defi-wrapper/stv-pool.js +2 -2
  66. package/dist/contracts/defi-wrapper/stv-pool.js.map +1 -1
  67. package/dist/contracts/defi-wrapper/stv-steth-pool.d.ts +5 -4
  68. package/dist/contracts/defi-wrapper/stv-steth-pool.js +2 -2
  69. package/dist/contracts/defi-wrapper/stv-steth-pool.js.map +1 -1
  70. package/dist/contracts/defi-wrapper/timelock.d.ts +5 -0
  71. package/dist/contracts/defi-wrapper/timelock.js +12 -0
  72. package/dist/contracts/defi-wrapper/timelock.js.map +1 -0
  73. package/dist/contracts/defi-wrapper/withdrawal-queue.d.ts +5 -4
  74. package/dist/contracts/defi-wrapper/withdrawal-queue.js +2 -2
  75. package/dist/contracts/defi-wrapper/withdrawal-queue.js.map +1 -1
  76. package/dist/contracts/lazy-oracle.d.ts +5 -3
  77. package/dist/contracts/lazy-oracle.js +5 -9
  78. package/dist/contracts/lazy-oracle.js.map +1 -1
  79. package/dist/contracts/locator.d.ts +4 -2
  80. package/dist/contracts/locator.js +5 -8
  81. package/dist/contracts/locator.js.map +1 -1
  82. package/dist/contracts/operator-grid.d.ts +5 -4
  83. package/dist/contracts/operator-grid.js +5 -8
  84. package/dist/contracts/operator-grid.js.map +1 -1
  85. package/dist/contracts/pdg.d.ts +5 -4
  86. package/dist/contracts/pdg.js +5 -8
  87. package/dist/contracts/pdg.js.map +1 -1
  88. package/dist/contracts/steth.d.ts +5 -27706
  89. package/dist/contracts/steth.js +6 -10
  90. package/dist/contracts/steth.js.map +1 -1
  91. package/dist/contracts/validator-consolidation-requests.d.ts +3 -3
  92. package/dist/contracts/validator-consolidation-requests.js.map +1 -1
  93. package/dist/contracts/vault-factory.d.ts +5 -3
  94. package/dist/contracts/vault-factory.js +6 -8
  95. package/dist/contracts/vault-factory.js.map +1 -1
  96. package/dist/contracts/vault-hub.d.ts +5 -3
  97. package/dist/contracts/vault-hub.js +5 -9
  98. package/dist/contracts/vault-hub.js.map +1 -1
  99. package/dist/contracts/vault-viewer.d.ts +4 -2
  100. package/dist/contracts/vault-viewer.js +7 -10
  101. package/dist/contracts/vault-viewer.js.map +1 -1
  102. package/dist/contracts/vault.d.ts +5 -4
  103. package/dist/contracts/vault.js +2 -2
  104. package/dist/contracts/vault.js.map +1 -1
  105. package/dist/contracts/wsteth.d.ts +5 -3
  106. package/dist/contracts/wsteth.js +5 -9
  107. package/dist/contracts/wsteth.js.map +1 -1
  108. package/dist/features/consolidation.d.ts +1 -1
  109. package/dist/features/consolidation.js +19 -3
  110. package/dist/features/consolidation.js.map +1 -1
  111. package/dist/features/defi-wrapper/create-vault.js +19 -16
  112. package/dist/features/defi-wrapper/create-vault.js.map +1 -1
  113. package/dist/features/defi-wrapper/defi-wrapper-factory.d.ts +22 -29
  114. package/dist/features/defi-wrapper/defi-wrapper-factory.js +124 -17
  115. package/dist/features/defi-wrapper/defi-wrapper-factory.js.map +1 -1
  116. package/dist/features/defi-wrapper/distributor.d.ts +24 -0
  117. package/dist/features/defi-wrapper/distributor.js +300 -0
  118. package/dist/features/defi-wrapper/distributor.js.map +1 -0
  119. package/dist/features/defi-wrapper/index.d.ts +1 -0
  120. package/dist/features/defi-wrapper/index.js +1 -0
  121. package/dist/features/defi-wrapper/index.js.map +1 -1
  122. package/dist/features/defi-wrapper/pool-info.d.ts +17 -2
  123. package/dist/features/defi-wrapper/pool-info.js +63 -13
  124. package/dist/features/defi-wrapper/pool-info.js.map +1 -1
  125. package/dist/features/defi-wrapper/timelock.d.ts +19 -0
  126. package/dist/features/defi-wrapper/timelock.js +198 -0
  127. package/dist/features/defi-wrapper/timelock.js.map +1 -0
  128. package/dist/features/deposits/check-bls-deposits.js +15 -3
  129. package/dist/features/deposits/check-bls-deposits.js.map +1 -1
  130. package/dist/features/deposits/make-pdg-proof.js +19 -7
  131. package/dist/features/deposits/make-pdg-proof.js.map +1 -1
  132. package/dist/features/deposits/no-pdg.js +50 -14
  133. package/dist/features/deposits/no-pdg.js.map +1 -1
  134. package/dist/features/deposits/pdg.js +5 -1
  135. package/dist/features/deposits/pdg.js.map +1 -1
  136. package/dist/features/deposits/validators.js +1 -1
  137. package/dist/features/deposits/validators.js.map +1 -1
  138. package/dist/features/dev-tools/impersonate.js +5 -1
  139. package/dist/features/dev-tools/impersonate.js.map +1 -1
  140. package/dist/features/metrics.d.ts +3 -0
  141. package/dist/features/metrics.js +49 -6
  142. package/dist/features/metrics.js.map +1 -1
  143. package/dist/features/mint-burn/allowance.js +15 -6
  144. package/dist/features/mint-burn/allowance.js.map +1 -1
  145. package/dist/features/mint-burn/burn-steth.js +5 -1
  146. package/dist/features/mint-burn/burn-steth.js.map +1 -1
  147. package/dist/features/mint-burn/index.d.ts +1 -0
  148. package/dist/features/mint-burn/index.js +1 -0
  149. package/dist/features/mint-burn/index.js.map +1 -1
  150. package/dist/features/mint-burn/mint-limit.d.ts +9 -0
  151. package/dist/features/mint-burn/mint-limit.js +31 -0
  152. package/dist/features/mint-burn/mint-limit.js.map +1 -0
  153. package/dist/features/mint-burn/mint-steth.js +5 -1
  154. package/dist/features/mint-burn/mint-steth.js.map +1 -1
  155. package/dist/features/pdg.js +5 -1
  156. package/dist/features/pdg.js.map +1 -1
  157. package/dist/features/utils/connection.js +5 -1
  158. package/dist/features/utils/connection.js.map +1 -1
  159. package/dist/features/utils/index.d.ts +1 -0
  160. package/dist/features/utils/index.js +1 -0
  161. package/dist/features/utils/index.js.map +1 -1
  162. package/dist/features/utils/liability-shares.js +5 -1
  163. package/dist/features/utils/liability-shares.js.map +1 -1
  164. package/dist/features/utils/minting-capacity.js +4 -3
  165. package/dist/features/utils/minting-capacity.js.map +1 -1
  166. package/dist/features/utils/quarantine.js +5 -1
  167. package/dist/features/utils/quarantine.js.map +1 -1
  168. package/dist/features/utils/report-fresh.js +15 -3
  169. package/dist/features/utils/report-fresh.js.map +1 -1
  170. package/dist/features/utils/try-fetch.d.ts +5 -0
  171. package/dist/features/utils/try-fetch.js +26 -0
  172. package/dist/features/utils/try-fetch.js.map +1 -0
  173. package/dist/features/vault-factory.js +16 -4
  174. package/dist/features/vault-factory.js.map +1 -1
  175. package/dist/features/vault-operations/connect-vault.js +10 -2
  176. package/dist/features/vault-operations/connect-vault.js.map +1 -1
  177. package/dist/features/vault-operations/dashboard-by-vault.js +10 -2
  178. package/dist/features/vault-operations/dashboard-by-vault.js.map +1 -1
  179. package/dist/features/vault-operations/index.d.ts +1 -0
  180. package/dist/features/vault-operations/index.js +1 -0
  181. package/dist/features/vault-operations/index.js.map +1 -1
  182. package/dist/features/vault-operations/roles.js +10 -2
  183. package/dist/features/vault-operations/roles.js.map +1 -1
  184. package/dist/features/vault-operations/share-limit.d.ts +8 -0
  185. package/dist/features/vault-operations/share-limit.js +20 -0
  186. package/dist/features/vault-operations/share-limit.js.map +1 -0
  187. package/dist/features/vault-operations/vault-health.js +5 -1
  188. package/dist/features/vault-operations/vault-health.js.map +1 -1
  189. package/dist/features/vault-operations/vault-info.js +10 -2
  190. package/dist/features/vault-operations/vault-info.js.map +1 -1
  191. package/dist/features/vault-operations/vault-overview.js +25 -5
  192. package/dist/features/vault-operations/vault-overview.js.map +1 -1
  193. package/dist/features/vault-operations/vault-roles.js +10 -2
  194. package/dist/features/vault-operations/vault-roles.js.map +1 -1
  195. package/dist/features/vault-operations/vaults-by-role.d.ts +24 -0
  196. package/dist/features/vault-operations/vaults-by-role.js +78 -27
  197. package/dist/features/vault-operations/vaults-by-role.js.map +1 -1
  198. package/dist/features/with-report.d.ts +1 -1
  199. package/dist/index.js +45 -16
  200. package/dist/index.js.map +1 -1
  201. package/dist/programs/account/main.d.ts +1 -1
  202. package/dist/programs/account/read.js +10 -5
  203. package/dist/programs/account/read.js.map +1 -1
  204. package/dist/programs/account/write.js +29 -2
  205. package/dist/programs/account/write.js.map +1 -1
  206. package/dist/programs/contracts/dashboard/main.d.ts +1 -1
  207. package/dist/programs/contracts/dashboard/read.js +15 -3
  208. package/dist/programs/contracts/dashboard/read.js.map +1 -1
  209. package/dist/programs/contracts/dashboard/write.js +233 -52
  210. package/dist/programs/contracts/dashboard/write.js.map +1 -1
  211. package/dist/programs/contracts/hub/main.d.ts +1 -1
  212. package/dist/programs/contracts/hub/read.js +15 -5
  213. package/dist/programs/contracts/hub/read.js.map +1 -1
  214. package/dist/programs/contracts/hub/write.js +12 -3
  215. package/dist/programs/contracts/hub/write.js.map +1 -1
  216. package/dist/programs/contracts/lazy-oracle/main.d.ts +1 -1
  217. package/dist/programs/contracts/main.d.ts +1 -1
  218. package/dist/programs/contracts/operator-grid/main.d.ts +1 -1
  219. package/dist/programs/contracts/operator-grid/read.js +5 -1
  220. package/dist/programs/contracts/operator-grid/read.js.map +1 -1
  221. package/dist/programs/contracts/operator-grid/write.js +18 -10
  222. package/dist/programs/contracts/operator-grid/write.js.map +1 -1
  223. package/dist/programs/contracts/pdg/main.d.ts +1 -1
  224. package/dist/programs/contracts/pdg/read.js +5 -1
  225. package/dist/programs/contracts/pdg/read.js.map +1 -1
  226. package/dist/programs/contracts/pdg/write.js +34 -4
  227. package/dist/programs/contracts/pdg/write.js.map +1 -1
  228. package/dist/programs/contracts/vault/main.d.ts +1 -1
  229. package/dist/programs/contracts/vault/write.js +5 -1
  230. package/dist/programs/contracts/vault/write.js.map +1 -1
  231. package/dist/programs/contracts/vault-factory/main.d.ts +1 -1
  232. package/dist/programs/contracts/vault-viewer/main.d.ts +1 -1
  233. package/dist/programs/defi-wrapper/contracts/distributor/config.d.ts +1 -1
  234. package/dist/programs/defi-wrapper/contracts/distributor/main.d.ts +1 -1
  235. package/dist/programs/defi-wrapper/contracts/distributor/read.js +19 -7
  236. package/dist/programs/defi-wrapper/contracts/distributor/read.js.map +1 -1
  237. package/dist/programs/defi-wrapper/contracts/distributor/write.js +1 -1
  238. package/dist/programs/defi-wrapper/contracts/factory/config.d.ts +1 -1
  239. package/dist/programs/defi-wrapper/contracts/factory/main.d.ts +1 -1
  240. package/dist/programs/defi-wrapper/contracts/factory/read.js +75 -15
  241. package/dist/programs/defi-wrapper/contracts/factory/read.js.map +1 -1
  242. package/dist/programs/defi-wrapper/contracts/factory/write.js +261 -67
  243. package/dist/programs/defi-wrapper/contracts/factory/write.js.map +1 -1
  244. package/dist/programs/defi-wrapper/contracts/main.d.ts +1 -1
  245. package/dist/programs/defi-wrapper/contracts/stv-pool/config.d.ts +1 -1
  246. package/dist/programs/defi-wrapper/contracts/stv-pool/main.d.ts +1 -1
  247. package/dist/programs/defi-wrapper/contracts/stv-pool/read.js +64 -20
  248. package/dist/programs/defi-wrapper/contracts/stv-pool/read.js.map +1 -1
  249. package/dist/programs/defi-wrapper/contracts/stv-pool/write.js +1 -1
  250. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/config.d.ts +1 -1
  251. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/main.d.ts +1 -1
  252. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js +64 -20
  253. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js.map +1 -1
  254. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/write.js +1 -1
  255. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/config.d.ts +1 -1
  256. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/main.d.ts +1 -1
  257. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js +66 -18
  258. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js.map +1 -1
  259. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js +34 -7
  260. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js.map +1 -1
  261. package/dist/programs/defi-wrapper/main.d.ts +1 -1
  262. package/dist/programs/defi-wrapper/use-cases/distributor/index.d.ts +3 -0
  263. package/dist/programs/defi-wrapper/use-cases/distributor/index.js +4 -0
  264. package/dist/programs/defi-wrapper/use-cases/distributor/index.js.map +1 -0
  265. package/dist/programs/defi-wrapper/use-cases/distributor/main.d.ts +1 -0
  266. package/dist/programs/defi-wrapper/use-cases/distributor/main.js +6 -0
  267. package/dist/programs/defi-wrapper/use-cases/distributor/main.js.map +1 -0
  268. package/dist/programs/defi-wrapper/use-cases/distributor/read.js +86 -0
  269. package/dist/programs/defi-wrapper/use-cases/distributor/read.js.map +1 -0
  270. package/dist/programs/defi-wrapper/use-cases/distributor/write.d.ts +1 -0
  271. package/dist/programs/defi-wrapper/use-cases/distributor/write.js +191 -0
  272. package/dist/programs/defi-wrapper/use-cases/distributor/write.js.map +1 -0
  273. package/dist/programs/defi-wrapper/use-cases/health/main.d.ts +1 -1
  274. package/dist/programs/defi-wrapper/use-cases/health/read.js +73 -23
  275. package/dist/programs/defi-wrapper/use-cases/health/read.js.map +1 -1
  276. package/dist/programs/defi-wrapper/use-cases/health/utils.js +11 -3
  277. package/dist/programs/defi-wrapper/use-cases/health/utils.js.map +1 -1
  278. package/dist/programs/defi-wrapper/use-cases/health/write.js +68 -25
  279. package/dist/programs/defi-wrapper/use-cases/health/write.js.map +1 -1
  280. package/dist/programs/defi-wrapper/use-cases/index.d.ts +2 -0
  281. package/dist/programs/defi-wrapper/use-cases/index.js +2 -0
  282. package/dist/programs/defi-wrapper/use-cases/index.js.map +1 -1
  283. package/dist/programs/defi-wrapper/use-cases/main.d.ts +1 -1
  284. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.d.ts +3 -0
  285. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.js +4 -0
  286. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.js.map +1 -0
  287. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.d.ts +1 -0
  288. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.js +6 -0
  289. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.js.map +1 -0
  290. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.d.ts +1 -0
  291. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.js +362 -0
  292. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.js.map +1 -0
  293. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.d.ts +1 -0
  294. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.js +86 -0
  295. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.js.map +1 -0
  296. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.d.ts +2 -0
  297. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.js +3 -0
  298. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.js.map +1 -0
  299. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.d.ts +1 -0
  300. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.js +6 -0
  301. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.js.map +1 -0
  302. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.d.ts +1 -0
  303. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.js +369 -0
  304. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.js.map +1 -0
  305. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.d.ts +6 -0
  306. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.js +7 -0
  307. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.js.map +1 -0
  308. package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.d.ts +1 -0
  309. package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.js +6 -0
  310. package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.js.map +1 -0
  311. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.d.ts +2 -0
  312. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.js +3 -0
  313. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.js.map +1 -0
  314. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.d.ts +1 -0
  315. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.js +6 -0
  316. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.js.map +1 -0
  317. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.d.ts +1 -0
  318. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.js +184 -0
  319. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.js.map +1 -0
  320. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.d.ts +3 -0
  321. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.js +4 -0
  322. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.js.map +1 -0
  323. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.d.ts +1 -0
  324. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.js +6 -0
  325. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.js.map +1 -0
  326. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.d.ts +1 -0
  327. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.js +80 -0
  328. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.js.map +1 -0
  329. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.d.ts +1 -0
  330. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.js +139 -0
  331. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.js.map +1 -0
  332. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.d.ts +2 -0
  333. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.js +3 -0
  334. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.js.map +1 -0
  335. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.d.ts +1 -0
  336. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.js +6 -0
  337. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.js.map +1 -0
  338. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.d.ts +1 -0
  339. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.js +118 -0
  340. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.js.map +1 -0
  341. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.d.ts +1 -1
  342. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.js +1 -2
  343. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.js.map +1 -1
  344. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/main.d.ts +1 -1
  345. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js +334 -12
  346. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js.map +1 -1
  347. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js +449 -2
  348. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js.map +1 -1
  349. package/dist/programs/dev-tools/anvil/main.d.ts +1 -1
  350. package/dist/programs/dev-tools/defi-wrapper/main.d.ts +1 -1
  351. package/dist/programs/dev-tools/defi-wrapper/write.js +42 -12
  352. package/dist/programs/dev-tools/defi-wrapper/write.js.map +1 -1
  353. package/dist/programs/dev-tools/main.d.ts +1 -1
  354. package/dist/programs/pdg-helpers.js +59 -19
  355. package/dist/programs/pdg-helpers.js.map +1 -1
  356. package/dist/programs/use-cases/consolidation/main.d.ts +1 -1
  357. package/dist/programs/use-cases/consolidation/write.d.ts +1 -1
  358. package/dist/programs/use-cases/consolidation/write.js +6 -2
  359. package/dist/programs/use-cases/consolidation/write.js.map +1 -1
  360. package/dist/programs/use-cases/deposits/main.d.ts +1 -1
  361. package/dist/programs/use-cases/deposits/read.js +40 -8
  362. package/dist/programs/use-cases/deposits/read.js.map +1 -1
  363. package/dist/programs/use-cases/deposits/write.js +15 -3
  364. package/dist/programs/use-cases/deposits/write.js.map +1 -1
  365. package/dist/programs/use-cases/metrics/main.d.ts +1 -1
  366. package/dist/programs/use-cases/metrics/read.js +32 -12
  367. package/dist/programs/use-cases/metrics/read.js.map +1 -1
  368. package/dist/programs/use-cases/report/main.d.ts +1 -1
  369. package/dist/programs/use-cases/report/read.js +25 -5
  370. package/dist/programs/use-cases/report/read.js.map +1 -1
  371. package/dist/programs/use-cases/report/write.js +10 -2
  372. package/dist/programs/use-cases/report/write.js.map +1 -1
  373. package/dist/programs/use-cases/vault-operations/main.d.ts +1 -1
  374. package/dist/programs/use-cases/vault-operations/write.js +59 -21
  375. package/dist/programs/use-cases/vault-operations/write.js.map +1 -1
  376. package/dist/providers/index.d.ts +1 -1
  377. package/dist/providers/index.js +1 -1
  378. package/dist/providers/wallet.d.ts +302 -300
  379. package/dist/providers/wallet.js +10 -2
  380. package/dist/providers/wallet.js.map +1 -1
  381. package/dist/tests/integration/deposits.test.js +1 -1
  382. package/dist/tests/integration/deposits.test.js.map +1 -1
  383. package/dist/tests/integration/helpers/test-client.d.ts +150 -150
  384. package/dist/tests/integration/metrics.test.js.map +1 -1
  385. package/dist/tests/integration/mint-burn.test.js.map +1 -1
  386. package/dist/tests/utils/calculate-overview-v2.test.js +1 -1
  387. package/dist/tests/utils/csv-file.test.js +1 -1
  388. package/dist/tests/utils/error-handler.test.js +5 -8
  389. package/dist/tests/utils/error-handler.test.js.map +1 -1
  390. package/dist/tests/utils/lido-apr.test.js +1 -1
  391. package/dist/tests/utils/logging.test.js +30 -14
  392. package/dist/tests/utils/logging.test.js.map +1 -1
  393. package/dist/tests/utils/rate-limit.test.d.ts +1 -0
  394. package/dist/tests/utils/rate-limit.test.js +246 -0
  395. package/dist/tests/utils/rate-limit.test.js.map +1 -0
  396. package/dist/tests/utils/rebase-rewards.test.js +44 -43
  397. package/dist/tests/utils/rebase-rewards.test.js.map +1 -1
  398. package/dist/tests/utils/report-statistic.test.d.ts +1 -0
  399. package/dist/tests/utils/report-statistic.test.js +501 -0
  400. package/dist/tests/utils/report-statistic.test.js.map +1 -0
  401. package/dist/tests/utils/snake-to-camel.test.js +1 -1
  402. package/dist/tests/utils/spinner.test.d.ts +1 -0
  403. package/dist/tests/utils/spinner.test.js +113 -0
  404. package/dist/tests/utils/spinner.test.js.map +1 -0
  405. package/dist/tests/utils/timestamp.test.js +1 -1
  406. package/dist/types/index.d.ts +2 -2
  407. package/dist/types/index.js +2 -2
  408. package/dist/utils/arguments.d.ts +15 -1
  409. package/dist/utils/arguments.js +28 -0
  410. package/dist/utils/arguments.js.map +1 -1
  411. package/dist/utils/cache.d.ts +6 -5
  412. package/dist/utils/cache.js +15 -13
  413. package/dist/utils/cache.js.map +1 -1
  414. package/dist/utils/charts/blessed/charts-apr.js +10 -6
  415. package/dist/utils/charts/blessed/charts-apr.js.map +1 -1
  416. package/dist/utils/charts/blessed/charts-rewards.js +9 -5
  417. package/dist/utils/charts/blessed/charts-rewards.js.map +1 -1
  418. package/dist/utils/charts/blessed/datasets/prepare-metrics.d.ts +6 -6
  419. package/dist/utils/charts/blessed/datasets/prepare-metrics.js +12 -13
  420. package/dist/utils/charts/blessed/datasets/prepare-metrics.js.map +1 -1
  421. package/dist/utils/charts/blessed/utils.js +5 -2
  422. package/dist/utils/charts/blessed/utils.js.map +1 -1
  423. package/dist/utils/charts/simple/simple-charts.js +20 -8
  424. package/dist/utils/charts/simple/simple-charts.js.map +1 -1
  425. package/dist/utils/commands/report.d.ts +5 -2
  426. package/dist/utils/commands/report.js +21 -7
  427. package/dist/utils/commands/report.js.map +1 -1
  428. package/dist/utils/consts.d.ts +1 -0
  429. package/dist/utils/consts.js +5 -0
  430. package/dist/utils/consts.js.map +1 -1
  431. package/dist/utils/error-handler.js +3 -0
  432. package/dist/utils/error-handler.js.map +1 -1
  433. package/dist/utils/fetchCL.d.ts +10 -0
  434. package/dist/utils/fetchCL.js +38 -28
  435. package/dist/utils/fetchCL.js.map +1 -1
  436. package/dist/utils/health/health-utils.d.ts +2 -27707
  437. package/dist/utils/health/health-utils.js +26 -8
  438. package/dist/utils/health/health-utils.js.map +1 -1
  439. package/dist/utils/index.d.ts +2 -0
  440. package/dist/utils/index.js +2 -0
  441. package/dist/utils/index.js.map +1 -1
  442. package/dist/utils/interrupt-handler.js +14 -6
  443. package/dist/utils/interrupt-handler.js.map +1 -1
  444. package/dist/utils/logging/console.d.ts +5 -1
  445. package/dist/utils/logging/console.js +36 -25
  446. package/dist/utils/logging/console.js.map +1 -1
  447. package/dist/utils/prompts/confirmations.d.ts +1 -1
  448. package/dist/utils/prompts/operations.d.ts +1 -1
  449. package/dist/utils/prompts/operations.js +1 -3
  450. package/dist/utils/prompts/operations.js.map +1 -1
  451. package/dist/utils/prompts/predeposit-guarantee.d.ts +1 -1
  452. package/dist/utils/prompts/predeposit-guarantee.js +1 -1
  453. package/dist/utils/proof/create-proof.js +18 -3
  454. package/dist/utils/proof/create-proof.js.map +1 -1
  455. package/dist/utils/rate-limit.d.ts +10 -0
  456. package/dist/utils/rate-limit.js +30 -0
  457. package/dist/utils/rate-limit.js.map +1 -0
  458. package/dist/utils/read-programs-by-abi.js +22 -4
  459. package/dist/utils/read-programs-by-abi.js.map +1 -1
  460. package/dist/utils/rebase-rewards.d.ts +0 -1
  461. package/dist/utils/rebase-rewards.js +12 -3
  462. package/dist/utils/rebase-rewards.js.map +1 -1
  463. package/dist/utils/report/statistic-data.js +31 -10
  464. package/dist/utils/report/statistic-data.js.map +1 -1
  465. package/dist/utils/share-rate.js +16 -4
  466. package/dist/utils/share-rate.js.map +1 -1
  467. package/dist/utils/sleep.js.map +1 -1
  468. package/dist/utils/spinner/spinners.js +5 -3
  469. package/dist/utils/spinner/spinners.js.map +1 -1
  470. package/dist/utils/statistic/report-statistic.d.ts +21 -6
  471. package/dist/utils/statistic/report-statistic.js +65 -25
  472. package/dist/utils/statistic/report-statistic.js.map +1 -1
  473. package/dist/utils/transactions/tx-private-key.d.ts +5 -7
  474. package/dist/utils/transactions/tx-private-key.js +56 -21
  475. package/dist/utils/transactions/tx-private-key.js.map +1 -1
  476. package/dist/utils/transactions/tx-wc.d.ts +12 -11
  477. package/dist/utils/transactions/tx-wc.js +108 -11
  478. package/dist/utils/transactions/tx-wc.js.map +1 -1
  479. package/dist/utils/transactions/types.d.ts +7 -0
  480. package/dist/utils/transactions/utils.d.ts +1 -0
  481. package/dist/utils/transactions/utils.js +13 -2
  482. package/dist/utils/transactions/utils.js.map +1 -1
  483. package/dist/utils/wallet-connect.d.ts +4 -1
  484. package/dist/utils/wallet-connect.js +52 -4
  485. package/dist/utils/wallet-connect.js.map +1 -1
  486. package/dist/utils/with-error.d.ts +7 -0
  487. package/dist/utils/with-error.js +6 -0
  488. package/dist/utils/with-error.js.map +1 -0
  489. package/dist/version/index.js +1 -1
  490. package/package.json +4 -13
  491. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js +0 -180
  492. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js.map +0 -1
  493. /package/dist/programs/defi-wrapper/use-cases/{wrapper-operations/create-pool.d.ts → distributor/read.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { parseEther, formatEther } from 'viem';
2
2
  import { Option } from 'commander';
3
3
  import { getDashboardContract, getOperatorGridContract, getPredepositGuaranteeContract, getStakingVaultContract, } from '../../../contracts/index.js';
4
- import { mintShares, burnShares, mintSteth, burnSteth, checkBLSDeposits, checkPdgIsPaused, callWriteMethodsWithReportFresh, checkValidatorInfo, } from '../../../features/index.js';
4
+ import { mintShares, burnShares, mintSteth, burnSteth, checkBLSDeposits, checkPdgIsPaused, callWriteMethodsWithReportFresh, checkValidatorInfo, resolveStethShareLimit, } from '../../../features/index.js';
5
5
  import { callReadMethod, callWriteMethodWithReceipt, jsonToRoleAssignment, confirmOperation, stringToBigInt, parseDepositArray, logInfo, getCommandsJson, stringToAddress, createPDGProof, confirmProposal, formatBP, callReadMethodSilent, showSpinner, stringToBigIntArrayWei, stringToHexArray, etherToWei, stringToNumber, logError, } from '../../../utils/index.js';
6
6
  import { dashboard } from './main.js';
7
7
  const dashboardWrite = dashboard
@@ -21,7 +21,11 @@ dashboardWrite
21
21
  .argument('<newOwner>', 'address of the new owner', stringToAddress)
22
22
  .action(async (address, newOwner) => {
23
23
  const contract = await getDashboardContract(address);
24
- const vault = await callReadMethod(contract, 'stakingVault');
24
+ const vault = await callReadMethod({
25
+ contract,
26
+ methodName: 'stakingVault',
27
+ payload: [],
28
+ });
25
29
  const confirm = await confirmOperation(`Are you sure you want to transfer ownership of the staking vault ${vault} to ${newOwner}?`);
26
30
  if (!confirm)
27
31
  return;
@@ -37,7 +41,11 @@ dashboardWrite
37
41
  .argument('<address>', 'dashboard address', stringToAddress)
38
42
  .action(async (address) => {
39
43
  const contract = await getDashboardContract(address);
40
- const vault = await callReadMethod(contract, 'stakingVault');
44
+ const vault = await callReadMethod({
45
+ contract,
46
+ methodName: 'stakingVault',
47
+ payload: [],
48
+ });
41
49
  const confirm = await confirmOperation(`Are you sure you want to disconnect the staking vault ${vault}?`);
42
50
  if (!confirm)
43
51
  return;
@@ -55,7 +63,11 @@ dashboardWrite
55
63
  .argument('<ether>', 'amount of ether to be funded (in ETH)')
56
64
  .action(async (address, ether) => {
57
65
  const contract = await getDashboardContract(address);
58
- const vault = await callReadMethod(contract, 'stakingVault');
66
+ const vault = await callReadMethod({
67
+ contract,
68
+ methodName: 'stakingVault',
69
+ payload: [],
70
+ });
59
71
  const confirm = await confirmOperation(`Are you sure you want to fund the staking vault ${vault} with ${ether} ether?`);
60
72
  if (!confirm)
61
73
  return;
@@ -74,7 +86,11 @@ dashboardWrite
74
86
  .argument('<eth>', 'amount of ether to withdraw (in ETH)')
75
87
  .action(async (address, recipient, ether) => {
76
88
  const contract = await getDashboardContract(address);
77
- const vault = await callReadMethod(contract, 'stakingVault');
89
+ const vault = await callReadMethod({
90
+ contract,
91
+ methodName: 'stakingVault',
92
+ payload: [],
93
+ });
78
94
  const confirm = await confirmOperation(`Are you sure you want to withdraw ${ether} from the staking vault ${vault} to ${recipient}?`);
79
95
  if (!confirm)
80
96
  return;
@@ -92,7 +108,11 @@ dashboardWrite
92
108
  .argument('<validatorPubKey>', 'public key of the validator to exit')
93
109
  .action(async (address, validatorPubKey) => {
94
110
  const contract = await getDashboardContract(address);
95
- const vault = await callReadMethod(contract, 'stakingVault');
111
+ const vault = await callReadMethod({
112
+ contract,
113
+ methodName: 'stakingVault',
114
+ payload: [],
115
+ });
96
116
  const confirm = await confirmOperation(`Are you sure you want to exit the validator ${validatorPubKey} from the staking vault ${vault}?`);
97
117
  if (!confirm)
98
118
  return;
@@ -110,11 +130,20 @@ dashboardWrite
110
130
  .argument('<amounts>', 'amounts of ether to withdraw. Comma separated list of amounts', stringToBigIntArrayWei)
111
131
  .argument('<recipient>', 'address of the recipient', stringToAddress)
112
132
  .action(async (address, pubkeys, amounts, recipient) => {
113
- const mergedPubkeys = pubkeys.join('');
133
+ const mergedPubkeys = ('0x' +
134
+ pubkeys.map((pubkey) => pubkey.replace(/^0x/, '')).join(''));
114
135
  const contract = await getDashboardContract(address);
115
- const vault = await callReadMethod(contract, 'stakingVault');
136
+ const vault = await callReadMethod({
137
+ contract,
138
+ methodName: 'stakingVault',
139
+ payload: [],
140
+ });
116
141
  const vaultContract = await getStakingVaultContract(vault);
117
- const fee = await callReadMethod(vaultContract, 'calculateValidatorWithdrawalFee', [BigInt(amounts.length)]);
142
+ const fee = await callReadMethod({
143
+ contract: vaultContract,
144
+ methodName: 'calculateValidatorWithdrawalFee',
145
+ payload: [[BigInt(amounts.length)]],
146
+ });
118
147
  const confirmationMessage = `Are you sure you want to trigger the withdrawal of the validators
119
148
  ${pubkeys.join(', ')}
120
149
  from the staking vault ${vault} to ${recipient}
@@ -139,7 +168,11 @@ dashboardWrite
139
168
  .argument('<amountOfShares>', 'amount of shares to mint (in Shares)')
140
169
  .action(async (address, recipient, amountOfShares) => {
141
170
  const contract = await getDashboardContract(address);
142
- const vault = await callReadMethod(contract, 'stakingVault');
171
+ const vault = await callReadMethod({
172
+ contract,
173
+ methodName: 'stakingVault',
174
+ payload: [],
175
+ });
143
176
  await mintShares(contract, recipient, parseEther(amountOfShares), vault, 'mintShares');
144
177
  });
145
178
  dashboardWrite
@@ -150,7 +183,11 @@ dashboardWrite
150
183
  .argument('<amountOfSteth>', 'amount of stETH to mint')
151
184
  .action(async (address, recipient, amountOfSteth) => {
152
185
  const contract = await getDashboardContract(address);
153
- const vault = await callReadMethod(contract, 'stakingVault');
186
+ const vault = await callReadMethod({
187
+ contract,
188
+ methodName: 'stakingVault',
189
+ payload: [],
190
+ });
154
191
  await mintSteth(contract, recipient, parseEther(amountOfSteth), vault);
155
192
  });
156
193
  dashboardWrite
@@ -161,7 +198,11 @@ dashboardWrite
161
198
  .argument('<amountOfWsteth>', 'amount of wstETH to mint')
162
199
  .action(async (address, recipient, amountOfWsteth) => {
163
200
  const contract = await getDashboardContract(address);
164
- const vault = await callReadMethod(contract, 'stakingVault');
201
+ const vault = await callReadMethod({
202
+ contract,
203
+ methodName: 'stakingVault',
204
+ payload: [],
205
+ });
165
206
  await mintShares(contract, recipient, parseEther(amountOfWsteth), vault, 'mintWstETH');
166
207
  });
167
208
  dashboardWrite
@@ -172,7 +213,11 @@ dashboardWrite
172
213
  .argument('<amountOfShares>', 'amount of shares to burn (in Shares)')
173
214
  .action(async (address, amountOfShares) => {
174
215
  const contract = await getDashboardContract(address);
175
- const vault = await callReadMethod(contract, 'stakingVault');
216
+ const vault = await callReadMethod({
217
+ contract,
218
+ methodName: 'stakingVault',
219
+ payload: [],
220
+ });
176
221
  await burnShares(contract, parseEther(amountOfShares), vault, 'burnShares');
177
222
  });
178
223
  dashboardWrite
@@ -182,7 +227,11 @@ dashboardWrite
182
227
  .argument('<amountOfShares>', 'amount of shares to burn (in stETH)')
183
228
  .action(async (address, amountOfShares) => {
184
229
  const contract = await getDashboardContract(address);
185
- const vault = await callReadMethod(contract, 'stakingVault');
230
+ const vault = await callReadMethod({
231
+ contract,
232
+ methodName: 'stakingVault',
233
+ payload: [],
234
+ });
186
235
  await burnSteth(contract, parseEther(amountOfShares), vault);
187
236
  });
188
237
  dashboardWrite
@@ -192,7 +241,11 @@ dashboardWrite
192
241
  .argument('<tokens>', 'amount of wstETH tokens to burn (in wstETH)')
193
242
  .action(async (address, tokens) => {
194
243
  const contract = await getDashboardContract(address);
195
- const vault = await callReadMethod(contract, 'stakingVault');
244
+ const vault = await callReadMethod({
245
+ contract,
246
+ methodName: 'stakingVault',
247
+ payload: [],
248
+ });
196
249
  await burnShares(contract, parseEther(tokens), vault, 'burnWstETH');
197
250
  });
198
251
  dashboardWrite
@@ -202,7 +255,11 @@ dashboardWrite
202
255
  .argument('<ether>', 'amount of ether to rebalance (in ETH)', etherToWei)
203
256
  .action(async (address, ether) => {
204
257
  const contract = await getDashboardContract(address);
205
- const vault = await callReadMethod(contract, 'stakingVault');
258
+ const vault = await callReadMethod({
259
+ contract,
260
+ methodName: 'stakingVault',
261
+ payload: [],
262
+ });
206
263
  const confirm = await confirmOperation(`Are you sure you want to rebalance the vault ${vault} with ${formatEther(ether)} ether by transferring?`);
207
264
  if (!confirm)
208
265
  return;
@@ -220,7 +277,11 @@ dashboardWrite
220
277
  .argument('<shares>', 'amount of shares to rebalance (in shares)', etherToWei)
221
278
  .action(async (address, shares) => {
222
279
  const contract = await getDashboardContract(address);
223
- const vault = await callReadMethod(contract, 'stakingVault');
280
+ const vault = await callReadMethod({
281
+ contract,
282
+ methodName: 'stakingVault',
283
+ payload: [],
284
+ });
224
285
  const confirm = await confirmOperation(`Are you sure you want to rebalance the vault ${vault} with ${formatEther(shares)} shares?`);
225
286
  if (!confirm)
226
287
  return;
@@ -272,7 +333,11 @@ dashboardWrite
272
333
  .argument('<address>', 'dashboard address', stringToAddress)
273
334
  .action(async (address) => {
274
335
  const contract = await getDashboardContract(address);
275
- const vault = await callReadMethod(contract, 'stakingVault');
336
+ const vault = await callReadMethod({
337
+ contract,
338
+ methodName: 'stakingVault',
339
+ payload: [],
340
+ });
276
341
  const confirm = await confirmOperation(`Are you sure you want to pause beacon chain deposits on the staking vault ${vault}?`);
277
342
  if (!confirm)
278
343
  return;
@@ -288,7 +353,11 @@ dashboardWrite
288
353
  .argument('<address>', 'dashboard address', stringToAddress)
289
354
  .action(async (address) => {
290
355
  const contract = await getDashboardContract(address);
291
- const vault = await callReadMethod(contract, 'stakingVault');
356
+ const vault = await callReadMethod({
357
+ contract,
358
+ methodName: 'stakingVault',
359
+ payload: [],
360
+ });
292
361
  const confirm = await confirmOperation(`Are you sure you want to resume beacon chain deposits on the staking vault ${vault}?`);
293
362
  if (!confirm)
294
363
  return;
@@ -315,7 +384,11 @@ dashboardWrite
315
384
  if (!Array.isArray(roleAssignment)) {
316
385
  throw new Error('the 2nd argument should be an array of role assignments');
317
386
  }
318
- const vault = await callReadMethod(contract, 'stakingVault');
387
+ const vault = await callReadMethod({
388
+ contract,
389
+ methodName: 'stakingVault',
390
+ payload: [],
391
+ });
319
392
  const confirm = await confirmOperation(`Are you sure you want to grant the roles ${roleAssignment.map((i) => JSON.stringify(i))} in the vault ${vault}?`);
320
393
  if (!confirm)
321
394
  return;
@@ -342,7 +415,11 @@ dashboardWrite
342
415
  if (!Array.isArray(roleAssignment)) {
343
416
  throw new Error('the 2nd argument should be an array of role assignments');
344
417
  }
345
- const vault = await callReadMethod(contract, 'stakingVault');
418
+ const vault = await callReadMethod({
419
+ contract,
420
+ methodName: 'stakingVault',
421
+ payload: [],
422
+ });
346
423
  const confirm = await confirmOperation(`Are you sure you want to revoke the roles ${roleAssignment.map((i) => JSON.stringify(i))} in the vault ${vault}?`);
347
424
  if (!confirm)
348
425
  return;
@@ -370,7 +447,11 @@ dashboardWrite
370
447
  ...]'`)
371
448
  .action(async (address, deposits, { blsCheck }) => {
372
449
  const contract = await getDashboardContract(address);
373
- const vault = await callReadMethod(contract, 'stakingVault');
450
+ const vault = await callReadMethod({
451
+ contract,
452
+ methodName: 'stakingVault',
453
+ payload: [],
454
+ });
374
455
  const vaultContract = await getStakingVaultContract(vault);
375
456
  const confirm = await confirmOperation(`Are you sure you want to unguaranteed deposit ${deposits.length} deposits to the beacon chain in the staking vault ${vault}?
376
457
  Pubkeys: ${deposits.map((i) => i.pubkey).join(', ')}`);
@@ -395,14 +476,26 @@ dashboardWrite
395
476
  getDashboardContract(address),
396
477
  getPredepositGuaranteeContract(),
397
478
  ]);
398
- const vault = await callReadMethod(dashboardContract, 'stakingVault');
479
+ const vault = await callReadMethod({
480
+ contract: dashboardContract,
481
+ methodName: 'stakingVault',
482
+ payload: [],
483
+ });
399
484
  const vaultContract = await getStakingVaultContract(vault);
400
- const pdgContractAddress = await callReadMethodSilent(vaultContract, 'depositor');
485
+ const pdgContractAddress = await callReadMethodSilent({
486
+ contract: vaultContract,
487
+ methodName: 'depositor',
488
+ payload: [],
489
+ });
401
490
  const isPaused = await checkPdgIsPaused(pdgContract);
402
491
  if (isPaused)
403
492
  return;
404
493
  const payload = [];
405
- const pdgPolicy = await callReadMethodSilent(dashboardContract, 'pdgPolicy');
494
+ const pdgPolicy = await callReadMethodSilent({
495
+ contract: dashboardContract,
496
+ methodName: 'pdgPolicy',
497
+ payload: [],
498
+ });
406
499
  const isAllowed = pdgPolicy === 2;
407
500
  if (!isAllowed) {
408
501
  throw new Error(`Dashboard PDG policy is not set to allow proving unknown validators to PDG`);
@@ -453,7 +546,11 @@ dashboardWrite
453
546
  .argument('<newOwner>', 'new owner address', stringToAddress)
454
547
  .action(async (address, newOwner) => {
455
548
  const contract = await getDashboardContract(address);
456
- const vault = await callReadMethod(contract, 'stakingVault');
549
+ const vault = await callReadMethod({
550
+ contract,
551
+ methodName: 'stakingVault',
552
+ payload: [],
553
+ });
457
554
  const confirm = await confirmOperation(`Are you sure you want to abandon the dashboard ${address} (vault: ${vault})?`);
458
555
  if (!confirm)
459
556
  return;
@@ -471,8 +568,16 @@ dashboardWrite
471
568
  .addHelpText('after', `Reverts if settledGrowth is not corrected after the vault is disconnected`)
472
569
  .action(async (address) => {
473
570
  const contract = await getDashboardContract(address);
474
- const vault = await callReadMethod(contract, 'stakingVault');
475
- const currentSettledGrowth = await callReadMethodSilent(contract, 'settledGrowth');
571
+ const vault = await callReadMethod({
572
+ contract,
573
+ methodName: 'stakingVault',
574
+ payload: [],
575
+ });
576
+ const currentSettledGrowth = await callReadMethodSilent({
577
+ contract,
578
+ methodName: 'settledGrowth',
579
+ payload: [],
580
+ });
476
581
  const confirm = await confirmOperation(`Are you sure you want to connect the dashboard ${address} (vault: ${vault}) to VaultHub?
477
582
  Current settled growth: ${formatEther(currentSettledGrowth)}`);
478
583
  if (!confirm)
@@ -491,8 +596,16 @@ dashboardWrite
491
596
  .addHelpText('after', `Reverts if settledGrowth is not corrected after the vault is disconnected`)
492
597
  .action(async (address) => {
493
598
  const contract = await getDashboardContract(address);
494
- const vault = await callReadMethod(contract, 'stakingVault');
495
- const currentSettledGrowth = await callReadMethodSilent(contract, 'settledGrowth');
599
+ const vault = await callReadMethod({
600
+ contract,
601
+ methodName: 'stakingVault',
602
+ payload: [],
603
+ });
604
+ const currentSettledGrowth = await callReadMethodSilent({
605
+ contract,
606
+ methodName: 'settledGrowth',
607
+ payload: [],
608
+ });
496
609
  const confirm = await confirmOperation(`Are you sure you want to reconnect the dashboard ${address} (vault: ${vault}) to VaultHub?
497
610
  Current settled growth: ${formatEther(currentSettledGrowth)}`);
498
611
  if (!confirm)
@@ -509,22 +622,32 @@ dashboardWrite
509
622
  .description('changes the tier of the vault and connects to VaultHub')
510
623
  .argument('<address>', 'dashboard address', stringToAddress)
511
624
  .argument('<tier>', 'tier to change to', stringToBigInt)
512
- .argument('<requestedShareLimit>', 'requested new share limit for the vault (in shares)', etherToWei)
625
+ .argument('<requestedShareLimit>', 'requested new share limit for the vault (in shares by default, or in stETH if --steth flag is provided)', etherToWei)
513
626
  .option('-f, --fund', 'optional fund the vault with 1 ETH', false)
627
+ .option('--steth', 'interpret requestedShareLimit as stETH value and convert to shares on-chain', false)
514
628
  .addHelpText('after', `Reverts if settledGrowth is not corrected after the vault is disconnected`)
515
- .action(async (address, tier, requestedShareLimit, { fund }) => {
629
+ .action(async (address, tier, requestedShareLimit, { fund, steth }) => {
516
630
  const contract = await getDashboardContract(address);
517
- const vault = await callReadMethod(contract, 'stakingVault');
518
- const currentSettledGrowth = await callReadMethodSilent(contract, 'settledGrowth');
631
+ const vault = await callReadMethod({
632
+ contract,
633
+ methodName: 'stakingVault',
634
+ payload: [],
635
+ });
636
+ const currentSettledGrowth = await callReadMethodSilent({
637
+ contract,
638
+ methodName: 'settledGrowth',
639
+ payload: [],
640
+ });
641
+ const { shares: resolvedShareLimit, label: shareLimitLabel } = await resolveStethShareLimit(requestedShareLimit, steth);
519
642
  const confirm = await confirmOperation(`Are you sure you want to change the tier of the vault ${vault} to ${tier} and connect to VaultHub?
520
- Requested share limit: ${formatEther(requestedShareLimit)}
643
+ Requested share limit: ${shareLimitLabel}
521
644
  Current settled growth: ${formatEther(currentSettledGrowth)}`);
522
645
  if (!confirm)
523
646
  return;
524
647
  await callWriteMethodWithReceipt({
525
648
  contract,
526
649
  methodName: 'connectAndAcceptTier',
527
- payload: [tier, requestedShareLimit],
650
+ payload: [tier, resolvedShareLimit],
528
651
  value: fund ? parseEther('1') : undefined,
529
652
  });
530
653
  });
@@ -576,7 +699,11 @@ dashboardWrite
576
699
  .argument('<address>', 'dashboard address', stringToAddress)
577
700
  .action(async (address) => {
578
701
  const contract = await getDashboardContract(address);
579
- const vault = await callReadMethodSilent(contract, 'stakingVault');
702
+ const vault = await callReadMethodSilent({
703
+ contract,
704
+ methodName: 'stakingVault',
705
+ payload: [],
706
+ });
580
707
  const operatorGridContract = await getOperatorGridContract();
581
708
  const log = await confirmProposal({
582
709
  contract: contract,
@@ -631,6 +758,28 @@ dashboardWrite
631
758
  payload: [fee],
632
759
  });
633
760
  });
761
+ dashboardWrite
762
+ .command('add-fee-exemption')
763
+ .description('Adds a fee exemption to exclude this value from node operator fee base. The exemption works by increasing the settled growth, effectively treating the exempted amount as if fees were already paid on it.')
764
+ .argument('<address>', 'dashboard address', stringToAddress)
765
+ .argument('<amount>', 'fee exemption amount to add (in ETH)', etherToWei)
766
+ .action(async (address, amount) => {
767
+ const contract = await getDashboardContract(address);
768
+ const settledGrowth = await callReadMethodSilent({
769
+ contract,
770
+ methodName: 'settledGrowth',
771
+ payload: [],
772
+ });
773
+ const confirm = await confirmOperation(`Are you sure you want to add a fee exemption of ${formatEther(amount)} ETH?
774
+ Current settled growth: ${formatEther(settledGrowth)} ETH`);
775
+ if (!confirm)
776
+ return;
777
+ await callWriteMethodWithReceipt({
778
+ contract,
779
+ methodName: 'addFeeExemption',
780
+ payload: [amount],
781
+ });
782
+ });
634
783
  dashboardWrite
635
784
  .command('disburse-node-operator-fee')
636
785
  .description('transfers the node-operator`s accrued fee (if any) to nodeOperatorFeeRecipient')
@@ -638,8 +787,16 @@ dashboardWrite
638
787
  .action(async (address) => {
639
788
  const contract = await getDashboardContract(address);
640
789
  const [nodeOperatorFeeRecipient, accruedFee] = await Promise.all([
641
- callReadMethodSilent(contract, 'feeRecipient'),
642
- callReadMethodSilent(contract, 'accruedFee'),
790
+ callReadMethodSilent({
791
+ contract,
792
+ methodName: 'feeRecipient',
793
+ payload: [],
794
+ }),
795
+ callReadMethodSilent({
796
+ contract,
797
+ methodName: 'accruedFee',
798
+ payload: [],
799
+ }),
643
800
  ]);
644
801
  if (accruedFee === 0n) {
645
802
  logError('The node operator has no accrued fee');
@@ -660,17 +817,23 @@ dashboardWrite
660
817
  .description('vault tier change with multi-role confirmation')
661
818
  .argument('<address>', 'dashboard address', stringToAddress)
662
819
  .argument('<tierId>', 'tier id', stringToBigInt)
663
- .argument('<requestedShareLimit>', 'requested share limit (in shares)', etherToWei)
664
- .action(async (address, tierId, requestedShareLimit) => {
820
+ .argument('<requestedShareLimit>', 'requested share limit (in shares by default, or in stETH if --steth flag is provided)', etherToWei)
821
+ .option('--steth', 'interpret requestedShareLimit as stETH value and convert to shares on-chain', false)
822
+ .action(async (address, tierId, requestedShareLimit, { steth }) => {
665
823
  const contract = await getDashboardContract(address);
666
- const vault = await callReadMethod(contract, 'stakingVault');
667
- const confirm = await confirmOperation(`Are you sure you want to change the current tier to tier ID ${tierId} for vault ${vault} with share limit ${formatEther(requestedShareLimit)} shares?`);
824
+ const vault = await callReadMethod({
825
+ contract,
826
+ methodName: 'stakingVault',
827
+ payload: [],
828
+ });
829
+ const { shares: shareLimit, label: shareLimitLabel } = await resolveStethShareLimit(requestedShareLimit, steth);
830
+ const confirm = await confirmOperation(`Are you sure you want to change the current tier to tier ID ${tierId} for vault ${vault} with share limit ${shareLimitLabel}?`);
668
831
  if (!confirm)
669
832
  return;
670
833
  await callWriteMethodWithReceipt({
671
834
  contract,
672
835
  methodName: 'changeTier',
673
- payload: [tierId, requestedShareLimit],
836
+ payload: [tierId, shareLimit],
674
837
  });
675
838
  });
676
839
  dashboardWrite
@@ -684,7 +847,11 @@ dashboardWrite
684
847
  - Confirmations expire after the configured period (default: 1 day)`)
685
848
  .action(async (address) => {
686
849
  const contract = await getDashboardContract(address);
687
- const vault = await callReadMethod(contract, 'stakingVault');
850
+ const vault = await callReadMethod({
851
+ contract,
852
+ methodName: 'stakingVault',
853
+ payload: [],
854
+ });
688
855
  const confirm = await confirmOperation(`Are you sure you want to sync the tier of the vault ${vault}?`);
689
856
  if (!confirm)
690
857
  return;
@@ -699,17 +866,23 @@ dashboardWrite
699
866
  .alias('usl')
700
867
  .description('requests a change of share limit on the OperatorGrid')
701
868
  .argument('<address>', 'dashboard address', stringToAddress)
702
- .argument('<shareLimit>', 'share limit', etherToWei)
703
- .action(async (address, shareLimit) => {
869
+ .argument('<shareLimit>', 'share limit (in shares by default, or in stETH if --steth flag is provided)', etherToWei)
870
+ .option('--steth', 'interpret shareLimit as stETH value and convert to shares on-chain', false)
871
+ .action(async (address, shareLimit, { steth }) => {
704
872
  const contract = await getDashboardContract(address);
705
- const vault = await callReadMethod(contract, 'stakingVault');
706
- const confirm = await confirmOperation(`Are you sure you want to request a change of share limit on the OperatorGrid for the vault ${vault} to ${formatEther(shareLimit)}?`);
873
+ const vault = await callReadMethod({
874
+ contract,
875
+ methodName: 'stakingVault',
876
+ payload: [],
877
+ });
878
+ const { shares: resolvedShareLimit, label: shareLimitLabel } = await resolveStethShareLimit(shareLimit, steth);
879
+ const confirm = await confirmOperation(`Are you sure you want to request a change of share limit on the OperatorGrid for the vault ${vault} to ${shareLimitLabel}?`);
707
880
  if (!confirm)
708
881
  return;
709
882
  await callWriteMethodWithReceipt({
710
883
  contract,
711
884
  methodName: 'updateShareLimit',
712
- payload: [shareLimit],
885
+ payload: [resolvedShareLimit],
713
886
  });
714
887
  });
715
888
  dashboardWrite
@@ -734,7 +907,11 @@ dashboardWrite
734
907
  .argument('<newSettledGrowth>', 'new settled growth (in ETH)', etherToWei)
735
908
  .action(async (address, newSettledGrowth) => {
736
909
  const contract = await getDashboardContract(address);
737
- const currentSettledGrowth = await callReadMethodSilent(contract, 'settledGrowth');
910
+ const currentSettledGrowth = await callReadMethodSilent({
911
+ contract,
912
+ methodName: 'settledGrowth',
913
+ payload: [],
914
+ });
738
915
  const confirm = await confirmOperation(`Are you sure you want to correct the settled growth to ${newSettledGrowth}?
739
916
  Current settled growth: ${formatEther(currentSettledGrowth)}`);
740
917
  if (!confirm)
@@ -752,7 +929,11 @@ dashboardWrite
752
929
  .argument('<address>', 'dashboard address', stringToAddress)
753
930
  .action(async (address) => {
754
931
  const contract = await getDashboardContract(address);
755
- const feeLeftover = await callReadMethodSilent(contract, 'feeLeftover');
932
+ const feeLeftover = await callReadMethodSilent({
933
+ contract,
934
+ methodName: 'feeLeftover',
935
+ payload: [],
936
+ });
756
937
  const confirm = await confirmOperation(`Are you sure you want to recover the fee leftover from the dashboard contract ${address}?
757
938
  Fee leftover: ${formatEther(feeLeftover)}`);
758
939
  if (!confirm)