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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/dist/abi/AccessControlConfirmable.js.map +1 -1
  2. package/dist/abi/Dashboard.d.ts +24 -0
  3. package/dist/abi/Dashboard.js.map +1 -1
  4. package/dist/abi/LazyOracle.js.map +1 -1
  5. package/dist/abi/LidoLocator.js.map +1 -1
  6. package/dist/abi/OperatorGrid.js.map +1 -1
  7. package/dist/abi/PredepositGuarantee.d.ts +48 -0
  8. package/dist/abi/PredepositGuarantee.js +32 -0
  9. package/dist/abi/PredepositGuarantee.js.map +1 -1
  10. package/dist/abi/StEth.d.ts +1175 -59
  11. package/dist/abi/StEth.js +885 -320
  12. package/dist/abi/StEth.js.map +1 -1
  13. package/dist/abi/StakingVault.js.map +1 -1
  14. package/dist/abi/ValidatorConsolidationRequests.js.map +1 -1
  15. package/dist/abi/VaultFactory.js.map +1 -1
  16. package/dist/abi/VaultHub.js.map +1 -1
  17. package/dist/abi/VaultViewer.js.map +1 -1
  18. package/dist/abi/WstEth.js.map +1 -1
  19. package/dist/abi/defi-wrapper/Distributor.js.map +1 -1
  20. package/dist/abi/defi-wrapper/Factory.d.ts +532 -657
  21. package/dist/abi/defi-wrapper/Factory.js +1083 -647
  22. package/dist/abi/defi-wrapper/Factory.js.map +1 -1
  23. package/dist/abi/defi-wrapper/OssifiableProxy.d.ts +71 -0
  24. package/dist/abi/defi-wrapper/OssifiableProxy.js +93 -0
  25. package/dist/abi/defi-wrapper/OssifiableProxy.js.map +1 -0
  26. package/dist/abi/defi-wrapper/StrategyFactory.d.ts +59 -0
  27. package/dist/abi/defi-wrapper/StrategyFactory.js +37 -0
  28. package/dist/abi/defi-wrapper/StrategyFactory.js.map +1 -0
  29. package/dist/abi/defi-wrapper/StvPool.js.map +1 -1
  30. package/dist/abi/defi-wrapper/StvStETHPool.d.ts +38 -32
  31. package/dist/abi/defi-wrapper/StvStETHPool.js +50 -42
  32. package/dist/abi/defi-wrapper/StvStETHPool.js.map +1 -1
  33. package/dist/abi/defi-wrapper/TimeLock.d.ts +770 -0
  34. package/dist/abi/defi-wrapper/TimeLock.js +999 -0
  35. package/dist/abi/defi-wrapper/TimeLock.js.map +1 -0
  36. package/dist/abi/defi-wrapper/WithdrawalQueue.js.map +1 -1
  37. package/dist/abi/defi-wrapper/index.d.ts +3 -0
  38. package/dist/abi/defi-wrapper/index.js +3 -0
  39. package/dist/abi/defi-wrapper/index.js.map +1 -1
  40. package/dist/command/index.js +12 -1
  41. package/dist/command/index.js.map +1 -1
  42. package/dist/configs/constants.d.ts +4 -4
  43. package/dist/contracts/dashboard-impl.d.ts +4 -3
  44. package/dist/contracts/dashboard-impl.js +5 -8
  45. package/dist/contracts/dashboard-impl.js.map +1 -1
  46. package/dist/contracts/dashboard.d.ts +4 -3
  47. package/dist/contracts/dashboard.js +1 -1
  48. package/dist/contracts/dashboard.js.map +1 -1
  49. package/dist/contracts/defi-wrapper/distributor.d.ts +5 -4
  50. package/dist/contracts/defi-wrapper/distributor.js +2 -2
  51. package/dist/contracts/defi-wrapper/distributor.js.map +1 -1
  52. package/dist/contracts/defi-wrapper/factory.d.ts +5 -4
  53. package/dist/contracts/defi-wrapper/factory.js +2 -2
  54. package/dist/contracts/defi-wrapper/factory.js.map +1 -1
  55. package/dist/contracts/defi-wrapper/index.d.ts +3 -0
  56. package/dist/contracts/defi-wrapper/index.js +3 -0
  57. package/dist/contracts/defi-wrapper/index.js.map +1 -1
  58. package/dist/contracts/defi-wrapper/ossifiable-proxy.d.ts +5 -0
  59. package/dist/contracts/defi-wrapper/ossifiable-proxy.js +12 -0
  60. package/dist/contracts/defi-wrapper/ossifiable-proxy.js.map +1 -0
  61. package/dist/contracts/defi-wrapper/strategy-factory.d.ts +5 -0
  62. package/dist/contracts/defi-wrapper/strategy-factory.js +12 -0
  63. package/dist/contracts/defi-wrapper/strategy-factory.js.map +1 -0
  64. package/dist/contracts/defi-wrapper/stv-pool.d.ts +5 -4
  65. package/dist/contracts/defi-wrapper/stv-pool.js +2 -2
  66. package/dist/contracts/defi-wrapper/stv-pool.js.map +1 -1
  67. package/dist/contracts/defi-wrapper/stv-steth-pool.d.ts +5 -4
  68. package/dist/contracts/defi-wrapper/stv-steth-pool.js +2 -2
  69. package/dist/contracts/defi-wrapper/stv-steth-pool.js.map +1 -1
  70. package/dist/contracts/defi-wrapper/timelock.d.ts +5 -0
  71. package/dist/contracts/defi-wrapper/timelock.js +12 -0
  72. package/dist/contracts/defi-wrapper/timelock.js.map +1 -0
  73. package/dist/contracts/defi-wrapper/withdrawal-queue.d.ts +5 -4
  74. package/dist/contracts/defi-wrapper/withdrawal-queue.js +2 -2
  75. package/dist/contracts/defi-wrapper/withdrawal-queue.js.map +1 -1
  76. package/dist/contracts/lazy-oracle.d.ts +5 -3
  77. package/dist/contracts/lazy-oracle.js +5 -9
  78. package/dist/contracts/lazy-oracle.js.map +1 -1
  79. package/dist/contracts/locator.d.ts +4 -2
  80. package/dist/contracts/locator.js +5 -8
  81. package/dist/contracts/locator.js.map +1 -1
  82. package/dist/contracts/operator-grid.d.ts +5 -4
  83. package/dist/contracts/operator-grid.js +5 -8
  84. package/dist/contracts/operator-grid.js.map +1 -1
  85. package/dist/contracts/pdg.d.ts +5 -4
  86. package/dist/contracts/pdg.js +5 -8
  87. package/dist/contracts/pdg.js.map +1 -1
  88. package/dist/contracts/steth.d.ts +5 -27706
  89. package/dist/contracts/steth.js +6 -10
  90. package/dist/contracts/steth.js.map +1 -1
  91. package/dist/contracts/validator-consolidation-requests.d.ts +3 -3
  92. package/dist/contracts/validator-consolidation-requests.js.map +1 -1
  93. package/dist/contracts/vault-factory.d.ts +5 -3
  94. package/dist/contracts/vault-factory.js +6 -8
  95. package/dist/contracts/vault-factory.js.map +1 -1
  96. package/dist/contracts/vault-hub.d.ts +5 -3
  97. package/dist/contracts/vault-hub.js +5 -9
  98. package/dist/contracts/vault-hub.js.map +1 -1
  99. package/dist/contracts/vault-viewer.d.ts +4 -2
  100. package/dist/contracts/vault-viewer.js +7 -10
  101. package/dist/contracts/vault-viewer.js.map +1 -1
  102. package/dist/contracts/vault.d.ts +5 -4
  103. package/dist/contracts/vault.js +2 -2
  104. package/dist/contracts/vault.js.map +1 -1
  105. package/dist/contracts/wsteth.d.ts +5 -3
  106. package/dist/contracts/wsteth.js +5 -9
  107. package/dist/contracts/wsteth.js.map +1 -1
  108. package/dist/features/consolidation.d.ts +1 -1
  109. package/dist/features/consolidation.js +19 -3
  110. package/dist/features/consolidation.js.map +1 -1
  111. package/dist/features/defi-wrapper/create-vault.js +19 -16
  112. package/dist/features/defi-wrapper/create-vault.js.map +1 -1
  113. package/dist/features/defi-wrapper/defi-wrapper-factory.d.ts +22 -29
  114. package/dist/features/defi-wrapper/defi-wrapper-factory.js +124 -17
  115. package/dist/features/defi-wrapper/defi-wrapper-factory.js.map +1 -1
  116. package/dist/features/defi-wrapper/distributor.d.ts +24 -0
  117. package/dist/features/defi-wrapper/distributor.js +300 -0
  118. package/dist/features/defi-wrapper/distributor.js.map +1 -0
  119. package/dist/features/defi-wrapper/index.d.ts +1 -0
  120. package/dist/features/defi-wrapper/index.js +1 -0
  121. package/dist/features/defi-wrapper/index.js.map +1 -1
  122. package/dist/features/defi-wrapper/pool-info.d.ts +17 -2
  123. package/dist/features/defi-wrapper/pool-info.js +63 -13
  124. package/dist/features/defi-wrapper/pool-info.js.map +1 -1
  125. package/dist/features/defi-wrapper/timelock.d.ts +19 -0
  126. package/dist/features/defi-wrapper/timelock.js +198 -0
  127. package/dist/features/defi-wrapper/timelock.js.map +1 -0
  128. package/dist/features/deposits/check-bls-deposits.js +15 -3
  129. package/dist/features/deposits/check-bls-deposits.js.map +1 -1
  130. package/dist/features/deposits/make-pdg-proof.js +19 -7
  131. package/dist/features/deposits/make-pdg-proof.js.map +1 -1
  132. package/dist/features/deposits/no-pdg.js +50 -14
  133. package/dist/features/deposits/no-pdg.js.map +1 -1
  134. package/dist/features/deposits/pdg.js +5 -1
  135. package/dist/features/deposits/pdg.js.map +1 -1
  136. package/dist/features/deposits/validators.js +1 -1
  137. package/dist/features/deposits/validators.js.map +1 -1
  138. package/dist/features/dev-tools/impersonate.js +5 -1
  139. package/dist/features/dev-tools/impersonate.js.map +1 -1
  140. package/dist/features/metrics.d.ts +3 -0
  141. package/dist/features/metrics.js +49 -6
  142. package/dist/features/metrics.js.map +1 -1
  143. package/dist/features/mint-burn/allowance.js +15 -6
  144. package/dist/features/mint-burn/allowance.js.map +1 -1
  145. package/dist/features/mint-burn/burn-steth.js +5 -1
  146. package/dist/features/mint-burn/burn-steth.js.map +1 -1
  147. package/dist/features/mint-burn/index.d.ts +1 -0
  148. package/dist/features/mint-burn/index.js +1 -0
  149. package/dist/features/mint-burn/index.js.map +1 -1
  150. package/dist/features/mint-burn/mint-limit.d.ts +9 -0
  151. package/dist/features/mint-burn/mint-limit.js +31 -0
  152. package/dist/features/mint-burn/mint-limit.js.map +1 -0
  153. package/dist/features/mint-burn/mint-steth.js +5 -1
  154. package/dist/features/mint-burn/mint-steth.js.map +1 -1
  155. package/dist/features/pdg.js +5 -1
  156. package/dist/features/pdg.js.map +1 -1
  157. package/dist/features/utils/connection.js +5 -1
  158. package/dist/features/utils/connection.js.map +1 -1
  159. package/dist/features/utils/index.d.ts +1 -0
  160. package/dist/features/utils/index.js +1 -0
  161. package/dist/features/utils/index.js.map +1 -1
  162. package/dist/features/utils/liability-shares.js +5 -1
  163. package/dist/features/utils/liability-shares.js.map +1 -1
  164. package/dist/features/utils/minting-capacity.js +4 -3
  165. package/dist/features/utils/minting-capacity.js.map +1 -1
  166. package/dist/features/utils/quarantine.js +5 -1
  167. package/dist/features/utils/quarantine.js.map +1 -1
  168. package/dist/features/utils/report-fresh.js +15 -3
  169. package/dist/features/utils/report-fresh.js.map +1 -1
  170. package/dist/features/utils/try-fetch.d.ts +5 -0
  171. package/dist/features/utils/try-fetch.js +26 -0
  172. package/dist/features/utils/try-fetch.js.map +1 -0
  173. package/dist/features/vault-factory.js +16 -4
  174. package/dist/features/vault-factory.js.map +1 -1
  175. package/dist/features/vault-operations/connect-vault.js +10 -2
  176. package/dist/features/vault-operations/connect-vault.js.map +1 -1
  177. package/dist/features/vault-operations/dashboard-by-vault.js +10 -2
  178. package/dist/features/vault-operations/dashboard-by-vault.js.map +1 -1
  179. package/dist/features/vault-operations/index.d.ts +1 -0
  180. package/dist/features/vault-operations/index.js +1 -0
  181. package/dist/features/vault-operations/index.js.map +1 -1
  182. package/dist/features/vault-operations/roles.js +10 -2
  183. package/dist/features/vault-operations/roles.js.map +1 -1
  184. package/dist/features/vault-operations/share-limit.d.ts +8 -0
  185. package/dist/features/vault-operations/share-limit.js +20 -0
  186. package/dist/features/vault-operations/share-limit.js.map +1 -0
  187. package/dist/features/vault-operations/vault-health.js +5 -1
  188. package/dist/features/vault-operations/vault-health.js.map +1 -1
  189. package/dist/features/vault-operations/vault-info.js +10 -2
  190. package/dist/features/vault-operations/vault-info.js.map +1 -1
  191. package/dist/features/vault-operations/vault-overview.js +25 -5
  192. package/dist/features/vault-operations/vault-overview.js.map +1 -1
  193. package/dist/features/vault-operations/vault-roles.js +10 -2
  194. package/dist/features/vault-operations/vault-roles.js.map +1 -1
  195. package/dist/features/vault-operations/vaults-by-role.d.ts +24 -0
  196. package/dist/features/vault-operations/vaults-by-role.js +78 -27
  197. package/dist/features/vault-operations/vaults-by-role.js.map +1 -1
  198. package/dist/features/with-report.d.ts +1 -1
  199. package/dist/index.js +45 -16
  200. package/dist/index.js.map +1 -1
  201. package/dist/programs/account/main.d.ts +1 -1
  202. package/dist/programs/account/read.js +10 -5
  203. package/dist/programs/account/read.js.map +1 -1
  204. package/dist/programs/account/write.js +29 -2
  205. package/dist/programs/account/write.js.map +1 -1
  206. package/dist/programs/contracts/dashboard/main.d.ts +1 -1
  207. package/dist/programs/contracts/dashboard/read.js +15 -3
  208. package/dist/programs/contracts/dashboard/read.js.map +1 -1
  209. package/dist/programs/contracts/dashboard/write.js +233 -52
  210. package/dist/programs/contracts/dashboard/write.js.map +1 -1
  211. package/dist/programs/contracts/hub/main.d.ts +1 -1
  212. package/dist/programs/contracts/hub/read.js +15 -5
  213. package/dist/programs/contracts/hub/read.js.map +1 -1
  214. package/dist/programs/contracts/hub/write.js +12 -3
  215. package/dist/programs/contracts/hub/write.js.map +1 -1
  216. package/dist/programs/contracts/lazy-oracle/main.d.ts +1 -1
  217. package/dist/programs/contracts/main.d.ts +1 -1
  218. package/dist/programs/contracts/operator-grid/main.d.ts +1 -1
  219. package/dist/programs/contracts/operator-grid/read.js +5 -1
  220. package/dist/programs/contracts/operator-grid/read.js.map +1 -1
  221. package/dist/programs/contracts/operator-grid/write.js +18 -10
  222. package/dist/programs/contracts/operator-grid/write.js.map +1 -1
  223. package/dist/programs/contracts/pdg/main.d.ts +1 -1
  224. package/dist/programs/contracts/pdg/read.js +5 -1
  225. package/dist/programs/contracts/pdg/read.js.map +1 -1
  226. package/dist/programs/contracts/pdg/write.js +34 -4
  227. package/dist/programs/contracts/pdg/write.js.map +1 -1
  228. package/dist/programs/contracts/vault/main.d.ts +1 -1
  229. package/dist/programs/contracts/vault/write.js +5 -1
  230. package/dist/programs/contracts/vault/write.js.map +1 -1
  231. package/dist/programs/contracts/vault-factory/main.d.ts +1 -1
  232. package/dist/programs/contracts/vault-viewer/main.d.ts +1 -1
  233. package/dist/programs/defi-wrapper/contracts/distributor/config.d.ts +1 -1
  234. package/dist/programs/defi-wrapper/contracts/distributor/main.d.ts +1 -1
  235. package/dist/programs/defi-wrapper/contracts/distributor/read.js +19 -7
  236. package/dist/programs/defi-wrapper/contracts/distributor/read.js.map +1 -1
  237. package/dist/programs/defi-wrapper/contracts/distributor/write.js +1 -1
  238. package/dist/programs/defi-wrapper/contracts/factory/config.d.ts +1 -1
  239. package/dist/programs/defi-wrapper/contracts/factory/main.d.ts +1 -1
  240. package/dist/programs/defi-wrapper/contracts/factory/read.js +75 -15
  241. package/dist/programs/defi-wrapper/contracts/factory/read.js.map +1 -1
  242. package/dist/programs/defi-wrapper/contracts/factory/write.js +261 -67
  243. package/dist/programs/defi-wrapper/contracts/factory/write.js.map +1 -1
  244. package/dist/programs/defi-wrapper/contracts/main.d.ts +1 -1
  245. package/dist/programs/defi-wrapper/contracts/stv-pool/config.d.ts +1 -1
  246. package/dist/programs/defi-wrapper/contracts/stv-pool/main.d.ts +1 -1
  247. package/dist/programs/defi-wrapper/contracts/stv-pool/read.js +64 -20
  248. package/dist/programs/defi-wrapper/contracts/stv-pool/read.js.map +1 -1
  249. package/dist/programs/defi-wrapper/contracts/stv-pool/write.js +1 -1
  250. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/config.d.ts +1 -1
  251. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/main.d.ts +1 -1
  252. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js +64 -20
  253. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js.map +1 -1
  254. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/write.js +1 -1
  255. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/config.d.ts +1 -1
  256. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/main.d.ts +1 -1
  257. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js +66 -18
  258. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js.map +1 -1
  259. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js +34 -7
  260. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js.map +1 -1
  261. package/dist/programs/defi-wrapper/main.d.ts +1 -1
  262. package/dist/programs/defi-wrapper/use-cases/distributor/index.d.ts +3 -0
  263. package/dist/programs/defi-wrapper/use-cases/distributor/index.js +4 -0
  264. package/dist/programs/defi-wrapper/use-cases/distributor/index.js.map +1 -0
  265. package/dist/programs/defi-wrapper/use-cases/distributor/main.d.ts +1 -0
  266. package/dist/programs/defi-wrapper/use-cases/distributor/main.js +6 -0
  267. package/dist/programs/defi-wrapper/use-cases/distributor/main.js.map +1 -0
  268. package/dist/programs/defi-wrapper/use-cases/distributor/read.js +86 -0
  269. package/dist/programs/defi-wrapper/use-cases/distributor/read.js.map +1 -0
  270. package/dist/programs/defi-wrapper/use-cases/distributor/write.d.ts +1 -0
  271. package/dist/programs/defi-wrapper/use-cases/distributor/write.js +191 -0
  272. package/dist/programs/defi-wrapper/use-cases/distributor/write.js.map +1 -0
  273. package/dist/programs/defi-wrapper/use-cases/health/main.d.ts +1 -1
  274. package/dist/programs/defi-wrapper/use-cases/health/read.js +73 -23
  275. package/dist/programs/defi-wrapper/use-cases/health/read.js.map +1 -1
  276. package/dist/programs/defi-wrapper/use-cases/health/utils.js +11 -3
  277. package/dist/programs/defi-wrapper/use-cases/health/utils.js.map +1 -1
  278. package/dist/programs/defi-wrapper/use-cases/health/write.js +68 -25
  279. package/dist/programs/defi-wrapper/use-cases/health/write.js.map +1 -1
  280. package/dist/programs/defi-wrapper/use-cases/index.d.ts +2 -0
  281. package/dist/programs/defi-wrapper/use-cases/index.js +2 -0
  282. package/dist/programs/defi-wrapper/use-cases/index.js.map +1 -1
  283. package/dist/programs/defi-wrapper/use-cases/main.d.ts +1 -1
  284. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.d.ts +3 -0
  285. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.js +4 -0
  286. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.js.map +1 -0
  287. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.d.ts +1 -0
  288. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.js +6 -0
  289. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.js.map +1 -0
  290. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.d.ts +1 -0
  291. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.js +362 -0
  292. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.js.map +1 -0
  293. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.d.ts +1 -0
  294. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.js +86 -0
  295. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.js.map +1 -0
  296. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.d.ts +2 -0
  297. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.js +3 -0
  298. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.js.map +1 -0
  299. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.d.ts +1 -0
  300. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.js +6 -0
  301. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.js.map +1 -0
  302. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.d.ts +1 -0
  303. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.js +369 -0
  304. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.js.map +1 -0
  305. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.d.ts +6 -0
  306. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.js +7 -0
  307. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.js.map +1 -0
  308. package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.d.ts +1 -0
  309. package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.js +6 -0
  310. package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.js.map +1 -0
  311. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.d.ts +2 -0
  312. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.js +3 -0
  313. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.js.map +1 -0
  314. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.d.ts +1 -0
  315. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.js +6 -0
  316. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.js.map +1 -0
  317. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.d.ts +1 -0
  318. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.js +184 -0
  319. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.js.map +1 -0
  320. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.d.ts +3 -0
  321. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.js +4 -0
  322. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.js.map +1 -0
  323. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.d.ts +1 -0
  324. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.js +6 -0
  325. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.js.map +1 -0
  326. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.d.ts +1 -0
  327. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.js +80 -0
  328. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.js.map +1 -0
  329. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.d.ts +1 -0
  330. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.js +139 -0
  331. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.js.map +1 -0
  332. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.d.ts +2 -0
  333. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.js +3 -0
  334. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.js.map +1 -0
  335. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.d.ts +1 -0
  336. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.js +6 -0
  337. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.js.map +1 -0
  338. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.d.ts +1 -0
  339. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.js +118 -0
  340. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.js.map +1 -0
  341. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.d.ts +1 -1
  342. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.js +1 -2
  343. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.js.map +1 -1
  344. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/main.d.ts +1 -1
  345. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js +334 -12
  346. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js.map +1 -1
  347. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js +449 -2
  348. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js.map +1 -1
  349. package/dist/programs/dev-tools/anvil/main.d.ts +1 -1
  350. package/dist/programs/dev-tools/defi-wrapper/main.d.ts +1 -1
  351. package/dist/programs/dev-tools/defi-wrapper/write.js +42 -12
  352. package/dist/programs/dev-tools/defi-wrapper/write.js.map +1 -1
  353. package/dist/programs/dev-tools/main.d.ts +1 -1
  354. package/dist/programs/pdg-helpers.js +59 -19
  355. package/dist/programs/pdg-helpers.js.map +1 -1
  356. package/dist/programs/use-cases/consolidation/main.d.ts +1 -1
  357. package/dist/programs/use-cases/consolidation/write.d.ts +1 -1
  358. package/dist/programs/use-cases/consolidation/write.js +6 -2
  359. package/dist/programs/use-cases/consolidation/write.js.map +1 -1
  360. package/dist/programs/use-cases/deposits/main.d.ts +1 -1
  361. package/dist/programs/use-cases/deposits/read.js +40 -8
  362. package/dist/programs/use-cases/deposits/read.js.map +1 -1
  363. package/dist/programs/use-cases/deposits/write.js +15 -3
  364. package/dist/programs/use-cases/deposits/write.js.map +1 -1
  365. package/dist/programs/use-cases/metrics/main.d.ts +1 -1
  366. package/dist/programs/use-cases/metrics/read.js +32 -12
  367. package/dist/programs/use-cases/metrics/read.js.map +1 -1
  368. package/dist/programs/use-cases/report/main.d.ts +1 -1
  369. package/dist/programs/use-cases/report/read.js +25 -5
  370. package/dist/programs/use-cases/report/read.js.map +1 -1
  371. package/dist/programs/use-cases/report/write.js +13 -5
  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 +60 -23
  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,3 +1,3 @@
