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

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 +11 -0
  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,6 +1,13 @@
1
- import { Option } from 'commander';
2
- import { logInfo, getCommandsJson } from '../../../../utils/index.js';
1
+ import { Option, program } from 'commander';
2
+ import { logInfo, getCommandsJson, stringToAddress, stringToBigInt, callReadMethod, confirmOperation, submitReport, callWriteMethodWithReceipt, logError, logTable, callWriteMethodWithReceiptBatchCalls, stringArrayToAddressArray, callReadMethodSilent, stringToNumber, sleep, } from '../../../../utils/index.js';
3
3
  import { wrapperOperations } from './main.js';
4
+ import { getWithdrawalQueueContract } from 'contracts/defi-wrapper/withdrawal-queue.js';
5
+ import { ContractFunctionRevertedError, encodeFunctionData, formatEther, parseEventLogs, zeroAddress, } from 'viem';
6
+ import { getDashboardContract, getLazyOracleContract, getVaultHubContract, } from '../../../../contracts/index.js';
7
+ import { getStvPoolContract } from 'contracts/defi-wrapper/stv-pool.js';
8
+ import { bigIntMin } from 'utils/bigInt.js';
9
+ import { getStvStethPoolContract } from 'contracts/defi-wrapper/stv-steth-pool.js';
10
+ import { areVaultParamsInSync, tryFetchPost } from '../../../../features/index.js';
4
11
  export const wrapperOperationsWrite = wrapperOperations
5
12
  .command('write')
6
13
  .aliases(['w'])
@@ -10,4 +17,444 @@ wrapperOperationsWrite.on('option:-cmd2json', function () {
10
17
  logInfo(getCommandsJson(wrapperOperationsWrite));
11
18
  process.exit();
12
19
  });
