@lidofinance/lsv-cli 1.0.0-alpha.54 → 1.0.0-alpha.55
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 +3 -3
- 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 +813 -374
- package/dist/abi/Dashboard.js +458 -277
- package/dist/abi/Dashboard.js.map +1 -1
- 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 +28 -0
- package/dist/abi/LidoLocator.js +36 -0
- package/dist/abi/LidoLocator.js.map +1 -1
- package/dist/abi/OperatorGrid.d.ts +340 -169
- package/dist/abi/OperatorGrid.js +344 -164
- package/dist/abi/OperatorGrid.js.map +1 -1
- package/dist/abi/PredepositGuarantee.d.ts +371 -56
- package/dist/abi/PredepositGuarantee.js +290 -69
- package/dist/abi/PredepositGuarantee.js.map +1 -1
- package/dist/abi/StakingVault.d.ts +97 -425
- package/dist/abi/StakingVault.js +94 -419
- package/dist/abi/StakingVault.js.map +1 -1
- package/dist/abi/VaultFactory.d.ts +209 -134
- package/dist/abi/VaultFactory.js +66 -10
- package/dist/abi/VaultFactory.js.map +1 -1
- package/dist/abi/VaultHub.d.ts +1109 -445
- package/dist/abi/VaultHub.js +1502 -559
- package/dist/abi/VaultHub.js.map +1 -1
- package/dist/abi/VaultViewer.d.ts +308 -1
- package/dist/abi/VaultViewer.js +399 -1
- package/dist/abi/VaultViewer.js.map +1 -1
- package/dist/abi/index.d.ts +2 -3
- package/dist/abi/index.js +2 -4
- package/dist/abi/index.js.map +1 -1
- package/dist/command/index.js +1 -1
- package/dist/command/index.js.map +1 -1
- package/dist/contracts/index.d.ts +1 -4
- package/dist/contracts/index.js +1 -4
- 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 +1342 -38
- package/dist/contracts/operator-grid.d.ts +1 -0
- package/dist/contracts/pdg.d.ts +1 -0
- package/dist/contracts/vault-factory.d.ts +8849 -3187
- package/dist/contracts/vault-viewer.d.ts +6467 -73
- package/dist/contracts/vault-viewer.js +1 -1
- package/dist/contracts/vault.d.ts +1 -0
- package/dist/features/dashboard.js +5 -250
- package/dist/features/dashboard.js.map +1 -1
- 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 +21 -0
- package/dist/features/deposits/no-pdg.js +92 -0
- package/dist/features/deposits/no-pdg.js.map +1 -0
- package/dist/features/index.d.ts +4 -0
- package/dist/features/index.js +4 -0
- package/dist/features/index.js.map +1 -1
- 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/pdg.js +17 -23
- package/dist/features/pdg.js.map +1 -1
- 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 +4 -0
- package/dist/features/utils/index.js +5 -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/report-fresh.d.ts +2 -0
- package/dist/features/utils/report-fresh.js +18 -0
- package/dist/features/utils/report-fresh.js.map +1 -0
- package/dist/features/vault-factory.d.ts +17 -1
- package/dist/features/vault-factory.js +44 -8
- package/dist/features/vault-factory.js.map +1 -1
- package/dist/features/vault-hub.js +6 -6
- package/dist/features/vault-hub.js.map +1 -1
- 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 +24 -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 +107 -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 +107 -0
- package/dist/features/vault-operations/vault-overview.js.map +1 -0
- package/dist/features/vault-operations/vault-roles.d.ts +6 -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 +45 -0
- package/dist/features/vault-operations/vaults-by-role.js.map +1 -0
- package/dist/features/vault.js +6 -14
- package/dist/features/vault.js.map +1 -1
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/programs/account/read.js +5 -1
- package/dist/programs/account/read.js.map +1 -1
- package/dist/programs/contracts/dashboard/config.d.ts +3 -0
- package/dist/programs/{dashboard → contracts/dashboard}/config.js +43 -35
- package/dist/programs/contracts/dashboard/config.js.map +1 -0
- package/dist/programs/contracts/dashboard/index.js.map +1 -0
- package/dist/programs/contracts/dashboard/main.js +5 -0
- package/dist/programs/contracts/dashboard/main.js.map +1 -0
- package/dist/programs/{dashboard → contracts/dashboard}/read.js +6 -33
- package/dist/programs/contracts/dashboard/read.js.map +1 -0
- package/dist/programs/{dashboard → contracts/dashboard}/write.js +109 -130
- 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.js.map +1 -0
- package/dist/programs/contracts/hub/main.js +5 -0
- package/dist/programs/contracts/hub/main.js.map +1 -0
- package/dist/programs/{hub → contracts/hub}/read.js +13 -18
- package/dist/programs/contracts/hub/read.js.map +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/{operator-grid → contracts/operator-grid}/config.js +40 -34
- package/dist/programs/contracts/operator-grid/config.js.map +1 -0
- package/dist/programs/contracts/operator-grid/index.js.map +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/{operator-grid → contracts/operator-grid}/read.js +4 -4
- package/dist/programs/contracts/operator-grid/read.js.map +1 -0
- package/dist/programs/{operator-grid → contracts/operator-grid}/write.js +27 -32
- package/dist/programs/contracts/operator-grid/write.js.map +1 -0
- package/dist/programs/contracts/pdg/config.d.ts +3 -0
- package/dist/programs/{pdg → contracts/pdg}/config.js +53 -27
- package/dist/programs/contracts/pdg/config.js.map +1 -0
- package/dist/programs/contracts/pdg/index.js.map +1 -0
- package/dist/programs/contracts/pdg/main.js +5 -0
- package/dist/programs/contracts/pdg/main.js.map +1 -0
- package/dist/programs/{pdg → contracts/pdg}/read.js +4 -4
- package/dist/programs/contracts/pdg/read.js.map +1 -0
- package/dist/programs/{pdg → contracts/pdg}/write.js +38 -20
- package/dist/programs/contracts/pdg/write.js.map +1 -0
- package/dist/programs/contracts/vault/config.d.ts +3 -0
- package/dist/programs/{vault → contracts/vault}/config.js +0 -28
- package/dist/programs/contracts/vault/config.js.map +1 -0
- package/dist/programs/contracts/vault/index.js.map +1 -0
- package/dist/programs/contracts/vault/main.js +3 -0
- package/dist/programs/contracts/vault/main.js.map +1 -0
- package/dist/programs/{vault → contracts/vault}/read.js +4 -4
- package/dist/programs/contracts/vault/read.js.map +1 -0
- package/dist/programs/{vault → contracts/vault}/write.js +37 -70
- 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.map +1 -0
- package/dist/programs/contracts/vault-factory/index.js.map +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/{vault-factory → contracts/vault-factory}/read.js +4 -4
- package/dist/programs/contracts/vault-factory/read.js.map +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.map +1 -0
- package/dist/programs/contracts/vault-viewer/index.js.map +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/{vault-viewer → contracts/vault-viewer}/read.js +20 -10
- package/dist/programs/contracts/vault-viewer/read.js.map +1 -0
- package/dist/programs/index.d.ts +2 -9
- package/dist/programs/index.js +2 -9
- package/dist/programs/index.js.map +1 -1
- package/dist/programs/pdg-helpers.js +46 -10
- package/dist/programs/pdg-helpers.js.map +1 -1
- 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.js +13 -0
- package/dist/programs/use-cases/deposits/read.js.map +1 -0
- package/dist/programs/use-cases/deposits/write.js +211 -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.js.map +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/{metrics → use-cases/metrics}/read.js +29 -23
- 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.js +6 -0
- package/dist/programs/use-cases/report/main.js.map +1 -0
- package/dist/programs/{report → use-cases/report}/read.js +32 -41
- package/dist/programs/use-cases/report/read.js.map +1 -0
- package/dist/programs/{report → use-cases/report}/write.js +33 -42
- package/dist/programs/use-cases/report/write.js.map +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.js +46 -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 +148 -0
- package/dist/programs/use-cases/vault-operations/write.js.map +1 -0
- package/dist/providers/wallet.d.ts +10 -10
- package/dist/tests/utils/error-handler.test.js +0 -8
- package/dist/tests/utils/error-handler.test.js.map +1 -1
- package/dist/tests/utils/ipfs.test.js +2 -2
- package/dist/tests/utils/ipfs.test.js.map +1 -1
- package/dist/types/common.d.ts +6 -2
- package/dist/utils/arguments.d.ts +1 -0
- package/dist/utils/arguments.js +3 -0
- package/dist/utils/arguments.js.map +1 -1
- package/dist/utils/cache.d.ts +2 -2
- package/dist/utils/cache.js +7 -7
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/calculate-overview-v2.d.ts +2 -1
- package/dist/utils/calculate-overview-v2.js +2 -4
- package/dist/utils/calculate-overview-v2.js.map +1 -1
- package/dist/utils/calculate-overview.d.ts +0 -1
- package/dist/utils/calculate-overview.js +1 -3
- package/dist/utils/calculate-overview.js.map +1 -1
- package/dist/utils/charts/blessed/charts-apr.js +6 -3
- package/dist/utils/charts/blessed/charts-apr.js.map +1 -1
- package/dist/utils/charts/blessed/charts-rewards.js +3 -3
- package/dist/utils/charts/blessed/charts-rewards.js.map +1 -1
- package/dist/utils/charts/blessed/datasets/prepare-metrics.js +4 -4
- package/dist/utils/charts/blessed/datasets/prepare-metrics.js.map +1 -1
- package/dist/utils/charts/simple/simple-charts.js +5 -5
- package/dist/utils/charts/simple/simple-charts.js.map +1 -1
- package/dist/utils/commands/confirmations.d.ts +20 -8
- package/dist/utils/commands/confirmations.js +30 -14
- package/dist/utils/commands/confirmations.js.map +1 -1
- package/dist/utils/commands/index.d.ts +0 -2
- package/dist/utils/commands/index.js +0 -2
- package/dist/utils/commands/index.js.map +1 -1
- package/dist/utils/commands/report.d.ts +1 -1
- package/dist/utils/commands/report.js +18 -25
- package/dist/utils/commands/report.js.map +1 -1
- 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/fetchCL.d.ts +22 -0
- package/dist/utils/fetchCL.js +12 -0
- package/dist/utils/fetchCL.js.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/prompts/confirmations.js +2 -2
- package/dist/utils/prompts/confirmations.js.map +1 -1
- package/dist/utils/prompts/default.d.ts +2 -0
- package/dist/utils/prompts/default.js +7 -0
- package/dist/utils/prompts/default.js.map +1 -1
- package/dist/utils/prompts/index.d.ts +1 -1
- package/dist/utils/prompts/index.js +1 -1
- package/dist/utils/prompts/index.js.map +1 -1
- 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/{dashboard.d.ts → mint-burn/confirm-mint.d.ts} +0 -15
- 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 +1 -1
- package/dist/utils/prompts/operations.js +3 -3
- package/dist/utils/prompts/operations.js.map +1 -1
- package/dist/utils/prompts/predeposit-guarantee.d.ts +2 -2
- package/dist/utils/prompts/predeposit-guarantee.js.map +1 -1
- package/dist/utils/proof/create-proof.d.ts +4 -0
- package/dist/utils/proof/create-proof.js +2 -0
- package/dist/utils/proof/create-proof.js.map +1 -1
- package/dist/utils/proof/index.d.ts +0 -1
- package/dist/utils/proof/index.js +0 -1
- package/dist/utils/proof/index.js.map +1 -1
- package/dist/utils/read-programs-by-abi.d.ts +11 -4
- package/dist/utils/read-programs-by-abi.js +4 -3
- package/dist/utils/read-programs-by-abi.js.map +1 -1
- package/dist/utils/report/index.d.ts +2 -1
- package/dist/utils/report/index.js +2 -1
- package/dist/utils/report/index.js.map +1 -1
- package/dist/utils/report/report-proof.d.ts +42 -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 +3 -60
- package/dist/utils/report/report.js +14 -8
- package/dist/utils/report/report.js.map +1 -1
- package/dist/utils/report/statistic-data.d.ts +1 -1
- package/dist/utils/report/statistic-data.js +5 -6
- package/dist/utils/report/statistic-data.js.map +1 -1
- package/dist/utils/report/types.d.ts +69 -0
- package/dist/utils/report/types.js +2 -0
- package/dist/utils/report/types.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/{report → statistic}/report-statistic.d.ts +3 -3
- package/dist/utils/{report → statistic}/report-statistic.js +16 -19
- package/dist/utils/statistic/report-statistic.js.map +1 -0
- package/dist/version/index.js +1 -1
- package/package.json +2 -1
- package/dist/abi/BlsHarness.d.ts +0 -178
- package/dist/abi/BlsHarness.js +0 -232
- package/dist/abi/BlsHarness.js.map +0 -1
- package/dist/abi/CLProofVerifier.d.ts +0 -188
- package/dist/abi/CLProofVerifier.js +0 -247
- package/dist/abi/CLProofVerifier.js.map +0 -1
- package/dist/abi/ReportChecker.d.ts +0 -83
- package/dist/abi/ReportChecker.js +0 -109
- package/dist/abi/ReportChecker.js.map +0 -1
- package/dist/contracts/blsHarness.d.ts +0 -947
- package/dist/contracts/blsHarness.js +0 -24
- package/dist/contracts/blsHarness.js.map +0 -1
- package/dist/contracts/clProofVerifier.d.ts +0 -2647
- package/dist/contracts/clProofVerifier.js +0 -23
- package/dist/contracts/clProofVerifier.js.map +0 -1
- package/dist/contracts/reportChecker.d.ts +0 -758
- package/dist/contracts/reportChecker.js +0 -23
- package/dist/contracts/reportChecker.js.map +0 -1
- package/dist/contracts/voting.d.ts +0 -6
- package/dist/contracts/voting.js +0 -19
- package/dist/contracts/voting.js.map +0 -1
- package/dist/programs/dashboard/config.d.ts +0 -2
- package/dist/programs/dashboard/config.js.map +0 -1
- package/dist/programs/dashboard/index.js.map +0 -1
- package/dist/programs/dashboard/main.js +0 -5
- package/dist/programs/dashboard/main.js.map +0 -1
- package/dist/programs/dashboard/read.js.map +0 -1
- package/dist/programs/dashboard/write.js.map +0 -1
- package/dist/programs/hub/config.d.ts +0 -2
- package/dist/programs/hub/config.js +0 -123
- package/dist/programs/hub/config.js.map +0 -1
- package/dist/programs/hub/index.js.map +0 -1
- package/dist/programs/hub/main.js +0 -5
- package/dist/programs/hub/main.js.map +0 -1
- package/dist/programs/hub/read.js.map +0 -1
- package/dist/programs/hub/write.js +0 -246
- package/dist/programs/hub/write.js.map +0 -1
- package/dist/programs/metrics/index.js.map +0 -1
- package/dist/programs/metrics/main.js +0 -3
- package/dist/programs/metrics/main.js.map +0 -1
- package/dist/programs/metrics/read.js.map +0 -1
- package/dist/programs/operator-grid/config.d.ts +0 -2
- package/dist/programs/operator-grid/config.js.map +0 -1
- package/dist/programs/operator-grid/index.js.map +0 -1
- package/dist/programs/operator-grid/main.js +0 -5
- package/dist/programs/operator-grid/main.js.map +0 -1
- package/dist/programs/operator-grid/read.js.map +0 -1
- package/dist/programs/operator-grid/write.js.map +0 -1
- package/dist/programs/pdg/config.d.ts +0 -2
- package/dist/programs/pdg/config.js.map +0 -1
- package/dist/programs/pdg/index.js.map +0 -1
- package/dist/programs/pdg/main.js +0 -5
- package/dist/programs/pdg/main.js.map +0 -1
- package/dist/programs/pdg/read.js.map +0 -1
- package/dist/programs/pdg/write.js.map +0 -1
- package/dist/programs/report/index.js.map +0 -1
- package/dist/programs/report/main.js +0 -3
- package/dist/programs/report/main.js.map +0 -1
- package/dist/programs/report/read.js.map +0 -1
- package/dist/programs/report/write.js.map +0 -1
- package/dist/programs/vault/config.d.ts +0 -2
- package/dist/programs/vault/config.js.map +0 -1
- package/dist/programs/vault/index.js.map +0 -1
- package/dist/programs/vault/main.js +0 -3
- package/dist/programs/vault/main.js.map +0 -1
- package/dist/programs/vault/read.js.map +0 -1
- package/dist/programs/vault/write.js.map +0 -1
- package/dist/programs/vault-factory/config.d.ts +0 -2
- package/dist/programs/vault-factory/config.js.map +0 -1
- package/dist/programs/vault-factory/index.js.map +0 -1
- package/dist/programs/vault-factory/main.js +0 -5
- package/dist/programs/vault-factory/main.js.map +0 -1
- package/dist/programs/vault-factory/read.js.map +0 -1
- package/dist/programs/vault-factory/write.js +0 -86
- package/dist/programs/vault-factory/write.js.map +0 -1
- package/dist/programs/vault-viewer/config.d.ts +0 -2
- package/dist/programs/vault-viewer/config.js.map +0 -1
- package/dist/programs/vault-viewer/index.js.map +0 -1
- package/dist/programs/vault-viewer/main.js +0 -10
- package/dist/programs/vault-viewer/main.js.map +0 -1
- package/dist/programs/vault-viewer/read.js.map +0 -1
- package/dist/tests/__mocks__/@lodestar/types.js +0 -6
- package/dist/tests/__mocks__/@lodestar/types.js.map +0 -1
- package/dist/tests/utils/fetchCL.test.js +0 -57
- package/dist/tests/utils/fetchCL.test.js.map +0 -1
- package/dist/tests/utils/report-proof.test.js +0 -29
- package/dist/tests/utils/report-proof.test.js.map +0 -1
- package/dist/tests/utils/report-statistic.test.d.ts +0 -1
- package/dist/tests/utils/report-statistic.test.js +0 -247
- package/dist/tests/utils/report-statistic.test.js.map +0 -1
- package/dist/tests/utils/required-lock.test.d.ts +0 -1
- package/dist/tests/utils/required-lock.test.js +0 -26
- package/dist/tests/utils/required-lock.test.js.map +0 -1
- package/dist/utils/commands/dashboard.d.ts +0 -6
- package/dist/utils/commands/dashboard.js +0 -145
- package/dist/utils/commands/dashboard.js.map +0 -1
- package/dist/utils/commands/utils.d.ts +0 -6
- package/dist/utils/commands/utils.js +0 -57
- package/dist/utils/commands/utils.js.map +0 -1
- package/dist/utils/prompts/dashboard.js +0 -45
- package/dist/utils/prompts/dashboard.js.map +0 -1
- package/dist/utils/proof/report-proof.d.ts +0 -5
- package/dist/utils/proof/report-proof.js +0 -26
- package/dist/utils/proof/report-proof.js.map +0 -1
- package/dist/utils/report/report-statistic.js.map +0 -1
- package/dist/utils/required-lock.d.ts +0 -5
- package/dist/utils/required-lock.js +0 -21
- package/dist/utils/required-lock.js.map +0 -1
- /package/dist/programs/{dashboard → contracts/dashboard}/index.d.ts +0 -0
- /package/dist/programs/{dashboard → contracts/dashboard}/index.js +0 -0
- /package/dist/programs/{dashboard → contracts/dashboard}/main.d.ts +0 -0
- /package/dist/programs/{dashboard → contracts/dashboard}/read.d.ts +0 -0
- /package/dist/programs/{dashboard → contracts/dashboard}/write.d.ts +0 -0
- /package/dist/programs/{hub → contracts/hub}/index.d.ts +0 -0
- /package/dist/programs/{hub → contracts/hub}/index.js +0 -0
- /package/dist/programs/{hub → contracts/hub}/main.d.ts +0 -0
- /package/dist/programs/{hub → contracts/hub}/read.d.ts +0 -0
- /package/dist/programs/{hub → contracts/hub}/write.d.ts +0 -0
- /package/dist/programs/{operator-grid → contracts/operator-grid}/index.d.ts +0 -0
- /package/dist/programs/{operator-grid → contracts/operator-grid}/index.js +0 -0
- /package/dist/programs/{operator-grid → contracts/operator-grid}/main.d.ts +0 -0
- /package/dist/programs/{metrics → contracts/operator-grid}/read.d.ts +0 -0
- /package/dist/programs/{operator-grid → contracts/operator-grid}/write.d.ts +0 -0
- /package/dist/programs/{pdg → contracts/pdg}/index.d.ts +0 -0
- /package/dist/programs/{pdg → contracts/pdg}/index.js +0 -0
- /package/dist/programs/{pdg → contracts/pdg}/main.d.ts +0 -0
- /package/dist/programs/{operator-grid → contracts/pdg}/read.d.ts +0 -0
- /package/dist/programs/{pdg → contracts/pdg}/write.d.ts +0 -0
- /package/dist/programs/{vault-factory → contracts/vault}/index.d.ts +0 -0
- /package/dist/programs/{vault-factory → contracts/vault}/index.js +0 -0
- /package/dist/programs/{vault → contracts/vault}/main.d.ts +0 -0
- /package/dist/programs/{report → contracts/vault}/read.d.ts +0 -0
- /package/dist/programs/{vault-factory → contracts/vault}/write.d.ts +0 -0
- /package/dist/programs/{vault-factory → contracts/vault-factory}/config.js +0 -0
- /package/dist/programs/{report → contracts/vault-factory}/index.d.ts +0 -0
- /package/dist/programs/{report → contracts/vault-factory}/index.js +0 -0
- /package/dist/programs/{vault-factory → contracts/vault-factory}/main.d.ts +0 -0
- /package/dist/programs/{pdg → contracts/vault-factory}/read.d.ts +0 -0
- /package/dist/programs/{report → contracts/vault-factory}/write.d.ts +0 -0
- /package/dist/programs/{vault-viewer → contracts/vault-viewer}/config.js +0 -0
- /package/dist/programs/{metrics → contracts/vault-viewer}/index.d.ts +0 -0
- /package/dist/programs/{metrics → contracts/vault-viewer}/index.js +0 -0
- /package/dist/programs/{vault-viewer → contracts/vault-viewer}/main.d.ts +0 -0
- /package/dist/programs/{vault → use-cases/deposits}/index.d.ts +0 -0
- /package/dist/programs/{vault → use-cases/deposits}/index.js +0 -0
- /package/dist/programs/{vault-factory → use-cases/deposits}/read.d.ts +0 -0
- /package/dist/programs/{vault → use-cases/deposits}/write.d.ts +0 -0
- /package/dist/programs/{vault-viewer → use-cases/metrics}/index.d.ts +0 -0
- /package/dist/programs/{vault-viewer → use-cases/metrics}/index.js +0 -0
- /package/dist/programs/{metrics → use-cases/metrics}/main.d.ts +0 -0
- /package/dist/programs/{vault-viewer → use-cases/metrics}/read.d.ts +0 -0
- /package/dist/programs/{report → use-cases/report}/main.d.ts +0 -0
- /package/dist/programs/{vault → use-cases/report}/read.d.ts +0 -0
- /package/dist/{tests/__mocks__/@lodestar/types.d.ts → programs/use-cases/report/write.d.ts} +0 -0
- /package/dist/{tests/utils/fetchCL.test.d.ts → programs/use-cases/vault-operations/create-vault.d.ts} +0 -0
- /package/dist/{tests/utils/report-proof.test.d.ts → programs/use-cases/vault-operations/read.d.ts} +0 -0
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
// NOTE: These tests require jest and @types/jest for correct execution.
|
|
2
|
-
import { describe, it, expect } from '@jest/globals';
|
|
3
|
-
import { reportMetrics } from '../../utils/report/report-statistic.js';
|
|
4
|
-
const makeReport = ({ total_value_wei, in_out_delta, liability_shares, timestamp, }) => ({
|
|
5
|
-
data: {
|
|
6
|
-
vault_address: '0x123',
|
|
7
|
-
total_value_wei: total_value_wei.toString(),
|
|
8
|
-
in_out_delta: in_out_delta.toString(),
|
|
9
|
-
fee: '0',
|
|
10
|
-
liability_shares: liability_shares.toString(),
|
|
11
|
-
},
|
|
12
|
-
leaf: '0x0',
|
|
13
|
-
refSlot: 0,
|
|
14
|
-
blockNumber: 0,
|
|
15
|
-
timestamp,
|
|
16
|
-
proofsCID: '',
|
|
17
|
-
prevTreeCID: '',
|
|
18
|
-
merkleTreeRoot: '',
|
|
19
|
-
});
|
|
20
|
-
describe('reportMetrics', () => {
|
|
21
|
-
it('returns all expected fields with positive rewards', () => {
|
|
22
|
-
const previous = makeReport({
|
|
23
|
-
total_value_wei: '100000000000000000000', // 0.1 ETH
|
|
24
|
-
in_out_delta: '0',
|
|
25
|
-
liability_shares: '1000',
|
|
26
|
-
timestamp: 1000,
|
|
27
|
-
});
|
|
28
|
-
const current = makeReport({
|
|
29
|
-
total_value_wei: '110000000000000000000', // 0.11 ETH
|
|
30
|
-
in_out_delta: '0',
|
|
31
|
-
liability_shares: '1000',
|
|
32
|
-
timestamp: 1000 + 3600,
|
|
33
|
-
});
|
|
34
|
-
const stEthLiabilityRebaseRewards = '5000000000000000000';
|
|
35
|
-
const nodeOperatorFeeBP = 100n;
|
|
36
|
-
const res = reportMetrics({
|
|
37
|
-
reports: { current, previous },
|
|
38
|
-
nodeOperatorFeeBP,
|
|
39
|
-
stEthLiabilityRebaseRewards: BigInt(stEthLiabilityRebaseRewards),
|
|
40
|
-
});
|
|
41
|
-
// Проверяем все возвращаемые значения
|
|
42
|
-
expect(res).toHaveProperty('grossStakingRewards', 10000000000000000000n);
|
|
43
|
-
expect(res).toHaveProperty('nodeOperatorRewards', 100000000000000000n);
|
|
44
|
-
expect(res).toHaveProperty('dailyLidoFees', 0n);
|
|
45
|
-
expect(res).toHaveProperty('netStakingRewards', 9900000000000000000n);
|
|
46
|
-
expect(res).toHaveProperty('grossStakingAPR');
|
|
47
|
-
expect(res).toHaveProperty('netStakingAPR');
|
|
48
|
-
expect(res).toHaveProperty('bottomLine', 4900000000000000000n);
|
|
49
|
-
expect(res).toHaveProperty('efficiency');
|
|
50
|
-
expect(res).toHaveProperty('grossStakingAPR_bigint');
|
|
51
|
-
expect(res).toHaveProperty('netStakingAPR_bigint');
|
|
52
|
-
expect(res).toHaveProperty('efficiency_bigint');
|
|
53
|
-
expect(res).toHaveProperty('grossStakingAPR_bps');
|
|
54
|
-
expect(res).toHaveProperty('netStakingAPR_bps');
|
|
55
|
-
expect(res).toHaveProperty('efficiency_bps');
|
|
56
|
-
expect(res).toHaveProperty('grossStakingAPR_percent');
|
|
57
|
-
expect(res).toHaveProperty('netStakingAPR_percent');
|
|
58
|
-
expect(res).toHaveProperty('efficiency_percent');
|
|
59
|
-
// Проверяем что значения APR положительные
|
|
60
|
-
expect(Number(res.grossStakingAPR)).toBeGreaterThan(0);
|
|
61
|
-
expect(Number(res.grossStakingAPR.apr_bps)).toBeGreaterThan(0);
|
|
62
|
-
expect(Number(res.grossStakingAPR.apr_percent)).toBeGreaterThan(0);
|
|
63
|
-
});
|
|
64
|
-
it('returns all expected fields with zero rewards', () => {
|
|
65
|
-
const previous = makeReport({
|
|
66
|
-
total_value_wei: '100000000000000000000',
|
|
67
|
-
in_out_delta: '0',
|
|
68
|
-
liability_shares: '1000',
|
|
69
|
-
timestamp: 1000,
|
|
70
|
-
});
|
|
71
|
-
const current = makeReport({
|
|
72
|
-
total_value_wei: '100000000000000000000',
|
|
73
|
-
in_out_delta: '0',
|
|
74
|
-
liability_shares: '1000',
|
|
75
|
-
timestamp: 1000 + 3600,
|
|
76
|
-
});
|
|
77
|
-
const res = reportMetrics({
|
|
78
|
-
reports: { current, previous },
|
|
79
|
-
nodeOperatorFeeBP: 100n,
|
|
80
|
-
stEthLiabilityRebaseRewards: 0n,
|
|
81
|
-
});
|
|
82
|
-
Object.keys(res).forEach((key) => {
|
|
83
|
-
expect(res).toHaveProperty(key);
|
|
84
|
-
});
|
|
85
|
-
expect(res.grossStakingRewards).toBe(0n);
|
|
86
|
-
expect(res.grossStakingAPR).toBe(0n);
|
|
87
|
-
expect(res.grossStakingAPR.apr_bps).toBe(0);
|
|
88
|
-
expect(res.grossStakingAPR.apr_percent).toBe(0);
|
|
89
|
-
});
|
|
90
|
-
it('returns all expected fields with negative rewards', () => {
|
|
91
|
-
const previous = makeReport({
|
|
92
|
-
total_value_wei: '100000000000000000000',
|
|
93
|
-
in_out_delta: '0',
|
|
94
|
-
liability_shares: '1000',
|
|
95
|
-
timestamp: 1000,
|
|
96
|
-
});
|
|
97
|
-
const current = makeReport({
|
|
98
|
-
total_value_wei: '90000000000000000000',
|
|
99
|
-
in_out_delta: '0',
|
|
100
|
-
liability_shares: '1000',
|
|
101
|
-
timestamp: 1000 + 3600,
|
|
102
|
-
});
|
|
103
|
-
const res = reportMetrics({
|
|
104
|
-
reports: { current, previous },
|
|
105
|
-
nodeOperatorFeeBP: 100n,
|
|
106
|
-
stEthLiabilityRebaseRewards: 0n,
|
|
107
|
-
});
|
|
108
|
-
Object.keys(res).forEach((key) => {
|
|
109
|
-
expect(res).toHaveProperty(key);
|
|
110
|
-
});
|
|
111
|
-
expect(res.grossStakingRewards).toBe(-10000000000000000000n);
|
|
112
|
-
expect(Number(res.grossStakingAPR)).toBeLessThan(0);
|
|
113
|
-
expect(Number(res.grossStakingAPR.apr_bps)).toBeLessThan(0);
|
|
114
|
-
expect(Number(res.grossStakingAPR.apr_percent)).toBeLessThan(0);
|
|
115
|
-
});
|
|
116
|
-
it('handles very small rewards (edge case)', () => {
|
|
117
|
-
const previous = makeReport({
|
|
118
|
-
total_value_wei: '100000000000000000000',
|
|
119
|
-
in_out_delta: '0',
|
|
120
|
-
liability_shares: '1000',
|
|
121
|
-
timestamp: 1000,
|
|
122
|
-
});
|
|
123
|
-
const current = makeReport({
|
|
124
|
-
total_value_wei: '100000000000000000001', // +1 wei
|
|
125
|
-
in_out_delta: '0',
|
|
126
|
-
liability_shares: '1000',
|
|
127
|
-
timestamp: 1000 + 3600,
|
|
128
|
-
});
|
|
129
|
-
const res = reportMetrics({
|
|
130
|
-
reports: { current, previous },
|
|
131
|
-
nodeOperatorFeeBP: 100n,
|
|
132
|
-
stEthLiabilityRebaseRewards: 0n,
|
|
133
|
-
});
|
|
134
|
-
Object.keys(res).forEach((key) => {
|
|
135
|
-
expect(res).toHaveProperty(key);
|
|
136
|
-
});
|
|
137
|
-
expect(res.grossStakingRewards).toBe(1n);
|
|
138
|
-
expect(Number(res.grossStakingAPR.apr_percent)).toBeGreaterThanOrEqual(0);
|
|
139
|
-
});
|
|
140
|
-
it('handles very large values (big TVL and rewards)', () => {
|
|
141
|
-
const previous = makeReport({
|
|
142
|
-
total_value_wei: '100000000000000000000000000000', // 1e26
|
|
143
|
-
in_out_delta: '0',
|
|
144
|
-
liability_shares: '1000000000000',
|
|
145
|
-
timestamp: 1000,
|
|
146
|
-
});
|
|
147
|
-
const current = makeReport({
|
|
148
|
-
total_value_wei: '110000000000000000000000000000', // +10%
|
|
149
|
-
in_out_delta: '0',
|
|
150
|
-
liability_shares: '1000000000000',
|
|
151
|
-
timestamp: 1000 + 3600,
|
|
152
|
-
});
|
|
153
|
-
const res = reportMetrics({
|
|
154
|
-
reports: { current, previous },
|
|
155
|
-
nodeOperatorFeeBP: 100n,
|
|
156
|
-
stEthLiabilityRebaseRewards: 0n,
|
|
157
|
-
});
|
|
158
|
-
Object.keys(res).forEach((key) => {
|
|
159
|
-
expect(res).toHaveProperty(key);
|
|
160
|
-
});
|
|
161
|
-
expect(res.grossStakingRewards).toBe(10000000000000000000000000000n);
|
|
162
|
-
expect(Number(res.grossStakingAPR.apr_percent)).toBeGreaterThan(0);
|
|
163
|
-
});
|
|
164
|
-
it('handles nodeOperatorFeeBP = 0 (no operator fee)', () => {
|
|
165
|
-
const previous = makeReport({
|
|
166
|
-
total_value_wei: '100000000000000000000',
|
|
167
|
-
in_out_delta: '0',
|
|
168
|
-
liability_shares: '1000',
|
|
169
|
-
timestamp: 1000,
|
|
170
|
-
});
|
|
171
|
-
const current = makeReport({
|
|
172
|
-
total_value_wei: '110000000000000000000',
|
|
173
|
-
in_out_delta: '0',
|
|
174
|
-
liability_shares: '1000',
|
|
175
|
-
timestamp: 1000 + 3600,
|
|
176
|
-
});
|
|
177
|
-
const res = reportMetrics({
|
|
178
|
-
reports: { current, previous },
|
|
179
|
-
nodeOperatorFeeBP: 0n,
|
|
180
|
-
stEthLiabilityRebaseRewards: 0n,
|
|
181
|
-
});
|
|
182
|
-
expect(res.nodeOperatorRewards).toBe(0n);
|
|
183
|
-
expect(res.netStakingRewards).toBe(res.grossStakingRewards);
|
|
184
|
-
});
|
|
185
|
-
it('handles nodeOperatorFeeBP = 10000 (100%)', () => {
|
|
186
|
-
const previous = makeReport({
|
|
187
|
-
total_value_wei: '100000000000000000000',
|
|
188
|
-
in_out_delta: '0',
|
|
189
|
-
liability_shares: '1000',
|
|
190
|
-
timestamp: 1000,
|
|
191
|
-
});
|
|
192
|
-
const current = makeReport({
|
|
193
|
-
total_value_wei: '110000000000000000000',
|
|
194
|
-
in_out_delta: '0',
|
|
195
|
-
liability_shares: '1000',
|
|
196
|
-
timestamp: 1000 + 3600,
|
|
197
|
-
});
|
|
198
|
-
const res = reportMetrics({
|
|
199
|
-
reports: { current, previous },
|
|
200
|
-
nodeOperatorFeeBP: 10000n,
|
|
201
|
-
stEthLiabilityRebaseRewards: 0n,
|
|
202
|
-
});
|
|
203
|
-
expect(res.nodeOperatorRewards).toBe(res.grossStakingRewards);
|
|
204
|
-
expect(res.netStakingRewards).toBe(0n);
|
|
205
|
-
});
|
|
206
|
-
it('handles very short period (1 second)', () => {
|
|
207
|
-
const previous = makeReport({
|
|
208
|
-
total_value_wei: '100000000000000000000',
|
|
209
|
-
in_out_delta: '0',
|
|
210
|
-
liability_shares: '1000',
|
|
211
|
-
timestamp: 1000,
|
|
212
|
-
});
|
|
213
|
-
const current = makeReport({
|
|
214
|
-
total_value_wei: '110000000000000000000',
|
|
215
|
-
in_out_delta: '0',
|
|
216
|
-
liability_shares: '1000',
|
|
217
|
-
timestamp: 1001,
|
|
218
|
-
});
|
|
219
|
-
const res = reportMetrics({
|
|
220
|
-
reports: { current, previous },
|
|
221
|
-
nodeOperatorFeeBP: 100n,
|
|
222
|
-
stEthLiabilityRebaseRewards: 0n,
|
|
223
|
-
});
|
|
224
|
-
expect(Number(res.grossStakingAPR.apr_percent)).toBeGreaterThan(1000000); // Очень большой APR
|
|
225
|
-
});
|
|
226
|
-
it('handles very long period (1 year)', () => {
|
|
227
|
-
const previous = makeReport({
|
|
228
|
-
total_value_wei: '100000000000000000000',
|
|
229
|
-
in_out_delta: '0',
|
|
230
|
-
liability_shares: '1000',
|
|
231
|
-
timestamp: 1000,
|
|
232
|
-
});
|
|
233
|
-
const current = makeReport({
|
|
234
|
-
total_value_wei: '110000000000000000000',
|
|
235
|
-
in_out_delta: '0',
|
|
236
|
-
liability_shares: '1000',
|
|
237
|
-
timestamp: 1000 + 31536000, // 1 год
|
|
238
|
-
});
|
|
239
|
-
const res = reportMetrics({
|
|
240
|
-
reports: { current, previous },
|
|
241
|
-
nodeOperatorFeeBP: 100n,
|
|
242
|
-
stEthLiabilityRebaseRewards: 0n,
|
|
243
|
-
});
|
|
244
|
-
expect(Number(res.grossStakingAPR.apr_percent)).toBeCloseTo(10, 1); // ~10% годовых
|
|
245
|
-
});
|
|
246
|
-
});
|
|
247
|
-
//# sourceMappingURL=report-statistic.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report-statistic.test.js","sourceRoot":"","sources":["../../../tests/utils/report-statistic.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect, jest, beforeEach } from '@jest/globals';
|
|
2
|
-
import { getRequiredLockByShares } from '../../utils/required-lock.js';
|
|
3
|
-
jest.mock('contracts', () => ({
|
|
4
|
-
getStethContract: jest.fn(() => ({
|
|
5
|
-
read: { getPooledEthByShares: jest.fn(() => 10n) },
|
|
6
|
-
})),
|
|
7
|
-
getDashboardContract: jest.fn(() => ({})),
|
|
8
|
-
getStakingVaultContract: jest.fn(() => ({})),
|
|
9
|
-
}));
|
|
10
|
-
jest.mock('../../utils/index.js', () => ({
|
|
11
|
-
callReadMethodSilent: jest.fn(async () => ({
|
|
12
|
-
liabilityShares: 1n,
|
|
13
|
-
reserveRatioBP: 100,
|
|
14
|
-
})),
|
|
15
|
-
}));
|
|
16
|
-
beforeEach(() => {
|
|
17
|
-
jest.clearAllMocks();
|
|
18
|
-
});
|
|
19
|
-
describe('getRequiredLockByShares', () => {
|
|
20
|
-
test('calculates required lock', async () => {
|
|
21
|
-
const result = await getRequiredLockByShares('0x1', '1');
|
|
22
|
-
expect(result).toHaveProperty('requiredLock');
|
|
23
|
-
expect(result).toHaveProperty('currentLock');
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
//# sourceMappingURL=required-lock.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"required-lock.test.js","sourceRoot":"","sources":["../../../tests/utils/required-lock.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE;KACnD,CAAC,CAAC;IACH,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC,uBAAuB,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CAC7C,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACvC,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACzC,eAAe,EAAE,EAAE;QACnB,cAAc,EAAE,GAAG;KACpB,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAEJ,UAAU,CAAC,GAAG,EAAE;IACd,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Address } from 'viem';
|
|
2
|
-
import { DashboardContract } from '../../contracts/index.js';
|
|
3
|
-
export declare const mintSteth: (contract: DashboardContract, recipient: Address, amountOfSteth: bigint) => Promise<void>;
|
|
4
|
-
export declare const mintShares: (contract: DashboardContract, recipient: Address, amountOfShares: bigint, method: "mintShares" | "mintWstETH") => Promise<void>;
|
|
5
|
-
export declare const burnSteth: (contract: DashboardContract, amountOfSteth: bigint) => Promise<void>;
|
|
6
|
-
export declare const burnShares: (contract: DashboardContract, amountOfShares: bigint, method: "burnShares" | "burnWstETH") => Promise<void>;
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { callWriteMethodWithReceipt, confirmBurn } from '../index.js';
|
|
2
|
-
import { getStethContract } from '../../contracts/index.js';
|
|
3
|
-
import { callReadMethodSilent, fetchAndCalculateVaultHealthWithNewValue, showSpinner, confirmMint, } from '../index.js';
|
|
4
|
-
import { checkMintingCapacity, checkLiabilityShares, confirmLock, checkIsReportFresh, } from './utils.js';
|
|
5
|
-
export const mintSteth = async (contract, recipient, amountOfSteth) => {
|
|
6
|
-
const stethContract = await getStethContract();
|
|
7
|
-
const amountOfShares = await callReadMethodSilent(stethContract, 'getSharesByPooledEth', [amountOfSteth]);
|
|
8
|
-
const isReportFresh = await checkIsReportFresh(contract);
|
|
9
|
-
if (!isReportFresh)
|
|
10
|
-
return;
|
|
11
|
-
const isMintingCapacityOk = await checkMintingCapacity(contract, amountOfShares);
|
|
12
|
-
if (!isMintingCapacityOk)
|
|
13
|
-
return;
|
|
14
|
-
const isConfirmedLock = await confirmLock(amountOfShares, contract.address);
|
|
15
|
-
if (!isConfirmedLock)
|
|
16
|
-
return;
|
|
17
|
-
const hideSpinner = showSpinner();
|
|
18
|
-
const { currentVaultHealth, newVaultHealth, newLiabilityShares, newLiabilitySharesInStethWei, liabilityShares, liabilitySharesInStethWei, valueInStethWei, } = await fetchAndCalculateVaultHealthWithNewValue(contract, amountOfShares, 'mint');
|
|
19
|
-
const vault = await callReadMethodSilent(contract, 'stakingVault');
|
|
20
|
-
hideSpinner();
|
|
21
|
-
const confirm = await confirmMint({
|
|
22
|
-
vaultAddress: vault,
|
|
23
|
-
recipient,
|
|
24
|
-
amountOfMint: amountOfShares,
|
|
25
|
-
amountOfMintInStethWei: valueInStethWei,
|
|
26
|
-
newLiabilityShares: newLiabilityShares,
|
|
27
|
-
newLiabilitySharesInStethWei: newLiabilitySharesInStethWei,
|
|
28
|
-
currentLiabilityShares: liabilityShares,
|
|
29
|
-
currentLiabilitySharesInStethWei: liabilitySharesInStethWei,
|
|
30
|
-
newHealthRatio: newVaultHealth.healthRatio,
|
|
31
|
-
currentHealthRatio: currentVaultHealth.healthRatio,
|
|
32
|
-
newIsHealthy: newVaultHealth.isHealthy,
|
|
33
|
-
currentIsHealthy: currentVaultHealth.isHealthy,
|
|
34
|
-
type: 'stETH',
|
|
35
|
-
});
|
|
36
|
-
if (!confirm)
|
|
37
|
-
return;
|
|
38
|
-
await callWriteMethodWithReceipt({
|
|
39
|
-
contract,
|
|
40
|
-
methodName: 'mintStETH',
|
|
41
|
-
payload: [recipient, amountOfSteth],
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
export const mintShares = async (contract, recipient, amountOfShares, method) => {
|
|
45
|
-
const type = method === 'mintShares' ? 'shares' : 'wstETH';
|
|
46
|
-
const isReportFresh = await checkIsReportFresh(contract);
|
|
47
|
-
if (!isReportFresh)
|
|
48
|
-
return;
|
|
49
|
-
const isMintingCapacityOk = await checkMintingCapacity(contract, amountOfShares);
|
|
50
|
-
if (!isMintingCapacityOk)
|
|
51
|
-
return;
|
|
52
|
-
const isConfirmedLock = await confirmLock(amountOfShares, contract.address);
|
|
53
|
-
if (!isConfirmedLock)
|
|
54
|
-
return;
|
|
55
|
-
const hideSpinner = showSpinner();
|
|
56
|
-
const { currentVaultHealth, newVaultHealth, newLiabilityShares, newLiabilitySharesInStethWei, liabilityShares, liabilitySharesInStethWei, valueInStethWei, } = await fetchAndCalculateVaultHealthWithNewValue(contract, amountOfShares, 'mint');
|
|
57
|
-
const vault = await callReadMethodSilent(contract, 'stakingVault');
|
|
58
|
-
hideSpinner();
|
|
59
|
-
const confirm = await confirmMint({
|
|
60
|
-
vaultAddress: vault,
|
|
61
|
-
recipient,
|
|
62
|
-
amountOfMint: amountOfShares,
|
|
63
|
-
amountOfMintInStethWei: valueInStethWei,
|
|
64
|
-
newLiabilityShares: newLiabilityShares,
|
|
65
|
-
newLiabilitySharesInStethWei: newLiabilitySharesInStethWei,
|
|
66
|
-
currentLiabilityShares: liabilityShares,
|
|
67
|
-
currentLiabilitySharesInStethWei: liabilitySharesInStethWei,
|
|
68
|
-
newHealthRatio: newVaultHealth.healthRatio,
|
|
69
|
-
currentHealthRatio: currentVaultHealth.healthRatio,
|
|
70
|
-
newIsHealthy: newVaultHealth.isHealthy,
|
|
71
|
-
currentIsHealthy: currentVaultHealth.isHealthy,
|
|
72
|
-
type,
|
|
73
|
-
});
|
|
74
|
-
if (!confirm)
|
|
75
|
-
return;
|
|
76
|
-
await callWriteMethodWithReceipt({
|
|
77
|
-
contract,
|
|
78
|
-
methodName: method,
|
|
79
|
-
payload: [recipient, amountOfShares],
|
|
80
|
-
});
|
|
81
|
-
};
|
|
82
|
-
export const burnSteth = async (contract, amountOfSteth) => {
|
|
83
|
-
const stethContract = await getStethContract();
|
|
84
|
-
const amountOfShares = await callReadMethodSilent(stethContract, 'getSharesByPooledEth', [amountOfSteth]);
|
|
85
|
-
const isLiabilitySharesOk = await checkLiabilityShares(contract, amountOfShares);
|
|
86
|
-
if (!isLiabilitySharesOk)
|
|
87
|
-
return;
|
|
88
|
-
const hideSpinner = showSpinner();
|
|
89
|
-
const { currentVaultHealth, newVaultHealth, newLiabilityShares, newLiabilitySharesInStethWei, valueInStethWei, liabilityShares, liabilitySharesInStethWei, } = await fetchAndCalculateVaultHealthWithNewValue(contract, amountOfShares, 'burn');
|
|
90
|
-
const vault = await callReadMethodSilent(contract, 'stakingVault');
|
|
91
|
-
hideSpinner();
|
|
92
|
-
const confirm = await confirmBurn({
|
|
93
|
-
vaultAddress: vault,
|
|
94
|
-
amountOfBurn: amountOfSteth,
|
|
95
|
-
amountOfBurnInStethWei: valueInStethWei,
|
|
96
|
-
newLiabilityShares: newLiabilityShares,
|
|
97
|
-
newLiabilitySharesInStethWei: newLiabilitySharesInStethWei,
|
|
98
|
-
currentLiabilityShares: liabilityShares,
|
|
99
|
-
currentLiabilitySharesInStethWei: liabilitySharesInStethWei,
|
|
100
|
-
newHealthRatio: newVaultHealth.healthRatio,
|
|
101
|
-
currentHealthRatio: currentVaultHealth.healthRatio,
|
|
102
|
-
newIsHealthy: newVaultHealth.isHealthy,
|
|
103
|
-
currentIsHealthy: currentVaultHealth.isHealthy,
|
|
104
|
-
type: 'stETH',
|
|
105
|
-
});
|
|
106
|
-
if (!confirm)
|
|
107
|
-
return;
|
|
108
|
-
await callWriteMethodWithReceipt({
|
|
109
|
-
contract,
|
|
110
|
-
methodName: 'burnStETH',
|
|
111
|
-
payload: [amountOfSteth],
|
|
112
|
-
});
|
|
113
|
-
};
|
|
114
|
-
export const burnShares = async (contract, amountOfShares, method) => {
|
|
115
|
-
const type = method === 'burnShares' ? 'shares' : 'wstETH';
|
|
116
|
-
const isLiabilitySharesOk = await checkLiabilityShares(contract, amountOfShares);
|
|
117
|
-
if (!isLiabilitySharesOk)
|
|
118
|
-
return;
|
|
119
|
-
const hideSpinner = showSpinner();
|
|
120
|
-
const { currentVaultHealth, newVaultHealth, newLiabilityShares, newLiabilitySharesInStethWei, valueInStethWei, liabilityShares, liabilitySharesInStethWei, } = await fetchAndCalculateVaultHealthWithNewValue(contract, amountOfShares, 'burn');
|
|
121
|
-
const vault = await callReadMethodSilent(contract, 'stakingVault');
|
|
122
|
-
hideSpinner();
|
|
123
|
-
const confirm = await confirmBurn({
|
|
124
|
-
vaultAddress: vault,
|
|
125
|
-
amountOfBurn: amountOfShares,
|
|
126
|
-
amountOfBurnInStethWei: valueInStethWei,
|
|
127
|
-
newLiabilityShares: newLiabilityShares,
|
|
128
|
-
newLiabilitySharesInStethWei: newLiabilitySharesInStethWei,
|
|
129
|
-
currentLiabilityShares: liabilityShares,
|
|
130
|
-
currentLiabilitySharesInStethWei: liabilitySharesInStethWei,
|
|
131
|
-
newHealthRatio: newVaultHealth.healthRatio,
|
|
132
|
-
currentHealthRatio: currentVaultHealth.healthRatio,
|
|
133
|
-
newIsHealthy: newVaultHealth.isHealthy,
|
|
134
|
-
currentIsHealthy: currentVaultHealth.isHealthy,
|
|
135
|
-
type,
|
|
136
|
-
});
|
|
137
|
-
if (!confirm)
|
|
138
|
-
return;
|
|
139
|
-
await callWriteMethodWithReceipt({
|
|
140
|
-
contract,
|
|
141
|
-
methodName: method,
|
|
142
|
-
payload: [amountOfShares],
|
|
143
|
-
});
|
|
144
|
-
};
|
|
145
|
-
//# sourceMappingURL=dashboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../utils/commands/dashboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAqB,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,wCAAwC,EACxC,WAAW,EACX,WAAW,GACZ,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,QAA2B,EAC3B,SAAkB,EAClB,aAAqB,EACrB,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAC/C,aAAa,EACb,sBAAsB,EACtB,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CACpD,QAAQ,EACR,cAAc,CACf,CAAC;IACF,IAAI,CAAC,mBAAmB;QAAE,OAAO;IAEjC,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,eAAe;QAAE,OAAO;IAE7B,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAClC,MAAM,EACJ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,4BAA4B,EAC5B,eAAe,EACf,yBAAyB,EACzB,eAAe,GAChB,GAAG,MAAM,wCAAwC,CAChD,QAAQ,EACR,cAAc,EACd,MAAM,CACP,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnE,WAAW,EAAE,CAAC;IAEd,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC;QAChC,YAAY,EAAE,KAAK;QACnB,SAAS;QACT,YAAY,EAAE,cAAc;QAC5B,sBAAsB,EAAE,eAAe;QACvC,kBAAkB,EAAE,kBAAkB;QACtC,4BAA4B,EAAE,4BAA4B;QAC1D,sBAAsB,EAAE,eAAe;QACvC,gCAAgC,EAAE,yBAAyB;QAC3D,cAAc,EAAE,cAAc,CAAC,WAAW;QAC1C,kBAAkB,EAAE,kBAAkB,CAAC,WAAW;QAClD,YAAY,EAAE,cAAc,CAAC,SAAS;QACtC,gBAAgB,EAAE,kBAAkB,CAAC,SAAS;QAC9C,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IACH,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,0BAA0B,CAAC;QAC/B,QAAQ;QACR,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;KACpC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,QAA2B,EAC3B,SAAkB,EAClB,cAAsB,EACtB,MAAmC,EACnC,EAAE;IACF,MAAM,IAAI,GAAG,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE3D,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CACpD,QAAQ,EACR,cAAc,CACf,CAAC;IACF,IAAI,CAAC,mBAAmB;QAAE,OAAO;IAEjC,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,eAAe;QAAE,OAAO;IAE7B,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAClC,MAAM,EACJ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,4BAA4B,EAC5B,eAAe,EACf,yBAAyB,EACzB,eAAe,GAChB,GAAG,MAAM,wCAAwC,CAChD,QAAQ,EACR,cAAc,EACd,MAAM,CACP,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnE,WAAW,EAAE,CAAC;IAEd,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC;QAChC,YAAY,EAAE,KAAK;QACnB,SAAS;QACT,YAAY,EAAE,cAAc;QAC5B,sBAAsB,EAAE,eAAe;QACvC,kBAAkB,EAAE,kBAAkB;QACtC,4BAA4B,EAAE,4BAA4B;QAC1D,sBAAsB,EAAE,eAAe;QACvC,gCAAgC,EAAE,yBAAyB;QAC3D,cAAc,EAAE,cAAc,CAAC,WAAW;QAC1C,kBAAkB,EAAE,kBAAkB,CAAC,WAAW;QAClD,YAAY,EAAE,cAAc,CAAC,SAAS;QACtC,gBAAgB,EAAE,kBAAkB,CAAC,SAAS;QAC9C,IAAI;KACL,CAAC,CAAC;IACH,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,0BAA0B,CAAC;QAC/B,QAAQ;QACR,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;KACrC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,QAA2B,EAC3B,aAAqB,EACrB,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAC/C,aAAa,EACb,sBAAsB,EACtB,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CACpD,QAAQ,EACR,cAAc,CACf,CAAC;IACF,IAAI,CAAC,mBAAmB;QAAE,OAAO;IAEjC,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAClC,MAAM,EACJ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,4BAA4B,EAC5B,eAAe,EACf,eAAe,EACf,yBAAyB,GAC1B,GAAG,MAAM,wCAAwC,CAChD,QAAQ,EACR,cAAc,EACd,MAAM,CACP,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnE,WAAW,EAAE,CAAC;IAEd,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC;QAChC,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,aAAa;QAC3B,sBAAsB,EAAE,eAAe;QACvC,kBAAkB,EAAE,kBAAkB;QACtC,4BAA4B,EAAE,4BAA4B;QAC1D,sBAAsB,EAAE,eAAe;QACvC,gCAAgC,EAAE,yBAAyB;QAC3D,cAAc,EAAE,cAAc,CAAC,WAAW;QAC1C,kBAAkB,EAAE,kBAAkB,CAAC,WAAW;QAClD,YAAY,EAAE,cAAc,CAAC,SAAS;QACtC,gBAAgB,EAAE,kBAAkB,CAAC,SAAS;QAC9C,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IACH,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,0BAA0B,CAAC;QAC/B,QAAQ;QACR,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,CAAC,aAAa,CAAC;KACzB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,QAA2B,EAC3B,cAAsB,EACtB,MAAmC,EACnC,EAAE;IACF,MAAM,IAAI,GAAG,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE3D,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CACpD,QAAQ,EACR,cAAc,CACf,CAAC;IACF,IAAI,CAAC,mBAAmB;QAAE,OAAO;IAEjC,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAClC,MAAM,EACJ,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,4BAA4B,EAC5B,eAAe,EACf,eAAe,EACf,yBAAyB,GAC1B,GAAG,MAAM,wCAAwC,CAChD,QAAQ,EACR,cAAc,EACd,MAAM,CACP,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnE,WAAW,EAAE,CAAC;IAEd,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC;QAChC,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,cAAc;QAC5B,sBAAsB,EAAE,eAAe;QACvC,kBAAkB,EAAE,kBAAkB;QACtC,4BAA4B,EAAE,4BAA4B;QAC1D,sBAAsB,EAAE,eAAe;QACvC,gCAAgC,EAAE,yBAAyB;QAC3D,cAAc,EAAE,cAAc,CAAC,WAAW;QAC1C,kBAAkB,EAAE,kBAAkB,CAAC,WAAW;QAClD,YAAY,EAAE,cAAc,CAAC,SAAS;QACtC,gBAAgB,EAAE,kBAAkB,CAAC,SAAS;QAC9C,IAAI;KACL,CAAC,CAAC;IACH,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,0BAA0B,CAAC;QAC/B,QAAQ;QACR,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,CAAC,cAAc,CAAC;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Address } from 'viem';
|
|
2
|
-
import { DashboardContract } from '../../contracts/index.js';
|
|
3
|
-
export declare const checkMintingCapacity: (contract: DashboardContract, amountOfShares: bigint) => Promise<boolean>;
|
|
4
|
-
export declare const checkLiabilityShares: (contract: DashboardContract, amountOfShares: bigint) => Promise<boolean>;
|
|
5
|
-
export declare const confirmLock: (amountOfSharesWei: bigint, dashboardAddress: Address) => Promise<boolean>;
|
|
6
|
-
export declare const checkIsReportFresh: (contract: DashboardContract) => Promise<boolean>;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { formatEther } from 'viem';
|
|
2
|
-
import { callReadMethodSilent, confirmOperation, logInfo, getRequiredLockByShares, logError, } from '../index.js';
|
|
3
|
-
import { getDashboardContract, getStakingVaultContract, } from '../../contracts/index.js';
|
|
4
|
-
import { getAccount } from '../../providers/index.js';
|
|
5
|
-
import { submitReport } from './report.js';
|
|
6
|
-
export const checkMintingCapacity = async (contract, amountOfShares) => {
|
|
7
|
-
const remainingMintingCapacity = await callReadMethodSilent(contract, 'remainingMintingCapacity', [0n]);
|
|
8
|
-
if (remainingMintingCapacity < amountOfShares) {
|
|
9
|
-
logError(`Cannot mint more shares than the vault can mint. Mintable: ${formatEther(remainingMintingCapacity)}`);
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
return true;
|
|
13
|
-
};
|
|
14
|
-
export const checkLiabilityShares = async (contract, amountOfShares) => {
|
|
15
|
-
const liabilityShares = await callReadMethodSilent(contract, 'liabilityShares');
|
|
16
|
-
if (amountOfShares > liabilityShares) {
|
|
17
|
-
logError('Cannot burn more shares than the liability shares');
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
return true;
|
|
21
|
-
};
|
|
22
|
-
export const confirmLock = async (amountOfSharesWei, dashboardAddress) => {
|
|
23
|
-
const contract = getDashboardContract(dashboardAddress);
|
|
24
|
-
const { requiredLock, currentLock } = await getRequiredLockByShares(dashboardAddress, formatEther(amountOfSharesWei));
|
|
25
|
-
const currentWallet = getAccount();
|
|
26
|
-
const LOCK_ROLE = await callReadMethodSilent(contract, 'LOCK_ROLE');
|
|
27
|
-
const currentLockRoles = await callReadMethodSilent(contract, 'getRoleMembers', [LOCK_ROLE]);
|
|
28
|
-
const isLockRole = currentLockRoles.includes(currentWallet.address);
|
|
29
|
-
if (requiredLock > currentLock) {
|
|
30
|
-
logInfo(`Required lock: ${formatEther(requiredLock)} shares, current lock: ${formatEther(currentLock)} shares.
|
|
31
|
-
Auto-lock will be applied to enable minting the required number of shares. LOCK_ROLE is required.`);
|
|
32
|
-
if (!isLockRole) {
|
|
33
|
-
logError("You don't have a LOCK_ROLE. Please add yourself to the LOCK_ROLE.");
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
const confirm = await confirmOperation('Do you want to continue?');
|
|
37
|
-
if (!confirm)
|
|
38
|
-
return confirm;
|
|
39
|
-
}
|
|
40
|
-
return true;
|
|
41
|
-
};
|
|
42
|
-
export const checkIsReportFresh = async (contract) => {
|
|
43
|
-
const vault = await callReadMethodSilent(contract, 'stakingVault');
|
|
44
|
-
const vaultContract = getStakingVaultContract(vault);
|
|
45
|
-
const isReportFresh = await callReadMethodSilent(vaultContract, 'isReportFresh');
|
|
46
|
-
if (!isReportFresh) {
|
|
47
|
-
logInfo('The report is not fresh');
|
|
48
|
-
const confirm = await confirmOperation('Do you want to submit a fresh report?');
|
|
49
|
-
if (!confirm)
|
|
50
|
-
return false;
|
|
51
|
-
await submitReport({ vault });
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
logInfo('The report is fresh');
|
|
55
|
-
return isReportFresh;
|
|
56
|
-
};
|
|
57
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../utils/commands/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAE,MAAM,MAAM,CAAC;AAE5C,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,OAAO,EACP,uBAAuB,EACvB,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAEL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,QAA2B,EAC3B,cAAsB,EACtB,EAAE;IACF,MAAM,wBAAwB,GAAG,MAAM,oBAAoB,CACzD,QAAQ,EACR,0BAA0B,EAC1B,CAAC,EAAE,CAAC,CACL,CAAC;IACF,IAAI,wBAAwB,GAAG,cAAc,EAAE,CAAC;QAC9C,QAAQ,CACN,8DAA8D,WAAW,CAAC,wBAAwB,CAAC,EAAE,CACtG,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,QAA2B,EAC3B,cAAsB,EACtB,EAAE;IACF,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAChD,QAAQ,EACR,iBAAiB,CAClB,CAAC;IAEF,IAAI,cAAc,GAAG,eAAe,EAAE,CAAC;QACrC,QAAQ,CAAC,mDAAmD,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,iBAAyB,EACzB,gBAAyB,EACzB,EAAE;IACF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACxD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,uBAAuB,CACjE,gBAAgB,EAChB,WAAW,CAAC,iBAAiB,CAAC,CAC/B,CAAC;IACF,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC;IAEnC,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CACjD,QAAQ,EACR,gBAAgB,EAChB,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;QAC/B,OAAO,CACL,kBAAkB,WAAW,CAAC,YAAY,CAAC,0BAA0B,WAAW,CAAC,WAAW,CAAC;wGACK,CACnG,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,QAAQ,CACN,mEAAmE,CACpE,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAA2B,EAAE,EAAE;IACtE,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAC9C,aAAa,EACb,eAAe,CAChB,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,uCAAuC,CACxC,CAAC;QACF,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAE/B,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { formatEther } from 'viem';
|
|
2
|
-
import Table from 'cli-table3';
|
|
3
|
-
import { confirmOperation, logInfo } from '../index.js';
|
|
4
|
-
const TABLE_PARAMS = {
|
|
5
|
-
head: ['Type', 'Value'],
|
|
6
|
-
colAligns: ['left', 'right', 'right'],
|
|
7
|
-
style: { head: ['gray'], compact: true },
|
|
8
|
-
};
|
|
9
|
-
export const confirmMint = async (props) => {
|
|
10
|
-
const { vaultAddress, recipient, amountOfMint, amountOfMintInStethWei, newLiabilityShares, newLiabilitySharesInStethWei, currentLiabilityShares, currentLiabilitySharesInStethWei, newHealthRatio, currentHealthRatio, newIsHealthy, currentIsHealthy, type, } = props;
|
|
11
|
-
const amountOfMintInShares = formatEther(amountOfMint);
|
|
12
|
-
const amountOfMintInSteth = formatEther(amountOfMintInStethWei);
|
|
13
|
-
const isShares = type === 'shares';
|
|
14
|
-
const isWsteth = type === 'wstETH';
|
|
15
|
-
const value = isShares || isWsteth ? amountOfMintInShares : amountOfMintInSteth;
|
|
16
|
-
const tableCurrent = new Table(TABLE_PARAMS);
|
|
17
|
-
logInfo(`Current vault ${vaultAddress} health:`);
|
|
18
|
-
tableCurrent.push(['Vault Address', vaultAddress], ['Current Liability, wei', currentLiabilityShares], ['Current Liability, Shares', formatEther(currentLiabilityShares)], ['Current Liability, stETH', formatEther(currentLiabilitySharesInStethWei)], ['Current Health Ratio', `${currentHealthRatio.toFixed(2)}%`], ['Current Is Healthy', currentIsHealthy]);
|
|
19
|
-
console.info(tableCurrent.toString());
|
|
20
|
-
const tableNew = new Table(TABLE_PARAMS);
|
|
21
|
-
logInfo(`Minting ${value} ${type} to ${recipient}:`);
|
|
22
|
-
tableNew.push(['Vault Address', vaultAddress], ['New Liability, wei', newLiabilityShares], ['New Liability, Shares', formatEther(newLiabilityShares)], ['New Liability, stETH', formatEther(newLiabilitySharesInStethWei)], ['New Health Ratio', `${newHealthRatio.toFixed(2)}%`], ['New Is Healthy', newIsHealthy]);
|
|
23
|
-
console.info(tableNew.toString());
|
|
24
|
-
const confirm = await confirmOperation(`Are you sure you want to mint ${value} ${type} to ${recipient}?`);
|
|
25
|
-
return confirm;
|
|
26
|
-
};
|
|
27
|
-
export const confirmBurn = async (props) => {
|
|
28
|
-
const { vaultAddress, amountOfBurn, amountOfBurnInStethWei, newLiabilityShares, newLiabilitySharesInStethWei, currentLiabilityShares, currentLiabilitySharesInStethWei, newHealthRatio, currentHealthRatio, newIsHealthy, currentIsHealthy, type, } = props;
|
|
29
|
-
const amountOfBurnInShares = formatEther(amountOfBurn);
|
|
30
|
-
const amountOfBurnInSteth = formatEther(amountOfBurnInStethWei);
|
|
31
|
-
const isShares = type === 'shares';
|
|
32
|
-
const isWsteth = type === 'wstETH';
|
|
33
|
-
const value = isShares || isWsteth ? amountOfBurnInShares : amountOfBurnInSteth;
|
|
34
|
-
const tableCurrent = new Table(TABLE_PARAMS);
|
|
35
|
-
logInfo(`Current vault ${vaultAddress} health:`);
|
|
36
|
-
tableCurrent.push(['Vault Address', vaultAddress], ['Current Liability, wei', currentLiabilityShares], ['Current Liability, Shares', formatEther(currentLiabilityShares)], ['Current Liability, stETH', formatEther(currentLiabilitySharesInStethWei)], ['Current Health Ratio', `${currentHealthRatio.toFixed(2)}%`], ['Current Is Healthy', currentIsHealthy]);
|
|
37
|
-
console.info(tableCurrent.toString());
|
|
38
|
-
const tableNew = new Table(TABLE_PARAMS);
|
|
39
|
-
logInfo(`Burning ${value} ${type} for ${vaultAddress}:`);
|
|
40
|
-
tableNew.push(['Vault Address', vaultAddress], ['New Liability, wei', newLiabilityShares], ['New Liability, Shares', formatEther(newLiabilityShares)], ['New Liability, stETH', formatEther(newLiabilitySharesInStethWei)], ['New Health Ratio', `${newHealthRatio.toFixed(2)}%`], ['New Is Healthy', newIsHealthy]);
|
|
41
|
-
console.info(tableNew.toString());
|
|
42
|
-
const confirm = await confirmOperation(`Are you sure you want to burn ${value} ${type} for ${vaultAddress}?`);
|
|
43
|
-
return confirm;
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=dashboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../utils/prompts/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { encodeAbiParameters, keccak256, concatHex } from 'viem';
|
|
2
|
-
export const DOUBLE_HASH = (data) => keccak256(keccak256(data));
|
|
3
|
-
export const hashNode = (a, b) => {
|
|
4
|
-
const [left, right] = a < b ? [a, b] : [b, a];
|
|
5
|
-
return keccak256(concatHex([left, right]));
|
|
6
|
-
};
|
|
7
|
-
const encoding = [
|
|
8
|
-
{ type: 'address', name: 'vault_address' },
|
|
9
|
-
{ type: 'uint256', name: 'total_value_wei' },
|
|
10
|
-
{ type: 'uint256', name: 'in_out_delta' },
|
|
11
|
-
{ type: 'uint256', name: 'fee' },
|
|
12
|
-
{ type: 'uint256', name: 'liability_shares' },
|
|
13
|
-
];
|
|
14
|
-
const getLeafInput = (vault) => [
|
|
15
|
-
vault.vault_address,
|
|
16
|
-
BigInt(vault.total_value_wei),
|
|
17
|
-
BigInt(vault.in_out_delta),
|
|
18
|
-
BigInt(vault.fee),
|
|
19
|
-
BigInt(vault.liability_shares),
|
|
20
|
-
];
|
|
21
|
-
export const getReportLeaf = (input) => {
|
|
22
|
-
const encoded = encodeAbiParameters(encoding, getLeafInput(input));
|
|
23
|
-
const leaf = DOUBLE_HASH(encoded);
|
|
24
|
-
return leaf;
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=report-proof.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report-proof.js","sourceRoot":"","sources":["../../../utils/proof/report-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAO,SAAS,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAS,EAAO,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,CAAM,EAAO,EAAE;IAC9C,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;IAC1C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE;IACzC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE;CAC9C,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAqB,EAAE,EAAE,CAAC;IAC9C,KAAK,CAAC,aAAa;IACnB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;IAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACjB,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAqB,EAAO,EAAE;IAC1D,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|