1
1
  export * from './main.js';
2
2
  export * from './read.js';
3
- export * from './create-pool.js';
3
+ export * from './write.js';
@@ -1,5 +1,4 @@
1
1
  export * from './main.js';
2
2
  export * from './read.js';
3
- export * from './create-pool.js';
4
- // export * from './write.js';
3
+ export * from './write.js';
5
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/use-cases/wrapper-operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,8BAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/use-cases/wrapper-operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -1 +1 @@
1
- export declare const wrapperOperations: import("commander").Command;
1
+ export declare const wrapperOperations: import("node_modules/commander/typings/index.js").Command;
@@ -1,10 +1,13 @@
1
- import { formatEther, formatUnits } from 'viem';
1
+ import { formatEther, formatUnits, zeroAddress } from 'viem';
2
2
  import { Option } from 'commander';
3
- import { logInfo, getCommandsJson, stringToAddress, logTable, logResult, formatBP, callReadMethodSilent, } from '../../../../utils/index.js';
4
- import { getPoolInfo } from '../../../../features/defi-wrapper/index.js';
3
+ import { logInfo, getCommandsJson, stringToAddress, logTable, logResult, formatBP, callReadMethodSilent, stringArrayToAddressArray, logError, } from '../../../../utils/index.js';
4
+ import { getPoolInfo } from 'features/defi-wrapper/index.js';
5
5
  import { checkIsReportFresh } from '../../../../features/index.js';