20
+ //
21
+ // Finalization Operations
22
+ //
23
+ wrapperOperationsWrite
24
+ .command('set-finalization-gas-cost-coverage')
25
+ .description('set finalization gas cost coverage')
26
+ .argument('<address>', 'withdrawal queue address', stringToAddress)
27
+ .argument('<gasCostCoverage>', 'gas cost coverage per withdrawal finalization in wei (max 0.0005 ETH)', stringToBigInt)
28
+ .action(async (address, gasCostCoverage) => {
29
+ const withdrawalQueue = await getWithdrawalQueueContract(address);
30
+ const currentGasCostCoverage = await callReadMethod({
31
+ contract: withdrawalQueue,
32
+ methodName: 'getFinalizationGasCostCoverage',
33
+ payload: [],
34
+ });
35
+ const maxGasCostCoverage = await callReadMethod({
36
+ contract: withdrawalQueue,
37
+ methodName: 'MAX_GAS_COST_COVERAGE',
38
+ payload: [],
39
+ });
40
+ if (gasCostCoverage > maxGasCostCoverage) {
41
+ logError(`Provided gas cost coverage of ${formatEther(gasCostCoverage)} ETH (${gasCostCoverage} wei) exceeds the maximum allowed value of ${formatEther(maxGasCostCoverage)} ETH (${maxGasCostCoverage} wei) for the withdrawal queue at address: ${address}. Please provide a valid value.`);
42
+ return;
43
+ }
44
+ if (currentGasCostCoverage === gasCostCoverage) {
45
+ logError(`Finalization gas cost coverage is already set to ${formatEther(gasCostCoverage)} ETH (${gasCostCoverage} wei) for the withdrawal queue at address: ${address}. No changes needed.`);
46
+ return;
47
+ }
48
+ const confirmationMessage = `Are you sure you want to update finalization gas cost coverage from ${formatEther(currentGasCostCoverage)} ETH (${currentGasCostCoverage} wei) to ${formatEther(gasCostCoverage)} ETH (${gasCostCoverage} wei) for the withdrawal queue at address: ${address}?`;
49
+ const confirm = await confirmOperation(confirmationMessage);
50
+ if (!confirm)
51
+ return;
52
+ await callWriteMethodWithReceipt({
53
+ contract: withdrawalQueue,
54
+ methodName: 'setFinalizationGasCostCoverage',
55
+ payload: [gasCostCoverage],
56
+ });
57
+ });
58
+ wrapperOperationsWrite
59
+ .command('finalize-withdrawals')
60
+ .description('finalize pending withdrawals in the wrapper')
61
+ .argument('<poolAddress>', 'pool address', stringToAddress)
62
+ .option('-mxr, --max-requests <maxRequestCount>', 'maximum number of requests to finalize, default: 1000', stringToBigInt, 1000n)
63
+ .option('-gcr, --gas-coverage-recipient <gasCoverageRecipient>', 'address to receive gas coverage(if any), defaults to tx sender', stringToAddress, zeroAddress)
64
+ .action(async (address, { maxRequestCount = 1000n, gasCoverageRecipient = zeroAddress, }) => {
65
+ const pool = await getStvPoolContract(address);
66
+ const withdrawalQueueAddress = await callReadMethod({
67
+ contract: pool,
68
+ methodName: 'WITHDRAWAL_QUEUE',
69
+ payload: [],
70
+ });
71
+ const withdrawalQueue = await getWithdrawalQueueContract(withdrawalQueueAddress);
72
+ logInfo(`Checking for pending withdrawals to finalize in WithdrawalQueue at address: ${address}...`);
73
+ const requestsToFinalize = await callReadMethod({
74
+ contract: withdrawalQueue,
75
+ methodName: 'unfinalizedRequestsNumber',
76
+ payload: [],
77
+ withSpinner: true,
78
+ });
79
+ if (requestsToFinalize === 0n) {
80
+ logInfo('No pending withdrawals to finalize.');
81
+ return;
82
+ }
83
+ logInfo(`Found ${requestsToFinalize} pending withdrawals to finalize. Proceeding with finalization...`);
84
+ if (requestsToFinalize > maxRequestCount) {
85
+ logInfo(`Only ${maxRequestCount}/${requestsToFinalize} requests will be finalized in this operation.`);
86
+ }
87
+ const dashboardAddress = await callReadMethod({
88
+ contract: withdrawalQueue,
89
+ methodName: 'DASHBOARD',
90
+ payload: [],
91
+ withSpinner: true,
92
+ });
93
+ const dashboard = await getDashboardContract(dashboardAddress);
94
+ const vaultHub = await getVaultHubContract();
95
+ const lazyOracle = await getLazyOracleContract();
96
+ const vaultAddress = await callReadMethod({
97
+ contract: dashboard,
98
+ methodName: 'stakingVault',
99
+ payload: [],
100
+ withSpinner: true,
101
+ });
102
+ const isReportFreshnessCheck = await callReadMethod({
103
+ contract: vaultHub,
104
+ methodName: 'isReportFresh',
105
+ payload: [[vaultAddress]],
106
+ withSpinner: true,
107
+ });
108
+ const { timestamp: latestVaultAppliedReportTimestamp } = await callReadMethod({
109
+ contract: vaultHub,
110
+ methodName: 'latestReport',
111
+ payload: [[vaultAddress]],
112
+ withSpinner: true,
113
+ });
114
+ const latestReportTimestamp = await callReadMethod({
115
+ contract: lazyOracle,
116
+ methodName: 'latestReportTimestamp',
117
+ payload: [],
118
+ withSpinner: true,
119
+ });
120
+ const isReportFresh = isReportFreshnessCheck &&
121
+ // this accounts for freshness > oracle reporting interval
122
+ latestReportTimestamp <= latestVaultAppliedReportTimestamp;
123
+ if (!isReportFresh) {
124
+ logInfo('The latest report for the staking vault is not fresh. The last report should be submitted before finalizing withdrawals.');
125
+ const { isFresh } = await submitReport({
126
+ vault: vaultAddress,
127
+ populateTx: program.opts().populateTx,
128
+ });
129
+ if (!isFresh)
130
+ // submitReport prompts user for report submission confirmation
131
+ // we can exit if user denies report submission
132
+ return;
133
+ }
134
+ const requestToBeFinalized = bigIntMin(requestsToFinalize, maxRequestCount);
135
+ const confirm = await confirmOperation(`Are you sure you want to finalize up to ${requestToBeFinalized}/${requestsToFinalize} withdrawal requests for the WithdrawalQueue at address: ${address}?`);
136
+ if (!confirm)
137
+ return;
138
+ await callWriteMethodWithReceipt({
139
+ contract: withdrawalQueue,
140
+ methodName: 'finalize',
141
+ payload: [maxRequestCount, gasCoverageRecipient],
142
+ });
143
+ });
144
+ ///
145
+ /// Allow List Operations
146
+ ///
147
+ wrapperOperationsWrite
148
+ .command('sync-vault-params')
149
+ .description('sync vault params between vault & pool')
150
+ .argument('<poolAddress>', 'pool address', stringToAddress)
151
+ .action(async (address) => {
152
+ const isInSync = await areVaultParamsInSync(address);
153
+ if (isInSync) {
154
+ logError('⚠️⚠️⚠️ Vault parameters are already in sync. No changes needed. ⚠️⚠️⚠️');
155
+ return;
156
+ }
157
+ const pool = await getStvStethPoolContract(address);
158
+ const { receipt } = await callWriteMethodWithReceipt({
159
+ contract: pool,
160
+ methodName: 'syncVaultParameters',
161
+ payload: [],
162
+ });
163
+ if (receipt?.logs) {
164
+ const logs = parseEventLogs({
165
+ abi: pool.abi,
166
+ logs: receipt.logs,
167
+ strict: true,
168
+ });
169
+ const hadEffect = logs.find((log) => log.eventName === 'VaultParametersUpdated');
170
+ if (!hadEffect) {
171
+ logInfo('⚠️⚠️⚠️ Vault parameters are already in sync. No changes were made during your tx. ⚠️⚠️⚠️');
172
+ return;
173
+ }
174
+ }
175
+ });
176
+ wrapperOperationsWrite
177
+ .command('allow-list-add')
178
+ .description('add addresses(divided by spaces) to allow list ')
179
+ .argument('<poolAddress>', 'pool address', stringToAddress)
180
+ .argument('<addressToAdd...>', '1 or more addresses to add to allow list divided by spaces', stringArrayToAddressArray, [])
181
+ .action(async (address, addressToAdd) => {
182
+ const pool = await getStvPoolContract(address);
183
+ const isAllowListEnabled = await callReadMethod({
184
+ contract: pool,
185
+ methodName: 'ALLOW_LIST_ENABLED',
186
+ payload: [],
187
+ });
188
+ if (!isAllowListEnabled) {
189
+ logError('Pool is not configured for using allow list.');
190
+ return;
191
+ }
192
+ logTable({
193
+ data: addressToAdd.map((addr) => [addr]),
194
+ params: { head: ['Addresses to be added to allow list:'] },
195
+ });
196
+ const confirm = await confirmOperation(`Are you sure you want to add ${addressToAdd.length} addresses to the allow list of the pool at address: ${address}?`);
197
+ if (!confirm)
198
+ return;
199
+ await callWriteMethodWithReceiptBatchCalls({
200
+ calls: addressToAdd.map((addr) => ({
201
+ to: pool.address,
202
+ data: encodeFunctionData({
203
+ abi: pool.abi,
204
+ functionName: 'addToAllowList',
205
+ args: [addr],
206
+ }),
207
+ value: 0n,
208
+ })),
209
+ });
210
+ });
211
+ wrapperOperationsWrite
212
+ .command('allow-list-remove')
213
+ .description('remove addresses(divided by spaces) from allow list ')
214
+ .argument('<poolAddress>', 'pool address', stringToAddress)
215
+ .argument('<addressesToRemove...>', '1 or more addresses to remove divided by spaces', stringArrayToAddressArray, [])
216
+ .action(async (address, addressesToRemove) => {
217
+ const pool = await getStvPoolContract(address);
218
+ const isAllowListEnabled = await callReadMethod({
219
+ contract: pool,
220
+ methodName: 'ALLOW_LIST_ENABLED',
221
+ payload: [],
222
+ });
223
+ if (!isAllowListEnabled) {
224
+ logError('Pool is not configured for using allow list.');
225
+ return;
226
+ }
227
+ logTable({
228
+ data: addressesToRemove.map((addr) => [addr]),
229
+ params: { head: ['Addresses to be removed from allow list:'] },
230
+ });
231
+ const confirm = await confirmOperation(`Are you sure you want to remove ${addressesToRemove.length} addresses from the allow list of the pool at address: ${address}?`);
232
+ if (!confirm)
233
+ return;
234
+ await callWriteMethodWithReceiptBatchCalls({
235
+ calls: addressesToRemove.map((addr) => ({
236
+ to: pool.address,
237
+ data: encodeFunctionData({
238
+ abi: pool.abi,
239
+ functionName: 'removeFromAllowList',
240
+ args: [addr],
241
+ }),
242
+ value: 0n,
243
+ })),
244
+ });
245
+ });
246
+ wrapperOperationsWrite
247
+ .command('auto-report')
248
+ .description(`watches for new reports, automatically submits report and finalizes withdrawals. Will run indefinitely.
249
+ For finalization make sure private key has FINALIZE_ROLE in the withdrawal queue.
250
+ ⚠️⚠️⚠️ For production use consider running with a process manager ⚠️⚠️⚠️`)
251
+ .argument('<poolAddress>', 'pool address', stringToAddress)
252
+ .option('--skip-report', 'skip report submission step', false)
253
+ .option('--skip-finalize', 'skip finalize withdrawals step', false)
254
+ .option('--callback-url <callbackUrl>', 'callback url to notify when report is submitted and withdrawals are finalized via POST request')
255
+ .option('--gas-coverage-recipient <gasCoverageRecipient>', 'address to receive gas coverage(if any), defaults to tx sender', stringToAddress, zeroAddress)
256
+ .option('--max-requests <maxRequestCount>', 'maximum number of requests to finalize', stringToBigInt, 1000n)
257
+ .option('--polling-interval <pollingInterval>', 'polling interval in ms for checking new reports, default: 300_000 (5 minutes)', stringToNumber, 300_000)
258
+ .action(async (address, { skipReport, skipFinalize, maxRequests, gasCoverageRecipient, pollingInterval, callbackUrl, }) => {
259
+ if (skipReport && !skipFinalize) {
260
+ logError('Cannot skip report submission when finalizing withdrawals. Report must be fresh before finalization.');
261
+ return;
262
+ }
263
+ if (pollingInterval >= 5 * 60_000) {
264
+ logInfo('Polling interval is greater than or equal to 5 minutes. Due to limits in eth_newFilter filters may be dropped by the node. Consider using shorter polling interval.');
265
+ }
266
+ const pool = await getStvPoolContract(address);
267
+ const vaultAddress = await callReadMethod({
268
+ contract: pool,
269
+ methodName: 'VAULT',
270
+ payload: [],
271
+ });
272
+ const withdrawalQueueAddress = await callReadMethod({
273
+ contract: pool,
274
+ methodName: 'WITHDRAWAL_QUEUE',
275
+ payload: [],
276
+ });
277
+ const lazyOracle = await getLazyOracleContract();
278
+ const vaultHub = await getVaultHubContract();
279
+ const withdrawalQueue = await getWithdrawalQueueContract(withdrawalQueueAddress);
280
+ const FINALIZER_ROLE = await callReadMethod({
281
+ contract: withdrawalQueue,
282
+ methodName: 'FINALIZE_ROLE',
283
+ payload: [],
284
+ });
285
+ const finalizers = await callReadMethod({
286
+ contract: withdrawalQueue,
287
+ methodName: 'getRoleMembers',
288
+ payload: [[FINALIZER_ROLE]],
289
+ });
290
+ const finalizer = finalizers[0];
291
+ if (!finalizer) {
292
+ logError('No FINALIZE_ROLE holders found for the withdrawal queue. Cannot proceed with auto-reporting.');
293
+ return;
294
+ }
295
+ const onNewReport = async () => {
296
+ const isConnected = await callReadMethod({
297
+ contract: vaultHub,
298
+ methodName: 'isVaultConnected',
299
+ payload: [[vaultAddress]],
300
+ });
301
+ const isReportFresh = await callReadMethodSilent({
302
+ contract: vaultHub,
303
+ methodName: 'isReportFresh',
304
+ payload: [[vaultAddress]],
305
+ });
306
+ if (!isConnected) {
307
+ logError(`Vault ${vaultAddress} is not connected to VaultHub. Cannot proceed with report submission.`);
308
+ }
309
+ if (isReportFresh) {
310
+ logInfo('Report is already fresh. No submission needed.');
311
+ }
312
+ let reportTxHash = null;
313
+ if (!skipReport && isConnected && !isReportFresh) {
314
+ const { isFresh, tx } = await submitReport({
315
+ vault: vaultAddress,
316
+ skipConfirmation: true,
317
+ });
318
+ reportTxHash = tx ?? null;
319
+ logInfo(`Report submission completed. isFresh: ${isFresh}`);
320
+ }
321
+ else {
322
+ logInfo('Report submission step skipped.');
323
+ }
324
+ latestReportTimestamp = await callReadMethod({
325
+ contract: lazyOracle,
326
+ methodName: 'latestReportTimestamp',
327
+ payload: [],
328
+ });
329
+ let canFinalize = false;
330
+ let requestsFinalized = 0n;
331
+ let assetsFinalized = 0n;
332
+ let finalizationTxHash = null;
333
+ const unfinalizedRequestsNumber = await callReadMethod({
334
+ contract: withdrawalQueue,
335
+ methodName: 'unfinalizedRequestsNumber',
336
+ payload: [],
337
+ });
338
+ const unfinalizedAssets = await callReadMethod({
339
+ contract: withdrawalQueue,
340
+ methodName: 'unfinalizedAssets',
341
+ payload: [],
342
+ });
343
+ const lastFinalizedRequestId = await callReadMethod({
344
+ contract: withdrawalQueue,
345
+ methodName: 'getLastFinalizedRequestId',
346
+ payload: [],
347
+ });
348
+ if (unfinalizedRequestsNumber > 0n) {
349
+ try {
350
+ const { result: requestFinalized } = await withdrawalQueue.simulate.finalize([maxRequests, zeroAddress], {
351
+ account: finalizers[0],
352
+ });
353
+ logInfo(`Finalization Simulation:
354
+ requests finalized ${requestFinalized}/${unfinalizedRequestsNumber}`);
355
+ // this is a sanity check, should not happen in contract
356
+ if (requestFinalized <= 0n)
357
+ throw new Error('No requests finalized in simulation');
358
+ canFinalize = true;
359
+ }
360
+ catch (error) {
361
+ canFinalize = false;
362
+ if (error instanceof ContractFunctionRevertedError &&
363
+ error.name === 'NoRequestsToFinalize') {
364
+ logInfo(`0/${unfinalizedRequestsNumber} requests can be finalized according to simulation`);
365
+ }
366
+ else {
367
+ logInfo('Finalization simulation failed', error);
368
+ }
369
+ }
370
+ }
371
+ else {
372
+ logInfo('No pending withdrawals to finalize.');
373
+ }
374
+ if (!skipFinalize) {
375
+ if (canFinalize) {
376
+ logInfo('Proceeding to finalize withdrawals...');
377
+ const txResult = await callWriteMethodWithReceipt({
378
+ contract: withdrawalQueue,
379
+ methodName: 'finalize',
380
+ payload: [maxRequests, gasCoverageRecipient],
381
+ });
382
+ finalizationTxHash = txResult.tx ?? null;
383
+ requestsFinalized = await callReadMethod({
384
+ contract: withdrawalQueue,
385
+ methodName: 'getLastFinalizedRequestId',
386
+ payload: [],
387
+ });
388
+ assetsFinalized = await callReadMethod({
389
+ contract: withdrawalQueue,
390
+ methodName: 'unfinalizedAssets',
391
+ payload: [],
392
+ });
393
+ assetsFinalized = unfinalizedAssets - assetsFinalized;
394
+ requestsFinalized -= lastFinalizedRequestId;
395
+ }
396
+ else {
397
+ logInfo('Finalization step skipped due to lack of pending withdrawals or simulation failure.');
398
+ }
399
+ }
400
+ else {
401
+ logInfo('Finalization step skipped.');
402
+ }
403
+ logTable({
404
+ data: [
405
+ ['Pool Address', address],
406
+ ['Vault Address', vaultAddress],
407
+ ['Is Connected', isConnected],
408
+ ['Was Report Fresh', isReportFresh],
409
+ ['Report Submitted', !skipReport && isConnected && !isReportFresh],
410
+ ['Report Tx Hash', reportTxHash ?? 'N/A'],
411
+ ['Can Finalize', canFinalize],
412
+ ['Finalization Requested', !skipFinalize && canFinalize],
413
+ ['Total Unfinalized Requests', unfinalizedRequestsNumber],
414
+ [
415
+ 'Total Unfinalized Assets',
416
+ formatEther(unfinalizedAssets) + ' ETH',
417
+ ],
418
+ ['Finalization Tx Hash', finalizationTxHash ?? 'N/A'],
419
+ ['Requests Finalized', requestsFinalized],
420
+ ['Assets Finalized', formatEther(assetsFinalized) + ' ETH'],
421
+ ],
422
+ });
423
+ if (callbackUrl) {
424
+ const { error } = await tryFetchPost(callbackUrl, {
425
+ poolAddress: address,
426
+ vaultAddress: vaultAddress,
427
+ isConnected: isConnected,
428
+ wasReportFresh: isReportFresh,
429
+ reportSubmitted: !skipReport && isConnected && !isReportFresh,
430
+ reportTxHash,
431
+ canFinalize,
432
+ finalizationRequested: !skipFinalize && canFinalize,
433
+ finalizationTxHash,
434
+ totalUnfinalizedRequests: unfinalizedRequestsNumber,
435
+ totalUnfinalizedAssets: unfinalizedAssets,
436
+ requestsFinalized,
437
+ assetsFinalized,
438
+ });
439
+ if (error) {
440
+ logError(`Failed to send callback to ${callbackUrl}: ${error}`);
441
+ }
442
+ }
443
+ };
444
+ let latestReportTimestamp = 0n;
445
+ // eslint-disable-next-line no-constant-condition
446
+ while (true) {
447
+ const currentReportTimestamp = await callReadMethodSilent({
448
+ contract: lazyOracle,
449
+ methodName: 'latestReportTimestamp',
450
+ payload: [],
451
+ });
452
+ if (currentReportTimestamp > latestReportTimestamp) {
453
+ logInfo('New report detected, running operations...');
454
+ await onNewReport();
455
+ latestReportTimestamp = currentReportTimestamp;
456
+ }
457
+ await sleep(pollingInterval);
458
+ }
459
+ });
13
460
  //# sourceMappingURL=write.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/use-cases/wrapper-operations/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB;KACpD,OAAO,CAAC,OAAO,CAAC;KAChB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;KACd,WAAW,CAAC,mCAAmC,CAAC,CAAC;AAEpD,sBAAsB,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1D,sBAAsB,CAAC,EAAE,CAAC,kBAAkB,EAAE;IAC5C,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/use-cases/wrapper-operations/write.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const anvil: import("commander").Command;
