@lidofinance/lsv-cli 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abi/Dashboard.d.ts +23 -3
- package/dist/abi/Dashboard.js +8 -3
- package/dist/abi/Dashboard.js.map +1 -1
- package/dist/abi/LazyOracle.d.ts +364 -0
- package/dist/abi/LazyOracle.js +2 -0
- package/dist/abi/LazyOracle.js.map +1 -1
- package/dist/abi/OperatorGrid.d.ts +24 -0
- package/dist/abi/OperatorGrid.js +16 -0
- package/dist/abi/OperatorGrid.js.map +1 -1
- package/dist/abi/ValidatorConsolidationRequests.d.ts +121 -0
- package/dist/abi/ValidatorConsolidationRequests.js +159 -0
- package/dist/abi/ValidatorConsolidationRequests.js.map +1 -0
- package/dist/abi/VaultFactory.d.ts +16 -0
- package/dist/abi/VaultViewer.d.ts +0 -14
- package/dist/abi/VaultViewer.js +0 -19
- package/dist/abi/VaultViewer.js.map +1 -1
- package/dist/abi/defi-wrapper/Distributor.d.ts +40 -2
- package/dist/abi/defi-wrapper/Distributor.js +52 -2
- package/dist/abi/defi-wrapper/Distributor.js.map +1 -1
- package/dist/abi/defi-wrapper/Factory.d.ts +973 -550
- package/dist/abi/defi-wrapper/Factory.js +720 -763
- package/dist/abi/defi-wrapper/Factory.js.map +1 -1
- package/dist/abi/defi-wrapper/StvPool.d.ts +121 -325
- package/dist/abi/defi-wrapper/StvPool.js +143 -413
- package/dist/abi/defi-wrapper/StvPool.js.map +1 -1
- package/dist/abi/defi-wrapper/StvStETHPool.d.ts +398 -381
- package/dist/abi/defi-wrapper/StvStETHPool.js +448 -433
- package/dist/abi/defi-wrapper/StvStETHPool.js.map +1 -1
- package/dist/abi/defi-wrapper/WithdrawalQueue.d.ts +309 -175
- package/dist/abi/defi-wrapper/WithdrawalQueue.js +381 -206
- package/dist/abi/defi-wrapper/WithdrawalQueue.js.map +1 -1
- package/dist/abi/defi-wrapper/index.d.ts +0 -1
- package/dist/abi/defi-wrapper/index.js +0 -1
- package/dist/abi/defi-wrapper/index.js.map +1 -1
- package/dist/abi/index.d.ts +1 -0
- package/dist/abi/index.js +1 -0
- package/dist/abi/index.js.map +1 -1
- package/dist/configs/constants.d.ts +44 -2
- package/dist/configs/constants.js +2 -2
- package/dist/configs/constants.js.map +1 -1
- package/dist/configs/deployed.d.ts +2 -2
- package/dist/configs/deployed.js +48 -6
- package/dist/configs/deployed.js.map +1 -1
- package/dist/configs/utils.d.ts +1 -0
- package/dist/configs/utils.js +8 -0
- package/dist/configs/utils.js.map +1 -1
- package/dist/contracts/dashboard-impl.d.ts +2 -2
- package/dist/contracts/dashboard-impl.js +3 -2
- package/dist/contracts/dashboard-impl.js.map +1 -1
- package/dist/contracts/dashboard.d.ts +2 -2
- package/dist/contracts/dashboard.js +3 -2
- package/dist/contracts/dashboard.js.map +1 -1
- package/dist/contracts/defi-wrapper/distributor.d.ts +1 -1
- package/dist/contracts/defi-wrapper/distributor.js +3 -2
- package/dist/contracts/defi-wrapper/distributor.js.map +1 -1
- package/dist/contracts/defi-wrapper/factory.d.ts +1 -1
- package/dist/contracts/defi-wrapper/factory.js +3 -2
- package/dist/contracts/defi-wrapper/factory.js.map +1 -1
- package/dist/contracts/defi-wrapper/index.d.ts +0 -1
- package/dist/contracts/defi-wrapper/index.js +0 -1
- package/dist/contracts/defi-wrapper/index.js.map +1 -1
- package/dist/contracts/defi-wrapper/stv-pool.d.ts +2 -2
- package/dist/contracts/defi-wrapper/stv-pool.js +3 -2
- package/dist/contracts/defi-wrapper/stv-pool.js.map +1 -1
- package/dist/contracts/defi-wrapper/stv-steth-pool.d.ts +1 -1
- package/dist/contracts/defi-wrapper/stv-steth-pool.js +3 -2
- package/dist/contracts/defi-wrapper/stv-steth-pool.js.map +1 -1
- package/dist/contracts/defi-wrapper/withdrawal-queue.d.ts +1 -1
- package/dist/contracts/defi-wrapper/withdrawal-queue.js +3 -2
- package/dist/contracts/defi-wrapper/withdrawal-queue.js.map +1 -1
- package/dist/contracts/index.d.ts +1 -0
- package/dist/contracts/index.js +1 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/lazy-oracle.js +3 -2
- package/dist/contracts/lazy-oracle.js.map +1 -1
- package/dist/contracts/locator.d.ts +3 -9655
- package/dist/contracts/locator.js +4 -3
- package/dist/contracts/locator.js.map +1 -1
- package/dist/contracts/operator-grid.d.ts +1 -1
- package/dist/contracts/operator-grid.js +3 -2
- package/dist/contracts/operator-grid.js.map +1 -1
- package/dist/contracts/pdg.js +3 -2
- package/dist/contracts/pdg.js.map +1 -1
- package/dist/contracts/steth.d.ts +54 -54
- package/dist/contracts/steth.js +3 -2
- package/dist/contracts/steth.js.map +1 -1
- package/dist/contracts/validator-consolidation-requests.d.ts +5 -0
- package/dist/contracts/validator-consolidation-requests.js +13 -0
- package/dist/contracts/validator-consolidation-requests.js.map +1 -0
- package/dist/contracts/vault-factory.d.ts +3 -28346
- package/dist/contracts/vault-factory.js +4 -3
- package/dist/contracts/vault-factory.js.map +1 -1
- package/dist/contracts/vault-hub.js +3 -2
- package/dist/contracts/vault-hub.js.map +1 -1
- package/dist/contracts/vault-viewer.d.ts +3 -9661
- package/dist/contracts/vault-viewer.js +9 -7
- package/dist/contracts/vault-viewer.js.map +1 -1
- package/dist/contracts/vault.d.ts +2 -2
- package/dist/contracts/vault.js +3 -2
- package/dist/contracts/vault.js.map +1 -1
- package/dist/contracts/wsteth.d.ts +3 -24690
- package/dist/contracts/wsteth.js +4 -3
- package/dist/contracts/wsteth.js.map +1 -1
- package/dist/features/consolidation.d.ts +18 -0
- package/dist/features/consolidation.js +199 -0
- package/dist/features/consolidation.js.map +1 -0
- package/dist/features/defi-wrapper/create-vault.d.ts +17 -0
- package/dist/features/defi-wrapper/create-vault.js +137 -0
- package/dist/features/defi-wrapper/create-vault.js.map +1 -0
- package/dist/features/defi-wrapper/defi-wrapper-factory.d.ts +112 -0
- package/dist/features/defi-wrapper/defi-wrapper-factory.js +228 -0
- package/dist/features/defi-wrapper/defi-wrapper-factory.js.map +1 -0
- package/dist/features/defi-wrapper/index.d.ts +3 -0
- package/dist/features/defi-wrapper/index.js +4 -0
- package/dist/features/defi-wrapper/index.js.map +1 -0
- package/dist/features/defi-wrapper/pool-info.d.ts +35 -0
- package/dist/features/defi-wrapper/pool-info.js +97 -0
- package/dist/features/defi-wrapper/pool-info.js.map +1 -0
- package/dist/features/deposits/check-bls-deposits.js +2 -2
- package/dist/features/deposits/check-bls-deposits.js.map +1 -1
- package/dist/features/deposits/index.d.ts +1 -0
- package/dist/features/deposits/index.js +1 -0
- package/dist/features/deposits/index.js.map +1 -1
- package/dist/features/deposits/make-pdg-proof.js +1 -1
- package/dist/features/deposits/make-pdg-proof.js.map +1 -1
- package/dist/features/deposits/no-pdg.d.ts +1 -1
- package/dist/features/deposits/no-pdg.js +6 -3
- package/dist/features/deposits/no-pdg.js.map +1 -1
- package/dist/features/deposits/pdg.d.ts +2 -0
- package/dist/features/deposits/pdg.js +18 -0
- package/dist/features/deposits/pdg.js.map +1 -0
- package/dist/features/dev-tools/impersonate.d.ts +14 -0
- package/dist/features/dev-tools/impersonate.js +64 -0
- package/dist/features/dev-tools/impersonate.js.map +1 -0
- package/dist/features/dev-tools/index.d.ts +1 -0
- package/dist/features/dev-tools/index.js +2 -0
- package/dist/features/dev-tools/index.js.map +1 -0
- package/dist/features/index.d.ts +4 -1
- package/dist/features/index.js +4 -1
- package/dist/features/index.js.map +1 -1
- package/dist/features/metrics.d.ts +4 -0
- package/dist/features/metrics.js +48 -0
- package/dist/features/metrics.js.map +1 -0
- package/dist/features/pdg.js +4 -0
- package/dist/features/pdg.js.map +1 -1
- package/dist/features/utils/get-boolean.d.ts +1 -0
- package/dist/features/utils/get-boolean.js +13 -0
- package/dist/features/utils/get-boolean.js.map +1 -0
- package/dist/features/utils/index.d.ts +1 -0
- package/dist/features/utils/index.js +1 -0
- package/dist/features/utils/index.js.map +1 -1
- package/dist/features/utils/quarantine.js +2 -0
- package/dist/features/utils/quarantine.js.map +1 -1
- package/dist/features/utils/report-fresh.js +2 -3
- package/dist/features/utils/report-fresh.js.map +1 -1
- package/dist/features/vault-factory.js +2 -2
- package/dist/features/vault-factory.js.map +1 -1
- package/dist/features/vault-operations/create-vault.d.ts +4 -2
- package/dist/features/vault-operations/create-vault.js +11 -3
- package/dist/features/vault-operations/create-vault.js.map +1 -1
- package/dist/features/vault-operations/dashboard-by-vault.js +4 -4
- package/dist/features/vault-operations/dashboard-by-vault.js.map +1 -1
- package/dist/features/vault-operations/vault-info.js +1 -1
- package/dist/features/vault-operations/vault-info.js.map +1 -1
- package/dist/features/vault-operations/vault-overview.js +1 -1
- package/dist/features/vault-operations/vault-overview.js.map +1 -1
- package/dist/features/vault-operations/vault-roles.js +3 -0
- package/dist/features/vault-operations/vault-roles.js.map +1 -1
- package/dist/features/vault-operations/vaults-by-role.js +29 -10
- package/dist/features/vault-operations/vaults-by-role.js.map +1 -1
- package/dist/features/vault.js +4 -2
- package/dist/features/vault.js.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/programs/account/read.js +1 -1
- package/dist/programs/account/read.js.map +1 -1
- package/dist/programs/account/write.js +14 -0
- package/dist/programs/account/write.js.map +1 -1
- package/dist/programs/contracts/dashboard/read.js +7 -7
- package/dist/programs/contracts/dashboard/read.js.map +1 -1
- package/dist/programs/contracts/dashboard/write.js +42 -42
- package/dist/programs/contracts/dashboard/write.js.map +1 -1
- package/dist/programs/contracts/hub/config.js +0 -10
- package/dist/programs/contracts/hub/config.js.map +1 -1
- package/dist/programs/contracts/hub/read.js +63 -2
- package/dist/programs/contracts/hub/read.js.map +1 -1
- package/dist/programs/contracts/hub/write.js +1 -1
- package/dist/programs/contracts/hub/write.js.map +1 -1
- package/dist/programs/contracts/pdg/read.js +2 -1
- package/dist/programs/contracts/pdg/read.js.map +1 -1
- package/dist/programs/contracts/pdg/write.js +37 -3
- package/dist/programs/contracts/pdg/write.js.map +1 -1
- package/dist/programs/contracts/vault/write.js +16 -16
- package/dist/programs/contracts/vault/write.js.map +1 -1
- package/dist/programs/contracts/vault-factory/write.js +2 -2
- package/dist/programs/contracts/vault-factory/write.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/distributor/read.js +1 -1
- package/dist/programs/defi-wrapper/contracts/distributor/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/distributor/write.js +3 -3
- package/dist/programs/defi-wrapper/contracts/distributor/write.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/factory/read.js +2 -8
- package/dist/programs/defi-wrapper/contracts/factory/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/factory/write.js +90 -273
- package/dist/programs/defi-wrapper/contracts/factory/write.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/index.d.ts +0 -1
- package/dist/programs/defi-wrapper/contracts/index.js +0 -1
- package/dist/programs/defi-wrapper/contracts/index.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/stv-pool/config.js +22 -32
- package/dist/programs/defi-wrapper/contracts/stv-pool/config.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/stv-pool/read.js +17 -24
- package/dist/programs/defi-wrapper/contracts/stv-pool/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/stv-pool/write.js +25 -174
- package/dist/programs/defi-wrapper/contracts/stv-pool/write.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/config.js +0 -90
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/config.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js +16 -23
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/write.js +34 -231
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/write.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/config.js +1 -91
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/config.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js +8 -27
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js +55 -24
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js.map +1 -1
- package/dist/programs/defi-wrapper/index.d.ts +1 -0
- package/dist/programs/defi-wrapper/index.js +1 -0
- package/dist/programs/defi-wrapper/index.js.map +1 -1
- package/dist/programs/defi-wrapper/use-cases/health/index.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/health/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/health/main.js +6 -0
- package/dist/programs/defi-wrapper/use-cases/health/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/health/read.js +338 -0
- package/dist/programs/defi-wrapper/use-cases/health/read.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/health/utils.d.ts +56 -0
- package/dist/programs/defi-wrapper/use-cases/health/utils.js +389 -0
- package/dist/programs/defi-wrapper/use-cases/health/utils.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/health/write.js +254 -0
- package/dist/programs/defi-wrapper/use-cases/health/write.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/use-cases/index.js +4 -0
- package/dist/programs/defi-wrapper/use-cases/index.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/main.js +6 -0
- package/dist/programs/defi-wrapper/use-cases/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js +143 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.js +5 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/main.js +6 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js +130 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js +13 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js.map +1 -0
- package/dist/programs/dev-tools/anvil/index.d.ts +2 -0
- package/dist/programs/dev-tools/anvil/index.js +3 -0
- package/dist/programs/dev-tools/anvil/index.js.map +1 -0
- package/dist/programs/dev-tools/anvil/main.d.ts +1 -0
- package/dist/programs/dev-tools/anvil/main.js +5 -0
- package/dist/programs/dev-tools/anvil/main.js.map +1 -0
- package/dist/programs/dev-tools/anvil/write.d.ts +1 -0
- package/dist/programs/dev-tools/anvil/write.js +122 -0
- package/dist/programs/dev-tools/anvil/write.js.map +1 -0
- package/dist/programs/dev-tools/defi-wrapper/index.d.ts +2 -0
- package/dist/programs/dev-tools/defi-wrapper/index.js +3 -0
- package/dist/programs/dev-tools/defi-wrapper/index.js.map +1 -0
- package/dist/programs/dev-tools/defi-wrapper/main.d.ts +1 -0
- package/dist/programs/dev-tools/defi-wrapper/main.js +6 -0
- package/dist/programs/dev-tools/defi-wrapper/main.js.map +1 -0
- package/dist/programs/dev-tools/defi-wrapper/write.d.ts +1 -0
- package/dist/programs/dev-tools/defi-wrapper/write.js +77 -0
- package/dist/programs/dev-tools/defi-wrapper/write.js.map +1 -0
- package/dist/programs/dev-tools/index.d.ts +3 -0
- package/dist/programs/dev-tools/index.js +4 -0
- package/dist/programs/dev-tools/index.js.map +1 -0
- package/dist/programs/dev-tools/main.d.ts +1 -0
- package/dist/programs/dev-tools/main.js +6 -0
- package/dist/programs/dev-tools/main.js.map +1 -0
- package/dist/programs/index.d.ts +1 -0
- package/dist/programs/index.js +1 -0
- package/dist/programs/index.js.map +1 -1
- package/dist/programs/pdg-helpers.js +19 -15
- package/dist/programs/pdg-helpers.js.map +1 -1
- package/dist/programs/use-cases/consolidation/index.d.ts +2 -0
- package/dist/programs/use-cases/consolidation/index.js +3 -0
- package/dist/programs/use-cases/consolidation/index.js.map +1 -0
- package/dist/programs/use-cases/consolidation/main.d.ts +1 -0
- package/dist/programs/use-cases/consolidation/main.js +5 -0
- package/dist/programs/use-cases/consolidation/main.js.map +1 -0
- package/dist/programs/use-cases/consolidation/write.d.ts +1 -0
- package/dist/programs/use-cases/consolidation/write.js +78 -0
- package/dist/programs/use-cases/consolidation/write.js.map +1 -0
- package/dist/programs/use-cases/deposits/read.js +4 -0
- package/dist/programs/use-cases/deposits/read.js.map +1 -1
- package/dist/programs/use-cases/deposits/write.js +41 -11
- package/dist/programs/use-cases/deposits/write.js.map +1 -1
- package/dist/programs/use-cases/index.d.ts +1 -0
- package/dist/programs/use-cases/index.js +1 -0
- package/dist/programs/use-cases/index.js.map +1 -1
- package/dist/programs/use-cases/metrics/read.js +9 -20
- package/dist/programs/use-cases/metrics/read.js.map +1 -1
- package/dist/programs/use-cases/vault-operations/create-vault.js +2 -2
- package/dist/programs/use-cases/vault-operations/create-vault.js.map +1 -1
- package/dist/providers/wallet.d.ts +14539 -63
- package/dist/providers/wallet.js +14 -4
- package/dist/providers/wallet.js.map +1 -1
- package/dist/tests/utils/bigInt.test.d.ts +1 -0
- package/dist/tests/utils/bigInt.test.js +61 -0
- package/dist/tests/utils/bigInt.test.js.map +1 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/utils/arguments.d.ts +4 -0
- package/dist/utils/arguments.js +40 -1
- package/dist/utils/arguments.js.map +1 -1
- package/dist/utils/bigInt.d.ts +2 -0
- package/dist/utils/bigInt.js +3 -0
- package/dist/utils/bigInt.js.map +1 -0
- package/dist/utils/bls.d.ts +2 -2
- package/dist/utils/bls.js +8 -7
- package/dist/utils/bls.js.map +1 -1
- package/dist/utils/cache.d.ts +30 -0
- package/dist/utils/cache.js +140 -3
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/calculate-overview-v2.js +1 -2
- package/dist/utils/calculate-overview-v2.js.map +1 -1
- package/dist/utils/calculate-overview.js +1 -2
- package/dist/utils/calculate-overview.js.map +1 -1
- package/dist/utils/charts/blessed/charts-apr.js +8 -18
- package/dist/utils/charts/blessed/charts-apr.js.map +1 -1
- package/dist/utils/charts/blessed/charts-rewards.js +7 -17
- package/dist/utils/charts/blessed/charts-rewards.js.map +1 -1
- package/dist/utils/charts/blessed/datasets/prepare-metrics.d.ts +5 -5
- package/dist/utils/charts/blessed/datasets/prepare-metrics.js +11 -11
- package/dist/utils/charts/blessed/datasets/prepare-metrics.js.map +1 -1
- package/dist/utils/charts/simple/simple-charts.js +8 -18
- package/dist/utils/charts/simple/simple-charts.js.map +1 -1
- package/dist/utils/commands/confirmations.js +1 -1
- package/dist/utils/commands/confirmations.js.map +1 -1
- package/dist/utils/commands/report.d.ts +1 -1
- package/dist/utils/commands/report.js +3 -2
- package/dist/utils/commands/report.js.map +1 -1
- package/dist/utils/consolidation/checks.d.ts +7 -0
- package/dist/utils/consolidation/checks.js +40 -0
- package/dist/utils/consolidation/checks.js.map +1 -0
- package/dist/utils/consolidation/confirms.d.ts +4 -0
- package/dist/utils/consolidation/confirms.js +41 -0
- package/dist/utils/consolidation/confirms.js.map +1 -0
- package/dist/utils/consolidation/index.d.ts +6 -0
- package/dist/utils/consolidation/index.js +7 -0
- package/dist/utils/consolidation/index.js.map +1 -0
- package/dist/utils/consolidation/logs.d.ts +3 -0
- package/dist/utils/consolidation/logs.js +41 -0
- package/dist/utils/consolidation/logs.js.map +1 -0
- package/dist/utils/consolidation/pubkeys.d.ts +8 -0
- package/dist/utils/consolidation/pubkeys.js +40 -0
- package/dist/utils/consolidation/pubkeys.js.map +1 -0
- package/dist/utils/consolidation/types.d.ts +11 -0
- package/dist/utils/consolidation/types.js +2 -0
- package/dist/utils/consolidation/types.js.map +1 -0
- package/dist/utils/consolidation/validator-info.d.ts +4 -0
- package/dist/utils/consolidation/validator-info.js +34 -0
- package/dist/utils/consolidation/validator-info.js.map +1 -0
- package/dist/utils/consolidation/validators-checks.d.ts +10 -0
- package/dist/utils/consolidation/validators-checks.js +58 -0
- package/dist/utils/consolidation/validators-checks.js.map +1 -0
- package/dist/utils/fetchCL.d.ts +35 -14
- package/dist/utils/fetchCL.js +78 -5
- package/dist/utils/fetchCL.js.map +1 -1
- package/dist/utils/health/health-utils.d.ts +54 -54
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/read-programs-by-abi.d.ts +1 -1
- package/dist/utils/read-programs-by-abi.js +4 -18
- package/dist/utils/read-programs-by-abi.js.map +1 -1
- package/dist/utils/report/report.js +1 -1
- package/dist/utils/report/report.js.map +1 -1
- package/dist/utils/report/statistic-data.js +3 -3
- package/dist/utils/report/statistic-data.js.map +1 -1
- package/dist/utils/statistic/report-statistic.d.ts +6 -5
- package/dist/utils/statistic/report-statistic.js +15 -16
- package/dist/utils/statistic/report-statistic.js.map +1 -1
- package/dist/utils/transactions/tx-private-key.js +14 -9
- package/dist/utils/transactions/tx-private-key.js.map +1 -1
- package/dist/utils/transactions/tx-wc.d.ts +5 -3
- package/dist/utils/transactions/tx-wc.js +21 -10
- package/dist/utils/transactions/tx-wc.js.map +1 -1
- package/dist/utils/transactions/types.d.ts +4 -2
- package/dist/utils/wallet-connect.js +3 -3
- package/dist/utils/wallet-connect.js.map +1 -1
- package/dist/version/index.js +1 -1
- package/package.json +2 -2
- package/dist/abi/defi-wrapper/StvStrategyPool.d.ts +0 -1769
- package/dist/abi/defi-wrapper/StvStrategyPool.js +0 -2319
- package/dist/abi/defi-wrapper/StvStrategyPool.js.map +0 -1
- package/dist/contracts/defi-wrapper/stv-strategy-pool.d.ts +0 -4
- package/dist/contracts/defi-wrapper/stv-strategy-pool.js +0 -11
- package/dist/contracts/defi-wrapper/stv-strategy-pool.js.map +0 -1
- package/dist/features/defi-wrapper-factory.d.ts +0 -18
- package/dist/features/defi-wrapper-factory.js +0 -28
- package/dist/features/defi-wrapper-factory.js.map +0 -1
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/config.d.ts +0 -3
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/config.js +0 -214
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/config.js.map +0 -1
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/index.js.map +0 -1
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/main.d.ts +0 -1
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/main.js +0 -6
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/main.js.map +0 -1
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/read.js +0 -77
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/read.js.map +0 -1
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/write.js +0 -370
- package/dist/programs/defi-wrapper/contracts/stv-strategy-pool/write.js.map +0 -1
- /package/dist/programs/defi-wrapper/{contracts/stv-strategy-pool → use-cases/health}/index.d.ts +0 -0
- /package/dist/programs/defi-wrapper/{contracts/stv-strategy-pool → use-cases/health}/index.js +0 -0
- /package/dist/programs/defi-wrapper/{contracts/stv-strategy-pool → use-cases/health}/read.d.ts +0 -0
- /package/dist/programs/defi-wrapper/{contracts/stv-strategy-pool → use-cases/health}/write.d.ts +0 -0
package/dist/contracts/wsteth.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { getContract, createPublicClient, http } from 'viem';
|
|
1
|
+
import { getContract, createPublicClient, http, } from 'viem';
|
|
2
2
|
import { WstEthAbi } from '../abi/index.js';
|
|
3
3
|
import { getChain, getElUrl } from '../configs/index.js';
|
|
4
4
|
import { getLocatorContract } from './index.js';
|
|
5
5
|
export const getWstethContract = async () => {
|
|
6
|
-
const locator = getLocatorContract();
|
|
6
|
+
const locator = await getLocatorContract();
|
|
7
7
|
const elUrl = getElUrl();
|
|
8
|
+
const chain = await getChain();
|
|
8
9
|
const address = await locator.read.wstETH();
|
|
9
10
|
return getContract({
|
|
10
11
|
address: address,
|
|
11
12
|
abi: WstEthAbi,
|
|
12
13
|
client: createPublicClient({
|
|
13
|
-
chain
|
|
14
|
+
chain,
|
|
14
15
|
transport: http(elUrl),
|
|
15
16
|
}),
|
|
16
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsteth.js","sourceRoot":"","sources":["../../contracts/wsteth.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"wsteth.js","sourceRoot":"","sources":["../../contracts/wsteth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,IAAI,GAGL,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,IAEpC,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAE5C,OAAO,WAAW,CAAC;QACjB,OAAO,EAAE,OAAO;QAChB,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,kBAAkB,CAAC;YACzB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC;SACvB,CAAC;KACH,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Address } from 'viem';
|
|
2
|
+
import { DashboardContract } from '../contracts/index.js';
|
|
3
|
+
import { PopulatedTx } from '../utils/index.js';
|
|
4
|
+
import { TargetAndSourceValidators } from '../utils/consolidation/types.js';
|
|
5
|
+
export declare const consolidationRequestsAndIncreaseFeeExemption: ({ targetAndSourceValidators, feeExemption, dashboard, }: {
|
|
6
|
+
targetAndSourceValidators: TargetAndSourceValidators;
|
|
7
|
+
feeExemption: bigint;
|
|
8
|
+
dashboard: Address;
|
|
9
|
+
}) => Promise<PopulatedTx[]>;
|
|
10
|
+
export declare const consolidateAndIncreaseFeeExemptionWithoutBatching: ({ targetAndSourceValidators, feeExemption, dashboard, }: {
|
|
11
|
+
targetAndSourceValidators: TargetAndSourceValidators;
|
|
12
|
+
feeExemption: bigint;
|
|
13
|
+
dashboard: Address;
|
|
14
|
+
}) => Promise<void>;
|
|
15
|
+
export declare const confirmNewFeeExemption: (dashboardContract: DashboardContract, newFeeExemption: bigint) => Promise<{
|
|
16
|
+
isNeedToIncreaseFeeExemption: boolean;
|
|
17
|
+
settledGrowth: bigint;
|
|
18
|
+
}>;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { hexToBigInt, decodeFunctionData, isHex, formatEther, } from 'viem';
|
|
2
|
+
import { getPublicClient } from '../providers/index.js';
|
|
3
|
+
import { getDashboardContract, getValidatorConsolidationRequestsContract, } from '../contracts/index.js';
|
|
4
|
+
import { callReadMethodSilent, showSpinner, callWriteMethodWithReceipt, printError, confirmOperation, callWriteMethodWithReceiptBatchCalls, flattenSourcePubkeys, getSourceAndTargetPubkeysFromEncodedCall, addDummyTargetAndSourceValidator, logCancel, } from '../utils/index.js';
|
|
5
|
+
import { DashboardAbi } from '../abi/index.js';
|
|
6
|
+
// https://eips.ethereum.org/EIPS/eip-7251
|
|
7
|
+
const CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS = '0x0000BBdDc7CE488642fb579F8B00f3a590007251';
|
|
8
|
+
const getConsolidationRequestFee = async () => {
|
|
9
|
+
const publicClient = await getPublicClient();
|
|
10
|
+
const hideSpinnerGetFeePerRequest = showSpinner();
|
|
11
|
+
const { data: feePerRequestData } = await publicClient.call({
|
|
12
|
+
to: CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS,
|
|
13
|
+
data: '0x',
|
|
14
|
+
blockTag: 'latest',
|
|
15
|
+
});
|
|
16
|
+
hideSpinnerGetFeePerRequest();
|
|
17
|
+
if (!feePerRequestData || feePerRequestData === '0x') {
|
|
18
|
+
throw new Error('Fee read returned empty or invalid data');
|
|
19
|
+
}
|
|
20
|
+
if (!isHex(feePerRequestData)) {
|
|
21
|
+
throw new Error(`Unexpected data format: ${feePerRequestData}`);
|
|
22
|
+
}
|
|
23
|
+
const hexBody = feePerRequestData.startsWith('0x')
|
|
24
|
+
? feePerRequestData.slice(2)
|
|
25
|
+
: feePerRequestData;
|
|
26
|
+
if (hexBody.length !== 64) {
|
|
27
|
+
throw new Error(`Unexpected data length (${hexBody.length} hex chars, expected 64)`);
|
|
28
|
+
}
|
|
29
|
+
return hexToBigInt(feePerRequestData);
|
|
30
|
+
};
|
|
31
|
+
const consolidateRequest = async ({ encodedCall, feePerRequest, }) => {
|
|
32
|
+
const populatedTx = {
|
|
33
|
+
to: CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS,
|
|
34
|
+
data: encodedCall,
|
|
35
|
+
value: feePerRequest,
|
|
36
|
+
};
|
|
37
|
+
await callWriteMethodWithReceiptBatchCalls({
|
|
38
|
+
calls: [populatedTx],
|
|
39
|
+
withSpinner: true,
|
|
40
|
+
silent: false,
|
|
41
|
+
skipError: false,
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const addFeeExemption = async ({ feeExemptionEncodedCall, balanceToAdjust, dashboard, }) => {
|
|
45
|
+
const { functionName, args } = decodeFunctionData({
|
|
46
|
+
abi: DashboardAbi,
|
|
47
|
+
data: feeExemptionEncodedCall,
|
|
48
|
+
});
|
|
49
|
+
if (functionName !== 'addFeeExemption')
|
|
50
|
+
throw new Error('functionName is not addFeeExemption');
|
|
51
|
+
const decodedBalanceToAdjust = args[0];
|
|
52
|
+
if (decodedBalanceToAdjust !== balanceToAdjust)
|
|
53
|
+
throw new Error('decodedBalanceToAdjust is not equal to balanceToAdjust');
|
|
54
|
+
await callWriteMethodWithReceipt({
|
|
55
|
+
contract: await getDashboardContract(dashboard),
|
|
56
|
+
methodName: 'addFeeExemption',
|
|
57
|
+
payload: [balanceToAdjust],
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
export const consolidationRequestsAndIncreaseFeeExemption = async ({ targetAndSourceValidators, feeExemption, dashboard, }) => {
|
|
61
|
+
const publicClient = await getPublicClient();
|
|
62
|
+
const targetPubkeys = [...targetAndSourceValidators.keys()];
|
|
63
|
+
const sourcePubkeysFlattened = flattenSourcePubkeys(targetAndSourceValidators);
|
|
64
|
+
const consolidationContract = await getValidatorConsolidationRequestsContract();
|
|
65
|
+
const { data } = await publicClient.call({
|
|
66
|
+
to: CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS,
|
|
67
|
+
data: '0x',
|
|
68
|
+
blockTag: 'latest',
|
|
69
|
+
});
|
|
70
|
+
if (!data)
|
|
71
|
+
throw new Error('Fee per request read method returned empty data');
|
|
72
|
+
const feePerRequest = hexToBigInt(data);
|
|
73
|
+
let feeExemptionEncodedCall;
|
|
74
|
+
let populatedTxs = [];
|
|
75
|
+
if (targetAndSourceValidators.size > 0) {
|
|
76
|
+
// 1. Fetch consolidation request encoded calls and increase fee exemption amount encoded call.
|
|
77
|
+
const [feeExemptionEncodedCallResult, consolidationRequestEncodedCalls] = await callReadMethodSilent(consolidationContract, 'getConsolidationRequestsAndFeeExemptionEncodedCalls', [sourcePubkeysFlattened, targetPubkeys, dashboard, feeExemption]);
|
|
78
|
+
feeExemptionEncodedCall = feeExemptionEncodedCallResult;
|
|
79
|
+
// 2. Create populated transactions for consolidation requests
|
|
80
|
+
populatedTxs = consolidationRequestEncodedCalls.map((call) => {
|
|
81
|
+
return {
|
|
82
|
+
to: CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS,
|
|
83
|
+
data: call,
|
|
84
|
+
value: feePerRequest,
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
addDummyTargetAndSourceValidator(targetAndSourceValidators, feeExemption);
|
|
90
|
+
[feeExemptionEncodedCall] =
|
|
91
|
+
await getConsolidationRequestsAndFeeExemptionEncodedCalls(targetAndSourceValidators, dashboard, feeExemption);
|
|
92
|
+
}
|
|
93
|
+
// 3. Create populated transaction to increase the fee exemption amount
|
|
94
|
+
if (feeExemption > 0n) {
|
|
95
|
+
populatedTxs.push({
|
|
96
|
+
to: dashboard,
|
|
97
|
+
data: feeExemptionEncodedCall,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return populatedTxs;
|
|
101
|
+
};
|
|
102
|
+
const getConsolidationRequestsAndFeeExemptionEncodedCalls = async (targetAndSourceValidators, dashboard, feeExemption) => {
|
|
103
|
+
const targetPubkeys = [...targetAndSourceValidators.keys()];
|
|
104
|
+
const sourcePubkeysFlattened = flattenSourcePubkeys(targetAndSourceValidators);
|
|
105
|
+
const consolidationContract = await getValidatorConsolidationRequestsContract();
|
|
106
|
+
const [feeExemptionEncodedCall, consolidationRequestEncodedCalls] = await callReadMethodSilent(consolidationContract, 'getConsolidationRequestsAndFeeExemptionEncodedCalls', [sourcePubkeysFlattened, targetPubkeys, dashboard, feeExemption]);
|
|
107
|
+
return [feeExemptionEncodedCall, consolidationRequestEncodedCalls];
|
|
108
|
+
};
|
|
109
|
+
export const consolidateAndIncreaseFeeExemptionWithoutBatching = async ({ targetAndSourceValidators, feeExemption, dashboard, }) => {
|
|
110
|
+
let currentFeeExemption = 0n;
|
|
111
|
+
const consolidatedSourcePubkeys = [];
|
|
112
|
+
try {
|
|
113
|
+
let feeExemptionEncodedCall;
|
|
114
|
+
let consolidationRequestEncodedCalls;
|
|
115
|
+
if (targetAndSourceValidators.size > 0) {
|
|
116
|
+
[feeExemptionEncodedCall, consolidationRequestEncodedCalls] =
|
|
117
|
+
await getConsolidationRequestsAndFeeExemptionEncodedCalls(targetAndSourceValidators, dashboard, feeExemption);
|
|
118
|
+
for (const encodedCall of consolidationRequestEncodedCalls) {
|
|
119
|
+
const { sourcePubkey, targetPubkey } = getSourceAndTargetPubkeysFromEncodedCall(encodedCall);
|
|
120
|
+
const feePerRequest = await getConsolidationRequestFee();
|
|
121
|
+
const lines = [
|
|
122
|
+
'Are you sure you want to consolidate the following validators?\n',
|
|
123
|
+
`Source: ${sourcePubkey}\nTarget: ${targetPubkey}\n`,
|
|
124
|
+
`Fee Per Request: ${formatEther(feePerRequest)} ETH (wei: ${feePerRequest})`,
|
|
125
|
+
];
|
|
126
|
+
const confirmFileContent = await confirmOperation(lines.join('\n'));
|
|
127
|
+
if (!confirmFileContent)
|
|
128
|
+
throw new Error('User cancelled consolidation');
|
|
129
|
+
await consolidateRequest({
|
|
130
|
+
encodedCall: encodedCall,
|
|
131
|
+
feePerRequest: feePerRequest,
|
|
132
|
+
});
|
|
133
|
+
currentFeeExemption +=
|
|
134
|
+
targetAndSourceValidators
|
|
135
|
+
.get(targetPubkey)
|
|
136
|
+
?.sourceValidators.get(sourcePubkey)?.balance ?? 0n;
|
|
137
|
+
consolidatedSourcePubkeys.push(sourcePubkey);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
// If there are no validators to consolidate,
|
|
142
|
+
// add a dummy target and source validator to call addFeeExemption method only
|
|
143
|
+
addDummyTargetAndSourceValidator(targetAndSourceValidators, feeExemption);
|
|
144
|
+
[feeExemptionEncodedCall] =
|
|
145
|
+
await getConsolidationRequestsAndFeeExemptionEncodedCalls(targetAndSourceValidators, dashboard, feeExemption);
|
|
146
|
+
}
|
|
147
|
+
if (feeExemption > 0n) {
|
|
148
|
+
const lines = [
|
|
149
|
+
'Are you sure you want to increase the fee exemption amount?\n',
|
|
150
|
+
`Balance To Adjust: ${formatEther(feeExemption)} ETH (wei: ${feeExemption})`,
|
|
151
|
+
];
|
|
152
|
+
const confirmFileContent = await confirmOperation(lines.join('\n'));
|
|
153
|
+
if (!confirmFileContent)
|
|
154
|
+
throw new Error('User cancelled increasing fee exemption amount');
|
|
155
|
+
await addFeeExemption({
|
|
156
|
+
feeExemptionEncodedCall: feeExemptionEncodedCall,
|
|
157
|
+
balanceToAdjust: feeExemption,
|
|
158
|
+
dashboard: dashboard,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
const message = `Error when consolidating and increasing fee exemption without batching.
|
|
164
|
+
${feeExemption > 0n ? `The balance that should be consolidated is ${formatEther(feeExemption)} ETH.` : ''}
|
|
165
|
+
${feeExemption > 0n ? `The balance you have consolidated is ${formatEther(currentFeeExemption)} ETH.` : ''}
|
|
166
|
+
${feeExemption > 0n ? `The remaining balance to be consolidated is ${formatEther(feeExemption - currentFeeExemption)} ETH.` : ''}
|
|
167
|
+
${consolidatedSourcePubkeys.length > 0 ? `Source pubkeys that were consolidated: ${consolidatedSourcePubkeys.join('\n')}` : ''}
|
|
168
|
+
`;
|
|
169
|
+
printError(error, message);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
export const confirmNewFeeExemption = async (dashboardContract, newFeeExemption) => {
|
|
173
|
+
const settledGrowth = await callReadMethodSilent(dashboardContract, 'settledGrowth');
|
|
174
|
+
if (settledGrowth < newFeeExemption) {
|
|
175
|
+
return {
|
|
176
|
+
isNeedToIncreaseFeeExemption: true,
|
|
177
|
+
settledGrowth: settledGrowth,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
const confirmNewFeeExemption = await confirmOperation(`Do you want to increase the fee exemption to ${formatEther(newFeeExemption)} ETH?
|
|
181
|
+
Current settled growth: ${formatEther(settledGrowth)} ETH`);
|
|
182
|
+
if (!confirmNewFeeExemption) {
|
|
183
|
+
const confirmUseSettledGrowth = await confirmOperation(`Do you want to skip increasing fee exemption and use current settled growth?
|
|
184
|
+
Current settled growth: ${formatEther(settledGrowth)} ETH`);
|
|
185
|
+
if (!confirmUseSettledGrowth) {
|
|
186
|
+
logCancel('The user has canceled the use of settled growth');
|
|
187
|
+
throw new Error('User cancelled consolidation');
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
isNeedToIncreaseFeeExemption: false,
|
|
191
|
+
settledGrowth: settledGrowth,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
isNeedToIncreaseFeeExemption: true,
|
|
196
|
+
settledGrowth: settledGrowth,
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=consolidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidation.js","sourceRoot":"","sources":["../../features/consolidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type CommonPoolConfig, type TimelockConfig, type VaultConfig } from './defi-wrapper-factory.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get the min withdrawal delay time
|
|
4
|
+
* @param minWithdrawalDelayTime - The min withdrawal delay time
|
|
5
|
+
* @returns The min withdrawal delay time in seconds
|
|
6
|
+
*/
|
|
7
|
+
export declare const getMinWithdrawalDelayTime: (minWithdrawalDelayTime?: number) => Promise<number>;
|
|
8
|
+
/**
|
|
9
|
+
* Get the min delay seconds
|
|
10
|
+
* @param minDelaySeconds - The min delay seconds
|
|
11
|
+
* @returns The min delay seconds in seconds
|
|
12
|
+
*/
|
|
13
|
+
export declare const getMinDelaySeconds: (minDelaySeconds?: number) => Promise<number>;
|
|
14
|
+
export declare const getPoolTokenName: (name?: string) => Promise<string>;
|
|
15
|
+
export declare const getPoolTokenSymbol: (symbol?: string) => Promise<string>;
|
|
16
|
+
export declare const getReserveRatioGapBP: (reserveRatioGapBP?: number) => Promise<number>;
|
|
17
|
+
export declare const prepareCreationConfigrationText: (vaultConfig: VaultConfig, timelockConfig: TimelockConfig, commonPoolConfig: CommonPoolConfig) => string;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { getOperatorGridContract } from '../../contracts/index.js';
|
|
2
|
+
import { callReadMethodSilent, numberPrompt, textPrompt } from '../../utils/index.js';
|
|
3
|
+
const MIN_TIME_IN_HOURS = 60 * 60; // 1 hour
|
|
4
|
+
const MAX_TIME_IN_HOURS = 24 * 60 * 60 * 30; // 30 days
|
|
5
|
+
const MAX_POOL_TOKEN_NAME_LENGTH = 14;
|
|
6
|
+
const MIN_POOL_TOKEN_NAME_LENGTH = 3;
|
|
7
|
+
const MAX_POOL_TOKEN_SYMBOL_LENGTH = 8;
|
|
8
|
+
const MIN_POOL_TOKEN_SYMBOL_LENGTH = 3;
|
|
9
|
+
const MAX_BASIS_POINTS = 10000;
|
|
10
|
+
/**
|
|
11
|
+
* Validate the pool token symbol
|
|
12
|
+
* @param symbol - The pool token symbol
|
|
13
|
+
* @throws Error if the pool token symbol is invalid
|
|
14
|
+
*/
|
|
15
|
+
const validatePoolTokenSymbol = (symbol) => {
|
|
16
|
+
if (symbol.length < MIN_POOL_TOKEN_SYMBOL_LENGTH)
|
|
17
|
+
throw new Error(`Pool token symbol must be at least ${MIN_POOL_TOKEN_SYMBOL_LENGTH} characters long`);
|
|
18
|
+
if (symbol.length > MAX_POOL_TOKEN_SYMBOL_LENGTH)
|
|
19
|
+
throw new Error(`Pool token symbol must be less than ${MAX_POOL_TOKEN_SYMBOL_LENGTH} characters long`);
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Validate the pool token name
|
|
23
|
+
* @param name - The pool token name
|
|
24
|
+
* @throws Error if the pool token name is invalid
|
|
25
|
+
*/
|
|
26
|
+
const validatePoolTokenName = (name) => {
|
|
27
|
+
if (name.length < MIN_POOL_TOKEN_NAME_LENGTH)
|
|
28
|
+
throw new Error(`Pool token name must be at least ${MIN_POOL_TOKEN_NAME_LENGTH} characters long`);
|
|
29
|
+
if (name.length > MAX_POOL_TOKEN_NAME_LENGTH)
|
|
30
|
+
throw new Error(`Pool token name must be less than ${MAX_POOL_TOKEN_NAME_LENGTH} characters long`);
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Validate the time in hours
|
|
34
|
+
* @param timeInHours - The time in hours
|
|
35
|
+
* @param name - The name of the time
|
|
36
|
+
* @throws Error if the time is invalid
|
|
37
|
+
*/
|
|
38
|
+
const validateTimeInHours = (timeInHours, name) => {
|
|
39
|
+
const minInHours = MIN_TIME_IN_HOURS / 3600;
|
|
40
|
+
const maxInHours = MAX_TIME_IN_HOURS / 3600;
|
|
41
|
+
if (timeInHours < minInHours)
|
|
42
|
+
throw new Error(`${name} must be greater than ${minInHours} hours. Current value: ${timeInHours} hours (${timeInHours * 3600} seconds)`);
|
|
43
|
+
if (timeInHours > maxInHours)
|
|
44
|
+
throw new Error(`${name} must be less than ${maxInHours} hours. Current value: ${timeInHours} hours (${timeInHours * 3600} seconds)`);
|
|
45
|
+
if (timeInHours % 1 !== 0)
|
|
46
|
+
throw new Error(`${name} must be a multiple of hours`);
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Get the min withdrawal delay time
|
|
50
|
+
* @param minWithdrawalDelayTime - The min withdrawal delay time
|
|
51
|
+
* @returns The min withdrawal delay time in seconds
|
|
52
|
+
*/
|
|
53
|
+
export const getMinWithdrawalDelayTime = async (minWithdrawalDelayTime) => {
|
|
54
|
+
if (!minWithdrawalDelayTime) {
|
|
55
|
+
const minWithdrawalDelayTimeValue = await numberPrompt(`Enter the min withdrawal delay time (in hours) (min: ${MIN_TIME_IN_HOURS / 3600} hours, max: ${MAX_TIME_IN_HOURS / 3600} hours)`, 'value');
|
|
56
|
+
if (!minWithdrawalDelayTimeValue.value)
|
|
57
|
+
throw new Error('Invalid min withdrawal delay time');
|
|
58
|
+
validateTimeInHours(minWithdrawalDelayTimeValue.value, 'Min withdrawal delay time');
|
|
59
|
+
return minWithdrawalDelayTimeValue.value * 3600;
|
|
60
|
+
}
|
|
61
|
+
validateTimeInHours(minWithdrawalDelayTime / 3600, 'Min withdrawal delay time');
|
|
62
|
+
return minWithdrawalDelayTime;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Get the min delay seconds
|
|
66
|
+
* @param minDelaySeconds - The min delay seconds
|
|
67
|
+
* @returns The min delay seconds in seconds
|
|
68
|
+
*/
|
|
69
|
+
export const getMinDelaySeconds = async (minDelaySeconds) => {
|
|
70
|
+
if (!minDelaySeconds) {
|
|
71
|
+
const minDelaySecondsValue = await numberPrompt(`Enter the min execution delay for timelock governance (min: ${MIN_TIME_IN_HOURS / 3600} hours, max: ${MAX_TIME_IN_HOURS / 3600} hours)`, 'value');
|
|
72
|
+
if (!minDelaySecondsValue.value)
|
|
73
|
+
throw new Error('Invalid min delay seconds');
|
|
74
|
+
validateTimeInHours(minDelaySecondsValue.value, 'Min delay seconds');
|
|
75
|
+
return minDelaySecondsValue.value * 3600;
|
|
76
|
+
}
|
|
77
|
+
validateTimeInHours(minDelaySeconds / 3600, 'Min delay seconds');
|
|
78
|
+
return minDelaySeconds;
|
|
79
|
+
};
|
|
80
|
+
export const getPoolTokenName = async (name) => {
|
|
81
|
+
if (!name) {
|
|
82
|
+
const nameValue = await textPrompt(`Enter the pool token name (min: ${MIN_POOL_TOKEN_NAME_LENGTH} characters, max: ${MAX_POOL_TOKEN_NAME_LENGTH} characters)`, 'value');
|
|
83
|
+
if (!nameValue.value)
|
|
84
|
+
throw new Error('Invalid pool token name');
|
|
85
|
+
validatePoolTokenName(nameValue.value);
|
|
86
|
+
return nameValue.value;
|
|
87
|
+
}
|
|
88
|
+
validatePoolTokenName(name);
|
|
89
|
+
return name;
|
|
90
|
+
};
|
|
91
|
+
export const getPoolTokenSymbol = async (symbol) => {
|
|
92
|
+
if (!symbol) {
|
|
93
|
+
const symbolValue = await textPrompt(`Enter the pool token symbol (min: ${MIN_POOL_TOKEN_SYMBOL_LENGTH} characters, max: ${MAX_POOL_TOKEN_SYMBOL_LENGTH} characters)`, 'value');
|
|
94
|
+
if (!symbolValue.value)
|
|
95
|
+
throw new Error('Invalid pool token symbol');
|
|
96
|
+
validatePoolTokenSymbol(symbolValue.value);
|
|
97
|
+
return symbolValue.value;
|
|
98
|
+
}
|
|
99
|
+
validatePoolTokenSymbol(symbol);
|
|
100
|
+
return symbol;
|
|
101
|
+
};
|
|
102
|
+
export const getReserveRatioGapBP = async (reserveRatioGapBP) => {
|
|
103
|
+
if (!reserveRatioGapBP) {
|
|
104
|
+
const reserveRatioGapBPValue = await numberPrompt(`Enter the reserve ratio gap (in basis points) (max: ${MAX_BASIS_POINTS} basis points)`, 'value');
|
|
105
|
+
if (!reserveRatioGapBPValue.value)
|
|
106
|
+
throw new Error('Invalid reserve ratio gap');
|
|
107
|
+
await validateReserveRatioGapBP(reserveRatioGapBPValue.value);
|
|
108
|
+
return reserveRatioGapBPValue.value;
|
|
109
|
+
}
|
|
110
|
+
await validateReserveRatioGapBP(reserveRatioGapBP);
|
|
111
|
+
return reserveRatioGapBP;
|
|
112
|
+
};
|
|
113
|
+
const validateReserveRatioGapBP = async (reserveRatioGapBP) => {
|
|
114
|
+
const operatorGrid = await getOperatorGridContract();
|
|
115
|
+
const defaultTier = await callReadMethodSilent(operatorGrid, 'tier', [0n]);
|
|
116
|
+
if (!defaultTier)
|
|
117
|
+
throw new Error('Default tier not found. Cannot validate reserve ratio gap.');
|
|
118
|
+
const { reserveRatioBP } = defaultTier;
|
|
119
|
+
const expectedResult = reserveRatioBP + reserveRatioGapBP;
|
|
120
|
+
if (expectedResult > MAX_BASIS_POINTS)
|
|
121
|
+
throw new Error(`Reserve ratio gap must be less than ${MAX_BASIS_POINTS - reserveRatioBP} basis points. Current value: ${reserveRatioGapBP}`);
|
|
122
|
+
};
|
|
123
|
+
// common text for vault configuration conformatin
|
|
124
|
+
export const prepareCreationConfigrationText = (vaultConfig, timelockConfig, commonPoolConfig) => {
|
|
125
|
+
return `nodeOperator: ${vaultConfig.nodeOperator}
|
|
126
|
+
nodeOperatorManager: ${vaultConfig.nodeOperatorManager}
|
|
127
|
+
nodeOperatorFeeBP: ${vaultConfig.nodeOperatorFeeBP}
|
|
128
|
+
confirmExpiry: ${vaultConfig.confirmExpiry}
|
|
129
|
+
minDelaySeconds: ${timelockConfig.minDelaySeconds}
|
|
130
|
+
proposer: ${timelockConfig.proposer}
|
|
131
|
+
executor: ${timelockConfig.executor}
|
|
132
|
+
emergencyCommittee: ${commonPoolConfig.emergencyCommittee}
|
|
133
|
+
minWithdrawalDelayTime: ${commonPoolConfig.minWithdrawalDelayTime}
|
|
134
|
+
name: ${commonPoolConfig.name}
|
|
135
|
+
symbol: ${commonPoolConfig.symbol}`;
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=create-vault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-vault.js","sourceRoot":"","sources":["../../../features/defi-wrapper/create-vault.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { TransactionReceipt, Hex, Address } from 'viem';
|
|
2
|
+
import { getFactoryContract } from '../../contracts/defi-wrapper/index.js';
|
|
3
|
+
export type VaultConfig = {
|
|
4
|
+
nodeOperator: Address;
|
|
5
|
+
nodeOperatorManager: Address;
|
|
6
|
+
nodeOperatorFeeBP: bigint;
|
|
7
|
+
confirmExpiry: bigint;
|
|
8
|
+
};
|
|
9
|
+
export type TimelockConfig = {
|
|
10
|
+
minDelaySeconds: bigint;
|
|
11
|
+
proposer: Address;
|
|
12
|
+
executor: Address;
|
|
13
|
+
};
|
|
14
|
+
export type CommonPoolConfig = {
|
|
15
|
+
minWithdrawalDelayTime: bigint;
|
|
16
|
+
name: string;
|
|
17
|
+
symbol: string;
|
|
18
|
+
emergencyCommittee: Address;
|
|
19
|
+
};
|
|
20
|
+
export type BaseFactoryOptions = {
|
|
21
|
+
nodeOperator?: Address;
|
|
22
|
+
nodeOperatorManager?: Address;
|
|
23
|
+
nodeOperatorFeeRate?: number;
|
|
24
|
+
confirmExpiry?: number;
|
|
25
|
+
minDelaySeconds?: number;
|
|
26
|
+
emergencyCommittee?: Address;
|
|
27
|
+
proposer?: Address;
|
|
28
|
+
executor?: Address;
|
|
29
|
+
minWithdrawalDelayTime?: number;
|
|
30
|
+
name?: string;
|
|
31
|
+
symbol?: string;
|
|
32
|
+
};
|
|
33
|
+
export declare const finalizePoolCreation: (contract: Awaited<ReturnType<typeof getFactoryContract>>, vaultConfig: VaultConfig, timelockConfig: TimelockConfig, commonPoolConfig: CommonPoolConfig, creationEventData: Awaited<ReturnType<typeof getCreatePoolEventData>>) => Promise<void>;
|
|
34
|
+
export declare const getCreatePoolEventData: (receipt: TransactionReceipt, tx: Hex) => Promise<{
|
|
35
|
+
tx: `0x${string}`;
|
|
36
|
+
sender?: undefined;
|
|
37
|
+
vaultConfig?: undefined;
|
|
38
|
+
commonPoolConfig?: undefined;
|
|
39
|
+
auxiliaryConfig?: undefined;
|
|
40
|
+
timelockConfig?: undefined;
|
|
41
|
+
strategyFactory?: undefined;
|
|
42
|
+
strategyDeployBytes?: undefined;
|
|
43
|
+
intermediate?: undefined;
|
|
44
|
+
finishDeadline?: undefined;
|
|
45
|
+
blockNumber?: undefined;
|
|
46
|
+
} | {
|
|
47
|
+
sender: `0x${string}` | undefined;
|
|
48
|
+
vaultConfig: {
|
|
49
|
+
nodeOperator: `0x${string}`;
|
|
50
|
+
nodeOperatorManager: `0x${string}`;
|
|
51
|
+
nodeOperatorFeeBP: bigint;
|
|
52
|
+
confirmExpiry: bigint;
|
|
53
|
+
} | undefined;
|
|
54
|
+
commonPoolConfig: {
|
|
55
|
+
minWithdrawalDelayTime: bigint;
|
|
56
|
+
name: string;
|
|
57
|
+
symbol: string;
|
|
58
|
+
emergencyCommittee: `0x${string}`;
|
|
59
|
+
} | undefined;
|
|
60
|
+
auxiliaryConfig: {
|
|
61
|
+
allowlistEnabled: boolean;
|
|
62
|
+
mintingEnabled: boolean;
|
|
63
|
+
reserveRatioGapBP: bigint;
|
|
64
|
+
} | undefined;
|
|
65
|
+
timelockConfig: {
|
|
66
|
+
minDelaySeconds: bigint;
|
|
67
|
+
proposer: `0x${string}`;
|
|
68
|
+
executor: `0x${string}`;
|
|
69
|
+
} | undefined;
|
|
70
|
+
strategyFactory: `0x${string}` | undefined;
|
|
71
|
+
strategyDeployBytes: `0x${string}` | undefined;
|
|
72
|
+
intermediate: {
|
|
73
|
+
dashboard: `0x${string}`;
|
|
74
|
+
poolProxy: `0x${string}`;
|
|
75
|
+
poolImpl: `0x${string}`;
|
|
76
|
+
withdrawalQueueProxy: `0x${string}`;
|
|
77
|
+
wqImpl: `0x${string}`;
|
|
78
|
+
timelock: `0x${string}`;
|
|
79
|
+
} | undefined;
|
|
80
|
+
finishDeadline: bigint | undefined;
|
|
81
|
+
tx: `0x${string}`;
|
|
82
|
+
blockNumber: bigint;
|
|
83
|
+
}>;
|
|
84
|
+
export declare const logCreatePoolEventData: (eventData: Awaited<ReturnType<typeof getCreatePoolEventData>>) => Promise<void>;
|
|
85
|
+
export declare const getFinalizePoolEventData: (receipt: TransactionReceipt, tx: Hex) => Promise<{
|
|
86
|
+
tx: `0x${string}`;
|
|
87
|
+
vault?: undefined;
|
|
88
|
+
pool?: undefined;
|
|
89
|
+
poolType?: undefined;
|
|
90
|
+
withdrawalQueue?: undefined;
|
|
91
|
+
strategyFactory?: undefined;
|
|
92
|
+
strategyDeployBytes?: undefined;
|
|
93
|
+
strategy?: undefined;
|
|
94
|
+
blockNumber?: undefined;
|
|
95
|
+
} | {
|
|
96
|
+
vault: `0x${string}` | undefined;
|
|
97
|
+
pool: `0x${string}` | undefined;
|
|
98
|
+
poolType: `0x${string}` | undefined;
|
|
99
|
+
withdrawalQueue: `0x${string}` | undefined;
|
|
100
|
+
strategyFactory: `0x${string}` | undefined;
|
|
101
|
+
strategyDeployBytes: `0x${string}` | undefined;
|
|
102
|
+
strategy: `0x${string}` | undefined;
|
|
103
|
+
tx: `0x${string}`;
|
|
104
|
+
blockNumber: bigint;
|
|
105
|
+
}>;
|
|
106
|
+
export declare const logFinalizePoolEventData: (createEventData: Awaited<ReturnType<typeof getCreatePoolEventData>>, finalizeEventData: Awaited<ReturnType<typeof getFinalizePoolEventData>>) => Promise<void>;
|
|
107
|
+
export declare const promtBaseVaultConfiguration: ({ nodeOperator, nodeOperatorManager, nodeOperatorFeeRate, confirmExpiry, minDelaySeconds, proposer, executor, emergencyCommittee, minWithdrawalDelayTime, name, symbol, }: BaseFactoryOptions) => Promise<{
|
|
108
|
+
vaultConfig: VaultConfig;
|
|
109
|
+
timelockConfig: TimelockConfig;
|
|
110
|
+
commonPoolConfig: CommonPoolConfig;
|
|
111
|
+
CONNECT_DEPOSIT: bigint;
|
|
112
|
+
}>;
|