6
- import { getStvPoolContract } from '../../../../contracts/defi-wrapper/index.js';
6
+ import { getStvPoolContract, getWithdrawalQueueContract, } from 'contracts/defi-wrapper/index.js';
7
7
  import { wrapperOperations } from './main.js';
8
+ import { getDashboardContract, getStethContract } from '../../../../contracts/index.js';
9
+ import { bigIntMin } from 'utils/bigInt.js';
10
+ import { getPublicClient } from '../../../../providers/index.js';
8
11
  const wrapperOperationsRead = wrapperOperations
9
12
  .command('read')
10
13
  .aliases(['r'])
@@ -35,16 +38,16 @@ wrapperOperationsRead
35
38
  typeof poolInfo.RESERVE_RATIO_GAP_BP === 'bigint'
36
39
  ? ['RESERVE_RATIO_GAP_BP', poolInfo.RESERVE_RATIO_GAP_BP]
37
40
  : undefined,
38
- typeof poolInfo.reserveRatioBP === 'bigint'
41
+ typeof poolInfo.poolReserveRatioBP === 'bigint'
39
42
  ? [
40
43
  'Reserve Ratio, BP',
41
- `${poolInfo.reserveRatioBP} (${formatBP(poolInfo.reserveRatioBP)})`,
44
+ `${poolInfo.poolReserveRatioBP} (${formatBP(poolInfo.poolReserveRatioBP)})`,
42
45
  ]