1
+ export declare const anvil: import("node_modules/commander/typings/index.js").Command;
@@ -1 +1 @@
1
- export declare const defiWrapperTools: import("commander").Command;
1
+ export declare const defiWrapperTools: import("node_modules/commander/typings/index.js").Command;
@@ -1,7 +1,7 @@
1
1
  import { encodeAbiParameters, keccak256, parseEther, formatEther, parseUnits, formatUnits, } from 'viem';
2
2
  import { logInfo, callReadMethodSilent, stringToBigInt } from '../../../utils/index.js';
3
3
  import { getTestClient } from '../../../providers/index.js';
4
- import { getStvStethPoolContract } from '../../../contracts/defi-wrapper/index.js';
4
+ import { getStvStethPoolContract } from 'contracts/defi-wrapper/index.js';
5
5
  import { defiWrapperTools } from './main.js';
6
6
  const STORAGE_LOCATION = '0x9eb73ffa4c77d08d5d1746cf5a5e50a47018b610ea5d728ea9bd9e399b76e200';
7
7
  defiWrapperTools
@@ -15,18 +15,38 @@ defiWrapperTools
15
15
  const { storageLocation, value } = options;
16
16
  const publicClient = await getTestClient();
17
17
  const contract = await getStvStethPoolContract(address);
