@lidofinance/lsv-cli 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/dist/abi/Dashboard.d.ts +24 -0
  2. package/dist/abi/PredepositGuarantee.d.ts +48 -0
  3. package/dist/abi/PredepositGuarantee.js +32 -0
  4. package/dist/abi/PredepositGuarantee.js.map +1 -1
  5. package/dist/abi/StEth.d.ts +1175 -59
  6. package/dist/abi/StEth.js +885 -320
  7. package/dist/abi/StEth.js.map +1 -1
  8. package/dist/abi/defi-wrapper/Factory.d.ts +532 -657
  9. package/dist/abi/defi-wrapper/Factory.js +1083 -647
  10. package/dist/abi/defi-wrapper/Factory.js.map +1 -1
  11. package/dist/abi/defi-wrapper/OssifiableProxy.d.ts +71 -0
  12. package/dist/abi/defi-wrapper/OssifiableProxy.js +93 -0
  13. package/dist/abi/defi-wrapper/OssifiableProxy.js.map +1 -0
  14. package/dist/abi/defi-wrapper/StvStETHPool.d.ts +38 -32
  15. package/dist/abi/defi-wrapper/StvStETHPool.js +50 -42
  16. package/dist/abi/defi-wrapper/StvStETHPool.js.map +1 -1
  17. package/dist/abi/defi-wrapper/TimeLock.d.ts +770 -0
  18. package/dist/abi/defi-wrapper/TimeLock.js +999 -0
  19. package/dist/abi/defi-wrapper/TimeLock.js.map +1 -0
  20. package/dist/abi/defi-wrapper/index.d.ts +2 -0
  21. package/dist/abi/defi-wrapper/index.js +2 -0
  22. package/dist/abi/defi-wrapper/index.js.map +1 -1
  23. package/dist/contracts/defi-wrapper/index.d.ts +2 -0
  24. package/dist/contracts/defi-wrapper/index.js +2 -0
  25. package/dist/contracts/defi-wrapper/index.js.map +1 -1
  26. package/dist/contracts/defi-wrapper/ossifiable-proxy.d.ts +4 -0
  27. package/dist/contracts/defi-wrapper/ossifiable-proxy.js +12 -0
  28. package/dist/contracts/defi-wrapper/ossifiable-proxy.js.map +1 -0
  29. package/dist/contracts/defi-wrapper/timelock.d.ts +4 -0
  30. package/dist/contracts/defi-wrapper/timelock.js +12 -0
  31. package/dist/contracts/defi-wrapper/timelock.js.map +1 -0
  32. package/dist/contracts/steth.d.ts +4 -27706
  33. package/dist/contracts/steth.js +2 -2
  34. package/dist/contracts/steth.js.map +1 -1
  35. package/dist/features/consolidation.js +19 -3
  36. package/dist/features/consolidation.js.map +1 -1
  37. package/dist/features/defi-wrapper/create-vault.js +16 -13
  38. package/dist/features/defi-wrapper/create-vault.js.map +1 -1
  39. package/dist/features/defi-wrapper/defi-wrapper-factory.d.ts +10 -27
  40. package/dist/features/defi-wrapper/defi-wrapper-factory.js +105 -15
  41. package/dist/features/defi-wrapper/defi-wrapper-factory.js.map +1 -1
  42. package/dist/features/defi-wrapper/distributor.d.ts +24 -0
  43. package/dist/features/defi-wrapper/distributor.js +300 -0
  44. package/dist/features/defi-wrapper/distributor.js.map +1 -0
  45. package/dist/features/defi-wrapper/index.d.ts +1 -0
  46. package/dist/features/defi-wrapper/index.js +1 -0
  47. package/dist/features/defi-wrapper/index.js.map +1 -1
  48. package/dist/features/defi-wrapper/pool-info.d.ts +17 -2
  49. package/dist/features/defi-wrapper/pool-info.js +63 -13
  50. package/dist/features/defi-wrapper/pool-info.js.map +1 -1
  51. package/dist/features/defi-wrapper/timelock.d.ts +19 -0
  52. package/dist/features/defi-wrapper/timelock.js +198 -0
  53. package/dist/features/defi-wrapper/timelock.js.map +1 -0
  54. package/dist/features/deposits/check-bls-deposits.js +15 -3
  55. package/dist/features/deposits/check-bls-deposits.js.map +1 -1
  56. package/dist/features/deposits/make-pdg-proof.js +15 -3
  57. package/dist/features/deposits/make-pdg-proof.js.map +1 -1
  58. package/dist/features/deposits/no-pdg.js +50 -14
  59. package/dist/features/deposits/no-pdg.js.map +1 -1
  60. package/dist/features/deposits/pdg.js +5 -1
  61. package/dist/features/deposits/pdg.js.map +1 -1
  62. package/dist/features/dev-tools/impersonate.js +5 -1
  63. package/dist/features/dev-tools/impersonate.js.map +1 -1
  64. package/dist/features/metrics.js +24 -6
  65. package/dist/features/metrics.js.map +1 -1
  66. package/dist/features/mint-burn/allowance.js +15 -6
  67. package/dist/features/mint-burn/allowance.js.map +1 -1
  68. package/dist/features/mint-burn/burn-steth.js +5 -1
  69. package/dist/features/mint-burn/burn-steth.js.map +1 -1
  70. package/dist/features/mint-burn/index.d.ts +1 -0
  71. package/dist/features/mint-burn/index.js +1 -0
  72. package/dist/features/mint-burn/index.js.map +1 -1
  73. package/dist/features/mint-burn/mint-limit.d.ts +9 -0
  74. package/dist/features/mint-burn/mint-limit.js +31 -0
  75. package/dist/features/mint-burn/mint-limit.js.map +1 -0
  76. package/dist/features/mint-burn/mint-steth.js +5 -1
  77. package/dist/features/mint-burn/mint-steth.js.map +1 -1
  78. package/dist/features/pdg.js +5 -1
  79. package/dist/features/pdg.js.map +1 -1
  80. package/dist/features/utils/connection.js +5 -1
  81. package/dist/features/utils/connection.js.map +1 -1
  82. package/dist/features/utils/index.d.ts +1 -0
  83. package/dist/features/utils/index.js +1 -0
  84. package/dist/features/utils/index.js.map +1 -1
  85. package/dist/features/utils/liability-shares.js +5 -1
  86. package/dist/features/utils/liability-shares.js.map +1 -1
  87. package/dist/features/utils/minting-capacity.js +4 -3
  88. package/dist/features/utils/minting-capacity.js.map +1 -1
  89. package/dist/features/utils/quarantine.js +5 -1
  90. package/dist/features/utils/quarantine.js.map +1 -1
  91. package/dist/features/utils/report-fresh.js +15 -3
  92. package/dist/features/utils/report-fresh.js.map +1 -1
  93. package/dist/features/utils/try-fetch.d.ts +5 -0
  94. package/dist/features/utils/try-fetch.js +26 -0
  95. package/dist/features/utils/try-fetch.js.map +1 -0
  96. package/dist/features/vault-factory.js +15 -3
  97. package/dist/features/vault-factory.js.map +1 -1
  98. package/dist/features/vault-operations/connect-vault.js +10 -2
  99. package/dist/features/vault-operations/connect-vault.js.map +1 -1
  100. package/dist/features/vault-operations/dashboard-by-vault.js +10 -2
  101. package/dist/features/vault-operations/dashboard-by-vault.js.map +1 -1
  102. package/dist/features/vault-operations/roles.js +10 -2
  103. package/dist/features/vault-operations/roles.js.map +1 -1
  104. package/dist/features/vault-operations/vault-health.js +5 -1
  105. package/dist/features/vault-operations/vault-health.js.map +1 -1
  106. package/dist/features/vault-operations/vault-info.js +10 -2
  107. package/dist/features/vault-operations/vault-info.js.map +1 -1
  108. package/dist/features/vault-operations/vault-overview.js +25 -5
  109. package/dist/features/vault-operations/vault-overview.js.map +1 -1
  110. package/dist/features/vault-operations/vault-roles.js +10 -2
  111. package/dist/features/vault-operations/vault-roles.js.map +1 -1
  112. package/dist/features/vault-operations/vaults-by-role.d.ts +24 -0
  113. package/dist/features/vault-operations/vaults-by-role.js +78 -27
  114. package/dist/features/vault-operations/vaults-by-role.js.map +1 -1
  115. package/dist/index.js +9 -5
  116. package/dist/index.js.map +1 -1
  117. package/dist/programs/account/read.js +10 -5
  118. package/dist/programs/account/read.js.map +1 -1
  119. package/dist/programs/contracts/dashboard/read.js +15 -3
  120. package/dist/programs/contracts/dashboard/read.js.map +1 -1
  121. package/dist/programs/contracts/dashboard/write.js +212 -38
  122. package/dist/programs/contracts/dashboard/write.js.map +1 -1
  123. package/dist/programs/contracts/hub/read.js +15 -5
  124. package/dist/programs/contracts/hub/read.js.map +1 -1
  125. package/dist/programs/contracts/hub/write.js +10 -2
  126. package/dist/programs/contracts/hub/write.js.map +1 -1
  127. package/dist/programs/contracts/operator-grid/read.js +5 -1
  128. package/dist/programs/contracts/operator-grid/read.js.map +1 -1
  129. package/dist/programs/contracts/operator-grid/write.js +5 -1
  130. package/dist/programs/contracts/operator-grid/write.js.map +1 -1
  131. package/dist/programs/contracts/pdg/read.js +5 -1
  132. package/dist/programs/contracts/pdg/read.js.map +1 -1
  133. package/dist/programs/contracts/pdg/write.js +33 -3
  134. package/dist/programs/contracts/pdg/write.js.map +1 -1
  135. package/dist/programs/contracts/vault/write.js +5 -1
  136. package/dist/programs/contracts/vault/write.js.map +1 -1
  137. package/dist/programs/defi-wrapper/contracts/distributor/read.js +17 -5
  138. package/dist/programs/defi-wrapper/contracts/distributor/read.js.map +1 -1
  139. package/dist/programs/defi-wrapper/contracts/factory/read.js +73 -13
  140. package/dist/programs/defi-wrapper/contracts/factory/read.js.map +1 -1
  141. package/dist/programs/defi-wrapper/contracts/factory/write.js +171 -65
  142. package/dist/programs/defi-wrapper/contracts/factory/write.js.map +1 -1
  143. package/dist/programs/defi-wrapper/contracts/stv-pool/read.js +62 -18
  144. package/dist/programs/defi-wrapper/contracts/stv-pool/read.js.map +1 -1
  145. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js +62 -18
  146. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js.map +1 -1
  147. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js +64 -16
  148. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js.map +1 -1
  149. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js +33 -6
  150. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js.map +1 -1
  151. package/dist/programs/defi-wrapper/use-cases/distributor/index.d.ts +3 -0
  152. package/dist/programs/defi-wrapper/use-cases/distributor/index.js +4 -0
  153. package/dist/programs/defi-wrapper/use-cases/distributor/index.js.map +1 -0
  154. package/dist/programs/defi-wrapper/use-cases/distributor/main.d.ts +1 -0
  155. package/dist/programs/defi-wrapper/use-cases/distributor/main.js +6 -0
  156. package/dist/programs/defi-wrapper/use-cases/distributor/main.js.map +1 -0
  157. package/dist/programs/defi-wrapper/use-cases/distributor/read.js +86 -0
  158. package/dist/programs/defi-wrapper/use-cases/distributor/read.js.map +1 -0
  159. package/dist/programs/defi-wrapper/use-cases/distributor/write.d.ts +1 -0
  160. package/dist/programs/defi-wrapper/use-cases/distributor/write.js +191 -0
  161. package/dist/programs/defi-wrapper/use-cases/distributor/write.js.map +1 -0
  162. package/dist/programs/defi-wrapper/use-cases/health/read.js +71 -21
  163. package/dist/programs/defi-wrapper/use-cases/health/read.js.map +1 -1
  164. package/dist/programs/defi-wrapper/use-cases/health/utils.js +10 -2
  165. package/dist/programs/defi-wrapper/use-cases/health/utils.js.map +1 -1
  166. package/dist/programs/defi-wrapper/use-cases/health/write.js +65 -22
  167. package/dist/programs/defi-wrapper/use-cases/health/write.js.map +1 -1
  168. package/dist/programs/defi-wrapper/use-cases/index.d.ts +2 -0
  169. package/dist/programs/defi-wrapper/use-cases/index.js +2 -0
  170. package/dist/programs/defi-wrapper/use-cases/index.js.map +1 -1
  171. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.d.ts +3 -0
  172. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.js +4 -0
  173. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.js.map +1 -0
  174. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.d.ts +1 -0
  175. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.js +6 -0
  176. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.js.map +1 -0
  177. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.d.ts +1 -0
  178. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.js +362 -0
  179. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.js.map +1 -0
  180. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.d.ts +1 -0
  181. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.js +86 -0
  182. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.js.map +1 -0
  183. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.d.ts +2 -0
  184. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.js +3 -0
  185. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.js.map +1 -0
  186. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.d.ts +1 -0
  187. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.js +6 -0
  188. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.js.map +1 -0
  189. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.d.ts +1 -0
  190. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.js +369 -0
  191. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.js.map +1 -0
  192. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.d.ts +6 -0
  193. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.js +7 -0
  194. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.js.map +1 -0
  195. package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.d.ts +1 -0
  196. package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.js +6 -0
  197. package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.js.map +1 -0
  198. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.d.ts +2 -0
  199. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.js +3 -0
  200. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.js.map +1 -0
  201. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.d.ts +1 -0
  202. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.js +6 -0
  203. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.js.map +1 -0
  204. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.d.ts +1 -0
  205. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.js +184 -0
  206. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.js.map +1 -0
  207. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.d.ts +3 -0
  208. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.js +4 -0
  209. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.js.map +1 -0
  210. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.d.ts +1 -0
  211. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.js +6 -0
  212. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.js.map +1 -0
  213. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.d.ts +1 -0
  214. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.js +80 -0
  215. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.js.map +1 -0
  216. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.d.ts +1 -0
  217. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.js +139 -0
  218. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.js.map +1 -0
  219. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.d.ts +2 -0
  220. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.js +3 -0
  221. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.js.map +1 -0
  222. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.d.ts +1 -0
  223. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.js +6 -0
  224. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.js.map +1 -0
  225. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.d.ts +1 -0
  226. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.js +118 -0
  227. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.js.map +1 -0
  228. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.d.ts +1 -1
  229. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.js +1 -2
  230. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.js.map +1 -1
  231. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js +333 -11
  232. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js.map +1 -1
  233. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js +463 -2
  234. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js.map +1 -1
  235. package/dist/programs/dev-tools/defi-wrapper/write.js +41 -11
  236. package/dist/programs/dev-tools/defi-wrapper/write.js.map +1 -1
  237. package/dist/programs/pdg-helpers.js +55 -19
  238. package/dist/programs/pdg-helpers.js.map +1 -1
  239. package/dist/programs/use-cases/consolidation/write.js +5 -1
  240. package/dist/programs/use-cases/consolidation/write.js.map +1 -1
  241. package/dist/programs/use-cases/deposits/read.js +40 -8
  242. package/dist/programs/use-cases/deposits/read.js.map +1 -1
  243. package/dist/programs/use-cases/deposits/write.js +15 -3
  244. package/dist/programs/use-cases/deposits/write.js.map +1 -1
  245. package/dist/programs/use-cases/metrics/read.js +25 -5
  246. package/dist/programs/use-cases/metrics/read.js.map +1 -1
  247. package/dist/programs/use-cases/report/read.js +25 -5
  248. package/dist/programs/use-cases/report/read.js.map +1 -1
  249. package/dist/programs/use-cases/report/write.js +10 -2
  250. package/dist/programs/use-cases/report/write.js.map +1 -1
  251. package/dist/programs/use-cases/vault-operations/write.js +30 -6
  252. package/dist/programs/use-cases/vault-operations/write.js.map +1 -1
  253. package/dist/providers/index.d.ts +1 -1
  254. package/dist/providers/index.js +1 -1
  255. package/dist/tests/utils/rate-limit.test.d.ts +1 -0
  256. package/dist/tests/utils/rate-limit.test.js +246 -0
  257. package/dist/tests/utils/rate-limit.test.js.map +1 -0
  258. package/dist/types/index.d.ts +2 -2
  259. package/dist/types/index.js +2 -2
  260. package/dist/utils/arguments.d.ts +14 -0
  261. package/dist/utils/arguments.js +28 -0
  262. package/dist/utils/arguments.js.map +1 -1
  263. package/dist/utils/cache.d.ts +6 -4
  264. package/dist/utils/cache.js +14 -11
  265. package/dist/utils/cache.js.map +1 -1
  266. package/dist/utils/charts/blessed/charts-apr.js +5 -1
  267. package/dist/utils/charts/blessed/charts-apr.js.map +1 -1
  268. package/dist/utils/charts/blessed/charts-rewards.js +5 -1
  269. package/dist/utils/charts/blessed/charts-rewards.js.map +1 -1
  270. package/dist/utils/charts/simple/simple-charts.js +5 -1
  271. package/dist/utils/charts/simple/simple-charts.js.map +1 -1
  272. package/dist/utils/commands/report.d.ts +5 -2
  273. package/dist/utils/commands/report.js +21 -7
  274. package/dist/utils/commands/report.js.map +1 -1
  275. package/dist/utils/consts.d.ts +1 -0
  276. package/dist/utils/consts.js +5 -0
  277. package/dist/utils/consts.js.map +1 -1
  278. package/dist/utils/fetchCL.d.ts +10 -0
  279. package/dist/utils/fetchCL.js +19 -0
  280. package/dist/utils/fetchCL.js.map +1 -1
  281. package/dist/utils/health/health-utils.d.ts +2 -27707
  282. package/dist/utils/health/health-utils.js +26 -8
  283. package/dist/utils/health/health-utils.js.map +1 -1
  284. package/dist/utils/index.d.ts +1 -0
  285. package/dist/utils/index.js +1 -0
  286. package/dist/utils/index.js.map +1 -1
  287. package/dist/utils/prompts/operations.js +1 -3
  288. package/dist/utils/prompts/operations.js.map +1 -1
  289. package/dist/utils/rate-limit.d.ts +10 -0
  290. package/dist/utils/rate-limit.js +30 -0
  291. package/dist/utils/rate-limit.js.map +1 -0
  292. package/dist/utils/read-programs-by-abi.js +22 -4
  293. package/dist/utils/read-programs-by-abi.js.map +1 -1
  294. package/dist/utils/report/statistic-data.js +8 -2
  295. package/dist/utils/report/statistic-data.js.map +1 -1
  296. package/dist/utils/share-rate.js +16 -4
  297. package/dist/utils/share-rate.js.map +1 -1
  298. package/dist/utils/sleep.js.map +1 -1
  299. package/dist/utils/transactions/tx-private-key.d.ts +3 -5
  300. package/dist/utils/transactions/tx-private-key.js +13 -10
  301. package/dist/utils/transactions/tx-private-key.js.map +1 -1
  302. package/dist/utils/transactions/types.d.ts +7 -0
  303. package/dist/utils/transactions/utils.js +2 -2
  304. package/dist/utils/transactions/utils.js.map +1 -1
  305. package/dist/version/index.js +1 -1
  306. package/package.json +3 -12
  307. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js +0 -180
  308. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js.map +0 -1
  309. /package/dist/programs/defi-wrapper/use-cases/{wrapper-operations/create-pool.d.ts → distributor/read.d.ts} +0 -0