43
46
  : undefined,
44
- typeof poolInfo.forcedRebalanceThresholdBP === 'bigint'
47
+ typeof poolInfo.poolForcedRebalanceThresholdBP === 'bigint'
45
48
  ? [
46
49
  'Forced Rebalance Threshold, BP',
47
- `${poolInfo.forcedRebalanceThresholdBP} (${formatBP(poolInfo.forcedRebalanceThresholdBP)})`,
50
+ `${poolInfo.poolForcedRebalanceThresholdBP} (${formatBP(poolInfo.poolForcedRebalanceThresholdBP)})`,
48
51
  ]
49
52
  : undefined,
50
53
  typeof poolInfo.maxLossSocializationBP === 'bigint'
@@ -56,13 +59,32 @@ wrapperOperationsRead
56
59
  ['Total Nominal Assets', formatEther(poolInfo.totalNominalAssets)],
57
60
  ['Total Assets', formatEther(poolInfo.totalAssets)],
58
61
  ['Total Supply', formatUnits(poolInfo.totalSupply, poolInfo.decimals)],
59
- ['Total Liability Shares', formatEther(poolInfo.totalLiabilityShares)],
62
+ typeof poolInfo.totalMintingCapacityShares === 'bigint'
63
+ ? [
64
+ 'Total Minting Capacity Steth Shares',
65
+ formatEther(poolInfo.totalMintingCapacityShares),
66
+ ]
67
+ : undefined,
68
+ typeof poolInfo.remainingMintingCapacityShares === 'bigint'
69
+ ? [
70
+ 'Remaining Minting Capacity Steth Shares',
71
+ formatEther(poolInfo.remainingMintingCapacityShares),
72
+ ]
73
+ : undefined,
60
74
  typeof poolInfo.totalMintedStethShares === 'bigint'
61
75
  ? [
62
76
  'Total Minted Steth Shares',
63
77
  formatEther(poolInfo.totalMintedStethShares),
64
78
  ]
65
79
  : undefined,
80
+ typeof poolInfo.liabilityShares === 'bigint'
81
+ ? ['Total Liability Shares', formatEther(poolInfo.liabilityShares)]
82
+ : undefined,
83
+ [
84
+ 'Total Liability in stETH',
85
+ // already formatted
86
+ poolInfo.totalLiabilitySteth,
87
+ ],
66
88
  typeof poolInfo.totalExceedingMintedStethShares === 'bigint'