18
- const forcedRebalanceThresholdBP = await callReadMethodSilent(contract, 'forcedRebalanceThresholdBP');
18
+ const poolForcedRebalanceThresholdBP = await callReadMethodSilent({
19
+ contract,
20
+ methodName: 'poolForcedRebalanceThresholdBP',
21
+ payload: [],
22
+ });
19
23
  logInfo('\n=== Wrapper Configuration ===');
20
- logInfo(`Force rebalance threshold: ${forcedRebalanceThresholdBP} BP (${Number(forcedRebalanceThresholdBP) / 100}%)`);
24
+ logInfo(`Pool forced rebalance threshold: ${poolForcedRebalanceThresholdBP} BP (${Number(poolForcedRebalanceThresholdBP) / 100}%)`);
21
25
  const [vault, vaultHub] = await Promise.all([
22
- callReadMethodSilent(contract, 'VAULT'),
23
- callReadMethodSilent(contract, 'VAULT_HUB'),
26
+ callReadMethodSilent({
27
+ contract,
28
+ methodName: 'VAULT',
29
+ payload: [],
30
+ }),
31
+ callReadMethodSilent({
32
+ contract,
33
+ methodName: 'VAULT_HUB',
34
+ payload: [],
35
+ }),
24
36
  ]);
25
37
  const vaultSlot = keccak256(encodeAbiParameters([{ type: 'address' }, { type: 'uint256' }], [vault, stringToBigInt(storageLocation)]));
