@lidofinance/lsv-cli 1.0.0-alpha.6 → 1.0.0-alpha.60
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.
- package/README.md +41 -20
- package/dist/abi/AccessControlConfirmable.d.ts +331 -0
- package/dist/abi/AccessControlConfirmable.js +430 -0
- package/dist/abi/AccessControlConfirmable.js.map +1 -0
- package/dist/abi/Dashboard.d.ts +2305 -0
- package/dist/abi/Dashboard.js +2105 -0
- package/dist/abi/Dashboard.js.map +1 -0
- package/dist/abi/LazyOracle.d.ts +604 -0
- package/dist/abi/LazyOracle.js +782 -0
- package/dist/abi/LazyOracle.js.map +1 -0
- package/dist/abi/LidoLocator.d.ts +358 -0
- package/dist/abi/LidoLocator.js +462 -0
- package/dist/abi/LidoLocator.js.map +1 -0
- package/dist/abi/OperatorGrid.d.ts +1246 -0
- package/dist/abi/OperatorGrid.js +1368 -0
- package/dist/abi/OperatorGrid.js.map +1 -0
- package/dist/abi/PredepositGuarantee.d.ts +1697 -0
- package/dist/abi/PredepositGuarantee.js +2010 -0
- package/dist/abi/PredepositGuarantee.js.map +1 -0
- package/dist/abi/StEth.d.ts +372 -0
- package/dist/abi/StEth.js +493 -0
- package/dist/abi/StEth.js.map +1 -0
- package/dist/abi/StakingVault.d.ts +757 -0
- package/dist/abi/StakingVault.js +790 -0
- package/dist/abi/StakingVault.js.map +1 -0
- package/dist/abi/TokenManager.d.ts +577 -0
- package/dist/abi/TokenManager.js +756 -0
- package/dist/abi/TokenManager.js.map +1 -0
- package/dist/abi/VaultFactory.d.ts +739 -0
- package/dist/abi/VaultFactory.js +269 -0
- package/dist/abi/VaultFactory.js.map +1 -0
- package/dist/abi/VaultHub.d.ts +2546 -0
- package/dist/abi/VaultHub.js +2276 -509
- package/dist/abi/VaultHub.js.map +1 -1
- package/dist/abi/VaultViewer.d.ts +530 -0
- package/dist/abi/VaultViewer.js +695 -0
- package/dist/abi/VaultViewer.js.map +1 -0
- package/dist/abi/Voting.d.ts +676 -0
- package/dist/abi/Voting.js +884 -0
- package/dist/abi/Voting.js.map +1 -0
- package/dist/abi/WstEth.d.ts +362 -0
- package/dist/abi/WstEth.js +478 -0
- package/dist/abi/WstEth.js.map +1 -0
- package/dist/abi/index.d.ts +14 -0
- package/dist/abi/index.js +15 -0
- package/dist/abi/index.js.map +1 -0
- package/dist/command/index.d.ts +2 -0
- package/dist/command/index.js +7 -5
- package/dist/command/index.js.map +1 -1
- package/dist/configs/constants.d.ts +34 -0
- package/dist/configs/constants.js +3 -0
- package/dist/configs/constants.js.map +1 -0
- package/dist/configs/deployed.d.ts +17 -0
- package/dist/configs/deployed.js +87 -52
- package/dist/configs/deployed.js.map +1 -1
- package/dist/configs/envs.d.ts +2 -0
- package/dist/configs/envs.js +13 -37
- package/dist/configs/envs.js.map +1 -1
- package/dist/configs/index.d.ts +3 -0
- package/dist/configs/index.js +3 -18
- package/dist/configs/index.js.map +1 -1
- package/dist/configs/utils.d.ts +4 -0
- package/dist/configs/utils.js +22 -0
- package/dist/configs/utils.js.map +1 -0
- package/dist/contracts/dashboard.d.ts +4 -0
- package/dist/contracts/dashboard.js +11 -0
- package/dist/contracts/dashboard.js.map +1 -0
- package/dist/contracts/index.d.ts +12 -0
- package/dist/contracts/index.js +12 -17
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/lazy-oracle.d.ts +3 -0
- package/dist/contracts/lazy-oracle.js +18 -0
- package/dist/contracts/lazy-oracle.js.map +1 -0
- package/dist/contracts/locator.d.ts +8239 -0
- package/dist/contracts/locator.js +16 -0
- package/dist/contracts/locator.js.map +1 -0
- package/dist/contracts/operator-grid.d.ts +4 -0
- package/dist/contracts/operator-grid.js +17 -0
- package/dist/contracts/operator-grid.js.map +1 -0
- package/dist/contracts/pdg.d.ts +4 -0
- package/dist/contracts/pdg.js +17 -0
- package/dist/contracts/pdg.js.map +1 -0
- package/dist/contracts/steth.d.ts +27706 -0
- package/dist/contracts/steth.js +18 -0
- package/dist/contracts/steth.js.map +1 -0
- package/dist/contracts/token-manager.d.ts +3 -0
- package/dist/contracts/token-manager.js +13 -0
- package/dist/contracts/token-manager.js.map +1 -0
- package/dist/contracts/vault-factory.d.ts +16404 -0
- package/dist/contracts/vault-factory.js +14 -0
- package/dist/contracts/vault-factory.js.map +1 -0
- package/dist/contracts/vault-hub.d.ts +3 -0
- package/dist/contracts/vault-hub.js +14 -16
- package/dist/contracts/vault-hub.js.map +1 -1
- package/dist/contracts/vault-viewer.d.ts +9075 -0
- package/dist/contracts/vault-viewer.js +23 -0
- package/dist/contracts/vault-viewer.js.map +1 -0
- package/dist/contracts/vault.d.ts +4 -0
- package/dist/contracts/vault.js +11 -0
- package/dist/contracts/vault.js.map +1 -0
- package/dist/contracts/wsteth.d.ts +24690 -0
- package/dist/contracts/wsteth.js +18 -0
- package/dist/contracts/wsteth.js.map +1 -0
- package/dist/features/dashboard.d.ts +5 -0
- package/dist/features/dashboard.js +14 -0
- package/dist/features/dashboard.js.map +1 -0
- package/dist/features/deposits/check-bls-deposits.d.ts +3 -0
- package/dist/features/deposits/check-bls-deposits.js +15 -0
- package/dist/features/deposits/check-bls-deposits.js.map +1 -0
- package/dist/features/deposits/index.d.ts +3 -0
- package/dist/features/deposits/index.js +4 -0
- package/dist/features/deposits/index.js.map +1 -0
- package/dist/features/deposits/make-pdg-proof.d.ts +3 -0
- package/dist/features/deposits/make-pdg-proof.js +52 -0
- package/dist/features/deposits/make-pdg-proof.js.map +1 -0
- package/dist/features/deposits/no-pdg.d.ts +22 -0
- package/dist/features/deposits/no-pdg.js +103 -0
- package/dist/features/deposits/no-pdg.js.map +1 -0
- package/dist/features/index.d.ts +10 -0
- package/dist/features/index.js +11 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/mint-burn/allowance.d.ts +2 -0
- package/dist/features/mint-burn/allowance.js +49 -0
- package/dist/features/mint-burn/allowance.js.map +1 -0
- package/dist/features/mint-burn/burn-shares.d.ts +3 -0
- package/dist/features/mint-burn/burn-shares.js +33 -0
- package/dist/features/mint-burn/burn-shares.js.map +1 -0
- package/dist/features/mint-burn/burn-steth.d.ts +3 -0
- package/dist/features/mint-burn/burn-steth.js +35 -0
- package/dist/features/mint-burn/burn-steth.js.map +1 -0
- package/dist/features/mint-burn/index.d.ts +5 -0
- package/dist/features/mint-burn/index.js +6 -0
- package/dist/features/mint-burn/index.js.map +1 -0
- package/dist/features/mint-burn/mint-shares.d.ts +3 -0
- package/dist/features/mint-burn/mint-shares.js +37 -0
- package/dist/features/mint-burn/mint-shares.js.map +1 -0
- package/dist/features/mint-burn/mint-steth.d.ts +3 -0
- package/dist/features/mint-burn/mint-steth.js +39 -0
- package/dist/features/mint-burn/mint-steth.js.map +1 -0
- package/dist/features/operator-grid.d.ts +2 -0
- package/dist/features/operator-grid.js +64 -0
- package/dist/features/operator-grid.js.map +1 -0
- package/dist/features/pdg.d.ts +4 -0
- package/dist/features/pdg.js +114 -0
- package/dist/features/pdg.js.map +1 -0
- package/dist/features/token-manager.d.ts +1 -0
- package/dist/features/token-manager.js +7 -0
- package/dist/features/token-manager.js.map +1 -0
- package/dist/features/utils/get-address.d.ts +2 -0
- package/dist/features/utils/get-address.js +16 -0
- package/dist/features/utils/get-address.js.map +1 -0
- package/dist/features/utils/index.d.ts +5 -0
- package/dist/features/utils/index.js +6 -0
- package/dist/features/utils/index.js.map +1 -0
- package/dist/features/utils/liability-shares.d.ts +2 -0
- package/dist/features/utils/liability-shares.js +10 -0
- package/dist/features/utils/liability-shares.js.map +1 -0
- package/dist/features/utils/minting-capacity.d.ts +2 -0
- package/dist/features/utils/minting-capacity.js +11 -0
- package/dist/features/utils/minting-capacity.js.map +1 -0
- package/dist/features/utils/quarantine.d.ts +23 -0
- package/dist/features/utils/quarantine.js +47 -0
- package/dist/features/utils/quarantine.js.map +1 -0
- package/dist/features/utils/report-fresh.d.ts +3 -0
- package/dist/features/utils/report-fresh.js +36 -0
- package/dist/features/utils/report-fresh.js.map +1 -0
- package/dist/features/vault-factory.d.ts +29 -0
- package/dist/features/vault-factory.js +99 -0
- package/dist/features/vault-factory.js.map +1 -0
- package/dist/features/vault-hub.d.ts +2 -0
- package/dist/features/vault-hub.js +88 -0
- package/dist/features/vault-hub.js.map +1 -0
- package/dist/features/vault-operations/create-vault.d.ts +2 -0
- package/dist/features/vault-operations/create-vault.js +58 -0
- package/dist/features/vault-operations/create-vault.js.map +1 -0
- package/dist/features/vault-operations/dashboard-by-vault.d.ts +11 -0
- package/dist/features/vault-operations/dashboard-by-vault.js +34 -0
- package/dist/features/vault-operations/dashboard-by-vault.js.map +1 -0
- package/dist/features/vault-operations/index.d.ts +7 -0
- package/dist/features/vault-operations/index.js +8 -0
- package/dist/features/vault-operations/index.js.map +1 -0
- package/dist/features/vault-operations/vault-health.d.ts +2 -0
- package/dist/features/vault-operations/vault-health.js +27 -0
- package/dist/features/vault-operations/vault-health.js.map +1 -0
- package/dist/features/vault-operations/vault-info.d.ts +2 -0
- package/dist/features/vault-operations/vault-info.js +109 -0
- package/dist/features/vault-operations/vault-info.js.map +1 -0
- package/dist/features/vault-operations/vault-overview.d.ts +2 -0
- package/dist/features/vault-operations/vault-overview.js +141 -0
- package/dist/features/vault-operations/vault-overview.js.map +1 -0
- package/dist/features/vault-operations/vault-roles.d.ts +5 -0
- package/dist/features/vault-operations/vault-roles.js +62 -0
- package/dist/features/vault-operations/vault-roles.js.map +1 -0
- package/dist/features/vault-operations/vaults-by-role.d.ts +3 -0
- package/dist/features/vault-operations/vaults-by-role.js +46 -0
- package/dist/features/vault-operations/vaults-by-role.js.map +1 -0
- package/dist/features/vault.d.ts +2 -0
- package/dist/features/vault.js +48 -0
- package/dist/features/vault.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +23 -5
- package/dist/index.js.map +1 -1
- package/dist/programs/account/index.d.ts +3 -0
- package/dist/programs/account/index.js +4 -0
- package/dist/programs/account/index.js.map +1 -0
- package/dist/programs/account/main.d.ts +1 -0
- package/dist/programs/account/main.js +5 -0
- package/dist/programs/account/main.js.map +1 -0
- package/dist/programs/account/read.d.ts +1 -0
- package/dist/programs/account/read.js +79 -0
- package/dist/programs/account/read.js.map +1 -0
- package/dist/programs/account/write.d.ts +1 -0
- package/dist/programs/account/write.js +65 -0
- package/dist/programs/account/write.js.map +1 -0
- package/dist/programs/config.d.ts +1 -0
- package/dist/programs/config.js +31 -0
- package/dist/programs/config.js.map +1 -0
- package/dist/programs/contracts/dashboard/config.d.ts +3 -0
- package/dist/programs/contracts/dashboard/config.js +115 -0
- package/dist/programs/contracts/dashboard/config.js.map +1 -0
- package/dist/programs/contracts/dashboard/index.d.ts +3 -0
- package/dist/programs/contracts/dashboard/index.js +4 -0
- package/dist/programs/contracts/dashboard/index.js.map +1 -0
- package/dist/programs/contracts/dashboard/main.d.ts +1 -0
- package/dist/programs/contracts/dashboard/main.js +5 -0
- package/dist/programs/contracts/dashboard/main.js.map +1 -0
- package/dist/programs/contracts/dashboard/read.d.ts +1 -0
- package/dist/programs/contracts/dashboard/read.js +98 -0
- package/dist/programs/contracts/dashboard/read.js.map +1 -0
- package/dist/programs/contracts/dashboard/write.d.ts +1 -0
- package/dist/programs/contracts/dashboard/write.js +621 -0
- package/dist/programs/contracts/dashboard/write.js.map +1 -0
- package/dist/programs/contracts/hub/config.d.ts +3 -0
- package/dist/programs/contracts/hub/config.js +165 -0
- package/dist/programs/contracts/hub/config.js.map +1 -0
- package/dist/programs/contracts/hub/index.d.ts +3 -0
- package/dist/programs/contracts/hub/index.js +4 -0
- package/dist/programs/contracts/hub/index.js.map +1 -0
- package/dist/programs/contracts/hub/main.d.ts +1 -0
- package/dist/programs/contracts/hub/main.js +5 -0
- package/dist/programs/contracts/hub/main.js.map +1 -0
- package/dist/programs/contracts/hub/read.d.ts +1 -0
- package/dist/programs/contracts/hub/read.js +54 -0
- package/dist/programs/contracts/hub/read.js.map +1 -0
- package/dist/programs/contracts/hub/write.d.ts +1 -0
- package/dist/programs/contracts/hub/write.js +425 -0
- package/dist/programs/contracts/hub/write.js.map +1 -0
- package/dist/programs/contracts/index.d.ts +8 -0
- package/dist/programs/contracts/index.js +9 -0
- package/dist/programs/contracts/index.js.map +1 -0
- package/dist/programs/contracts/main.d.ts +1 -0
- package/dist/programs/contracts/main.js +6 -0
- package/dist/programs/contracts/main.js.map +1 -0
- package/dist/programs/contracts/operator-grid/config.d.ts +3 -0
- package/dist/programs/contracts/operator-grid/config.js +87 -0
- package/dist/programs/contracts/operator-grid/config.js.map +1 -0
- package/dist/programs/contracts/operator-grid/index.d.ts +3 -0
- package/dist/programs/contracts/operator-grid/index.js +4 -0
- package/dist/programs/contracts/operator-grid/index.js.map +1 -0
- package/dist/programs/contracts/operator-grid/main.d.ts +1 -0
- package/dist/programs/contracts/operator-grid/main.js +5 -0
- package/dist/programs/contracts/operator-grid/main.js.map +1 -0
- package/dist/programs/contracts/operator-grid/read.d.ts +1 -0
- package/dist/programs/contracts/operator-grid/read.js +30 -0
- package/dist/programs/contracts/operator-grid/read.js.map +1 -0
- package/dist/programs/contracts/operator-grid/write.d.ts +1 -0
- package/dist/programs/contracts/operator-grid/write.js +119 -0
- package/dist/programs/contracts/operator-grid/write.js.map +1 -0
- package/dist/programs/contracts/pdg/config.d.ts +3 -0
- package/dist/programs/contracts/pdg/config.js +160 -0
- package/dist/programs/contracts/pdg/config.js.map +1 -0
- package/dist/programs/contracts/pdg/index.d.ts +3 -0
- package/dist/programs/contracts/pdg/index.js +4 -0
- package/dist/programs/contracts/pdg/index.js.map +1 -0
- package/dist/programs/contracts/pdg/main.d.ts +1 -0
- package/dist/programs/contracts/pdg/main.js +5 -0
- package/dist/programs/contracts/pdg/main.js.map +1 -0
- package/dist/programs/contracts/pdg/read.d.ts +1 -0
- package/dist/programs/contracts/pdg/read.js +38 -0
- package/dist/programs/contracts/pdg/read.js.map +1 -0
- package/dist/programs/contracts/pdg/write.d.ts +1 -0
- package/dist/programs/contracts/pdg/write.js +388 -0
- package/dist/programs/contracts/pdg/write.js.map +1 -0
- package/dist/programs/contracts/vault/config.d.ts +3 -0
- package/dist/programs/contracts/vault/config.js +42 -0
- package/dist/programs/contracts/vault/config.js.map +1 -0
- package/dist/programs/contracts/vault/index.d.ts +3 -0
- package/dist/programs/contracts/vault/index.js +4 -0
- package/dist/programs/contracts/vault/index.js.map +1 -0
- package/dist/programs/contracts/vault/main.d.ts +1 -0
- package/dist/programs/contracts/vault/main.js +3 -0
- package/dist/programs/contracts/vault/main.js.map +1 -0
- package/dist/programs/contracts/vault/read.d.ts +1 -0
- package/dist/programs/contracts/vault/read.js +25 -0
- package/dist/programs/contracts/vault/read.js.map +1 -0
- package/dist/programs/contracts/vault/write.d.ts +1 -0
- package/dist/programs/contracts/vault/write.js +214 -0
- package/dist/programs/contracts/vault/write.js.map +1 -0
- package/dist/programs/contracts/vault-factory/config.d.ts +3 -0
- package/dist/programs/contracts/vault-factory/config.js +2 -0
- package/dist/programs/contracts/vault-factory/config.js.map +1 -0
- package/dist/programs/contracts/vault-factory/index.d.ts +3 -0
- package/dist/programs/contracts/vault-factory/index.js +4 -0
- package/dist/programs/contracts/vault-factory/index.js.map +1 -0
- package/dist/programs/contracts/vault-factory/main.d.ts +1 -0
- package/dist/programs/contracts/vault-factory/main.js +5 -0
- package/dist/programs/contracts/vault-factory/main.js.map +1 -0
- package/dist/programs/contracts/vault-factory/read.d.ts +1 -0
- package/dist/programs/contracts/vault-factory/read.js +24 -0
- package/dist/programs/contracts/vault-factory/read.js.map +1 -0
- package/dist/programs/contracts/vault-factory/write.d.ts +1 -0
- package/dist/programs/contracts/vault-factory/write.js +126 -0
- package/dist/programs/contracts/vault-factory/write.js.map +1 -0
- package/dist/programs/contracts/vault-viewer/config.d.ts +3 -0
- package/dist/programs/contracts/vault-viewer/config.js +120 -0
- package/dist/programs/contracts/vault-viewer/config.js.map +1 -0
- package/dist/programs/contracts/vault-viewer/index.d.ts +2 -0
- package/dist/programs/contracts/vault-viewer/index.js +3 -0
- package/dist/programs/contracts/vault-viewer/index.js.map +1 -0
- package/dist/programs/contracts/vault-viewer/main.d.ts +1 -0
- package/dist/programs/contracts/vault-viewer/main.js +5 -0
- package/dist/programs/contracts/vault-viewer/main.js.map +1 -0
- package/dist/programs/contracts/vault-viewer/read.d.ts +1 -0
- package/dist/programs/contracts/vault-viewer/read.js +131 -0
- package/dist/programs/contracts/vault-viewer/read.js.map +1 -0
- package/dist/programs/index.d.ts +4 -0
- package/dist/programs/index.js +4 -17
- package/dist/programs/index.js.map +1 -1
- package/dist/programs/pdg-helpers.d.ts +1 -0
- package/dist/programs/pdg-helpers.js +257 -0
- package/dist/programs/pdg-helpers.js.map +1 -0
- package/dist/programs/use-cases/deposits/index.d.ts +3 -0
- package/dist/programs/use-cases/deposits/index.js +4 -0
- package/dist/programs/use-cases/deposits/index.js.map +1 -0
- package/dist/programs/use-cases/deposits/main.d.ts +1 -0
- package/dist/programs/use-cases/deposits/main.js +6 -0
- package/dist/programs/use-cases/deposits/main.js.map +1 -0
- package/dist/programs/use-cases/deposits/read.d.ts +1 -0
- package/dist/programs/use-cases/deposits/read.js +77 -0
- package/dist/programs/use-cases/deposits/read.js.map +1 -0
- package/dist/programs/use-cases/deposits/write.d.ts +1 -0
- package/dist/programs/use-cases/deposits/write.js +212 -0
- package/dist/programs/use-cases/deposits/write.js.map +1 -0
- package/dist/programs/use-cases/index.d.ts +4 -0
- package/dist/programs/use-cases/index.js +5 -0
- package/dist/programs/use-cases/index.js.map +1 -0
- package/dist/programs/use-cases/metrics/index.d.ts +2 -0
- package/dist/programs/use-cases/metrics/index.js +3 -0
- package/dist/programs/use-cases/metrics/index.js.map +1 -0
- package/dist/programs/use-cases/metrics/main.d.ts +1 -0
- package/dist/programs/use-cases/metrics/main.js +6 -0
- package/dist/programs/use-cases/metrics/main.js.map +1 -0
- package/dist/programs/use-cases/metrics/read.d.ts +1 -0
- package/dist/programs/use-cases/metrics/read.js +181 -0
- package/dist/programs/use-cases/metrics/read.js.map +1 -0
- package/dist/programs/use-cases/report/index.d.ts +3 -0
- package/dist/programs/use-cases/report/index.js +4 -0
- package/dist/programs/use-cases/report/index.js.map +1 -0
- package/dist/programs/use-cases/report/main.d.ts +1 -0
- package/dist/programs/use-cases/report/main.js +6 -0
- package/dist/programs/use-cases/report/main.js.map +1 -0
- package/dist/programs/use-cases/report/read.d.ts +1 -0
- package/dist/programs/use-cases/report/read.js +104 -0
- package/dist/programs/use-cases/report/read.js.map +1 -0
- package/dist/programs/use-cases/report/write.d.ts +1 -0
- package/dist/programs/use-cases/report/write.js +116 -0
- package/dist/programs/use-cases/report/write.js.map +1 -0
- package/dist/programs/use-cases/vault-operations/create-vault.d.ts +1 -0
- package/dist/programs/use-cases/vault-operations/create-vault.js +129 -0
- package/dist/programs/use-cases/vault-operations/create-vault.js.map +1 -0
- package/dist/programs/use-cases/vault-operations/index.d.ts +4 -0
- package/dist/programs/use-cases/vault-operations/index.js +5 -0
- package/dist/programs/use-cases/vault-operations/index.js.map +1 -0
- package/dist/programs/use-cases/vault-operations/main.d.ts +1 -0
- package/dist/programs/use-cases/vault-operations/main.js +6 -0
- package/dist/programs/use-cases/vault-operations/main.js.map +1 -0
- package/dist/programs/use-cases/vault-operations/read.d.ts +1 -0
- package/dist/programs/use-cases/vault-operations/read.js +58 -0
- package/dist/programs/use-cases/vault-operations/read.js.map +1 -0
- package/dist/programs/use-cases/vault-operations/write.d.ts +1 -0
- package/dist/programs/use-cases/vault-operations/write.js +198 -0
- package/dist/programs/use-cases/vault-operations/write.js.map +1 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.js +1 -17
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/wallet.d.ts +6897 -0
- package/dist/providers/wallet.js +44 -28
- package/dist/providers/wallet.js.map +1 -1
- package/dist/tests/utils/arguments.test.d.ts +1 -0
- package/dist/tests/utils/arguments.test.js +92 -0
- package/dist/tests/utils/arguments.test.js.map +1 -0
- package/dist/tests/utils/calculate-overview.test.d.ts +1 -0
- package/dist/tests/utils/calculate-overview.test.js +30 -0
- package/dist/tests/utils/calculate-overview.test.js.map +1 -0
- package/dist/tests/utils/data-validators.test.d.ts +1 -0
- package/dist/tests/utils/data-validators.test.js +56 -0
- package/dist/tests/utils/data-validators.test.js.map +1 -0
- package/dist/tests/utils/error-handler.test.d.ts +1 -0
- package/dist/tests/utils/error-handler.test.js +43 -0
- package/dist/tests/utils/error-handler.test.js.map +1 -0
- package/dist/tests/utils/get-commands.test.d.ts +1 -0
- package/dist/tests/utils/get-commands.test.js +19 -0
- package/dist/tests/utils/get-commands.test.js.map +1 -0
- package/dist/tests/utils/get-deposit-data-root.test.d.ts +1 -0
- package/dist/tests/utils/get-deposit-data-root.test.js +31 -0
- package/dist/tests/utils/get-deposit-data-root.test.js.map +1 -0
- package/dist/tests/utils/get-value.test.d.ts +1 -0
- package/dist/tests/utils/get-value.test.js +13 -0
- package/dist/tests/utils/get-value.test.js.map +1 -0
- package/dist/tests/utils/health.test.d.ts +1 -0
- package/dist/tests/utils/health.test.js +22 -0
- package/dist/tests/utils/health.test.js.map +1 -0
- package/dist/tests/utils/interrupt-handler.test.d.ts +1 -0
- package/dist/tests/utils/interrupt-handler.test.js +15 -0
- package/dist/tests/utils/interrupt-handler.test.js.map +1 -0
- package/dist/tests/utils/ipfs.test.d.ts +1 -0
- package/dist/tests/utils/ipfs.test.js +98 -0
- package/dist/tests/utils/ipfs.test.js.map +1 -0
- package/dist/tests/utils/logging.test.d.ts +1 -0
- package/dist/tests/utils/logging.test.js +23 -0
- package/dist/tests/utils/logging.test.js.map +1 -0
- package/dist/tests/utils/resove-path.test.d.ts +1 -0
- package/dist/tests/utils/resove-path.test.js +18 -0
- package/dist/tests/utils/resove-path.test.js.map +1 -0
- package/dist/tests/utils/sleep.test.d.ts +1 -0
- package/dist/tests/utils/sleep.test.js +14 -0
- package/dist/tests/utils/sleep.test.js.map +1 -0
- package/dist/types/common.d.ts +35 -0
- package/dist/types/common.js +2 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/config.d.ts +25 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/arguments.d.ts +15 -0
- package/dist/utils/arguments.js +73 -0
- package/dist/utils/arguments.js.map +1 -0
- package/dist/utils/bls.d.ts +21 -0
- package/dist/utils/bls.js +101 -0
- package/dist/utils/bls.js.map +1 -0
- package/dist/utils/cache.d.ts +18 -0
- package/dist/utils/cache.js +109 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/calculate-overview-v2.d.ts +25 -0
- package/dist/utils/calculate-overview-v2.js +59 -0
- package/dist/utils/calculate-overview-v2.js.map +1 -0
- package/dist/utils/calculate-overview.d.ts +28 -0
- package/dist/utils/calculate-overview.js +57 -0
- package/dist/utils/calculate-overview.js.map +1 -0
- package/dist/utils/charts/blessed/charts-apr.d.ts +98 -0
- package/dist/utils/charts/blessed/charts-apr.js +121 -0
- package/dist/utils/charts/blessed/charts-apr.js.map +1 -0
- package/dist/utils/charts/blessed/charts-rewards.d.ts +74 -0
- package/dist/utils/charts/blessed/charts-rewards.js +106 -0
- package/dist/utils/charts/blessed/charts-rewards.js.map +1 -0
- package/dist/utils/charts/blessed/constants.d.ts +22 -0
- package/dist/utils/charts/blessed/constants.js +23 -0
- package/dist/utils/charts/blessed/constants.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/bottom-line.d.ts +19 -0
- package/dist/utils/charts/blessed/datasets/bottom-line.js +35 -0
- package/dist/utils/charts/blessed/datasets/bottom-line.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/carry-spread.d.ts +18 -0
- package/dist/utils/charts/blessed/datasets/carry-spread.js +34 -0
- package/dist/utils/charts/blessed/datasets/carry-spread.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/gross-staking-apr.d.ts +18 -0
- package/dist/utils/charts/blessed/datasets/gross-staking-apr.js +34 -0
- package/dist/utils/charts/blessed/datasets/gross-staking-apr.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/gross-staking-rewards.d.ts +24 -0
- package/dist/utils/charts/blessed/datasets/gross-staking-rewards.js +40 -0
- package/dist/utils/charts/blessed/datasets/gross-staking-rewards.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/index.d.ts +9 -0
- package/dist/utils/charts/blessed/datasets/index.js +10 -0
- package/dist/utils/charts/blessed/datasets/index.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/lido-apr.d.ts +19 -0
- package/dist/utils/charts/blessed/datasets/lido-apr.js +35 -0
- package/dist/utils/charts/blessed/datasets/lido-apr.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/net-staking-apr.d.ts +18 -0
- package/dist/utils/charts/blessed/datasets/net-staking-apr.js +34 -0
- package/dist/utils/charts/blessed/datasets/net-staking-apr.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/net-staking-rewards.d.ts +18 -0
- package/dist/utils/charts/blessed/datasets/net-staking-rewards.js +34 -0
- package/dist/utils/charts/blessed/datasets/net-staking-rewards.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/node-operator-rewards.d.ts +24 -0
- package/dist/utils/charts/blessed/datasets/node-operator-rewards.js +40 -0
- package/dist/utils/charts/blessed/datasets/node-operator-rewards.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/prepare-metrics.d.ts +33 -0
- package/dist/utils/charts/blessed/datasets/prepare-metrics.js +133 -0
- package/dist/utils/charts/blessed/datasets/prepare-metrics.js.map +1 -0
- package/dist/utils/charts/blessed/datasets/types.d.ts +4 -0
- package/dist/utils/charts/blessed/datasets/types.js +2 -0
- package/dist/utils/charts/blessed/datasets/types.js.map +1 -0
- package/dist/utils/charts/blessed/index.d.ts +3 -0
- package/dist/utils/charts/blessed/index.js +4 -0
- package/dist/utils/charts/blessed/index.js.map +1 -0
- package/dist/utils/charts/blessed/net-vs-lido-apr.d.ts +13 -0
- package/dist/utils/charts/blessed/net-vs-lido-apr.js +19 -0
- package/dist/utils/charts/blessed/net-vs-lido-apr.js.map +1 -0
- package/dist/utils/charts/blessed/utils.d.ts +61 -0
- package/dist/utils/charts/blessed/utils.js +79 -0
- package/dist/utils/charts/blessed/utils.js.map +1 -0
- package/dist/utils/charts/index.d.ts +3 -0
- package/dist/utils/charts/index.js +4 -0
- package/dist/utils/charts/index.js.map +1 -0
- package/dist/utils/charts/metrics.d.ts +16 -0
- package/dist/utils/charts/metrics.js +160 -0
- package/dist/utils/charts/metrics.js.map +1 -0
- package/dist/utils/charts/overview.d.ts +10 -0
- package/dist/utils/charts/overview.js +89 -0
- package/dist/utils/charts/overview.js.map +1 -0
- package/dist/utils/charts/simple/index.d.ts +1 -0
- package/dist/utils/charts/simple/index.js +2 -0
- package/dist/utils/charts/simple/index.js.map +1 -0
- package/dist/utils/charts/simple/simple-charts.d.ts +7 -0
- package/dist/utils/charts/simple/simple-charts.js +78 -0
- package/dist/utils/charts/simple/simple-charts.js.map +1 -0
- package/dist/utils/commands/confirmations.d.ts +35 -0
- package/dist/utils/commands/confirmations.js +118 -0
- package/dist/utils/commands/confirmations.js.map +1 -0
- package/dist/utils/commands/index.d.ts +2 -0
- package/dist/utils/commands/index.js +3 -0
- package/dist/utils/commands/index.js.map +1 -0
- package/dist/utils/commands/report.d.ts +7 -0
- package/dist/utils/commands/report.js +42 -0
- package/dist/utils/commands/report.js.map +1 -0
- package/dist/utils/consts.d.ts +3 -0
- package/dist/utils/consts.js +4 -0
- package/dist/utils/consts.js.map +1 -0
- package/dist/utils/contract.d.ts +59 -0
- package/dist/utils/contract.js +214 -0
- package/dist/utils/contract.js.map +1 -0
- package/dist/utils/data-validators.d.ts +6 -0
- package/dist/utils/data-validators.js +54 -0
- package/dist/utils/data-validators.js.map +1 -0
- package/dist/utils/error-handler.d.ts +1 -0
- package/dist/utils/error-handler.js +13 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/fetchCL.d.ts +36 -0
- package/dist/utils/fetchCL.js +81 -0
- package/dist/utils/fetchCL.js.map +1 -0
- package/dist/utils/get-commands.d.ts +2 -0
- package/dist/utils/get-commands.js +11 -0
- package/dist/utils/get-commands.js.map +1 -0
- package/dist/utils/get-deposit-data-root.d.ts +7 -0
- package/dist/utils/get-deposit-data-root.js +37 -0
- package/dist/utils/get-deposit-data-root.js.map +1 -0
- package/dist/utils/get-value.d.ts +1 -0
- package/dist/utils/get-value.js +5 -11
- package/dist/utils/get-value.js.map +1 -1
- package/dist/utils/health/calculate-health.d.ts +10 -0
- package/dist/utils/health/calculate-health.js +22 -0
- package/dist/utils/health/calculate-health.js.map +1 -0
- package/dist/utils/health/health-utils.d.ts +27743 -0
- package/dist/utils/health/health-utils.js +74 -0
- package/dist/utils/health/health-utils.js.map +1 -0
- package/dist/utils/health/index.d.ts +2 -0
- package/dist/utils/health/index.js +3 -0
- package/dist/utils/health/index.js.map +1 -0
- package/dist/utils/index.d.ts +33 -0
- package/dist/utils/index.js +33 -17
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/interrupt-handler.d.ts +3 -0
- package/dist/utils/interrupt-handler.js +28 -0
- package/dist/utils/interrupt-handler.js.map +1 -0
- package/dist/utils/ipfs.d.ts +17 -0
- package/dist/utils/ipfs.js +100 -0
- package/dist/utils/ipfs.js.map +1 -0
- package/dist/utils/lido-apr.d.ts +2 -0
- package/dist/utils/lido-apr.js +8 -0
- package/dist/utils/lido-apr.js.map +1 -0
- package/dist/utils/logging/console.d.ts +15 -0
- package/dist/utils/logging/console.js +36 -0
- package/dist/utils/logging/console.js.map +1 -0
- package/dist/utils/logging/constants.d.ts +4 -0
- package/dist/utils/logging/constants.js +18 -0
- package/dist/utils/logging/constants.js.map +1 -0
- package/dist/utils/logging/index.d.ts +1 -0
- package/dist/utils/logging/index.js +2 -0
- package/dist/utils/logging/index.js.map +1 -0
- package/dist/utils/prompts/confirmations.d.ts +2 -0
- package/dist/utils/prompts/confirmations.js +18 -0
- package/dist/utils/prompts/confirmations.js.map +1 -0
- package/dist/utils/prompts/default.d.ts +6 -0
- package/dist/utils/prompts/default.js +27 -0
- package/dist/utils/prompts/default.js.map +1 -0
- package/dist/utils/prompts/index.d.ts +6 -0
- package/dist/utils/prompts/index.js +7 -0
- package/dist/utils/prompts/index.js.map +1 -0
- package/dist/utils/prompts/mint-burn/confirm-burn.d.ts +17 -0
- package/dist/utils/prompts/mint-burn/confirm-burn.js +23 -0
- package/dist/utils/prompts/mint-burn/confirm-burn.js.map +1 -0
- package/dist/utils/prompts/mint-burn/confirm-mint.d.ts +18 -0
- package/dist/utils/prompts/mint-burn/confirm-mint.js +23 -0
- package/dist/utils/prompts/mint-burn/confirm-mint.js.map +1 -0
- package/dist/utils/prompts/mint-burn/constants.d.ts +2 -0
- package/dist/utils/prompts/mint-burn/constants.js +6 -0
- package/dist/utils/prompts/mint-burn/constants.js.map +1 -0
- package/dist/utils/prompts/mint-burn/index.d.ts +2 -0
- package/dist/utils/prompts/mint-burn/index.js +3 -0
- package/dist/utils/prompts/mint-burn/index.js.map +1 -0
- package/dist/utils/prompts/operations.d.ts +9 -0
- package/dist/utils/prompts/operations.js +52 -0
- package/dist/utils/prompts/operations.js.map +1 -0
- package/dist/utils/prompts/predeposit-guarantee.d.ts +3 -0
- package/dist/utils/prompts/predeposit-guarantee.js +23 -0
- package/dist/utils/prompts/predeposit-guarantee.js.map +1 -0
- package/dist/utils/prompts/vault.d.ts +2 -0
- package/dist/utils/prompts/vault.js +14 -0
- package/dist/utils/prompts/vault.js.map +1 -0
- package/dist/utils/proof/create-proof.d.ts +15 -0
- package/dist/utils/proof/create-proof.js +40 -0
- package/dist/utils/proof/create-proof.js.map +1 -0
- package/dist/utils/proof/first-validator-gindex.d.ts +1 -0
- package/dist/utils/proof/first-validator-gindex.js +32 -0
- package/dist/utils/proof/first-validator-gindex.js.map +1 -0
- package/dist/utils/proof/index.d.ts +3 -0
- package/dist/utils/proof/index.js +4 -0
- package/dist/utils/proof/index.js.map +1 -0
- package/dist/utils/proof/merkle-utils.d.ts +55 -0
- package/dist/utils/proof/merkle-utils.js +173 -0
- package/dist/utils/proof/merkle-utils.js.map +1 -0
- package/dist/utils/proof/proofs.d.ts +30 -0
- package/dist/utils/proof/proofs.js +52 -0
- package/dist/utils/proof/proofs.js.map +1 -0
- package/dist/utils/read-programs-by-abi.d.ts +27 -0
- package/dist/utils/read-programs-by-abi.js +92 -0
- package/dist/utils/read-programs-by-abi.js.map +1 -0
- package/dist/utils/rebase-rewards.d.ts +7 -0
- package/dist/utils/rebase-rewards.js +6 -0
- package/dist/utils/rebase-rewards.js.map +1 -0
- package/dist/utils/report/index.d.ts +4 -0
- package/dist/utils/report/index.js +5 -0
- package/dist/utils/report/index.js.map +1 -0
- package/dist/utils/report/report-proof.d.ts +36 -0
- package/dist/utils/report/report-proof.js +38 -0
- package/dist/utils/report/report-proof.js.map +1 -0
- package/dist/utils/report/report.d.ts +19 -0
- package/dist/utils/report/report.js +132 -0
- package/dist/utils/report/report.js.map +1 -0
- package/dist/utils/report/statistic-data.d.ts +32 -0
- package/dist/utils/report/statistic-data.js +28 -0
- package/dist/utils/report/statistic-data.js.map +1 -0
- package/dist/utils/report/types.d.ts +51 -0
- package/dist/utils/report/types.js +2 -0
- package/dist/utils/report/types.js.map +1 -0
- package/dist/utils/resolve-path.d.ts +1 -0
- package/dist/utils/resolve-path.js +10 -0
- package/dist/utils/resolve-path.js.map +1 -0
- package/dist/utils/share-rate.d.ts +1 -0
- package/dist/utils/share-rate.js +16 -0
- package/dist/utils/share-rate.js.map +1 -0
- package/dist/utils/sleep.d.ts +1 -0
- package/dist/utils/sleep.js +4 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/snake-to-camel.d.ts +6 -0
- package/dist/utils/snake-to-camel.js +9 -0
- package/dist/utils/snake-to-camel.js.map +1 -0
- package/dist/utils/spinner/constants.d.ts +6 -0
- package/dist/utils/spinner/constants.js +120 -0
- package/dist/utils/spinner/constants.js.map +1 -0
- package/dist/utils/spinner/index.d.ts +1 -0
- package/dist/utils/spinner/index.js +2 -0
- package/dist/utils/spinner/index.js.map +1 -0
- package/dist/utils/spinner/spinners.d.ts +7 -0
- package/dist/utils/spinner/spinners.js +16 -0
- package/dist/utils/spinner/spinners.js.map +1 -0
- package/dist/utils/statistic/index.d.ts +1 -0
- package/dist/utils/statistic/index.js +2 -0
- package/dist/utils/statistic/index.js.map +1 -0
- package/dist/utils/statistic/report-statistic.d.ts +51 -0
- package/dist/utils/statistic/report-statistic.js +125 -0
- package/dist/utils/statistic/report-statistic.js.map +1 -0
- package/dist/utils/timestamp.d.ts +1 -0
- package/dist/utils/timestamp.js +10 -0
- package/dist/utils/timestamp.js.map +1 -0
- package/dist/version/index.d.ts +1 -0
- package/dist/version/index.js +1 -0
- package/dist/version/index.js.map +1 -0
- package/package.json +77 -19
- package/dist/programs/vault-hub.js +0 -137
- package/dist/programs/vault-hub.js.map +0 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Option } from 'commander';
|
|
2
|
+
import cliProgress from 'cli-progress';
|
|
3
|
+
import { getLazyOracleContract } from '../../../contracts/index.js';
|
|
4
|
+
import { callWriteMethodWithReceipt, callReadMethod, logInfo, getCommandsJson, logError, withInterruptHandling, submitReport, getReportProofByVaults, getReportProofs, } from '../../../utils/index.js';
|
|
5
|
+
import { chooseVaultAndGetDashboard, checkQuarantine } from '../../../features/index.js';
|
|
6
|
+
import { report } from './main.js';
|
|
7
|
+
const reportWrite = report
|
|
8
|
+
.command('write')
|
|
9
|
+
.aliases(['w'])
|
|
10
|
+
.description('report write commands');
|
|
11
|
+
reportWrite.addOption(new Option('-cmd2json'));
|
|
12
|
+
reportWrite.on('option:-cmd2json', function () {
|
|
13
|
+
logInfo(getCommandsJson(reportWrite));
|
|
14
|
+
process.exit();
|
|
15
|
+
});
|
|
16
|
+
reportWrite
|
|
17
|
+
.command('by-vault-submit')
|
|
18
|
+
.alias('submit')
|
|
19
|
+
.description('submit report by vault')
|
|
20
|
+
.option('-v, --vault <string>', 'vault address')
|
|
21
|
+
.option('-g, --gateway', 'ipfs gateway url')
|
|
22
|
+
.action(async ({ vault, gateway }) => {
|
|
23
|
+
const { vault: vaultAddress } = await chooseVaultAndGetDashboard({ vault });
|
|
24
|
+
await checkQuarantine(vaultAddress);
|
|
25
|
+
await submitReport({ vault: vaultAddress, gateway });
|
|
26
|
+
});
|
|
27
|
+
reportWrite
|
|
28
|
+
.command('by-vaults-submit')
|
|
29
|
+
.description('submit report for vaults')
|
|
30
|
+
.argument('<vaults...>', 'vaults addresses')
|
|
31
|
+
.option('-g, --gateway', 'ipfs gateway url')
|
|
32
|
+
.option('-e, --skip-error', 'skip error')
|
|
33
|
+
.action(withInterruptHandling(async (vaults, { gateway, skipError }) => {
|
|
34
|
+
const lazyOracleContract = await getLazyOracleContract();
|
|
35
|
+
const [_vaultsDataTimestamp, _vaultsDataTreeRoot, vaultsDataReportCid] = await callReadMethod(lazyOracleContract, 'latestReportData');
|
|
36
|
+
const proofs = await getReportProofByVaults({
|
|
37
|
+
cid: vaultsDataReportCid,
|
|
38
|
+
gateway,
|
|
39
|
+
vaults,
|
|
40
|
+
});
|
|
41
|
+
const progressBar = new cliProgress.SingleBar({
|
|
42
|
+
format: 'Progress |{bar}| {percentage}% || {value}/{total} Vaults Updated',
|
|
43
|
+
stopOnComplete: true,
|
|
44
|
+
}, cliProgress.Presets.shades_classic);
|
|
45
|
+
progressBar.start(vaults.length, 0);
|
|
46
|
+
for (const [_index, vault] of vaults.entries()) {
|
|
47
|
+
const vaultReport = proofs.find((v) => v.data.vaultAddress === vault);
|
|
48
|
+
if (!vaultReport) {
|
|
49
|
+
logError(`Vault ${vault} not found`);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
await checkQuarantine(vault);
|
|
53
|
+
await callWriteMethodWithReceipt({
|
|
54
|
+
contract: lazyOracleContract,
|
|
55
|
+
methodName: 'updateVaultData',
|
|
56
|
+
payload: [
|
|
57
|
+
vault,
|
|
58
|
+
BigInt(vaultReport.data.totalValueWei),
|
|
59
|
+
BigInt(vaultReport.data.fee),
|
|
60
|
+
BigInt(vaultReport.data.liabilityShares),
|
|
61
|
+
BigInt(vaultReport.data.slashingReserve),
|
|
62
|
+
vaultReport.proof,
|
|
63
|
+
],
|
|
64
|
+
withSpinner: false,
|
|
65
|
+
silent: true,
|
|
66
|
+
skipError,
|
|
67
|
+
});
|
|
68
|
+
progressBar.increment();
|
|
69
|
+
}
|
|
70
|
+
progressBar.stop();
|
|
71
|
+
}));
|
|
72
|
+
reportWrite
|
|
73
|
+
.command('submit-all')
|
|
74
|
+
.description('submit report for all vaults')
|
|
75
|
+
.option('-g, --gateway', 'ipfs gateway url')
|
|
76
|
+
.option('-e, --skip-error', 'skip error')
|
|
77
|
+
.action(withInterruptHandling(async ({ gateway, skipError }) => {
|
|
78
|
+
const lazyOracleContract = await getLazyOracleContract();
|
|
79
|
+
const [_vaultsDataTimestamp, _vaultsDataTreeRoot, vaultsDataReportCid] = await callReadMethod(lazyOracleContract, 'latestReportData');
|
|
80
|
+
const proofs = await getReportProofs({
|
|
81
|
+
cid: vaultsDataReportCid,
|
|
82
|
+
gateway,
|
|
83
|
+
});
|
|
84
|
+
const progressBar = new cliProgress.SingleBar({
|
|
85
|
+
format: 'Progress |{bar}| {percentage}% || {value}/{total} Vaults Updated',
|
|
86
|
+
}, cliProgress.Presets.shades_classic);
|
|
87
|
+
progressBar.start(proofs.length, 0);
|
|
88
|
+
for (const [_index, report] of proofs.entries()) {
|
|
89
|
+
try {
|
|
90
|
+
await callWriteMethodWithReceipt({
|
|
91
|
+
contract: lazyOracleContract,
|
|
92
|
+
methodName: 'updateVaultData',
|
|
93
|
+
payload: [
|
|
94
|
+
report.data.vaultAddress,
|
|
95
|
+
BigInt(report.data.totalValueWei),
|
|
96
|
+
BigInt(report.data.fee),
|
|
97
|
+
BigInt(report.data.liabilityShares),
|
|
98
|
+
BigInt(report.data.slashingReserve),
|
|
99
|
+
report.proof,
|
|
100
|
+
],
|
|
101
|
+
withSpinner: false,
|
|
102
|
+
silent: true,
|
|
103
|
+
skipError,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
if ('shortMessage' in err)
|
|
108
|
+
logError(err.shortMessage, 'Error when submitting report');
|
|
109
|
+
else
|
|
110
|
+
logError('Error when submitting report');
|
|
111
|
+
}
|
|
112
|
+
progressBar.increment();
|
|
113
|
+
}
|
|
114
|
+
progressBar.stop();
|
|
115
|
+
}));
|
|
116
|
+
//# sourceMappingURL=write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../programs/use-cases/report/write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { program } from '../../../command/index.js';
|
|
2
|
+
import { createVault, prepareCreateVaultPayload, getAddress, getConfirmExpiry, getNodeOperatorFeeRate, } from '../../../features/index.js';
|
|
3
|
+
import { confirmCreateVaultParams, logResult, logInfo, jsonToRoleAssignment, logCancel, logTable, stringToNumber, } from '../../../utils/index.js';
|
|
4
|
+
import { vaultOperationsWrite } from './write.js';
|
|
5
|
+
const vaultOperationsCreateVault = vaultOperationsWrite
|
|
6
|
+
.command('create-vault')
|
|
7
|
+
.description('creates a new StakingVault and Dashboard contracts');
|
|
8
|
+
vaultOperationsCreateVault
|
|
9
|
+
.command('create')
|
|
10
|
+
.description('creates a new StakingVault and Dashboard contracts')
|
|
11
|
+
.option('-da, --defaultAdmin <defaultAdmin>', 'default admin address')
|
|
12
|
+
.option('-no, --nodeOperator <nodeOperator>', 'node operator address')
|
|
13
|
+
.option('-nom, --nodeOperatorManager <nodeOperatorManager>', 'node operator manager address')
|
|
14
|
+
.option('-ce, --confirmExpiry <confirmExpiry>', 'confirm expiry in seconds', stringToNumber)
|
|
15
|
+
.option('-nof , --nodeOperatorFeeRate <nodeOperatorFeeRate>', 'Node operator fee rate in basis points, for e.g. 100 == 1%', stringToNumber)
|
|
16
|
+
.argument('[quantity]', 'quantity of vaults to create, default 1', '1')
|
|
17
|
+
.option('-r, --roles <roles>', 'other roles to assign to the vault', jsonToRoleAssignment)
|
|
18
|
+
.action(async (quantity, { defaultAdmin, nodeOperator, nodeOperatorManager, confirmExpiry, nodeOperatorFeeRate, roles, }) => {
|
|
19
|
+
const defaultAdminAddress = await getAddress(defaultAdmin, 'Default Admin');
|
|
20
|
+
const nodeOperatorAddress = await getAddress(nodeOperator, 'Node Operator');
|
|
21
|
+
const nodeOperatorManagerAddress = await getAddress(nodeOperatorManager, 'Node Operator Manager');
|
|
22
|
+
const confirmExpiryValue = await getConfirmExpiry(confirmExpiry);
|
|
23
|
+
const nodeOperatorFeeRateValue = await getNodeOperatorFeeRate(nodeOperatorFeeRate);
|
|
24
|
+
const createVaultData = prepareCreateVaultPayload({
|
|
25
|
+
defaultAdmin: defaultAdminAddress,
|
|
26
|
+
nodeOperator: nodeOperatorAddress,
|
|
27
|
+
nodeOperatorManager: nodeOperatorManagerAddress,
|
|
28
|
+
confirmExpiry: confirmExpiryValue,
|
|
29
|
+
nodeOperatorFeeRate: nodeOperatorFeeRateValue,
|
|
30
|
+
quantity,
|
|
31
|
+
roles,
|
|
32
|
+
});
|
|
33
|
+
if (!createVaultData)
|
|
34
|
+
return;
|
|
35
|
+
const { payload, list, otherRoles } = createVaultData;
|
|
36
|
+
const transactions = [];
|
|
37
|
+
const confirm = await confirmCreateVaultParams(payload, otherRoles);
|
|
38
|
+
if (!confirm)
|
|
39
|
+
return logCancel('Vault creation cancelled');
|
|
40
|
+
try {
|
|
41
|
+
for (const _ of list) {
|
|
42
|
+
const tx = await createVault(payload, otherRoles);
|
|
43
|
+
transactions.push(tx);
|
|
44
|
+
}
|
|
45
|
+
logResult({});
|
|
46
|
+
transactions.forEach((tx) => {
|
|
47
|
+
if (program.opts().populateTx) {
|
|
48
|
+
logInfo('Populated transaction data:', tx);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
logTable({
|
|
52
|
+
data: [
|
|
53
|
+
['Vault Address', tx?.vault],
|
|
54
|
+
['Dashboard Address', tx?.dashboard],
|
|
55
|
+
['Owner Address', tx?.owner],
|
|
56
|
+
['Transaction Hash', tx?.tx],
|
|
57
|
+
['Block Number', tx?.blockNumber],
|
|
58
|
+
],
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
if (err instanceof Error) {
|
|
64
|
+
logInfo('Error occurred while creating vaults', err.message);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
vaultOperationsCreateVault
|
|
69
|
+
.command('create-without-connecting')
|
|
70
|
+
.description('creates a new StakingVault and Dashboard contracts without connecting to VaultHub')
|
|
71
|
+
.option('-da, --defaultAdmin <defaultAdmin>', 'default admin address')
|
|
72
|
+
.option('-no, --nodeOperator <nodeOperator>', 'node operator address')
|
|
73
|
+
.option('-nom, --nodeOperatorManager <nodeOperatorManager>', 'node operator manager address')
|
|
74
|
+
.option('-ce, --confirmExpiry <confirmExpiry>', 'confirm expiry in seconds', stringToNumber)
|
|
75
|
+
.option('-nof , --nodeOperatorFeeRate <nodeOperatorFeeRate>', 'Node operator fee rate in basis points, for e.g. 100 == 1%', stringToNumber)
|
|
76
|
+
.argument('[quantity]', 'quantity of vaults to create, default 1', '1')
|
|
77
|
+
.option('-r, --roles <roles>', 'other roles to assign to the vault', jsonToRoleAssignment)
|
|
78
|
+
.action(async (quantity, { defaultAdmin, nodeOperator, nodeOperatorManager, confirmExpiry, nodeOperatorFeeRate, roles, }) => {
|
|
79
|
+
const defaultAdminAddress = await getAddress(defaultAdmin, 'Default Admin');
|
|
80
|
+
const nodeOperatorAddress = await getAddress(nodeOperator, 'Node Operator');
|
|
81
|
+
const nodeOperatorManagerAddress = await getAddress(nodeOperatorManager, 'Node Operator Manager');
|
|
82
|
+
const confirmExpiryValue = await getConfirmExpiry(confirmExpiry);
|
|
83
|
+
const nodeOperatorFeeRateValue = await getNodeOperatorFeeRate(nodeOperatorFeeRate);
|
|
84
|
+
const createVaultData = prepareCreateVaultPayload({
|
|
85
|
+
defaultAdmin: defaultAdminAddress,
|
|
86
|
+
nodeOperator: nodeOperatorAddress,
|
|
87
|
+
nodeOperatorManager: nodeOperatorManagerAddress,
|
|
88
|
+
confirmExpiry: confirmExpiryValue,
|
|
89
|
+
nodeOperatorFeeRate: nodeOperatorFeeRateValue,
|
|
90
|
+
quantity,
|
|
91
|
+
roles,
|
|
92
|
+
});
|
|
93
|
+
if (!createVaultData)
|
|
94
|
+
return;
|
|
95
|
+
const { payload, list, otherRoles } = createVaultData;
|
|
96
|
+
const transactions = [];
|
|
97
|
+
const confirm = await confirmCreateVaultParams(payload, otherRoles);
|
|
98
|
+
if (!confirm)
|
|
99
|
+
return logCancel('Vault creation cancelled');
|
|
100
|
+
try {
|
|
101
|
+
for (const _ of list) {
|
|
102
|
+
const tx = await createVault(payload, otherRoles, 'createVaultWithDashboardWithoutConnectingToVaultHub');
|
|
103
|
+
transactions.push(tx);
|
|
104
|
+
}
|
|
105
|
+
logResult({});
|
|
106
|
+
// eslint-disable-next-line sonarjs/no-identical-functions
|
|
107
|
+
transactions.forEach((tx) => {
|
|
108
|
+
if (program.opts().populateTx) {
|
|
109
|
+
logInfo('Populated transaction data:', tx);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
logTable({
|
|
113
|
+
data: [
|
|
114
|
+
['Vault Address', tx?.vault],
|
|
115
|
+
['Dashboard Address', tx?.dashboard],
|
|
116
|
+
['Owner Address', tx?.owner],
|
|
117
|
+
['Transaction Hash', tx?.tx],
|
|
118
|
+
['Block Number', tx?.blockNumber],
|
|
119
|
+
],
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
if (err instanceof Error) {
|
|
125
|
+
logInfo('Error occurred while creating vaults', err.message);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=create-vault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-vault.js","sourceRoot":"","sources":["../../../../programs/use-cases/vault-operations/create-vault.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../programs/use-cases/vault-operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const vaultOperations: import("commander").Command;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../programs/use-cases/vault-operations/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO;KACnC,OAAO,CAAC,kBAAkB,CAAC;KAC3B,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,4BAA4B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Option } from 'commander';
|
|
2
|
+
import { getCommandsJson, logInfo } from '../../../utils/index.js';
|
|
3
|
+
import { vaultOperations } from './main.js';
|
|
4
|
+
import { getVaultHealthByDashboard, chooseVaultAndGetDashboard, getVaultInfoByDashboard, getVaultOverviewByDashboard, getVaultRolesByDashboard, checkQuarantine, } from '../../../features/index.js';
|
|
5
|
+
const vaultOperationsRead = vaultOperations
|
|
6
|
+
.command('read')
|
|
7
|
+
.aliases(['r'])
|
|
8
|
+
.description('vault operations read commands');
|
|
9
|
+
vaultOperationsRead.addOption(new Option('-cmd2json'));
|
|
10
|
+
vaultOperationsRead.on('option:-cmd2json', function () {
|
|
11
|
+
logInfo(getCommandsJson(vaultOperationsRead));
|
|
12
|
+
process.exit();
|
|
13
|
+
});
|
|
14
|
+
vaultOperationsRead
|
|
15
|
+
.command('info')
|
|
16
|
+
.description('get vault info')
|
|
17
|
+
.option('-v, --vault <string>', 'vault address')
|
|
18
|
+
.action(async ({ vault }) => {
|
|
19
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({
|
|
20
|
+
vault,
|
|
21
|
+
});
|
|
22
|
+
await checkQuarantine(vaultAddress);
|
|
23
|
+
await getVaultInfoByDashboard(contract);
|
|
24
|
+
});
|
|
25
|
+
vaultOperationsRead
|
|
26
|
+
.command('health')
|
|
27
|
+
.description('get vault health')
|
|
28
|
+
.option('-v, --vault <string>', 'vault address')
|
|
29
|
+
.action(async ({ vault }) => {
|
|
30
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({
|
|
31
|
+
vault,
|
|
32
|
+
});
|
|
33
|
+
await checkQuarantine(vaultAddress);
|
|
34
|
+
await getVaultHealthByDashboard(contract);
|
|
35
|
+
});
|
|
36
|
+
vaultOperationsRead
|
|
37
|
+
.command('overview')
|
|
38
|
+
.description('get vault overview')
|
|
39
|
+
.option('-v, --vault <string>', 'vault address')
|
|
40
|
+
.action(async ({ vault }) => {
|
|
41
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({
|
|
42
|
+
vault,
|
|
43
|
+
});
|
|
44
|
+
await checkQuarantine(vaultAddress);
|
|
45
|
+
await getVaultOverviewByDashboard(contract);
|
|
46
|
+
});
|
|
47
|
+
vaultOperationsRead
|
|
48
|
+
.command('roles')
|
|
49
|
+
.description('get vault roles')
|
|
50
|
+
.option('-v, --vault <string>', 'vault address')
|
|
51
|
+
.action(async ({ vault }) => {
|
|
52
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({
|
|
53
|
+
vault,
|
|
54
|
+
});
|
|
55
|
+
await checkQuarantine(vaultAddress);
|
|
56
|
+
await getVaultRolesByDashboard(contract);
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../programs/use-cases/vault-operations/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,MAAM,mBAAmB,GAAG,eAAe;KACxC,OAAO,CAAC,MAAM,CAAC;KACf,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;KACd,WAAW,CAAC,gCAAgC,CAAC,CAAC;AAEjD,mBAAmB,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACvD,mBAAmB,CAAC,EAAE,CAAC,kBAAkB,EAAE;IACzC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,mBAAmB;KAChB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gBAAgB,CAAC;KAC7B,MAAM,CAAC,sBAAsB,EAAE,eAAe,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAsB,EAAE,EAAE;IAC9C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,0BAA0B,CAAC;QACzE,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAEpC,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,sBAAsB,EAAE,eAAe,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAsB,EAAE,EAAE;IAC9C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,0BAA0B,CAAC;QACzE,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAEpC,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,oBAAoB,CAAC;KACjC,MAAM,CAAC,sBAAsB,EAAE,eAAe,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAsB,EAAE,EAAE;IAC9C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,0BAA0B,CAAC;QACzE,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAEpC,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEL,mBAAmB;KAChB,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,iBAAiB,CAAC;KAC9B,MAAM,CAAC,sBAAsB,EAAE,eAAe,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAsB,EAAE,EAAE;IAC9C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,0BAA0B,CAAC;QACzE,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAEpC,MAAM,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const vaultOperationsWrite: import("commander").Command;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { formatEther } from 'viem';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
|
+
import { logInfo, getCommandsJson, etherToWei, stringToAddress, confirmOperation, callWriteMethodWithReceipt, callReadMethodSilent, logError, } from '../../../utils/index.js';
|
|
4
|
+
import { chooseVaultAndGetDashboard, getAddress, mintShares, checkIsReportFresh, mintSteth, burnShares, burnSteth, checkVaultRole, checkAllowance, confirmQuarantine, } from '../../../features/index.js';
|
|
5
|
+
import { getAccount } from '../../../providers/index.js';
|
|
6
|
+
import { vaultOperations } from './main.js';
|
|
7
|
+
export const vaultOperationsWrite = vaultOperations
|
|
8
|
+
.command('write')
|
|
9
|
+
.aliases(['w'])
|
|
10
|
+
.description('vault operations write commands');
|
|
11
|
+
vaultOperationsWrite.addOption(new Option('-cmd2json'));
|
|
12
|
+
vaultOperationsWrite.on('option:-cmd2json', function () {
|
|
13
|
+
logInfo(getCommandsJson(vaultOperationsWrite));
|
|
14
|
+
process.exit();
|
|
15
|
+
});
|
|
16
|
+
vaultOperationsWrite
|
|
17
|
+
.command('fund')
|
|
18
|
+
.description('fund vaults')
|
|
19
|
+
.argument('<ether>', 'amount of ether to be funded (in ETH)', etherToWei)
|
|
20
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
21
|
+
.action(async (ether, { vault }) => {
|
|
22
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({
|
|
23
|
+
vault,
|
|
24
|
+
});
|
|
25
|
+
const quarantineConfirm = await confirmQuarantine(vaultAddress);
|
|
26
|
+
if (!quarantineConfirm)
|
|
27
|
+
return;
|
|
28
|
+
const account = getAccount();
|
|
29
|
+
await checkVaultRole(contract, 'FUND_ROLE', account.address);
|
|
30
|
+
const confirm = await confirmOperation(`Are you sure you want to fund the staking vault ${vaultAddress} with ${formatEther(ether)} ether?`);
|
|
31
|
+
if (!confirm)
|
|
32
|
+
return;
|
|
33
|
+
await callWriteMethodWithReceipt({
|
|
34
|
+
contract,
|
|
35
|
+
methodName: 'fund',
|
|
36
|
+
payload: [],
|
|
37
|
+
value: ether,
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
vaultOperationsWrite
|
|
41
|
+
.command('withdraw')
|
|
42
|
+
.description('withdraws ether from the staking vault to a recipient')
|
|
43
|
+
.argument('<eth>', 'amount of ether to withdraw (in ETH)', etherToWei)
|
|
44
|
+
.option('-r, --recipient <string>', 'address of the recipient', stringToAddress)
|
|
45
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
46
|
+
.action(async (ether, { vault, recipient }) => {
|
|
47
|
+
const recipientAddress = await getAddress(recipient, 'recipient');
|
|
48
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({ vault });
|
|
49
|
+
const quarantineConfirm = await confirmQuarantine(vaultAddress);
|
|
50
|
+
if (!quarantineConfirm)
|
|
51
|
+
return;
|
|
52
|
+
const account = getAccount();
|
|
53
|
+
await checkVaultRole(contract, 'WITHDRAW_ROLE', account.address);
|
|
54
|
+
const confirm = await confirmOperation(`Are you sure you want to withdraw ${formatEther(ether)} from the staking vault ${vaultAddress} to ${recipientAddress}?`);
|
|
55
|
+
if (!confirm)
|
|
56
|
+
return;
|
|
57
|
+
const isReportFresh = await checkIsReportFresh(vaultAddress);
|
|
58
|
+
if (!isReportFresh)
|
|
59
|
+
return;
|
|
60
|
+
await callWriteMethodWithReceipt({
|
|
61
|
+
contract,
|
|
62
|
+
methodName: 'withdraw',
|
|
63
|
+
payload: [recipientAddress, ether],
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
// Mint commands
|
|
67
|
+
vaultOperationsWrite
|
|
68
|
+
.command('mint-shares')
|
|
69
|
+
.alias('mint')
|
|
70
|
+
.description('mints stETH tokens backed by the vault to a recipient')
|
|
71
|
+
.argument('<amountOfShares>', 'amount of shares to mint (in Shares)', etherToWei)
|
|
72
|
+
.option('-r, --recipient <string>', 'address of the recipient', stringToAddress)
|
|
73
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
74
|
+
.action(async (amountOfShares, { vault, recipient }) => {
|
|
75
|
+
const recipientAddress = await getAddress(recipient, 'recipient');
|
|
76
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({ vault });
|
|
77
|
+
const quarantineConfirm = await confirmQuarantine(vaultAddress);
|
|
78
|
+
if (!quarantineConfirm)
|
|
79
|
+
return;
|
|
80
|
+
const account = getAccount();
|
|
81
|
+
await checkVaultRole(contract, 'MINT_ROLE', account.address);
|
|
82
|
+
const confirm = await confirmOperation(`Are you sure you want to mint ${formatEther(amountOfShares)} shares to ${recipientAddress} in the staking vault ${vaultAddress}?`);
|
|
83
|
+
if (!confirm)
|
|
84
|
+
return;
|
|
85
|
+
await mintShares(contract, recipientAddress, amountOfShares, vaultAddress, 'mintShares');
|
|
86
|
+
});
|
|
87
|
+
vaultOperationsWrite
|
|
88
|
+
.command('mint-wsteth')
|
|
89
|
+
.description('mints wstETH tokens backed by the vault to a recipient')
|
|
90
|
+
.argument('<amountOfWsteth>', 'amount of wstETH to mint', etherToWei)
|
|
91
|
+
.option('-r, --recipient <string>', 'address of the recipient', stringToAddress)
|
|
92
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
93
|
+
.action(async (amountOfWsteth, { vault, recipient }) => {
|
|
94
|
+
const recipientAddress = await getAddress(recipient, 'recipient');
|
|
95
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({ vault });
|
|
96
|
+
const quarantineConfirm = await confirmQuarantine(vaultAddress);
|
|
97
|
+
if (!quarantineConfirm)
|
|
98
|
+
return;
|
|
99
|
+
const account = getAccount();
|
|
100
|
+
await checkVaultRole(contract, 'MINT_ROLE', account.address);
|
|
101
|
+
await mintShares(contract, recipientAddress, amountOfWsteth, vaultAddress, 'mintWstETH');
|
|
102
|
+
});
|
|
103
|
+
vaultOperationsWrite
|
|
104
|
+
.command('mint-steth')
|
|
105
|
+
.description('mints stETH tokens backed by the vault to a recipient')
|
|
106
|
+
.argument('<amountOfSteth>', 'amount of stETH to mint', etherToWei)
|
|
107
|
+
.option('-r, --recipient <string>', 'address of the recipient', stringToAddress)
|
|
108
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
109
|
+
.action(async (amountOfSteth, { vault, recipient }) => {
|
|
110
|
+
const recipientAddress = await getAddress(recipient, 'recipient');
|
|
111
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({ vault });
|
|
112
|
+
const quarantineConfirm = await confirmQuarantine(vaultAddress);
|
|
113
|
+
if (!quarantineConfirm)
|
|
114
|
+
return;
|
|
115
|
+
const account = getAccount();
|
|
116
|
+
await checkVaultRole(contract, 'MINT_ROLE', account.address);
|
|
117
|
+
await mintSteth(contract, recipientAddress, amountOfSteth, vaultAddress);
|
|
118
|
+
});
|
|
119
|
+
// Burn commands
|
|
120
|
+
vaultOperationsWrite
|
|
121
|
+
.command('burn-shares')
|
|
122
|
+
.alias('burn')
|
|
123
|
+
.description('Burns stETH shares from the sender backed by the vault. Expects corresponding amount of stETH approved to this contract')
|
|
124
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
125
|
+
.argument('<amountOfShares>', 'amount of shares to burn (in Shares)', etherToWei)
|
|
126
|
+
.action(async (amountOfShares, { vault }) => {
|
|
127
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({
|
|
128
|
+
vault,
|
|
129
|
+
});
|
|
130
|
+
const quarantineConfirm = await confirmQuarantine(vaultAddress);
|
|
131
|
+
if (!quarantineConfirm)
|
|
132
|
+
return;
|
|
133
|
+
const account = getAccount();
|
|
134
|
+
await checkVaultRole(contract, 'BURN_ROLE', account.address);
|
|
135
|
+
await checkAllowance(contract, amountOfShares, 'shares');
|
|
136
|
+
await burnShares(contract, amountOfShares, vaultAddress, 'burnShares');
|
|
137
|
+
});
|
|
138
|
+
vaultOperationsWrite
|
|
139
|
+
.command('burn-steth')
|
|
140
|
+
.description('Burns stETH shares from the sender backed by the vault. Expects stETH amount approved to this contract.')
|
|
141
|
+
.argument('<amountOfSteth>', 'amount of stETH to burn (in stETH)', etherToWei)
|
|
142
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
143
|
+
.action(async (amountOfSteth, { vault }) => {
|
|
144
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({
|
|
145
|
+
vault,
|
|
146
|
+
});
|
|
147
|
+
const quarantineConfirm = await confirmQuarantine(vaultAddress);
|
|
148
|
+
if (!quarantineConfirm)
|
|
149
|
+
return;
|
|
150
|
+
const account = getAccount();
|
|
151
|
+
await checkVaultRole(contract, 'BURN_ROLE', account.address);
|
|
152
|
+
await checkAllowance(contract, amountOfSteth, 'steth');
|
|
153
|
+
await burnSteth(contract, amountOfSteth, vaultAddress);
|
|
154
|
+
});
|
|
155
|
+
vaultOperationsWrite
|
|
156
|
+
.command('burn-wsteth')
|
|
157
|
+
.description('burn wstETH tokens from the sender backed by the vault')
|
|
158
|
+
.argument('<amountOfWsteth>', 'amount of wstETH tokens to burn (in wstETH)', etherToWei)
|
|
159
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
160
|
+
.action(async (amountOfWsteth, { vault }) => {
|
|
161
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({
|
|
162
|
+
vault,
|
|
163
|
+
});
|
|
164
|
+
const quarantineConfirm = await confirmQuarantine(vaultAddress);
|
|
165
|
+
if (!quarantineConfirm)
|
|
166
|
+
return;
|
|
167
|
+
const account = getAccount();
|
|
168
|
+
await checkVaultRole(contract, 'BURN_ROLE', account.address);
|
|
169
|
+
await checkAllowance(contract, amountOfWsteth, 'wsteth');
|
|
170
|
+
await burnShares(contract, amountOfWsteth, vaultAddress, 'burnWstETH');
|
|
171
|
+
});
|
|
172
|
+
vaultOperationsWrite
|
|
173
|
+
.command('disburse-node-operator-fee')
|
|
174
|
+
.description('transfers the node-operator`s accrued fee (if any) to nodeOperatorFeeRecipient')
|
|
175
|
+
.option('-v, --vault <string>', 'vault address', stringToAddress)
|
|
176
|
+
.action(async ({ vault }) => {
|
|
177
|
+
const { contract, vault: vaultAddress } = await chooseVaultAndGetDashboard({
|
|
178
|
+
vault,
|
|
179
|
+
});
|
|
180
|
+
const quarantineConfirm = await confirmQuarantine(vaultAddress);
|
|
181
|
+
if (!quarantineConfirm)
|
|
182
|
+
return;
|
|
183
|
+
const nodeOperatorFeeRecipient = await callReadMethodSilent(contract, 'nodeOperatorFeeRecipient');
|
|
184
|
+
const nodeOperatorDisbursableFee = await callReadMethodSilent(contract, 'nodeOperatorDisbursableFee');
|
|
185
|
+
if (nodeOperatorDisbursableFee === 0n) {
|
|
186
|
+
logError('The node operator has no disbursable fee');
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const confirm = await confirmOperation(`Are you sure you want to transfer the node operator fee to ${nodeOperatorFeeRecipient} (nodeOperatorFeeRecipient) from the staking vault ${vaultAddress}? The node operator disbursable fee is ${formatEther(nodeOperatorDisbursableFee)} ETH`);
|
|
190
|
+
if (!confirm)
|
|
191
|
+
return;
|
|
192
|
+
await callWriteMethodWithReceipt({
|
|
193
|
+
contract,
|
|
194
|
+
methodName: 'disburseNodeOperatorFee',
|
|
195
|
+
payload: [],
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
//# sourceMappingURL=write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../programs/use-cases/vault-operations/write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./wallet.js";
|
package/dist/providers/index.js
CHANGED
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./wallet"), exports);
|
|
1
|
+
export * from "./wallet.js";
|
|
18
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../providers/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|