67
89
  ? [
68
90
  'Total Exceeding Minted Steth Shares',
@@ -75,6 +97,13 @@ wrapperOperationsRead
75
97
  formatEther(poolInfo.totalExceedingMintedSteth),
76
98
  ]
77
99
  : undefined,
100
+ ['Vault Healthy', poolInfo.isHealthy],
101
+ ['Health Rate', `${poolInfo.healthRatio}%`],
102
+ ['Unfinalized ETH', formatEther(poolInfo.unfinalizedAssets)],
103
+ [
104
+ 'Available ETH for CL Deposit',
105
+ formatEther(poolInfo.availableAssetsForCLDeposit),
106
+ ],
78
107
  [
79
108
  'Total Unassigned Liability Shares',
80
109
  formatEther(poolInfo.totalUnassignedLiabilityShares),
@@ -92,26 +121,319 @@ wrapperOperationsRead
92
121
  ['ALLOW_LIST_ENABLED', poolInfo.ALLOW_LIST_ENABLED],
93
122
  ['Allow List Size', poolInfo.allowListSize],
94
123
  ['DEPOSITS_FEATURE (ID)', poolInfo.DEPOSITS_FEATURE],
124
+ poolInfo.isInSync !== undefined
125
+ ? [
126
+ 'Requires Vault Params Sync',
127
+ poolInfo.isInSync
128
+ ? '✅ No'
129
+ : '❌ Yes (🚨 run "sync-vault-params" command)',
130
+ ]
131
+ : undefined,
95
132
  poolInfo.MINTING_FEATURE
96
133
  ? ['MINTING_FEATURE (ID)', poolInfo.MINTING_FEATURE]
97
134
  : undefined,
98
135
  ].filter((item) => item !== undefined),
99
136
  });
100
137
  });
138
+ wrapperOperationsRead
139
+ .command('allow-list')
140
+ .description('get full or partial allow list data')
141
+ .argument('<address>', 'wrapper address', stringToAddress)
142
+ .argument('[addresses...]', 'list of addresses to check, leave empty to get full allow list', stringArrayToAddressArray, [])
143
+ .action(async (poolAddress, addresses) => {
144
+ const pool = await getStvPoolContract(poolAddress);
145
+ const publicClient = await getPublicClient();
146
+ const isAllowListEnabled = await callReadMethodSilent({
147
+ contract: pool,
148
+ methodName: 'ALLOW_LIST_ENABLED',
149
+ payload: [],
150
+ });
151
+ if (!isAllowListEnabled) {
152
+ logInfo('Allow List is disabled for this pool');
153
+ return;
154
+ }
155
+ const allowListManagerRole = await callReadMethodSilent({
156
+ contract: pool,
157
+ methodName: 'ALLOW_LIST_MANAGER_ROLE',
158
+ payload: [],
159
+ });
160
+ const allowListManagers = await callReadMethodSilent({
161
+ contract: pool,
162
+ methodName: 'getRoleMembers',
163
+ payload: [[allowListManagerRole]],
164
+ });
165
+ logTable({
166
+ params: {
167
+ head: ['List of holders of ALLOW_LIST_MANAGER_ROLE'],
168
+ },
169
+ data: allowListManagers.map((addr, index) => [
170
+ `Allow List Manager ${index + 1}`,
171
+ addr,
172
+ ]),
173
+ });
174
+ const allowListSize = await callReadMethodSilent({
175
+ contract: pool,
176
+ methodName: 'getAllowListSize',
177
+ payload: [],
178
+ });
179
+ logInfo(`Allow List contains ${allowListSize} addresses:`);
180
+ if (addresses.length === 0) {
181
+ const fullAllowList = await callReadMethodSilent({
182
+ contract: pool,
183
+ methodName: 'getAllowListAddresses',
184
+ payload: [],
185
+ });
186
+ logTable({ data: fullAllowList.map((addr) => [addr]) });
187
+ }
188
+ else {
189
+ const result = await publicClient.multicall({
190
+ contracts: addresses.map((address) => ({
191
+ address: pool.address,
192
+ abi: pool.abi,
193
+ functionName: 'isAllowListed',
194
+ args: [address],
195
+ })),
196
+ allowFailure: false,
197
+ });
198
+ logTable({
199
+ data: result.map((isAllowed, index) => [
200
+ addresses[index],
201
+ isAllowed ? '✅ Allowed' : '❌ Not Allowed',
202
+ ]),
203
+ });
204
+ }
205
+ });
101
206
  wrapperOperationsRead
102
207
  .command('report-fresh')
103
208
  .description('check if report is fresh')
104
209
  .argument('<address>', 'wrapper address', stringToAddress)
105
210
  .action(async (address) => {
106
211
  const contract = await getStvPoolContract(address);
107
- const vault = await callReadMethodSilent(contract, 'VAULT');
108
- const isReportFresh = await checkIsReportFresh({ vault });
212
+ const vault = await callReadMethodSilent({
213
+ contract,
214
+ methodName: 'VAULT',
215
+ payload: [],
216
+ });
217
+ const { isFresh: isReportFresh } = await checkIsReportFresh({ vault });
109
218
  logResult({});
110
219
  logInfo('Report Fresh');
111
220
  logTable({
112
- data: [['Is Report Fresh', isReportFresh.isFresh]],
221
+ data: [['Is Report Fresh', isReportFresh]],
113
222
  });
114
223
  });