26
38
  logInfo('\n=== User Position BEFORE ===');
27
39
  const [totalAssetsBefore, userForceRebalanceBefore] = await Promise.all([
28
- callReadMethodSilent(contract, 'totalAssets'),
29
- callReadMethodSilent(contract, 'previewForceRebalance', [user]),
40
+ callReadMethodSilent({
41
+ contract,
42
+ methodName: 'totalAssets',
43
+ payload: [],
44
+ }),
45
+ callReadMethodSilent({
46
+ contract,
47
+ methodName: 'previewForceRebalance',
48
+ payload: [[user]],
49
+ }),
30
50
  ]);
31
51
  const [_stethSharesBefore, _stvAmountBefore, isUndercollateralizedBefore,] = userForceRebalanceBefore;
32
52
  logInfo(`Total wrapper assets: ${formatEther(totalAssetsBefore)}`);
@@ -58,11 +78,21 @@ defiWrapperTools
58
78
  });
59
79
  logInfo('\n=== User Position AFTER ===');
60
80
  const [totalAssetsAfter, userForceRebalanceAfter, previewRedeemResult] = await Promise.all([
61
- callReadMethodSilent(contract, 'totalAssets'),
62
- callReadMethodSilent(contract, 'previewForceRebalance', [user]),
63
- callReadMethodSilent(contract, 'previewRedeem', [
64
- parseUnits('1', 27),
65
- ]),
81
+ callReadMethodSilent({
82
+ contract,
83
+ methodName: 'totalAssets',
84
+ payload: [],
85
+ }),
86
+ callReadMethodSilent({
87
+ contract,
88
+ methodName: 'previewForceRebalance',
89
+ payload: [[user]],
90
+ }),
91
+ callReadMethodSilent({
92
+ contract,
93
+ methodName: 'previewRedeem',
94
+ payload: [[parseUnits('1', 27)]],
95
+ }),
66
96
  ]);
67
97
  const [stethShares, stvAmount, isUndercollateralizedAfter] = userForceRebalanceAfter;
68
98
  logInfo(`Total wrapper assets: ${formatEther(totalAssetsAfter)} (was ${formatEther(totalAssetsBefore)})`);
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../programs/dev-tools/defi-wrapper/write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../programs/dev-tools/defi-wrapper/write.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const devTools: import("commander").Command;
1
+ export declare const devTools: import("node_modules/commander/typings/index.js").Command;