@lidofinance/lsv-cli 1.0.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/AccessControlConfirmable.d.ts +3 -2
- package/dist/abi/AccessControlConfirmable.js +3 -1
- package/dist/abi/AccessControlConfirmable.js.map +1 -1
- package/dist/abi/Dashboard.d.ts +87 -30
- package/dist/abi/Dashboard.js +46 -32
- package/dist/abi/Dashboard.js.map +1 -1
- package/dist/abi/LazyOracle.d.ts +408 -3
- package/dist/abi/LazyOracle.js +59 -3
- package/dist/abi/LazyOracle.js.map +1 -1
- package/dist/abi/OperatorGrid.d.ts +52 -0
- package/dist/abi/OperatorGrid.js +16 -0
- package/dist/abi/OperatorGrid.js.map +1 -1
- package/dist/abi/PredepositGuarantee.d.ts +28 -0
- package/dist/abi/StakingVault.d.ts +56 -0
- package/dist/abi/StakingVault.js +2 -0
- package/dist/abi/StakingVault.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 +48 -4
- package/dist/abi/VaultHub.d.ts +38 -0
- package/dist/abi/VaultHub.js +13 -0
- package/dist/abi/VaultHub.js.map +1 -1
- package/dist/abi/VaultViewer.d.ts +130 -196
- package/dist/abi/VaultViewer.js +169 -257
- package/dist/abi/VaultViewer.js.map +1 -1
- package/dist/abi/defi-wrapper/Distributor.d.ts +486 -0
- package/dist/abi/defi-wrapper/Distributor.js +633 -0
- package/dist/abi/defi-wrapper/Distributor.js.map +1 -0
- package/dist/abi/defi-wrapper/Factory.d.ts +1184 -0
- package/dist/abi/defi-wrapper/Factory.js +932 -0
- package/dist/abi/defi-wrapper/Factory.js.map +1 -0
- package/dist/abi/defi-wrapper/StvPool.d.ts +1079 -0
- package/dist/abi/defi-wrapper/StvPool.js +1410 -0
- package/dist/abi/defi-wrapper/StvPool.js.map +1 -0
- package/dist/abi/defi-wrapper/StvStETHPool.d.ts +1772 -0
- package/dist/abi/defi-wrapper/StvStETHPool.js +2316 -0
- package/dist/abi/defi-wrapper/StvStETHPool.js.map +1 -0
- package/dist/abi/defi-wrapper/WithdrawalQueue.d.ts +1265 -0
- package/dist/abi/defi-wrapper/WithdrawalQueue.js +1647 -0
- package/dist/abi/defi-wrapper/WithdrawalQueue.js.map +1 -0
- package/dist/abi/defi-wrapper/index.d.ts +5 -0
- package/dist/abi/defi-wrapper/index.js +6 -0
- package/dist/abi/defi-wrapper/index.js.map +1 -0
- 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 +2 -0
- package/dist/configs/utils.js +12 -0
- package/dist/configs/utils.js.map +1 -1
- package/dist/contracts/dashboard-impl.d.ts +4 -0
- package/dist/contracts/dashboard-impl.js +17 -0
- package/dist/contracts/dashboard-impl.js.map +1 -0
- 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 +4 -0
- package/dist/contracts/defi-wrapper/distributor.js +12 -0
- package/dist/contracts/defi-wrapper/distributor.js.map +1 -0
- package/dist/contracts/defi-wrapper/factory.d.ts +4 -0
- package/dist/contracts/defi-wrapper/factory.js +12 -0
- package/dist/contracts/defi-wrapper/factory.js.map +1 -0
- package/dist/contracts/defi-wrapper/index.d.ts +5 -0
- package/dist/contracts/defi-wrapper/index.js +6 -0
- package/dist/contracts/defi-wrapper/index.js.map +1 -0
- package/dist/contracts/defi-wrapper/stv-pool.d.ts +4 -0
- package/dist/contracts/defi-wrapper/stv-pool.js +12 -0
- package/dist/contracts/defi-wrapper/stv-pool.js.map +1 -0
- package/dist/contracts/defi-wrapper/stv-steth-pool.d.ts +4 -0
- package/dist/contracts/defi-wrapper/stv-steth-pool.js +12 -0
- package/dist/contracts/defi-wrapper/stv-steth-pool.js.map +1 -0
- package/dist/contracts/defi-wrapper/withdrawal-queue.d.ts +4 -0
- package/dist/contracts/defi-wrapper/withdrawal-queue.js +12 -0
- package/dist/contracts/defi-wrapper/withdrawal-queue.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.js +2 -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 -27674
- 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 -11789
- 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.d.ts +2 -1
- package/dist/features/deposits/check-bls-deposits.js +11 -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.d.ts +8 -0
- package/dist/features/deposits/make-pdg-proof.js +17 -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 -0
- package/dist/features/index.js +4 -0
- 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/mint-burn/allowance.js +1 -1
- package/dist/features/mint-burn/allowance.js.map +1 -1
- package/dist/features/pdg.d.ts +7 -0
- package/dist/features/pdg.js +9 -5
- 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.d.ts +2 -0
- package/dist/features/utils/quarantine.js +2 -0
- package/dist/features/utils/quarantine.js.map +1 -1
- package/dist/features/utils/report-fresh.js +19 -3
- package/dist/features/utils/report-fresh.js.map +1 -1
- package/dist/features/vault-factory.d.ts +2 -2
- package/dist/features/vault-factory.js +8 -3
- 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 +13 -5
- 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 +2 -2
- package/dist/features/vault-operations/vault-info.js.map +1 -1
- package/dist/features/vault-operations/vault-overview.js +10 -12
- package/dist/features/vault-operations/vault-overview.js.map +1 -1
- package/dist/features/vault-operations/vault-roles.d.ts +2 -1
- package/dist/features/vault-operations/vault-roles.js +25 -23
- package/dist/features/vault-operations/vault-roles.js.map +1 -1
- package/dist/features/vault-operations/vaults-by-role.d.ts +5 -0
- package/dist/features/vault-operations/vaults-by-role.js +123 -36
- 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 +13 -4
- 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/config.js +4 -0
- package/dist/programs/contracts/dashboard/config.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 +85 -61
- 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/lazy-oracle/config.js +33 -0
- package/dist/programs/contracts/lazy-oracle/config.js.map +1 -1
- package/dist/programs/contracts/operator-grid/write.js +2 -75
- package/dist/programs/contracts/operator-grid/write.js.map +1 -1
- package/dist/programs/contracts/pdg/read.js +4 -6
- package/dist/programs/contracts/pdg/read.js.map +1 -1
- package/dist/programs/contracts/pdg/write.js +76 -10
- package/dist/programs/contracts/pdg/write.js.map +1 -1
- package/dist/programs/contracts/vault/write.js +34 -23
- package/dist/programs/contracts/vault/write.js.map +1 -1
- package/dist/programs/contracts/vault-factory/write.js +25 -15
- package/dist/programs/contracts/vault-factory/write.js.map +1 -1
- package/dist/programs/contracts/vault-viewer/config.js +102 -59
- package/dist/programs/contracts/vault-viewer/config.js.map +1 -1
- package/dist/programs/contracts/vault-viewer/read.js +22 -76
- package/dist/programs/contracts/vault-viewer/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/distributor/config.d.ts +3 -0
- package/dist/programs/defi-wrapper/contracts/distributor/config.js +44 -0
- package/dist/programs/defi-wrapper/contracts/distributor/config.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/distributor/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/contracts/distributor/index.js +4 -0
- package/dist/programs/defi-wrapper/contracts/distributor/index.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/distributor/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/distributor/main.js +5 -0
- package/dist/programs/defi-wrapper/contracts/distributor/main.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/distributor/read.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/distributor/read.js +40 -0
- package/dist/programs/defi-wrapper/contracts/distributor/read.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/distributor/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/distributor/write.js +70 -0
- package/dist/programs/defi-wrapper/contracts/distributor/write.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/factory/config.d.ts +3 -0
- package/dist/programs/defi-wrapper/contracts/factory/config.js +2 -0
- package/dist/programs/defi-wrapper/contracts/factory/config.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/factory/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/contracts/factory/index.js +4 -0
- package/dist/programs/defi-wrapper/contracts/factory/index.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/factory/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/factory/main.js +6 -0
- package/dist/programs/defi-wrapper/contracts/factory/main.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/factory/read.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/factory/read.js +50 -0
- package/dist/programs/defi-wrapper/contracts/factory/read.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/factory/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/factory/write.js +144 -0
- package/dist/programs/defi-wrapper/contracts/factory/write.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/index.d.ts +6 -0
- package/dist/programs/defi-wrapper/contracts/index.js +7 -0
- package/dist/programs/defi-wrapper/contracts/index.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/main.js +6 -0
- package/dist/programs/defi-wrapper/contracts/main.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/config.d.ts +3 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/config.js +73 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/config.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/index.js +4 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/index.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/main.js +6 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/main.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/read.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/read.js +70 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/read.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/write.js +138 -0
- package/dist/programs/defi-wrapper/contracts/stv-pool/write.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/config.d.ts +3 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/config.js +120 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/config.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/index.js +4 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/index.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/main.js +6 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/main.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js +70 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/write.js +173 -0
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/write.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/config.d.ts +3 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/config.js +66 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/config.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/index.js +4 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/index.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/main.js +6 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/main.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js +65 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js.map +1 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js +171 -0
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js.map +1 -0
- package/dist/programs/defi-wrapper/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/index.js +4 -0
- package/dist/programs/defi-wrapper/index.js.map +1 -0
- package/dist/programs/defi-wrapper/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/main.js +6 -0
- package/dist/programs/defi-wrapper/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/health/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/use-cases/health/index.js +4 -0
- 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.d.ts +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.d.ts +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 +2 -0
- package/dist/programs/index.js +2 -0
- package/dist/programs/index.js.map +1 -1
- package/dist/programs/pdg-helpers.js +22 -18
- 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 +8 -4
- package/dist/programs/use-cases/deposits/read.js.map +1 -1
- package/dist/programs/use-cases/deposits/write.js +141 -16
- 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 +38 -33
- package/dist/programs/use-cases/metrics/read.js.map +1 -1
- package/dist/programs/use-cases/report/write.js +3 -0
- package/dist/programs/use-cases/report/write.js.map +1 -1
- package/dist/programs/use-cases/vault-operations/create-vault.js +13 -7
- package/dist/programs/use-cases/vault-operations/create-vault.js.map +1 -1
- package/dist/providers/wallet.d.ts +6986 -171
- package/dist/providers/wallet.js +15 -5
- 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 +8 -0
- package/dist/utils/arguments.js +56 -4
- 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 +36 -19
- package/dist/utils/fetchCL.js +82 -11
- package/dist/utils/fetchCL.js.map +1 -1
- package/dist/utils/health/health-utils.d.ts +54 -54
- package/dist/utils/health/health-utils.js +1 -1
- package/dist/utils/health/health-utils.js.map +1 -1
- 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/proof/constants.d.ts +6 -0
- package/dist/utils/proof/constants.js +7 -0
- package/dist/utils/proof/constants.js.map +1 -0
- package/dist/utils/proof/first-validator-gindex.js +0 -4
- package/dist/utils/proof/first-validator-gindex.js.map +1 -1
- package/dist/utils/proof/proofs.d.ts +7 -8
- package/dist/utils/proof/proofs.js +36 -28
- package/dist/utils/proof/proofs.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.d.ts +2 -2
- 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 +32 -2
- package/dist/utils/transactions/tx-wc.js +61 -33
- package/dist/utils/transactions/tx-wc.js.map +1 -1
- package/dist/utils/transactions/types.d.ts +4 -2
- package/dist/utils/wallet-connect.d.ts +4 -7664
- package/dist/utils/wallet-connect.js +17 -5
- package/dist/utils/wallet-connect.js.map +1 -1
- package/dist/version/index.js +1 -1
- package/package.json +5 -6
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Address } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Replicates the contract's _isThresholdBreached logic
|
|
4
|
+
* @param assets - STV assets value in ETH (from previewRedeem)
|
|
5
|
+
* @param stethShares - debt in stETH shares
|
|
6
|
+
* @param debtInEth - debt in ETH (from getPooledEthBySharesRoundUp)
|
|
7
|
+
* @param forcedRebalanceThresholdBP - threshold in basis points
|
|
8
|
+
* @returns true if threshold is breached (position is unhealthy)
|
|
9
|
+
*/
|
|
10
|
+
export declare const isThresholdBreached: ({ assets, stethShares, debtInEth, forcedRebalanceThresholdBP, verbose, }: {
|
|
11
|
+
assets: bigint;
|
|
12
|
+
stethShares: bigint;
|
|
13
|
+
debtInEth: bigint;
|
|
14
|
+
forcedRebalanceThresholdBP: bigint;
|
|
15
|
+
verbose?: boolean;
|
|
16
|
+
}) => boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Calculate the "effective LTV ratio" for display purposes
|
|
19
|
+
* This shows how close the position is to the threshold
|
|
20
|
+
* Returns basis points (10000 = 100%)
|
|
21
|
+
*/
|
|
22
|
+
export declare const calculateEffectiveLTV: ({ assets, debtInEth, }: {
|
|
23
|
+
assets: bigint;
|
|
24
|
+
debtInEth: bigint;
|
|
25
|
+
}) => number;
|
|
26
|
+
/**
|
|
27
|
+
* Calculate how much the position exceeds the threshold
|
|
28
|
+
* Returns basis points of how much over threshold (negative if healthy)
|
|
29
|
+
*/
|
|
30
|
+
export declare const calculateThresholdExcess: ({ assets, stethShares, debtInEth, forcedRebalanceThresholdBP, verbose, }: {
|
|
31
|
+
assets: bigint;
|
|
32
|
+
stethShares: bigint;
|
|
33
|
+
debtInEth: bigint;
|
|
34
|
+
forcedRebalanceThresholdBP: bigint;
|
|
35
|
+
verbose?: boolean;
|
|
36
|
+
}) => number;
|
|
37
|
+
export declare const indexAccountsFromEvents: ({ poolAddress, fromBlock, toBlock, batchSize, }: {
|
|
38
|
+
poolAddress: Address;
|
|
39
|
+
fromBlock?: number;
|
|
40
|
+
toBlock?: number;
|
|
41
|
+
batchSize?: number;
|
|
42
|
+
}) => Promise<Set<Address>>;
|
|
43
|
+
/**
|
|
44
|
+
* Calculate account balances from indexed events
|
|
45
|
+
*/
|
|
46
|
+
export declare const calculateBalancesFromEvents: ({ poolAddress, fromBlock, toBlock, batchSize, }: {
|
|
47
|
+
poolAddress: Address;
|
|
48
|
+
fromBlock?: number;
|
|
49
|
+
toBlock?: number;
|
|
50
|
+
batchSize?: number;
|
|
51
|
+
}) => Promise<Map<Address, {
|
|
52
|
+
stvBalance: bigint;
|
|
53
|
+
debtShares: bigint;
|
|
54
|
+
}>>;
|
|
55
|
+
export declare const grantLossSocializerRole: (address: Address, currentAccount: Address) => Promise<void>;
|
|
56
|
+
export declare const setMaxLossSocializationBP: (address: Address) => Promise<void>;
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import { zeroAddress } from 'viem';
|
|
2
|
+
import { getPublicClient } from '../../../../providers/index.js';
|
|
3
|
+
import { logInfo, logError, getIndexedEventsFromCache, callReadMethodSilent, confirmOperation, logCancel, } from '../../../../utils/index.js';
|
|
4
|
+
import { grantRoleFromImpersonatedAccount, callMethodFromImpersonatedAccount, } from '../../../../features/index.js';
|
|
5
|
+
import { getStvStethPoolContract } from '../../../../contracts/defi-wrapper/index.js';
|
|
6
|
+
const TOTAL_BASIS_POINTS = 10000n;
|
|
7
|
+
const fetchEventsForBlocks = async ({ blocks, poolAddress, batchSize = 30000, }) => {
|
|
8
|
+
const publicClient = await getPublicClient();
|
|
9
|
+
const eventsMap = new Map();
|
|
10
|
+
// Initialize empty events for each block
|
|
11
|
+
for (const block of blocks) {
|
|
12
|
+
eventsMap.set(block, {
|
|
13
|
+
transfer: [],
|
|
14
|
+
minted: [],
|
|
15
|
+
burned: [],
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
if (blocks.length === 0)
|
|
19
|
+
return eventsMap;
|
|
20
|
+
// Split blocks into batches based on block range
|
|
21
|
+
const batches = [];
|
|
22
|
+
let currentBatch = [];
|
|
23
|
+
let batchStartBlock = blocks[0];
|
|
24
|
+
for (const block of blocks) {
|
|
25
|
+
// If block is within batch size range from start, add to current batch
|
|
26
|
+
if (block - batchStartBlock < batchSize) {
|
|
27
|
+
currentBatch.push(block);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// Start new batch
|
|
31
|
+
batches.push(currentBatch);
|
|
32
|
+
currentBatch = [block];
|
|
33
|
+
batchStartBlock = block;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (currentBatch.length > 0) {
|
|
37
|
+
batches.push(currentBatch);
|
|
38
|
+
}
|
|
39
|
+
logInfo(`Fetching events for ${blocks.length} blocks in ${batches.length} batch(es) (max ${batchSize} blocks per batch)...`);
|
|
40
|
+
// Fetch each batch
|
|
41
|
+
for (let i = 0; i < batches.length; i++) {
|
|
42
|
+
const batch = batches[i];
|
|
43
|
+
if (!batch || batch.length === 0)
|
|
44
|
+
continue;
|
|
45
|
+
const blocksSet = new Set(batch);
|
|
46
|
+
const minBlock = batch[0];
|
|
47
|
+
const maxBlock = batch[batch.length - 1];
|
|
48
|
+
logInfo(`Batch ${i + 1}/${batches.length}: fetching blocks ${minBlock} to ${maxBlock} (${batch.length} blocks)...`);
|
|
49
|
+
try {
|
|
50
|
+
// Fetch all events in parallel for this batch
|
|
51
|
+
const [transferLogs, mintedLogs, burnedLogs] = await Promise.all([
|
|
52
|
+
publicClient.getLogs({
|
|
53
|
+
address: poolAddress,
|
|
54
|
+
event: {
|
|
55
|
+
type: 'event',
|
|
56
|
+
name: 'Transfer',
|
|
57
|
+
inputs: [
|
|
58
|
+
{ indexed: true, name: 'from', type: 'address' },
|
|
59
|
+
{ indexed: true, name: 'to', type: 'address' },
|
|
60
|
+
{ indexed: false, name: 'value', type: 'uint256' },
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
fromBlock: minBlock,
|
|
64
|
+
toBlock: maxBlock,
|
|
65
|
+
}),
|
|
66
|
+
publicClient.getLogs({
|
|
67
|
+
address: poolAddress,
|
|
68
|
+
event: {
|
|
69
|
+
type: 'event',
|
|
70
|
+
name: 'StethSharesMinted',
|
|
71
|
+
inputs: [
|
|
72
|
+
{ indexed: true, name: 'account', type: 'address' },
|
|
73
|
+
{ indexed: false, name: 'stethShares', type: 'uint256' },
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
fromBlock: minBlock,
|
|
77
|
+
toBlock: maxBlock,
|
|
78
|
+
}),
|
|
79
|
+
publicClient.getLogs({
|
|
80
|
+
address: poolAddress,
|
|
81
|
+
event: {
|
|
82
|
+
type: 'event',
|
|
83
|
+
name: 'StethSharesBurned',
|
|
84
|
+
inputs: [
|
|
85
|
+
{ indexed: true, name: 'account', type: 'address' },
|
|
86
|
+
{ indexed: false, name: 'stethShares', type: 'uint256' },
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
fromBlock: minBlock,
|
|
90
|
+
toBlock: maxBlock,
|
|
91
|
+
}),
|
|
92
|
+
]);
|
|
93
|
+
logInfo(` Found ${transferLogs.length} Transfer, ${mintedLogs.length} Minted, ${burnedLogs.length} Burned events`);
|
|
94
|
+
// Group Transfer events by block
|
|
95
|
+
for (const log of transferLogs) {
|
|
96
|
+
const blockNumber = log.blockNumber;
|
|
97
|
+
if (blockNumber && blocksSet.has(blockNumber) && log.args) {
|
|
98
|
+
const blockEvents = eventsMap.get(blockNumber);
|
|
99
|
+
if (blockEvents) {
|
|
100
|
+
const args = log.args;
|
|
101
|
+
if (args.from && args.to && args.value !== undefined) {
|
|
102
|
+
blockEvents.transfer.push({
|
|
103
|
+
blockNumber: blockNumber.toString(),
|
|
104
|
+
from: args.from,
|
|
105
|
+
to: args.to,
|
|
106
|
+
value: args.value.toString(),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Group Minted events by block
|
|
113
|
+
for (const log of mintedLogs) {
|
|
114
|
+
const blockNumber = log.blockNumber;
|
|
115
|
+
if (blockNumber && blocksSet.has(blockNumber) && log.args) {
|
|
116
|
+
const blockEvents = eventsMap.get(blockNumber);
|
|
117
|
+
if (blockEvents) {
|
|
118
|
+
const args = log.args;
|
|
119
|
+
if (args.account && args.stethShares !== undefined) {
|
|
120
|
+
blockEvents.minted.push({
|
|
121
|
+
blockNumber: blockNumber.toString(),
|
|
122
|
+
account: args.account,
|
|
123
|
+
stethShares: args.stethShares.toString(),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Group Burned events by block
|
|
130
|
+
for (const log of burnedLogs) {
|
|
131
|
+
const blockNumber = log.blockNumber;
|
|
132
|
+
if (blockNumber && blocksSet.has(blockNumber) && log.args) {
|
|
133
|
+
const blockEvents = eventsMap.get(blockNumber);
|
|
134
|
+
if (blockEvents) {
|
|
135
|
+
const args = log.args;
|
|
136
|
+
if (args.account && args.stethShares !== undefined) {
|
|
137
|
+
blockEvents.burned.push({
|
|
138
|
+
blockNumber: blockNumber.toString(),
|
|
139
|
+
account: args.account,
|
|
140
|
+
stethShares: args.stethShares.toString(),
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
logError(error, `Error fetching events for batch ${i + 1}: ${error}`);
|
|
149
|
+
throw new Error(`Failed to fetch events for batch ${i + 1}: ${error}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
logInfo(`Processed events for ${eventsMap.size} blocks`);
|
|
153
|
+
return eventsMap;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Replicates the contract's _isThresholdBreached logic
|
|
157
|
+
* @param assets - STV assets value in ETH (from previewRedeem)
|
|
158
|
+
* @param stethShares - debt in stETH shares
|
|
159
|
+
* @param debtInEth - debt in ETH (from getPooledEthBySharesRoundUp)
|
|
160
|
+
* @param forcedRebalanceThresholdBP - threshold in basis points
|
|
161
|
+
* @returns true if threshold is breached (position is unhealthy)
|
|
162
|
+
*/
|
|
163
|
+
export const isThresholdBreached = ({ assets, stethShares, debtInEth, forcedRebalanceThresholdBP, verbose, }) => {
|
|
164
|
+
// If no debt, position is healthy
|
|
165
|
+
if (stethShares === 0n)
|
|
166
|
+
return false;
|
|
167
|
+
// Calculate assetsThreshold using the same formula as contract:
|
|
168
|
+
// assetsThreshold = mulDiv(
|
|
169
|
+
// getPooledEthBySharesRoundUp(_stethShares),
|
|
170
|
+
// TOTAL_BASIS_POINTS,
|
|
171
|
+
// TOTAL_BASIS_POINTS - forcedRebalanceThresholdBP(),
|
|
172
|
+
// Ceil
|
|
173
|
+
// )
|
|
174
|
+
const numerator = debtInEth * TOTAL_BASIS_POINTS;
|
|
175
|
+
const denominator = TOTAL_BASIS_POINTS - forcedRebalanceThresholdBP;
|
|
176
|
+
// mulDiv with ceiling rounding
|
|
177
|
+
const assetsThreshold = numerator / denominator + (numerator % denominator > 0n ? 1n : 0n);
|
|
178
|
+
if (verbose) {
|
|
179
|
+
logInfo(` [isThresholdBreached]
|
|
180
|
+
numerator: ${numerator.toString()}
|
|
181
|
+
denominator: ${denominator.toString()}
|
|
182
|
+
assetsThreshold: ${assetsThreshold.toString()}
|
|
183
|
+
assets: ${assets.toString()}
|
|
184
|
+
breached: ${assets < assetsThreshold} (${assets} < ${assetsThreshold})
|
|
185
|
+
`);
|
|
186
|
+
}
|
|
187
|
+
// Position is unhealthy if assets < assetsThreshold
|
|
188
|
+
return assets < assetsThreshold;
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Calculate the "effective LTV ratio" for display purposes
|
|
192
|
+
* This shows how close the position is to the threshold
|
|
193
|
+
* Returns basis points (10000 = 100%)
|
|
194
|
+
*/
|
|
195
|
+
export const calculateEffectiveLTV = ({ assets, debtInEth, }) => {
|
|
196
|
+
if (assets === 0n)
|
|
197
|
+
return 0;
|
|
198
|
+
// Simple debt/collateral ratio in basis points
|
|
199
|
+
return Number((debtInEth * 10000n) / assets);
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Calculate how much the position exceeds the threshold
|
|
203
|
+
* Returns basis points of how much over threshold (negative if healthy)
|
|
204
|
+
*/
|
|
205
|
+
export const calculateThresholdExcess = ({ assets, stethShares, debtInEth, forcedRebalanceThresholdBP, verbose, }) => {
|
|
206
|
+
if (stethShares === 0n)
|
|
207
|
+
return 0;
|
|
208
|
+
const numerator = debtInEth * TOTAL_BASIS_POINTS;
|
|
209
|
+
const denominator = TOTAL_BASIS_POINTS - forcedRebalanceThresholdBP;
|
|
210
|
+
const assetsThreshold = numerator / denominator + (numerator % denominator > 0n ? 1n : 0n);
|
|
211
|
+
// How much short of threshold? (negative means healthy margin)
|
|
212
|
+
const shortfall = assetsThreshold - assets;
|
|
213
|
+
if (verbose) {
|
|
214
|
+
logInfo(` [calculateThresholdExcess]
|
|
215
|
+
assetsThreshold: ${assetsThreshold.toString()}
|
|
216
|
+
assets: ${assets.toString()}
|
|
217
|
+
shortfall: ${shortfall.toString()} (threshold - assets)
|
|
218
|
+
`);
|
|
219
|
+
}
|
|
220
|
+
// Convert to percentage of assets
|
|
221
|
+
if (assets === 0n)
|
|
222
|
+
return 0;
|
|
223
|
+
const excessBP = Number((shortfall * 10000n) / assets);
|
|
224
|
+
if (verbose) {
|
|
225
|
+
logInfo(` excessBP: ${excessBP} (${(excessBP / 100).toFixed(2)}%)`);
|
|
226
|
+
}
|
|
227
|
+
return excessBP;
|
|
228
|
+
};
|
|
229
|
+
// Helper function to index accounts from events
|
|
230
|
+
export const indexAccountsFromEvents = async ({ poolAddress, fromBlock, toBlock, batchSize, }) => {
|
|
231
|
+
const publicClient = await getPublicClient();
|
|
232
|
+
const from = fromBlock ? BigInt(fromBlock) : undefined;
|
|
233
|
+
const to = toBlock ? BigInt(toBlock) : await publicClient.getBlockNumber();
|
|
234
|
+
// Calculate block range
|
|
235
|
+
const startBlock = from || (to - 10000n > 0n ? to - 10000n : 0n);
|
|
236
|
+
logInfo(`Scanning blocks ${startBlock} to ${to}...`);
|
|
237
|
+
// Get events from cache or fetch from blockchain
|
|
238
|
+
const events = await getIndexedEventsFromCache({
|
|
239
|
+
poolAddress,
|
|
240
|
+
startBlock,
|
|
241
|
+
endBlock: to,
|
|
242
|
+
fetchEventsForBlocks: (blocks) => fetchEventsForBlocks({ blocks, poolAddress, batchSize }),
|
|
243
|
+
});
|
|
244
|
+
// Extract unique accounts from cached events
|
|
245
|
+
const accounts = new Set();
|
|
246
|
+
for (const event of events.transfer) {
|
|
247
|
+
if (event.from && event.from !== zeroAddress)
|
|
248
|
+
accounts.add(event.from);
|
|
249
|
+
if (event.to && event.to !== zeroAddress)
|
|
250
|
+
accounts.add(event.to);
|
|
251
|
+
}
|
|
252
|
+
for (const event of events.minted) {
|
|
253
|
+
if (event.account) {
|
|
254
|
+
accounts.add(event.account);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
for (const event of events.burned) {
|
|
258
|
+
if (event.account) {
|
|
259
|
+
accounts.add(event.account);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
logInfo(`Found ${accounts.size} unique accounts in range`);
|
|
263
|
+
return accounts;
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Calculate account balances from indexed events
|
|
267
|
+
*/
|
|
268
|
+
export const calculateBalancesFromEvents = async ({ poolAddress, fromBlock, toBlock, batchSize, }) => {
|
|
269
|
+
const publicClient = await getPublicClient();
|
|
270
|
+
const balances = new Map();
|
|
271
|
+
const from = fromBlock ? BigInt(fromBlock) : undefined;
|
|
272
|
+
const to = toBlock ? BigInt(toBlock) : await publicClient.getBlockNumber();
|
|
273
|
+
// Calculate block range
|
|
274
|
+
const startBlock = from || (to - 50000n > 0n ? to - 50000n : 0n);
|
|
275
|
+
logInfo(`Calculating balances from events in blocks ${startBlock} to ${to}...`);
|
|
276
|
+
// Use the same indexing approach as indexAccountsFromEvents (with cache)
|
|
277
|
+
const events = await getIndexedEventsFromCache({
|
|
278
|
+
poolAddress,
|
|
279
|
+
startBlock,
|
|
280
|
+
endBlock: to,
|
|
281
|
+
fetchEventsForBlocks: (blocks) => fetchEventsForBlocks({ blocks, poolAddress, batchSize }),
|
|
282
|
+
});
|
|
283
|
+
logInfo(`Found ${events.transfer.length} Transfer, ${events.minted.length} Minted, ${events.burned.length} Burned events`);
|
|
284
|
+
// Helper to get or create balance entry
|
|
285
|
+
const getBalance = (address) => {
|
|
286
|
+
let balance = balances.get(address);
|
|
287
|
+
if (!balance) {
|
|
288
|
+
balance = { stvBalance: 0n, debtShares: 0n };
|
|
289
|
+
balances.set(address, balance);
|
|
290
|
+
}
|
|
291
|
+
return balance;
|
|
292
|
+
};
|
|
293
|
+
// Process Transfer events (STV balance changes)
|
|
294
|
+
for (const event of events.transfer) {
|
|
295
|
+
if (!event.from || !event.to || !event.value) {
|
|
296
|
+
logInfo(`Skipping invalid Transfer event: ${JSON.stringify(event)}`);
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
const from = event.from;
|
|
300
|
+
const to = event.to;
|
|
301
|
+
const value = BigInt(event.value);
|
|
302
|
+
// Minting (from zero address)
|
|
303
|
+
if (from === zeroAddress) {
|
|
304
|
+
const balance = getBalance(to);
|
|
305
|
+
balance.stvBalance += value;
|
|
306
|
+
}
|
|
307
|
+
// Burning (to zero address)
|
|
308
|
+
else if (to === zeroAddress) {
|
|
309
|
+
const balance = getBalance(from);
|
|
310
|
+
balance.stvBalance -= value;
|
|
311
|
+
if (balance.stvBalance < 0n) {
|
|
312
|
+
logInfo(`Warning: Negative STV balance for ${from}: ${balance.stvBalance}`);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
// Transfer between accounts
|
|
316
|
+
else {
|
|
317
|
+
const fromBalance = getBalance(from);
|
|
318
|
+
const toBalance = getBalance(to);
|
|
319
|
+
fromBalance.stvBalance -= value;
|
|
320
|
+
toBalance.stvBalance += value;
|
|
321
|
+
if (fromBalance.stvBalance < 0n) {
|
|
322
|
+
logInfo(`Warning: Negative STV balance for ${from}: ${fromBalance.stvBalance}`);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
// Process StethSharesMinted events (debt increases)
|
|
327
|
+
for (const event of events.minted) {
|
|
328
|
+
if (!event.account || !event.stethShares) {
|
|
329
|
+
logInfo(`Skipping invalid Minted event: ${JSON.stringify(event)}`);
|
|
330
|
+
continue;
|
|
331
|
+
}
|
|
332
|
+
const account = event.account;
|
|
333
|
+
const stethShares = BigInt(event.stethShares);
|
|
334
|
+
const balance = getBalance(account);
|
|
335
|
+
balance.debtShares += stethShares;
|
|
336
|
+
}
|
|
337
|
+
// Process StethSharesBurned events (debt decreases)
|
|
338
|
+
for (const event of events.burned) {
|
|
339
|
+
if (!event.account || !event.stethShares) {
|
|
340
|
+
logInfo(`Skipping invalid Burned event: ${JSON.stringify(event)}`);
|
|
341
|
+
continue;
|
|
342
|
+
}
|
|
343
|
+
const account = event.account;
|
|
344
|
+
const stethShares = BigInt(event.stethShares);
|
|
345
|
+
const balance = getBalance(account);
|
|
346
|
+
balance.debtShares -= stethShares;
|
|
347
|
+
if (balance.debtShares < 0n) {
|
|
348
|
+
logInfo(`Warning: Negative debt shares for ${account}: ${balance.debtShares}`);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
logInfo(`Calculated balances for ${balances.size} accounts`);
|
|
352
|
+
return balances;
|
|
353
|
+
};
|
|
354
|
+
const TIME_LOCKER_ACCOUNT = '0x5513fd2E0770eA3f670944d2B36a1F0a10689B2d';
|
|
355
|
+
export const grantLossSocializerRole = async (address, currentAccount) => {
|
|
356
|
+
const poolContract = await getStvStethPoolContract(address);
|
|
357
|
+
const LOSS_SOCIALIZER_ROLE = await callReadMethodSilent(poolContract, 'LOSS_SOCIALIZER_ROLE');
|
|
358
|
+
const roleMembers = await callReadMethodSilent(poolContract, 'getRoleMembers', [LOSS_SOCIALIZER_ROLE]);
|
|
359
|
+
if (!roleMembers.includes(currentAccount)) {
|
|
360
|
+
logInfo(`Address ${currentAccount} does not have the LOSS_SOCIALIZER_ROLE role`);
|
|
361
|
+
const confirm = await confirmOperation(`Do you want set LOSS_SOCIALIZER_ROLE role for ${currentAccount}? Works only on Forked network like Anvil`);
|
|
362
|
+
if (!confirm) {
|
|
363
|
+
logCancel('Operation cancelled.');
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
await grantRoleFromImpersonatedAccount({
|
|
368
|
+
currentAccount,
|
|
369
|
+
contract: poolContract,
|
|
370
|
+
impersonateAccount: TIME_LOCKER_ACCOUNT,
|
|
371
|
+
role: LOSS_SOCIALIZER_ROLE,
|
|
372
|
+
roleName: 'LOSS_SOCIALIZER_ROLE',
|
|
373
|
+
});
|
|
374
|
+
};
|
|
375
|
+
export const setMaxLossSocializationBP = async (address) => {
|
|
376
|
+
const poolContract = await getStvStethPoolContract(address);
|
|
377
|
+
const confirm = await confirmOperation(`Do you want set maxLossSocializationBP to 10000? Works only on Forked network like Anvil`);
|
|
378
|
+
if (!confirm) {
|
|
379
|
+
logCancel('Operation cancelled.');
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
await callMethodFromImpersonatedAccount({
|
|
383
|
+
contract: poolContract,
|
|
384
|
+
impersonateAccount: TIME_LOCKER_ACCOUNT,
|
|
385
|
+
functionName: 'setMaxLossSocializationBP',
|
|
386
|
+
args: [10000],
|
|
387
|
+
});
|
|
388
|
+
};
|
|
389
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/use-cases/health/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,OAAO,EACP,QAAQ,EACR,yBAAyB,EAEzB,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,GACV,MAAM,OAAO,CAAC;AACf,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAClC,MAAM,EACN,WAAW,EACX,SAAS,GAAG,KAAK,GAKlB,EAAsC,EAAE;IACvC,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;IAElD,yCAAyC;IACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YACnB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1C,iDAAiD;IACjD,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,eAAe,GAAW,MAAM,CAAC,CAAC,CAAW,CAAC;IAElD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,uEAAuE;QACvE,IAAI,KAAK,GAAG,eAAe,GAAG,SAAS,EAAE,CAAC;YACxC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3B,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC;YACvB,eAAe,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CACL,uBAAuB,MAAM,CAAC,MAAM,cAAc,OAAO,CAAC,MAAM,mBAAmB,SAAS,uBAAuB,CACpH,CAAC;IAEF,mBAAmB;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAE3C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAW,CAAC;QAEnD,OAAO,CACL,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,qBAAqB,QAAQ,OAAO,QAAQ,KAAK,KAAK,CAAC,MAAM,aAAa,CAC3G,CAAC;QAEF,IAAI,CAAC;YACH,8CAA8C;YAC9C,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC/D,YAAY,CAAC,OAAO,CAAC;oBACnB,OAAO,EAAE,WAAW;oBACpB,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE;4BACN,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;4BAChD,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC9C,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;yBACnD;qBACF;oBACD,SAAS,EAAE,QAAQ;oBACnB,OAAO,EAAE,QAAQ;iBAClB,CAAC;gBACF,YAAY,CAAC,OAAO,CAAC;oBACnB,OAAO,EAAE,WAAW;oBACpB,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE;4BACN,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;4BACnD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;yBACzD;qBACF;oBACD,SAAS,EAAE,QAAQ;oBACnB,OAAO,EAAE,QAAQ;iBAClB,CAAC;gBACF,YAAY,CAAC,OAAO,CAAC;oBACnB,OAAO,EAAE,WAAW;oBACpB,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE;4BACN,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;4BACnD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;yBACzD;qBACF;oBACD,SAAS,EAAE,QAAQ;oBACnB,OAAO,EAAE,QAAQ;iBAClB,CAAC;aACH,CAAC,CAAC;YAEH,OAAO,CACL,WAAW,YAAY,CAAC,MAAM,cAAc,UAAU,CAAC,MAAM,YAAY,UAAU,CAAC,MAAM,gBAAgB,CAC3G,CAAC;YAEF,iCAAiC;YACjC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;gBAEpC,IAAI,WAAW,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC1D,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAE/C,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,IAAI,GAAG,GAAG,CAAC,IAIhB,CAAC;wBAEF,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;4BACrD,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;gCACxB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gCACnC,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,EAAE,EAAE,IAAI,CAAC,EAAE;gCACX,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;6BAC7B,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,+BAA+B;YAC/B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;gBAEpC,IAAI,WAAW,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC1D,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAE/C,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAiD,CAAC;wBAEnE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;4BACnD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;gCACtB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gCACnC,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;6BACzC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,+BAA+B;YAC/B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;gBAEpC,IAAI,WAAW,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC1D,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAE/C,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAiD,CAAC;wBAEnE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;4BACnD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;gCACtB,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gCACnC,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;6BACzC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,EAAE,mCAAmC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,wBAAwB,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC;IAEzD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,MAAM,EACN,WAAW,EACX,SAAS,EACT,0BAA0B,EAC1B,OAAO,GAOR,EAAW,EAAE;IACZ,kCAAkC;IAClC,IAAI,WAAW,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAErC,gEAAgE;IAChE,4BAA4B;IAC5B,+CAA+C;IAC/C,wBAAwB;IACxB,uDAAuD;IACvD,SAAS;IACT,IAAI;IAEJ,MAAM,SAAS,GAAG,SAAS,GAAG,kBAAkB,CAAC;IACjD,MAAM,WAAW,GAAG,kBAAkB,GAAG,0BAA0B,CAAC;IAEpE,+BAA+B;IAC/B,MAAM,eAAe,GACnB,SAAS,GAAG,WAAW,GAAG,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAErE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC;mBACO,SAAS,CAAC,QAAQ,EAAE;qBAClB,WAAW,CAAC,QAAQ,EAAE;yBAClB,eAAe,CAAC,QAAQ,EAAE;gBACnC,MAAM,CAAC,QAAQ,EAAE;kBACf,MAAM,GAAG,eAAe,KAAK,MAAM,MAAM,eAAe;KACrE,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,OAAO,MAAM,GAAG,eAAe,CAAC;AAClC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,MAAM,EACN,SAAS,GAIV,EAAU,EAAE;IACX,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC;IAE5B,+CAA+C;IAC/C,OAAO,MAAM,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,MAAM,EACN,WAAW,EACX,SAAS,EACT,0BAA0B,EAC1B,OAAO,GAOR,EAAU,EAAE;IACX,IAAI,WAAW,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC;IAEjC,MAAM,SAAS,GAAG,SAAS,GAAG,kBAAkB,CAAC;IACjD,MAAM,WAAW,GAAG,kBAAkB,GAAG,0BAA0B,CAAC;IACpE,MAAM,eAAe,GACnB,SAAS,GAAG,WAAW,GAAG,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAErE,+DAA+D;IAC/D,MAAM,SAAS,GAAG,eAAe,GAAG,MAAM,CAAC;IAE3C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC;yBACa,eAAe,CAAC,QAAQ,EAAE;gBACnC,MAAM,CAAC,QAAQ,EAAE;mBACd,SAAS,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC;IAE5B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IACvD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,mBAAmB,QAAQ,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,gDAAgD;AAChD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,EAC5C,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,GAMV,EAAyB,EAAE;IAC1B,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;IAE7C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;IAE3E,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEjE,OAAO,CAAC,mBAAmB,UAAU,OAAO,EAAE,KAAK,CAAC,CAAC;IAErD,iDAAiD;IACjD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;QAC7C,WAAW;QACX,UAAU;QACV,QAAQ,EAAE,EAAE;QACZ,oBAAoB,EAAE,CAAC,MAAgB,EAAE,EAAE,CACzC,oBAAoB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;KAC3D,CAAC,CAAC;IAEH,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAW,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAC1C,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAe,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW;YAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAa,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAkB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAkB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,SAAS,QAAQ,CAAC,IAAI,2BAA2B,CAAC,CAAC;IAE3D,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAAE,EAChD,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,GAMV,EAQC,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAMrB,CAAC;IAEJ,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;IAE3E,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEjE,OAAO,CACL,8CAA8C,UAAU,OAAO,EAAE,KAAK,CACvE,CAAC;IAEF,yEAAyE;IACzE,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;QAC7C,WAAW;QACX,UAAU;QACV,QAAQ,EAAE,EAAE;QACZ,oBAAoB,EAAE,CAAC,MAAgB,EAAE,EAAE,CACzC,oBAAoB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;KAC3D,CAAC,CAAC;IAEH,OAAO,CACL,SAAS,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,gBAAgB,CAClH,CAAC;IAEF,wCAAwC;IACxC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE;QACtC,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC7C,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,gDAAgD;IAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7C,OAAO,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAErE,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAe,CAAC;QACnC,MAAM,EAAE,GAAG,KAAK,CAAC,EAAa,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAElC,8BAA8B;QAC9B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YAC/B,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QAC9B,CAAC;QACD,4BAA4B;aACvB,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;YAE5B,IAAI,OAAO,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;gBAC5B,OAAO,CACL,qCAAqC,IAAI,KAAK,OAAO,CAAC,UAAU,EAAE,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,4BAA4B;aACvB,CAAC;YACJ,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YACjC,WAAW,CAAC,UAAU,IAAI,KAAK,CAAC;YAChC,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC;YAE9B,IAAI,WAAW,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;gBAChC,OAAO,CACL,qCAAqC,IAAI,KAAK,WAAW,CAAC,UAAU,EAAE,CACvE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnE,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkB,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,UAAU,IAAI,WAAW,CAAC;IACpC,CAAC;IAED,oDAAoD;IACpD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnE,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAkB,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,UAAU,IAAI,WAAW,CAAC;QAElC,IAAI,OAAO,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;YAC5B,OAAO,CACL,qCAAqC,OAAO,KAAK,OAAO,CAAC,UAAU,EAAE,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,2BAA2B,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC;IAE7D,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,4CAA4C,CAAC;AAEzE,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,OAAgB,EAChB,cAAuB,EACvB,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,oBAAoB,GAAG,MAAM,oBAAoB,CACrD,YAAY,EACZ,sBAAsB,CACvB,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAC5C,YAAY,EACZ,gBAAgB,EAChB,CAAC,oBAAoB,CAAC,CACvB,CAAC;IACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1C,OAAO,CACL,WAAW,cAAc,8CAA8C,CACxE,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,iDAAiD,cAAc,2CAA2C,CAC3G,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS,CAAC,sBAAsB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,gCAAgC,CAAC;QACrC,cAAc;QACd,QAAQ,EAAE,YAAY;QACtB,kBAAkB,EAAE,mBAAmB;QACvC,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,sBAAsB;KACjC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;IAClE,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,0FAA0F,CAC3F,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,MAAM,iCAAiC,CAAC;QACtC,QAAQ,EAAE,YAAY;QACtB,kBAAkB,EAAE,mBAAmB;QACvC,YAAY,EAAE,2BAA2B;QACzC,IAAI,EAAE,CAAC,KAAK,CAAC;KACd,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|