224
+ const finalizationBlocker = (value) => {
225
+ return ' ' + (!value ? '❌' : '✅');
226
+ };
227
+ wrapperOperationsRead
228
+ .command('withdrawal-status')
229
+ .description('get status of withdrawal queue')
230
+ .argument('<address>', 'wrapper address', stringToAddress)
231
+ .action(async (address) => {
232
+ const logData = [];
233
+ try {
234
+ const pool = await getStvPoolContract(address);
235
+ const withdrawalQueueAddress = await callReadMethodSilent({
236
+ contract: pool,
237
+ methodName: 'WITHDRAWAL_QUEUE',
238
+ payload: [],
239
+ });
240
+ const vaultAddress = await callReadMethodSilent({
241
+ contract: pool,
242
+ methodName: 'VAULT',
243
+ payload: [],
244
+ });
245
+ const dashboardAddress = await callReadMethodSilent({
246
+ contract: pool,
247
+ methodName: 'DASHBOARD',
248
+ payload: [],
249
+ });
250
+ const dashboard = await getDashboardContract(dashboardAddress);
251
+ const withdrawalQueue = await getWithdrawalQueueContract(withdrawalQueueAddress);
252
+ logData.push(['Pool Address', address], ['Withdrawal Queue Address', withdrawalQueueAddress], ['Vault Address', vaultAddress]);
253
+ const { isFresh: isReportFresh } = await checkIsReportFresh({
254
+ vault: vaultAddress,
255
+ });
256
+ logData.push([
257
+ 'Is Report Fresh',
258
+ (isReportFresh ? 'Yes' : 'No( 🚨 Some data might be stale)') +
259
+ finalizationBlocker(isReportFresh),
260
+ ]);
261
+ const MIN_WITHDRAWAL_DELAY_TIME_IN_SECONDS = await callReadMethodSilent({
262
+ contract: withdrawalQueue,
263
+ methodName: 'MIN_WITHDRAWAL_DELAY_TIME_IN_SECONDS',
264
+ payload: [],
265
+ });
266
+ const MAX_WITHDRAWAL_ASSETS = await callReadMethodSilent({
267
+ contract: withdrawalQueue,
268
+ methodName: 'MAX_WITHDRAWAL_ASSETS',
269
+ payload: [],
270
+ });
271
+ const MIN_WITHDRAWAL_VALUE = await callReadMethodSilent({
272
+ contract: withdrawalQueue,
273
+ methodName: 'MIN_WITHDRAWAL_VALUE',
274
+ payload: [],
275
+ });
276
+ const finalizationGasCoverage = await callReadMethodSilent({
277
+ contract: withdrawalQueue,
278
+ methodName: 'getFinalizationGasCostCoverage',
279
+ payload: [],
280
+ });
281
+ logData.push(['Max Withdrawal Assets', formatEther(MAX_WITHDRAWAL_ASSETS) + ' ETH'], ['Min Withdrawal Value', formatEther(MIN_WITHDRAWAL_VALUE) + ' ETH'], [
282
+ 'Finalization Gas Cost Coverage ',
283
+ formatEther(finalizationGasCoverage) + ' ETH',
284
+ ], [
285
+ 'Min Withdrawal Delay ',
286
+ MIN_WITHDRAWAL_DELAY_TIME_IN_SECONDS + ' seconds',
287
+ ]);
288
+ const FINALIZE_FEATURE = await callReadMethodSilent({
289
+ contract: withdrawalQueue,
290
+ methodName: 'FINALIZE_FEATURE',
291
+ payload: [],
292
+ });
293
+ const isFinalizationPaused = await callReadMethodSilent({
294
+ contract: withdrawalQueue,
295
+ methodName: 'isFeaturePaused',
296
+ payload: [[FINALIZE_FEATURE]],
297
+ });
298
+ logData.push([
299
+ 'Is Finalization Paused',
300
+ (isFinalizationPaused ? 'Yes' : 'No') +
301
+ finalizationBlocker(!isFinalizationPaused),
302
+ ]);
303
+ const FINALIZER_ROLE = await callReadMethodSilent({
304
+ contract: withdrawalQueue,
305
+ methodName: 'FINALIZE_ROLE',
306
+ payload: [],
307
+ });
308
+ const finalizers = await callReadMethodSilent({
309
+ contract: withdrawalQueue,
310
+ methodName: 'getRoleMembers',
311
+ payload: [[FINALIZER_ROLE]],
312
+ });
313
+ logData.push([
314
+ 'Number of Finalizers',
315
+ finalizers.length + finalizationBlocker(finalizers.length),
316
+ ]);
317
+ finalizers.forEach((address, index) => {
318
+ logData.push([`Finalizer ${index + 1}`, address]);
319
+ });
320
+ const withdrawableEther = await callReadMethodSilent({
321
+ contract: dashboard,
322
+ methodName: 'withdrawableValue',
323
+ payload: [],
324
+ });
325
+ logData.push([
326
+ 'Buffered ETH',
327
+ formatEther(withdrawableEther) + finalizationBlocker(withdrawableEther),
328
+ ]);
329
+ const lastRequestId = await callReadMethodSilent({
330
+ contract: withdrawalQueue,
331
+ methodName: 'getLastRequestId',
332
+ payload: [],
333
+ });
334
+ logData.push(['Last Request ID', lastRequestId]);
335
+ const lastFinalizedRequestId = await callReadMethodSilent({
336
+ contract: withdrawalQueue,
337
+ methodName: 'getLastFinalizedRequestId',
338
+ payload: [],
339
+ });
340
+ logData.push(['Last Finalized Request ID', lastFinalizedRequestId]);
341
+ const requestsToFinalize = await callReadMethodSilent({
342
+ contract: withdrawalQueue,
343
+ methodName: 'unfinalizedRequestsNumber',
344
+ payload: [],
345
+ });
346
+ logData.push([
347
+ 'Requests to Finalize',
348
+ requestsToFinalize + finalizationBlocker(requestsToFinalize),
349
+ ]);
350
+ const unfinalizedStv = await callReadMethodSilent({
351
+ contract: withdrawalQueue,
352
+ methodName: 'unfinalizedStv',
353
+ payload: [],
354
+ });
355
+ const stvDecimals = await callReadMethodSilent({
356
+ contract: pool,
357
+ methodName: 'decimals',
358
+ payload: [],
359
+ });
360
+ logData.push([
361
+ 'Unfinalized STV',
362
+ formatUnits(unfinalizedStv, stvDecimals),
363
+ ]);
364
+ const unfinalizedStethShares = await callReadMethodSilent({
365
+ contract: withdrawalQueue,
366
+ methodName: 'unfinalizedStethShares',
367
+ payload: [],
368
+ });
369
+ logData.push([
370
+ 'Unfinalized Steth Shares',
371
+ formatEther(unfinalizedStethShares),
372
+ ]);
373
+ const unfinalizedSteth = await callReadMethodSilent({
374
+ contract: await getStethContract(),
375
+ methodName: 'getPooledEthBySharesRoundUp',
376
+ payload: [[unfinalizedStethShares]],
377
+ });
378
+ logData.push(['Unfinalized Steth', formatEther(unfinalizedSteth)]);
379
+ const unfinalizedAssets = await callReadMethodSilent({
380
+ contract: withdrawalQueue,
381
+ methodName: 'unfinalizedAssets',
382
+ payload: [],
383
+ });
384
+ logData.push([
385
+ 'Unfinalized ETH',
386
+ formatEther(unfinalizedAssets) + finalizationBlocker(unfinalizedAssets),
387
+ ]);
388
+ const ethForFinalization = bigIntMin(withdrawableEther, unfinalizedAssets);
389
+ logData.push([
390
+ 'ETH Available for Finalization',
391
+ formatEther(ethForFinalization) +
392
+ finalizationBlocker(ethForFinalization),
393
+ ]);
394
+ const ethToWithdrawFromCL = unfinalizedAssets - ethForFinalization;
395
+ logData.push([
396
+ 'ETH to Withdraw from CL',
397
+ formatEther(ethToWithdrawFromCL),
398
+ ]);
399
+ let canFinalize = !isFinalizationPaused &&
400
+ finalizers.length > 0 &&
401
+ isReportFresh &&
402
+ requestsToFinalize > 0n &&
403
+ ethForFinalization > 0n;
404
+ if (canFinalize) {
405
+ try {
406
+ const { result: requestFinalized } = await withdrawalQueue.simulate.finalize([requestsToFinalize, zeroAddress], {
407
+ account: finalizers[0],
408
+ });
409
+ logData.push([
410
+ 'Finalization Simulation',
411
+ `requests finalized ${requestFinalized}/${requestsToFinalize} ${finalizationBlocker(requestFinalized)}`,
412
+ ]);
413
+ }
414
+ catch (error) {
415
+ canFinalize = false;
416
+ logInfo('Finalization simulation failed, finalization will not be possible', error);
417
+ logInfo(`Possible reasons for finalization failure:
418
+ - all requests were made too recently (withdrawal delay not passed)
419
+ - all requests were made after the last report (next report needed)
420
+ `);
421
+ logData.push([
422
+ 'Finalization Simulation',
423
+ `🚨 Simulation failed ${finalizationBlocker(canFinalize)}`,
424
+ ]);
425
+ }
426
+ }
427
+ logData.push([
428
+ 'Can Finalize Now',
429
+ canFinalize ? '✅ Yes' : '❌ No (🚨 Check above parameters)',
430
+ ]);
431
+ }
432
+ catch (error) {
433
+ logError('Error fetching withdrawal status, displaying available data', error);
434
+ }
435
+ logResult({ data: logData });
436
+ });
115
437
  // TODO: Add wrapper health command