@@ -0,0 +1,300 @@
1
+ import { StandardMerkleTree } from '@openzeppelin/merkle-tree';
2
+ import { getDistributorContract } from '../../contracts/defi-wrapper/distributor.js';
3
+ import { getStvPoolContract, } from '../../contracts/defi-wrapper/stv-pool.js';
4
+ import { getPublicClient } from '../../providers/index.js';
5
+ import { fetchIPFS, getIndexedEventsFromCache, logError, logInfo, V3_START_BLOCKS, } from '../../utils/index.js';
6
+ import { bigIntMax } from '../../utils/bigInt.js';
7
+ import { zeroAddress, zeroHash } from 'viem';
8
+ const treeFromData = (data) => {
9
+ return StandardMerkleTree.load({
10
+ ...data,
11
+ leafEncoding: ['address', 'address', 'uint256'],
12
+ });
13
+ };
14
+ const treeFromValues = (values) => {
15
+ if (values.length === 0) {
16
+ throw new Error('No values to generate Merkle Tree with');
17
+ }
18
+ return StandardMerkleTree.of(values, ['address', 'address', 'uint256']);
19
+ };
20
+ const fetchEventsForBlocks = async ({ blocks, poolAddress, batchSize = 30000n, }) => {
21
+ const poolContract = await getStvPoolContract(poolAddress);
22
+ const eventsMap = new Map();
23
+ // Initialize empty events for each block
24
+ for (const block of blocks) {
25
+ eventsMap.set(block, {
26
+ transfer: [],
27
+ minted: [],
28
+ burned: [],
29
+ });
30
+ }
31
+ if (blocks.length === 0)
32
+ return eventsMap;
33
+ // Split blocks into batches based on block range
34
+ const batches = [];
35
+ let currentBatch = [];
36
+ let batchStartBlock = blocks[0];
37
+ for (const block of blocks) {
38
+ // If block is within batch size range from start, add to current batch
39
+ if (block - batchStartBlock < batchSize) {
40
+ currentBatch.push(block);
41
+ }
42
+ else {
43
+ // Start new batch
44
+ batches.push(currentBatch);
45
+ currentBatch = [block];
46
+ batchStartBlock = block;
47
+ }
48
+ }
49
+ if (currentBatch.length > 0) {
50
+ batches.push(currentBatch);
51
+ }
52
+ logInfo(`Fetching events for ${blocks.length} blocks in ${batches.length} batch(es) (max ${batchSize} blocks per batch)...`);
53
+ // Fetch each batch
54
+ for (let i = 0; i < batches.length; i++) {
55
+ const batch = batches[i];
56
+ if (!batch || batch.length === 0)
57
+ continue;
58
+ const blocksSet = new Set(batch);
59
+ const minBlock = batch[0];
60
+ const maxBlock = batch[batch.length - 1];
61
+ logInfo(`Batch ${i + 1}/${batches.length}: fetching blocks ${minBlock} to ${maxBlock} (${batch.length} blocks)...`);
62
+ try {
63
+ const transferLogs = await poolContract.getEvents.Transfer(undefined, {
64
+ fromBlock: minBlock,
65
+ toBlock: maxBlock,
66
+ });
67
+ logInfo(`Found ${transferLogs.length} Transfer events`);
68
+ // Group Transfer events by block
69
+ for (const log of transferLogs) {
70
+ const blockNumber = log.blockNumber;
71
+ if (blockNumber && blocksSet.has(blockNumber) && log.args) {
72
+ const blockEvents = eventsMap.get(blockNumber);
73
+ if (blockEvents) {
74
+ const args = log.args;
75
+ if (args.from && args.to && args.value !== undefined) {
76
+ blockEvents.transfer.push({
77
+ blockNumber: blockNumber.toString(),
78
+ from: args.from,
79
+ to: args.to,
80
+ value: args.value.toString(),
81
+ });
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ catch (error) {
88
+ logError(error, `Error fetching events for batch ${i + 1}: ${error}`);
89
+ throw new Error(`Failed to fetch events for batch ${i + 1}: ${error}`);
90
+ }
91
+ }
92
+ logInfo(`Processed events for ${eventsMap.size} blocks`);
93
+ return eventsMap;
94
+ };
95
+ const getUserShares = async (poolContract, blackListSet, fromBlock, toBlock, batchSize) => {
96
+ const publicClient = await getPublicClient();
97
+ const userSharesMap = new Map();
98
+ const blockBeforeFrom = fromBlock > 0n ? fromBlock - 1n : 0n;
99
+ const earliestBlock = V3_START_BLOCKS[publicClient.chain.id];
100
+ if (!earliestBlock) {
101
+ throw new Error(`V3 start block not defined for chain id ${publicClient.chain.id}`);
102
+ }
103
+ const fetchEvents = async (from, to) => {
104
+ const events = await getIndexedEventsFromCache({
105
+ poolAddress: poolContract.address,
106
+ cacheSuffix: '_ONLY_TRANSFER',
107
+ startBlock: from,
108
+ endBlock: to,
109
+ fetchEventsForBlocks: (blocks) => fetchEventsForBlocks({
110
+ blocks,
111
+ poolAddress: poolContract.address,
112
+ batchSize,
113
+ }),
114
+ });
115
+ return events.transfer.map((e) => ({
116
+ to: e.to.toLowerCase(),
117
+ from: e.from.toLowerCase(),
118
+ value: BigInt(e.value),
119
+ blockNumber: BigInt(e.blockNumber),
120
+ }));
121
+ };
122
+ const eventsBefore = await fetchEvents(earliestBlock, blockBeforeFrom);
123
+ // accumulate balances before fromBlock as well as whole user base
124
+ // parsing ALL events from contract creation is the only way to get full and correct user list
125
+ for (const { to, from, value } of eventsBefore) {
126
+ const old = userSharesMap.get(to);
127
+ if (!blackListSet.has(to)) {
128
+ userSharesMap.set(to, {
129
+ accumulatedShare: 0n,
130
+ balance: (old?.balance ?? 0n) + value,
131
+ lastBlock: blockBeforeFrom,
132
+ });
133
+ }
134
+ if (!blackListSet.has(from)) {
135
+ userSharesMap.set(from, {
136
+ accumulatedShare: 0n,
137
+ balance: (old?.balance ?? 0n) - value,
138
+ lastBlock: blockBeforeFrom,
139
+ });
140
+ }
141
+ }
142
+ const events = await fetchEvents(fromBlock, toBlock);
143
+ // accumulate balances and shares between fromBlock and toBlock
144
+ // each user's share is balance * number of blocks held since last change
145
+ for (const { to, from, value, blockNumber: currentBlock } of events) {
146
+ if (!blackListSet.has(to)) {
147
+ const lastValue = userSharesMap.get(to);
148
+ const lastBalance = lastValue?.balance ?? 0n;
149
+ const lastBlock = lastValue?.lastBlock ?? blockBeforeFrom;
150
+ const lastAccumulatedShare = lastValue?.accumulatedShare ?? 0n;
151
+ userSharesMap.set(to, {
152
+ accumulatedShare: lastBalance * (currentBlock - lastBlock) + lastAccumulatedShare,
153
+ balance: lastBalance + value,
154
+ lastBlock: currentBlock,
155
+ });
156
+ }
157
+ if (!blackListSet.has(from)) {
158
+ const lastValue = userSharesMap.get(from);
159
+ const lastBalance = lastValue?.balance ?? 0n;
160
+ const lastBlock = lastValue?.lastBlock ?? blockBeforeFrom;
161
+ const lastAccumulatedShare = lastValue?.accumulatedShare ?? 0n;
162
+ userSharesMap.set(from, {
163
+ accumulatedShare: lastBalance * (currentBlock - lastBlock) + lastAccumulatedShare,
164
+ balance: lastBalance - value,
165
+ lastBlock: currentBlock,
166
+ });
167
+ }
168
+ }
169
+ // last pass to accumulate shares until toBlock
170
+ // user who had no events in the period will get their full balance counted from fromBlock to toBlock
171
+ // denominator is total shares to be used in distribution calculation
172
+ let denominator = 0n;
173
+ for (const [address, info] of userSharesMap) {
174
+ const lastBalance = info.balance;
175
+ const lastBlock = info.lastBlock;
176
+ const newShare = lastBalance * (toBlock - lastBlock) + info.accumulatedShare;
177
+ userSharesMap.set(address, {
178
+ accumulatedShare: newShare,
179
+ balance: lastBalance,
180
+ lastBlock: lastBlock,
181
+ });
182
+ denominator += newShare;
183
+ }
184
+ return { userSharesMap, denominator };
185
+ };
186
+ export const generateDistribution = async ({ tokens: tokensArg, poolAddress, blacklist = [], toBlock, fromBlock, ipfsGateway, maxBatchSize, }) => {
187
+ // Contracts
188
+ const publicClient = await getPublicClient();
189
+ const pool = await getStvPoolContract(poolAddress);
190
+ const distributorAddress = await pool.read.DISTRIBUTOR();
191
+ const withdrawalQueueAddress = await pool.read.WITHDRAWAL_QUEUE();
192
+ const distributor = await getDistributorContract(distributorAddress);
193
+ // Blacklist
194
+ const blackListSet = new Set(blacklist.map((addr) => addr.toLowerCase()));
195
+ [
196
+ distributorAddress,
197
+ withdrawalQueueAddress,
198
+ poolAddress,
199
+ zeroAddress,
200
+ ].forEach((address) => blackListSet.add(address.toLowerCase()));
201
+ // allow user to provider their own block or rely on last processed block from distributor(can be zero for first time)
202
+ let fromBlockNumber = fromBlock ?? (await distributor.read.lastProcessedBlock());
203
+ // this ensures we never go before V3 start block
204
+ fromBlockNumber = bigIntMax(fromBlockNumber, V3_START_BLOCKS[publicClient.chain.id] ?? 0n);
205
+ const currentBlock = await publicClient.getBlock({
206
+ blockNumber: toBlock,
207
+ blockTag: toBlock ? 'latest' : undefined,
208
+ // getBlock does not allow double options, so we cast to any
209
+ });
210
+ if (fromBlockNumber >= currentBlock.number) {
211
+ throw new Error(`No new blocks to process. Last processed block: ${fromBlockNumber}, current block: ${currentBlock.number}`);
212
+ }
213
+ //Prev distribution data
214
+ const cidPrev = await distributor.read.cid();
215
+ const merkleRootPrev = await distributor.read.root();
216
+ let treePrev = null;
217
+ if (cidPrev === '' && merkleRootPrev !== zeroHash) {
218
+ const dataPrev = await fetchIPFS({
219
+ cid: cidPrev,
220
+ bigNumberType: 'bigint',
221
+ gateway: ipfsGateway,
222
+ });
223
+ treePrev = treeFromData(dataPrev);
224
+ if (merkleRootPrev !== treePrev.root) {
225
+ throw new Error(`Previous distribution data from IPFS(${cidPrev}) does not match the on-chain merkle root(${merkleRootPrev})`);
226
+ }
227
+ }
228
+ // Create map of previous claims for cumulative calculation
229
+ const prevClaims = new Map();
230
+ if (treePrev) {
231
+ for (const [_, value] of treePrev.entries()) {
232
+ const recipient = value[0].toLowerCase();
233
+ const token = value[1].toLowerCase();
234
+ const amount = value[2];
235
+ let claim = prevClaims.get(recipient);
236
+ if (!claim) {
237
+ claim = prevClaims.set(recipient, new Map()).get(recipient);
238
+ }
239
+ claim.set(token, amount);
240
+ }
241
+ }
242
+ const { userSharesMap, denominator } = await getUserShares(pool, blackListSet, fromBlockNumber + 1n, BigInt(currentBlock.number), maxBatchSize);
243
+ const newMerkleValues = [];
244
+ const totalDistributed = {};
245
+ const newDistributed = {};
246
+ // for all users accounted for in the distribution period
247
+ for (const [userAddress, { accumulatedShare }] of userSharesMap) {
248
+ // for all tokens to distribute
249
+ for (const { address: tokenAddress, amount: tokenAmount } of tokensArg) {
250
+ const prevClaim = prevClaims.get(userAddress)?.get(tokenAddress);
251
+ const hasPrevClaim = prevClaim !== undefined;
252
+ // new amount is previous claim + newly accumulated share portion
253
+ const newAmount = (prevClaim ?? 0n) + (accumulatedShare * tokenAmount) / denominator;
254
+ // clean up previous claim entry, what's left over will be added as is
255
+ if (hasPrevClaim) {
256
+ prevClaims.get(userAddress)?.delete(tokenAddress);
257
+ if (prevClaims.get(userAddress)?.size === 0) {
258
+ prevClaims.delete(userAddress);
259
+ }
260
+ }
261
+ if (newAmount === 0n) {
262
+ continue; //skip zero amounts
263
+ }
264
+ newMerkleValues.push([userAddress, tokenAddress, newAmount]);
265
+ totalDistributed[tokenAddress] =
266
+ (totalDistributed[tokenAddress] ?? 0n) + newAmount;
267
+ newDistributed[tokenAddress] =
268
+ (newDistributed[tokenAddress] ?? 0n) + newAmount;
269
+ }
270
+ }
271
+ // mix in unaltered previous claims
272
+ for (const [address, tokenMap] of prevClaims.entries()) {
273
+ for (const [tokenAddress, amount] of tokenMap.entries()) {
274
+ if (amount === 0n) {
275
+ continue; //skip zero amounts
276
+ }
277
+ newMerkleValues.push([address, tokenAddress, amount]);
278
+ totalDistributed[tokenAddress] =
279
+ (totalDistributed[tokenAddress] ?? 0n) + amount;
280
+ }
281
+ }
282
+ newMerkleValues.sort((a, b) => {
283
+ const addrCompare = a[0].localeCompare(b[0]);
284
+ if (addrCompare !== 0)
285
+ return addrCompare;
286
+ return a[1].localeCompare(b[1]);
287
+ });
288
+ const merkleTree = treeFromValues(newMerkleValues);
289
+ return {
290
+ distributorAddress,
291
+ cidPrev,
292
+ merkleRootPrev,
293
+ newProcessedBlock: BigInt(currentBlock.number),
294
+ merkleTree,
295
+ totalDistributed,
296
+ // this will be the source of truth for transfer txs amounts due to Apportionment Problem
297
+ newDistributed,
298
+ };
299
+ };
300
+ //# sourceMappingURL=distributor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distributor.js","sourceRoot":"","sources":["../../../features/defi-wrapper/distributor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './create-vault.js';
2
2
  export * from './defi-wrapper-factory.js';
3
3
  export * from './pool-info.js';
4
+ export * from './timelock.js';
@@ -1,4 +1,5 @@
1
1
  export * from './create-vault.js';
2
2
  export * from './defi-wrapper-factory.js';
3
3
  export * from './pool-info.js';
4
+ export * from './timelock.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../features/defi-wrapper/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../features/defi-wrapper/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
@@ -1,18 +1,27 @@
1
1
  import { Address } from 'viem';
2
+ export declare const STV_POOL_NAME = "StvPool";
3
+ export declare const STV_STETH_POOL_NAME = "StvStETHPool";
4
+ export declare const STV_STRATEGY_POOL_NAME = "StvStrategyPool";
5
+ export declare const areVaultParamsInSync: (poolAddress: Address) => Promise<boolean>;
2
6
  export declare const getPoolInfo: (address: Address) => Promise<{
3
7
  poolTypeName: string;
4
8
  isStvStethPool: boolean;
5
9
  isStvPool: boolean;
6
10
  WSTETH?: `0x${string}` | undefined;
11
+ DASHBOARD?: `0x${string}` | undefined;
7
12
  RESERVE_RATIO_GAP_BP?: bigint | undefined;
8
13
  totalMintedStethShares?: bigint | undefined;
9
- reserveRatioBP?: bigint | undefined;
10
- forcedRebalanceThresholdBP?: bigint | undefined;
14
+ poolReserveRatioBP?: bigint | undefined;
15
+ poolForcedRebalanceThresholdBP?: bigint | undefined;
11
16
  totalExceedingMintedStethShares?: bigint | undefined;
12
17
  totalExceedingMintedSteth?: bigint | undefined;
18
+ liabilityShares?: bigint | undefined;
19
+ remainingMintingCapacityShares?: bigint | undefined;
20
+ totalMintingCapacityShares?: bigint | undefined;
13
21
  maxLossSocializationBP?: bigint | undefined;
14
22
  isMintingPaused?: boolean | undefined;
15
23
  MINTING_FEATURE?: `0x${string}` | undefined;
24
+ isInSync?: boolean | undefined;
16
25
  vault: `0x${string}`;
17
26
  stETH: `0x${string}`;
18
27
  Dashboard: `0x${string}`;
@@ -24,12 +33,18 @@ export declare const getPoolInfo: (address: Address) => Promise<{
24
33
  totalAssets: bigint;
25
34
  totalSupply: bigint;
26
35
  totalLiabilityShares: bigint;
36
+ totalLiabilitySteth: string;
37
+ healthRatio: number;
38
+ isHealthy: boolean;
27
39
  totalUnassignedLiabilityShares: bigint;
28
40
  totalUnassignedLiabilitySteth: bigint;
41
+ unfinalizedAssets: bigint;
42
+ availableVaultBalance: bigint;
29
43
  decimals: number;
30
44
  isDepositsPaused: boolean;
31
45
  ALLOW_LIST_ENABLED: boolean;
32
46
  DEPOSITS_FEATURE: `0x${string}`;
33
47
  allowListSize: bigint;
34
48
  isReportFresh: boolean;
49
+ availableAssetsForCLDeposit: bigint;
35
50
  }>;
@@ -1,10 +1,12 @@
1
1
  import { fromHex } from 'viem';
2
- import { getStvStethPoolContract, getStvPoolContract, } from '../../contracts/defi-wrapper/index.js';
3
- import { callReadMethodSilent } from '../../utils/index.js';
4
- import { reportFreshWarning } from '../index.js';
5
- const STV_POOL_NAME = 'StvPool';
6
- const STV_STETH_POOL_NAME = 'StvStETHPool';
7
- const STV_STRATEGY_POOL_NAME = 'StvStrategyPool';
2
+ import { getStvStethPoolContract, getStvPoolContract, getWithdrawalQueueContract, } from '../../contracts/defi-wrapper/index.js';
3
+ import { callReadMethodSilent, fetchAndCalculateVaultHealth } from '../../utils/index.js';
4
+ import { reportFreshWarning, vaultMintLimit } from '../index.js';
5
+ import { getDashboardContract, getStakingVaultContract } from '../../contracts/index.js';
6
+ import { bigIntMax } from '../../utils/bigInt.js';
7
+ export const STV_POOL_NAME = 'StvPool';
8
+ export const STV_STETH_POOL_NAME = 'StvStETHPool';
9
+ export const STV_STRATEGY_POOL_NAME = 'StvStrategyPool';
8
10
  const getStvPoolInfo = async (address) => {
9
11
  const contract = await getStvPoolContract(address);
10
12
  const [vault, stETH, Dashboard, VaultHub, WithdrawalQueue, Distributor, poolType, totalNominalAssets, totalAssets, totalSupply, totalLiabilityShares, totalUnassignedLiabilityShares, totalUnassignedLiabilitySteth, decimals, DEPOSITS_FEATURE, ALLOW_LIST_ENABLED, allowListSize,] = await Promise.all([
@@ -26,8 +28,16 @@ const getStvPoolInfo = async (address) => {
26
28
  contract.read.ALLOW_LIST_ENABLED(),
27
29
  contract.read.getAllowListSize(),
28
30
  ]);
29
- const isDepositsPaused = await callReadMethodSilent(contract, 'isFeaturePaused', [DEPOSITS_FEATURE]);
31
+ const wqContract = await getWithdrawalQueueContract(WithdrawalQueue);
32
+ const vaultContract = await getStakingVaultContract(vault);
33
+ const [isDepositsPaused, unfinalizedAssets, availableVaultBalance] = await Promise.all([
34
+ contract.read.isFeaturePaused([DEPOSITS_FEATURE]),
35
+ wqContract.read.unfinalizedAssets(),
36
+ vaultContract.read.availableBalance(),
37
+ ]);
38
+ const availableAssetsForCLDeposit = bigIntMax(availableVaultBalance - unfinalizedAssets, 0n);
30
39
  const isReportFresh = await reportFreshWarning(vault);
40
+ const { healthRatio, isHealthy, liabilitySharesInSteth: totalLiabilitySteth, } = await fetchAndCalculateVaultHealth(await getDashboardContract(Dashboard));
31
41
  return {
32
42
  vault,
33
43
  stETH,
@@ -40,41 +50,81 @@ const getStvPoolInfo = async (address) => {
40
50
  totalAssets,
41
51
  totalSupply,
42
52
  totalLiabilityShares,
53
+ totalLiabilitySteth,
54
+ healthRatio,
55
+ isHealthy,
43
56
  totalUnassignedLiabilityShares,
44
57
  totalUnassignedLiabilitySteth,
58
+ unfinalizedAssets,
59
+ availableVaultBalance,
45
60
  decimals,
46
61
  isDepositsPaused,
47
62
  ALLOW_LIST_ENABLED,
48
63
  DEPOSITS_FEATURE,
49
64
  allowListSize,
50
65
  isReportFresh,
66
+ availableAssetsForCLDeposit,
51
67
  };
52
68
  };
69
+ export const areVaultParamsInSync = async (poolAddress) => {
70
+ const pool = await getStvStethPoolContract(poolAddress);
71
+ const poolType = await pool.read.poolType();
72
+ const dashboardAddress = await pool.read.DASHBOARD();
73
+ const dashboard = await getDashboardContract(dashboardAddress);
74
+ const poolTypeName = fromHex(poolType, 'string').replace(/\W/g, '');
75
+ const isStvStethPool = poolTypeName === STV_STETH_POOL_NAME ||
76
+ poolTypeName === STV_STRATEGY_POOL_NAME;
77
+ if (!isStvStethPool) {
78
+ throw new Error(`The pool at address ${poolAddress} is not an StvStEth or StvStrategy pool. This operation is only applicable to StvStEth and StvStrategy pools.`);
79
+ }
80
+ const [{ reserveRatioBP: vaultReserveRatioBP, forcedRebalanceThresholdBP: vaultForcedRebalanceThresholdBP, }, poolForcedRebalanceThresholdBP, poolReserveRatioBP, RESERVE_RATIO_GAP_BP,] = await Promise.all([
81
+ dashboard.read.vaultConnection(),
82
+ pool.read.poolForcedRebalanceThresholdBP(),
83
+ pool.read.poolReserveRatioBP(),
84
+ pool.read.RESERVE_RATIO_GAP_BP(),
85
+ ]);
86
+ const isInSync = poolReserveRatioBP == BigInt(vaultReserveRatioBP) + RESERVE_RATIO_GAP_BP &&
87
+ poolForcedRebalanceThresholdBP ==
88
+ BigInt(vaultForcedRebalanceThresholdBP) + RESERVE_RATIO_GAP_BP;
89
+ return isInSync;
90
+ };
53
91
  const getStvStethPoolInfo = async (address) => {
54
92
  const contract = await getStvStethPoolContract(address);
55
- const [WSTETH, RESERVE_RATIO_GAP_BP, totalMintedStethShares, reserveRatioBP, forcedRebalanceThresholdBP, totalExceedingMintedStethShares, totalExceedingMintedSteth, maxLossSocializationBP, MINTING_FEATURE,] = await Promise.all([
93
+ const [WSTETH, DASHBOARD, RESERVE_RATIO_GAP_BP, totalMintedStethShares, poolReserveRatioBP, poolForcedRebalanceThresholdBP, totalExceedingMintedStethShares, totalExceedingMintedSteth, maxLossSocializationBP, MINTING_FEATURE,] = await Promise.all([
56
94
  contract.read.WSTETH(),
95
+ contract.read.DASHBOARD(),
57
96
  contract.read.RESERVE_RATIO_GAP_BP(),
58
97
  contract.read.totalMintedStethShares(),
59
- contract.read.reserveRatioBP(),
60
- contract.read.forcedRebalanceThresholdBP(),
98
+ contract.read.poolReserveRatioBP(),
99
+ contract.read.poolForcedRebalanceThresholdBP(),
61
100
  contract.read.totalExceedingMintedStethShares(),
62
101
  contract.read.totalExceedingMintedSteth(),
63
102
  contract.read.maxLossSocializationBP(),
64
103
  contract.read.MINTING_FEATURE(),
65
104
  ]);
66
- const isMintingPaused = await callReadMethodSilent(contract, 'isFeaturePaused', [MINTING_FEATURE]);
105
+ const isMintingPaused = await callReadMethodSilent({
106
+ contract,
107
+ methodName: 'isFeaturePaused',
108
+ payload: [[MINTING_FEATURE]],
109
+ });
110
+ const { liabilityShares, remainingMintingCapacityShares, totalMintingCapacityShares, } = await vaultMintLimit(await getDashboardContract(DASHBOARD));
111
+ const isInSync = await areVaultParamsInSync(address);
67
112
  return {
68
113
  WSTETH,
114
+ DASHBOARD,
69
115
  RESERVE_RATIO_GAP_BP,
70
116
  totalMintedStethShares,
71
- reserveRatioBP,
72
- forcedRebalanceThresholdBP,
117
+ poolReserveRatioBP,
118
+ poolForcedRebalanceThresholdBP,
73
119
  totalExceedingMintedStethShares,
74
120
  totalExceedingMintedSteth,
121
+ liabilityShares,
122
+ remainingMintingCapacityShares,
123
+ totalMintingCapacityShares,
75
124
  maxLossSocializationBP,
76
125
  isMintingPaused,
77
126
  MINTING_FEATURE,
127
+ isInSync,
78
128
  };
79
129
  };
80
130
  export const getPoolInfo = async (address) => {
@@ -1 +1 @@
1
- {"version":3,"file":"pool-info.js","sourceRoot":"","sources":["../../../features/defi-wrapper/pool-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool-info.js","sourceRoot":"","sources":["../../../features/defi-wrapper/pool-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAClD,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAExD,MAAM,cAAc,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;IAChD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,CACJ,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,eAAe,EACf,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,8BAA8B,EAC9B,6BAA6B,EAC7B,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACd,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;QACrB,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;QACrB,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE;QAChC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;QAC3B,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;QACxB,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;QAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;QAC3B,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE;QACpC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE;QAC9C,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE;QAC7C,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;QACxB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE;QAChC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE;KACjC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,eAAe,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAE3D,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,GAChE,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACjD,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE;QACnC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE;KACtC,CAAC,CAAC;IAEL,MAAM,2BAA2B,GAAG,SAAS,CAC3C,qBAAqB,GAAG,iBAAiB,EACzC,EAAE,CACH,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,EACJ,WAAW,EACX,SAAS,EACT,sBAAsB,EAAE,mBAAmB,GAC5C,GAAG,MAAM,4BAA4B,CAAC,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9E,OAAO;QACL,KAAK;QACL,KAAK;QACL,SAAS;QACT,QAAQ;QACR,eAAe;QACf,WAAW;QACX,QAAQ;QACR,kBAAkB;QAClB,WAAW;QACX,WAAW;QACX,oBAAoB;QACpB,mBAAmB;QACnB,WAAW;QACX,SAAS;QACT,8BAA8B;QAC9B,6BAA6B;QAC7B,iBAAiB;QACjB,qBAAqB;QACrB,QAAQ;QACR,gBAAgB;QAChB,kBAAkB;QAClB,gBAAgB;QAChB,aAAa;QACb,aAAa;QACb,2BAA2B;KAC5B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,WAAoB,EAAE,EAAE;IACjE,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAE5C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAErD,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAE/D,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEpE,MAAM,cAAc,GAClB,YAAY,KAAK,mBAAmB;QACpC,YAAY,KAAK,sBAAsB,CAAC;IAE1C,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,uBAAuB,WAAW,+GAA+G,CAClJ,CAAC;IACJ,CAAC;IAED,MAAM,CACJ,EACE,cAAc,EAAE,mBAAmB,EACnC,0BAA0B,EAAE,+BAA+B,GAC5D,EACD,8BAA8B,EAC9B,kBAAkB,EAClB,oBAAoB,EACrB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE;QAChC,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE;QAC1C,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;KACjC,CAAC,CAAC;IAEH,MAAM,QAAQ,GACZ,kBAAkB,IAAI,MAAM,CAAC,mBAAmB,CAAC,GAAG,oBAAoB;QACxE,8BAA8B;YAC5B,MAAM,CAAC,+BAA+B,CAAC,GAAG,oBAAoB,CAAC;IAEnE,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;IACrD,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,CACJ,MAAM,EACN,SAAS,EACT,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EAChB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;QACtB,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE;QACpC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE;QACtC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,EAAE;QAC9C,QAAQ,CAAC,IAAI,CAAC,+BAA+B,EAAE;QAC/C,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE;QACzC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE;QACtC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE;KAChC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC;QACjD,QAAQ;QACR,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;KAC7B,CAAC,CAAC;IAEH,MAAM,EACJ,eAAe,EACf,8BAA8B,EAC9B,0BAA0B,GAC3B,GAAG,MAAM,cAAc,CAAC,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO;QACL,MAAM;QACN,SAAS;QACT,oBAAoB;QACpB,sBAAsB;QACtB,kBAAkB;QAClB,8BAA8B;QAC9B,+BAA+B;QAC/B,yBAAyB;QACzB,eAAe;QACf,8BAA8B;QAC9B,0BAA0B;QAC1B,sBAAsB;QACtB,eAAe;QACf,eAAe;QACf,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;IACpD,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,OAAO,CAClE,KAAK,EACL,EAAE,CACH,CAAC;IAEF,MAAM,cAAc,GAClB,YAAY,KAAK,mBAAmB;QACpC,YAAY,KAAK,sBAAsB,CAAC;IAC1C,MAAM,SAAS,GAAG,YAAY,KAAK,aAAa,CAAC;IAEjD,MAAM,gBAAgB,GAAG,cAAc;QACrC,CAAC,CAAC,MAAM,mBAAmB,CAAC,OAAO,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC;IAET,OAAO;QACL,GAAG,WAAW;QACd,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,YAAY;QACZ,cAAc;QACd,SAAS;KACV,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Address, Hex, GetContractReturnType, WalletClient, PublicClient, Abi } from 'viem';
2
+ import { TimeLockAbi } from '../../abi/defi-wrapper/TimeLock.js';
3
+ export declare const DEFAULT_SALT: "0x0000000000000000000000000000000000000000000000000000000000000000";
4
+ export declare const DEFAULT_PREDECESSOR: "0x0000000000000000000000000000000000000000000000000000000000000000";
5
+ export declare const TIMELOCK_ARGUMENT: readonly ["[timelock]", "timelock contract address", (value: string) => Address];
6
+ export declare const OPERATION_ID_ARGUMENT: readonly ["[operationId]", "operation ID (bytes32 hash)", (value: string) => Hex];
7
+ export declare const ROLE_ARGUMENT: readonly ["[role]", "role (bytes32 hex or role name like DEFAULT_ADMIN_ROLE)"];
8
+ export declare const ACCOUNT_GRANT_ARGUMENT: readonly ["[account]", "account address to grant role to", (value: string) => Address];
9
+ export declare const ACCOUNT_REVOKE_ARGUMENT: readonly ["[account]", "account address to revoke role from", (value: string) => Address];
10
+ export declare const SALT_OPTION: readonly ["-s, --salt <salt>", "salt for operation (bytes32 hex, default: 0x0)", (value: string) => Hex, "0x0000000000000000000000000000000000000000000000000000000000000000"];
11
+ export declare const getPromptTimelock: (argAddress: Address | undefined) => Promise<GetContractReturnType<typeof TimeLockAbi, WalletClient>>;
12
+ export declare const promptRole: (roleInput: string | undefined, contract: unknown) => Promise<`0x${string}`>;
13
+ export declare const promptAccount: (accountInput: string | undefined, message: string) => Promise<`0x${string}`>;
14
+ export declare const promptOperationId: (operationIdInput: string | undefined) => Promise<`0x${string}`>;
15
+ export declare const processSalt: (saltOption?: string) => Hex;
16
+ export declare const resolveRole: (roleInput: string, contract: GetContractReturnType<Abi, PublicClient>) => Promise<Hex>;
17
+ export declare const waitTimeTo: (timestamp: bigint) => bigint;
18
+ export declare const proposeOperation: (timelock: Address, target: Address, data: Hex, salt: Hex, functionName: string, confirmationMessage: string) => Promise<Hex>;
19
+ export declare const executeOperation: (timelock: Address, target: Address, data: Hex, salt: Hex, functionName: string, confirmationMessage: string, value?: bigint, predecessor?: Hex) => Promise<void>;