116
438
  // wrapperOperationsRead
117
439
  // .command('health')
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/use-cases/wrapper-operations/read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/use-cases/wrapper-operations/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EACL,OAAO,EACP,eAAe,EACf,eAAe,EACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,oBAAoB,EACpB,yBAAyB,EACzB,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,qBAAqB,GAAG,iBAAiB;KAC5C,OAAO,CAAC,MAAM,CAAC;KACf,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;KACd,WAAW,CAAC,kCAAkC,CAAC,CAAC;AAEnD,qBAAqB,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACzD,qBAAqB,CAAC,EAAE,CAAC,kBAAkB,EAAE;IAC3C,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,qBAAqB;KAClB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kBAAkB,CAAC;KAC/B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAE5C,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,OAAO,CAAC,cAAc,CAAC,CAAC;IACxB,QAAQ,CAAC;QACP,IAAI,EAAE;YACJ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;YACzB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;YACzB,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;YAC9C,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC;YACjC,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;YAC/B,CAAC,iBAAiB,EAAE,QAAQ,CAAC,eAAe,CAAC;YAC7C,CAAC,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC;YACrC,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC;YACnC,OAAO,QAAQ,CAAC,oBAAoB,KAAK,QAAQ;gBAC/C,CAAC,CAAC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,oBAAoB,CAAC;gBACzD,CAAC,CAAC,SAAS;YACb,OAAO,QAAQ,CAAC,kBAAkB,KAAK,QAAQ;gBAC7C,CAAC,CAAC;oBACE,mBAAmB;oBACnB,GAAG,QAAQ,CAAC,kBAAkB,KAAK,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG;iBAC5E;gBACH,CAAC,CAAC,SAAS;YACb,OAAO,QAAQ,CAAC,8BAA8B,KAAK,QAAQ;gBACzD,CAAC,CAAC;oBACE,gCAAgC;oBAChC,GAAG,QAAQ,CAAC,8BAA8B,KAAK,QAAQ,CAAC,QAAQ,CAAC,8BAA8B,CAAC,GAAG;iBACpG;gBACH,CAAC,CAAC,SAAS;YACb,OAAO,QAAQ,CAAC,sBAAsB,KAAK,QAAQ;gBACjD,CAAC,CAAC;oBACE,4BAA4B;oBAC5B,GAAG,QAAQ,CAAC,sBAAsB,KAAK,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,GAAG;iBACpF;gBACH,CAAC,CAAC,SAAS;YACb,CAAC,sBAAsB,EAAE,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAClE,CAAC,cAAc,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC,cAAc,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtE,OAAO,QAAQ,CAAC,0BAA0B,KAAK,QAAQ;gBACrD,CAAC,CAAC;oBACE,qCAAqC;oBACrC,WAAW,CAAC,QAAQ,CAAC,0BAA0B,CAAC;iBACjD;gBACH,CAAC,CAAC,SAAS;YACb,OAAO,QAAQ,CAAC,8BAA8B,KAAK,QAAQ;gBACzD,CAAC,CAAC;oBACE,yCAAyC;oBACzC,WAAW,CAAC,QAAQ,CAAC,8BAA8B,CAAC;iBACrD;gBACH,CAAC,CAAC,SAAS;YACb,OAAO,QAAQ,CAAC,sBAAsB,KAAK,QAAQ;gBACjD,CAAC,CAAC;oBACE,2BAA2B;oBAC3B,WAAW,CAAC,QAAQ,CAAC,sBAAsB,CAAC;iBAC7C;gBACH,CAAC,CAAC,SAAS;YACb,OAAO,QAAQ,CAAC,eAAe,KAAK,QAAQ;gBAC1C,CAAC,CAAC,CAAC,wBAAwB,EAAE,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACnE,CAAC,CAAC,SAAS;YAEb;gBACE,0BAA0B;gBAC1B,oBAAoB;gBACpB,QAAQ,CAAC,mBAAmB;aAC7B;YACD,OAAO,QAAQ,CAAC,+BAA+B,KAAK,QAAQ;gBAC1D,CAAC,CAAC;oBACE,qCAAqC;oBACrC,WAAW,CAAC,QAAQ,CAAC,+BAA+B,CAAC;iBACtD;gBACH,CAAC,CAAC,SAAS;YACb,OAAO,QAAQ,CAAC,yBAAyB,KAAK,QAAQ;gBACpD,CAAC,CAAC;oBACE,8BAA8B;oBAC9B,WAAW,CAAC,QAAQ,CAAC,yBAAyB,CAAC;iBAChD;gBACH,CAAC,CAAC,SAAS;YACb,CAAC,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAC;YACrC,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,WAAW,GAAG,CAAC;YAC3C,CAAC,iBAAiB,EAAE,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAC5D;gBACE,8BAA8B;gBAC9B,WAAW,CAAC,QAAQ,CAAC,2BAA2B,CAAC;aAClD;YACD;gBACE,mCAAmC;gBACnC,WAAW,CAAC,QAAQ,CAAC,8BAA8B,CAAC;aACrD;YACD;gBACE,kCAAkC;gBAClC,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC;aACpD;YACD,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;YAC/B,CAAC,oBAAoB,EAAE,QAAQ,CAAC,gBAAgB,CAAC;YACjD,OAAO,QAAQ,CAAC,eAAe,KAAK,SAAS;gBAC3C,CAAC,CAAC,CAAC,mBAAmB,EAAE,QAAQ,CAAC,eAAe,CAAC;gBACjD,CAAC,CAAC,SAAS;YACb,CAAC,iBAAiB,EAAE,QAAQ,CAAC,aAAa,CAAC;YAC3C,CAAC,oBAAoB,EAAE,QAAQ,CAAC,kBAAkB,CAAC;YACnD,CAAC,iBAAiB,EAAE,QAAQ,CAAC,aAAa,CAAC;YAC3C,CAAC,uBAAuB,EAAE,QAAQ,CAAC,gBAAgB,CAAC;YACpD,QAAQ,CAAC,QAAQ,KAAK,SAAS;gBAC7B,CAAC,CAAC;oBACE,4BAA4B;oBAC5B,QAAQ,CAAC,QAAQ;wBACf,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,4CAA4C;iBACjD;gBACH,CAAC,CAAC,SAAS;YACb,QAAQ,CAAC,eAAe;gBACtB,CAAC,CAAC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,eAAe,CAAC;gBACpD,CAAC,CAAC,SAAS;SACd,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;KACvC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,qBAAqB;KAClB,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC;KACzD,QAAQ,CACP,gBAAgB,EAChB,gEAAgE,EAChE,yBAAyB,EACzB,EAAE,CACH;KACA,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,SAAoB,EAAE,EAAE;IAClD,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;IAC7C,MAAM,kBAAkB,GAAG,MAAM,oBAAoB,CAAC;QACpD,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,oBAAoB;QAChC,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,CAAC,sCAAsC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,oBAAoB,GAAG,MAAM,oBAAoB,CAAC;QACtD,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,yBAAyB;QACrC,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC;QACnD,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,gBAAgB;QAC5B,OAAO,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC;KAClC,CAAC,CAAC;IAEH,QAAQ,CAAC;QACP,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,4CAA4C,CAAC;SACrD;QACD,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3C,sBAAsB,KAAK,GAAG,CAAC,EAAE;YACjC,IAAI;SACL,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC;QAC/C,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IACH,OAAO,CAAC,uBAAuB,aAAa,aAAa,CAAC,CAAC;IAE3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC;YAC/C,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,uBAAuB;YACnC,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC;YAC1C,SAAS,EAAE,SAAS,CAAC,GAAG,CACtB,CAAC,OAAO,EAAE,EAAE,CACV,CAAC;gBACC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,YAAY,EAAE,eAAe;gBAC7B,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB,CAAU,CACd;YACD,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QAEH,QAAQ,CAAC;YACP,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrC,SAAS,CAAC,KAAK,CAAC;gBAChB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe;aAC1C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,qBAAqB;KAClB,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,0BAA0B,CAAC;KACvC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC;QACvC,QAAQ;QACR,UAAU,EAAE,OAAO;QACnB,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,OAAO,CAAC,cAAc,CAAC,CAAC;IACxB,QAAQ,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;KAC3C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,MAAM,mBAAmB,GAAG,CAAC,KAAgC,EAAE,EAAE;IAC/D,OAAO,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,qBAAqB;KAClB,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,gCAAgC,CAAC;KAC7C,QAAQ,CAAC,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,EAAE;IACjC,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,sBAAsB,GAAG,MAAM,oBAAoB,CAAC;YACxD,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,kBAAkB;YAC9B,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC;YAC9C,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,OAAO;YACnB,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC;YAClD,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,WAAW;YACvB,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,MAAM,0BAA0B,CACtD,sBAAsB,CACvB,CAAC;QAEF,OAAO,CAAC,IAAI,CACV,CAAC,cAAc,EAAE,OAAO,CAAC,EACzB,CAAC,0BAA0B,EAAE,sBAAsB,CAAC,EACpD,CAAC,eAAe,EAAE,YAAY,CAAC,CAChC,CAAC;QAEF,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,kBAAkB,CAAC;YAC1D,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC;YACX,iBAAiB;YACjB,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,kCAAkC,CAAC;gBAC1D,mBAAmB,CAAC,aAAa,CAAC;SACrC,CAAC,CAAC;QAEH,MAAM,oCAAoC,GAAG,MAAM,oBAAoB,CAAC;YACtE,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,sCAAsC;YAClD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,qBAAqB,GAAG,MAAM,oBAAoB,CAAC;YACvD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,uBAAuB;YACnC,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,MAAM,oBAAoB,CAAC;YACtD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,sBAAsB;YAClC,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,uBAAuB,GAAG,MAAM,oBAAoB,CAAC;YACzD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,gCAAgC;YAC5C,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CACV,CAAC,uBAAuB,EAAE,WAAW,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,EACtE,CAAC,sBAAsB,EAAE,WAAW,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAAC,EACpE;YACE,iCAAiC;YACjC,WAAW,CAAC,uBAAuB,CAAC,GAAG,MAAM;SAC9C,EACD;YACE,uBAAuB;YACvB,oCAAoC,GAAG,UAAU;SAClD,CACF,CAAC;QAEF,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC;YAClD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,kBAAkB;YAC9B,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,MAAM,oBAAoB,CAAC;YACtD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,iBAAiB;YAC7B,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;SAC9B,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC;YACX,wBAAwB;YACxB,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnC,mBAAmB,CAAC,CAAC,oBAAoB,CAAC;SAC7C,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC;YAChD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,eAAe;YAC3B,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC;YAC5C,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,gBAAgB;YAC5B,OAAO,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;SAC5B,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC;YACX,sBAAsB;YACtB,UAAU,CAAC,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC;SAC3D,CAAC,CAAC;QAEH,UAAU,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,KAAK,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC;YACnD,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,mBAAmB;YAC/B,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC;YACX,cAAc;YACd,WAAW,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;SACxE,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC;YAC/C,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,kBAAkB;YAC9B,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;QAEjD,MAAM,sBAAsB,GAAG,MAAM,oBAAoB,CAAC;YACxD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,2BAA2B;YACvC,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,CAAC,2BAA2B,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAEpE,MAAM,kBAAkB,GAAG,MAAM,oBAAoB,CAAC;YACpD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,2BAA2B;YACvC,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC;YACX,sBAAsB;YACtB,kBAAkB,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;SAC7D,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC;YAChD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,gBAAgB;YAC5B,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC;YAC7C,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,UAAU;YACtB,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC;YACX,iBAAiB;YACjB,WAAW,CAAC,cAAc,EAAE,WAAW,CAAC;SACzC,CAAC,CAAC;QAEH,MAAM,sBAAsB,GAAG,MAAM,oBAAoB,CAAC;YACxD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,wBAAwB;YACpC,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC;YACX,0BAA0B;YAC1B,WAAW,CAAC,sBAAsB,CAAC;SACpC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC;YAClD,QAAQ,EAAE,MAAM,gBAAgB,EAAE;YAClC,UAAU,EAAE,6BAA6B;YACzC,OAAO,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC;SACpC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAEnE,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC;YACnD,QAAQ,EAAE,eAAe;YACzB,UAAU,EAAE,mBAAmB;YAC/B,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC;YACX,iBAAiB;YACjB,WAAW,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;SACxE,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,SAAS,CAClC,iBAAiB,EACjB,iBAAiB,CAClB,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC;YACX,gCAAgC;YAChC,WAAW,CAAC,kBAAkB,CAAC;gBAC7B,mBAAmB,CAAC,kBAAkB,CAAC;SAC1C,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;QAEnE,OAAO,CAAC,IAAI,CAAC;YACX,yBAAyB;YACzB,WAAW,CAAC,mBAAmB,CAAC;SACjC,CAAC,CAAC;QAEH,IAAI,WAAW,GACb,CAAC,oBAAoB;YACrB,UAAU,CAAC,MAAM,GAAG,CAAC;YACrB,aAAa;YACb,kBAAkB,GAAG,EAAE;YACvB,kBAAkB,GAAG,EAAE,CAAC;QAE1B,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAChC,MAAM,eAAe,CAAC,QAAQ,CAAC,QAAQ,CACrC,CAAC,kBAAkB,EAAE,WAAW,CAAC,EACjC;oBACE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;iBACvB,CACF,CAAC;gBAEJ,OAAO,CAAC,IAAI,CAAC;oBACX,yBAAyB;oBACzB,sBAAsB,gBAAgB,IAAI,kBAAkB,IAAI,mBAAmB,CAAC,gBAAgB,CAAC,EAAE;iBACxG,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,GAAG,KAAK,CAAC;gBACpB,OAAO,CACL,mEAAmE,EACnE,KAAK,CACN,CAAC;gBACF,OAAO,CAAC;;;aAGL,CAAC,CAAC;gBACL,OAAO,CAAC,IAAI,CAAC;oBACX,yBAAyB;oBACzB,wBAAwB,mBAAmB,CAAC,WAAW,CAAC,EAAE;iBAC3D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,kBAAkB;YAClB,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC;SAC3D,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CACN,6DAA6D,EAC7D,KAAK,CACN,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,mCAAmC;AACnC,wBAAwB;AACxB,uBAAuB;AACvB,uCAAuC;AACvC,+DAA+D;AAC/D,0CAA0C;AAC1C,0DAA0D;AAC1D,qDAAqD;AACrD,iDAAiD;AACjD,qDAAqD;AACrD,UAAU;AACV,uEAAuE;AAEvE,oCAAoC;AACpC,0DAA0D;AAC1D,QAAQ"}