@lidofinance/lsv-cli 1.4.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abi/Dashboard.d.ts +24 -0
- package/dist/abi/PredepositGuarantee.d.ts +48 -0
- package/dist/abi/PredepositGuarantee.js +32 -0
- package/dist/abi/PredepositGuarantee.js.map +1 -1
- package/dist/abi/StEth.d.ts +1175 -59
- package/dist/abi/StEth.js +885 -320
- package/dist/abi/StEth.js.map +1 -1
- package/dist/abi/defi-wrapper/Factory.d.ts +532 -657
- package/dist/abi/defi-wrapper/Factory.js +1083 -647
- package/dist/abi/defi-wrapper/Factory.js.map +1 -1
- package/dist/abi/defi-wrapper/OssifiableProxy.d.ts +71 -0
- package/dist/abi/defi-wrapper/OssifiableProxy.js +93 -0
- package/dist/abi/defi-wrapper/OssifiableProxy.js.map +1 -0
- package/dist/abi/defi-wrapper/StvStETHPool.d.ts +38 -32
- package/dist/abi/defi-wrapper/StvStETHPool.js +50 -42
- package/dist/abi/defi-wrapper/StvStETHPool.js.map +1 -1
- package/dist/abi/defi-wrapper/TimeLock.d.ts +770 -0
- package/dist/abi/defi-wrapper/TimeLock.js +999 -0
- package/dist/abi/defi-wrapper/TimeLock.js.map +1 -0
- package/dist/abi/defi-wrapper/index.d.ts +2 -0
- package/dist/abi/defi-wrapper/index.js +2 -0
- package/dist/abi/defi-wrapper/index.js.map +1 -1
- package/dist/contracts/defi-wrapper/index.d.ts +2 -0
- package/dist/contracts/defi-wrapper/index.js +2 -0
- package/dist/contracts/defi-wrapper/index.js.map +1 -1
- package/dist/contracts/defi-wrapper/ossifiable-proxy.d.ts +4 -0
- package/dist/contracts/defi-wrapper/ossifiable-proxy.js +12 -0
- package/dist/contracts/defi-wrapper/ossifiable-proxy.js.map +1 -0
- package/dist/contracts/defi-wrapper/timelock.d.ts +4 -0
- package/dist/contracts/defi-wrapper/timelock.js +12 -0
- package/dist/contracts/defi-wrapper/timelock.js.map +1 -0
- package/dist/contracts/steth.d.ts +4 -27706
- package/dist/contracts/steth.js +2 -2
- package/dist/contracts/steth.js.map +1 -1
- package/dist/features/consolidation.js +19 -3
- package/dist/features/consolidation.js.map +1 -1
- package/dist/features/defi-wrapper/create-vault.js +16 -13
- package/dist/features/defi-wrapper/create-vault.js.map +1 -1
- package/dist/features/defi-wrapper/defi-wrapper-factory.d.ts +10 -27
- package/dist/features/defi-wrapper/defi-wrapper-factory.js +105 -15
- package/dist/features/defi-wrapper/defi-wrapper-factory.js.map +1 -1
- package/dist/features/defi-wrapper/distributor.d.ts +24 -0
- package/dist/features/defi-wrapper/distributor.js +300 -0
- package/dist/features/defi-wrapper/distributor.js.map +1 -0
- package/dist/features/defi-wrapper/index.d.ts +1 -0
- package/dist/features/defi-wrapper/index.js +1 -0
- package/dist/features/defi-wrapper/index.js.map +1 -1
- package/dist/features/defi-wrapper/pool-info.d.ts +17 -2
- package/dist/features/defi-wrapper/pool-info.js +63 -13
- package/dist/features/defi-wrapper/pool-info.js.map +1 -1
- package/dist/features/defi-wrapper/timelock.d.ts +19 -0
- package/dist/features/defi-wrapper/timelock.js +198 -0
- package/dist/features/defi-wrapper/timelock.js.map +1 -0
- package/dist/features/deposits/check-bls-deposits.js +15 -3
- package/dist/features/deposits/check-bls-deposits.js.map +1 -1
- package/dist/features/deposits/make-pdg-proof.js +15 -3
- package/dist/features/deposits/make-pdg-proof.js.map +1 -1
- package/dist/features/deposits/no-pdg.js +50 -14
- package/dist/features/deposits/no-pdg.js.map +1 -1
- package/dist/features/deposits/pdg.js +5 -1
- package/dist/features/deposits/pdg.js.map +1 -1
- package/dist/features/dev-tools/impersonate.js +5 -1
- package/dist/features/dev-tools/impersonate.js.map +1 -1
- package/dist/features/metrics.js +24 -6
- package/dist/features/metrics.js.map +1 -1
- package/dist/features/mint-burn/allowance.js +15 -6
- package/dist/features/mint-burn/allowance.js.map +1 -1
- package/dist/features/mint-burn/burn-steth.js +5 -1
- package/dist/features/mint-burn/burn-steth.js.map +1 -1
- package/dist/features/mint-burn/index.d.ts +1 -0
- package/dist/features/mint-burn/index.js +1 -0
- package/dist/features/mint-burn/index.js.map +1 -1
- package/dist/features/mint-burn/mint-limit.d.ts +9 -0
- package/dist/features/mint-burn/mint-limit.js +31 -0
- package/dist/features/mint-burn/mint-limit.js.map +1 -0
- package/dist/features/mint-burn/mint-steth.js +5 -1
- package/dist/features/mint-burn/mint-steth.js.map +1 -1
- package/dist/features/pdg.js +5 -1
- package/dist/features/pdg.js.map +1 -1
- package/dist/features/utils/connection.js +5 -1
- package/dist/features/utils/connection.js.map +1 -1
- 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/liability-shares.js +5 -1
- package/dist/features/utils/liability-shares.js.map +1 -1
- package/dist/features/utils/minting-capacity.js +4 -3
- package/dist/features/utils/minting-capacity.js.map +1 -1
- package/dist/features/utils/quarantine.js +5 -1
- package/dist/features/utils/quarantine.js.map +1 -1
- package/dist/features/utils/report-fresh.js +15 -3
- package/dist/features/utils/report-fresh.js.map +1 -1
- package/dist/features/utils/try-fetch.d.ts +5 -0
- package/dist/features/utils/try-fetch.js +26 -0
- package/dist/features/utils/try-fetch.js.map +1 -0
- package/dist/features/vault-factory.js +15 -3
- package/dist/features/vault-factory.js.map +1 -1
- package/dist/features/vault-operations/connect-vault.js +10 -2
- package/dist/features/vault-operations/connect-vault.js.map +1 -1
- package/dist/features/vault-operations/dashboard-by-vault.js +10 -2
- package/dist/features/vault-operations/dashboard-by-vault.js.map +1 -1
- package/dist/features/vault-operations/roles.js +10 -2
- package/dist/features/vault-operations/roles.js.map +1 -1
- package/dist/features/vault-operations/vault-health.js +5 -1
- package/dist/features/vault-operations/vault-health.js.map +1 -1
- package/dist/features/vault-operations/vault-info.js +10 -2
- package/dist/features/vault-operations/vault-info.js.map +1 -1
- package/dist/features/vault-operations/vault-overview.js +25 -5
- package/dist/features/vault-operations/vault-overview.js.map +1 -1
- package/dist/features/vault-operations/vault-roles.js +10 -2
- package/dist/features/vault-operations/vault-roles.js.map +1 -1
- package/dist/features/vault-operations/vaults-by-role.d.ts +24 -0
- package/dist/features/vault-operations/vaults-by-role.js +78 -27
- package/dist/features/vault-operations/vaults-by-role.js.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/programs/account/read.js +10 -5
- package/dist/programs/account/read.js.map +1 -1
- package/dist/programs/contracts/dashboard/read.js +15 -3
- package/dist/programs/contracts/dashboard/read.js.map +1 -1
- package/dist/programs/contracts/dashboard/write.js +212 -38
- package/dist/programs/contracts/dashboard/write.js.map +1 -1
- package/dist/programs/contracts/hub/read.js +15 -5
- package/dist/programs/contracts/hub/read.js.map +1 -1
- package/dist/programs/contracts/hub/write.js +10 -2
- package/dist/programs/contracts/hub/write.js.map +1 -1
- package/dist/programs/contracts/operator-grid/read.js +5 -1
- package/dist/programs/contracts/operator-grid/read.js.map +1 -1
- package/dist/programs/contracts/operator-grid/write.js +5 -1
- package/dist/programs/contracts/operator-grid/write.js.map +1 -1
- package/dist/programs/contracts/pdg/read.js +5 -1
- package/dist/programs/contracts/pdg/read.js.map +1 -1
- package/dist/programs/contracts/pdg/write.js +33 -3
- package/dist/programs/contracts/pdg/write.js.map +1 -1
- package/dist/programs/contracts/vault/write.js +5 -1
- package/dist/programs/contracts/vault/write.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/distributor/read.js +17 -5
- package/dist/programs/defi-wrapper/contracts/distributor/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/factory/read.js +73 -13
- package/dist/programs/defi-wrapper/contracts/factory/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/factory/write.js +171 -65
- package/dist/programs/defi-wrapper/contracts/factory/write.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/stv-pool/read.js +62 -18
- package/dist/programs/defi-wrapper/contracts/stv-pool/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js +62 -18
- package/dist/programs/defi-wrapper/contracts/stv-steth-pool/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js +64 -16
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/read.js.map +1 -1
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js +33 -6
- package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js.map +1 -1
- package/dist/programs/defi-wrapper/use-cases/distributor/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/use-cases/distributor/index.js +4 -0
- package/dist/programs/defi-wrapper/use-cases/distributor/index.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/distributor/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/distributor/main.js +6 -0
- package/dist/programs/defi-wrapper/use-cases/distributor/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/distributor/read.js +86 -0
- package/dist/programs/defi-wrapper/use-cases/distributor/read.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/distributor/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/distributor/write.js +191 -0
- package/dist/programs/defi-wrapper/use-cases/distributor/write.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/health/read.js +71 -21
- package/dist/programs/defi-wrapper/use-cases/health/read.js.map +1 -1
- package/dist/programs/defi-wrapper/use-cases/health/utils.js +10 -2
- package/dist/programs/defi-wrapper/use-cases/health/utils.js.map +1 -1
- package/dist/programs/defi-wrapper/use-cases/health/write.js +65 -22
- package/dist/programs/defi-wrapper/use-cases/health/write.js.map +1 -1
- package/dist/programs/defi-wrapper/use-cases/index.d.ts +2 -0
- package/dist/programs/defi-wrapper/use-cases/index.js +2 -0
- package/dist/programs/defi-wrapper/use-cases/index.js.map +1 -1
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.js +4 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/index.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.js +6 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.js +362 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.js +86 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.d.ts +2 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.js +3 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.js +6 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.js +369 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.d.ts +6 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.js +7 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.js +6 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.d.ts +2 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.js +3 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/index.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.js +6 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.js +184 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.d.ts +3 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.js +4 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/index.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.js +6 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.js +80 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/read.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.js +139 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.d.ts +2 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.js +3 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/index.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.js +6 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/main.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.d.ts +1 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.js +118 -0
- package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.js.map +1 -0
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.d.ts +1 -1
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.js +1 -2
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/index.js.map +1 -1
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js +333 -11
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js.map +1 -1
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js +463 -2
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js.map +1 -1
- package/dist/programs/dev-tools/defi-wrapper/write.js +41 -11
- package/dist/programs/dev-tools/defi-wrapper/write.js.map +1 -1
- package/dist/programs/pdg-helpers.js +55 -19
- package/dist/programs/pdg-helpers.js.map +1 -1
- package/dist/programs/use-cases/consolidation/write.js +5 -1
- package/dist/programs/use-cases/consolidation/write.js.map +1 -1
- package/dist/programs/use-cases/deposits/read.js +40 -8
- package/dist/programs/use-cases/deposits/read.js.map +1 -1
- package/dist/programs/use-cases/deposits/write.js +15 -3
- package/dist/programs/use-cases/deposits/write.js.map +1 -1
- package/dist/programs/use-cases/metrics/read.js +25 -5
- package/dist/programs/use-cases/metrics/read.js.map +1 -1
- package/dist/programs/use-cases/report/read.js +25 -5
- package/dist/programs/use-cases/report/read.js.map +1 -1
- package/dist/programs/use-cases/report/write.js +10 -2
- package/dist/programs/use-cases/report/write.js.map +1 -1
- package/dist/programs/use-cases/vault-operations/write.js +30 -6
- package/dist/programs/use-cases/vault-operations/write.js.map +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/tests/utils/rate-limit.test.d.ts +1 -0
- package/dist/tests/utils/rate-limit.test.js +246 -0
- package/dist/tests/utils/rate-limit.test.js.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +2 -2
- package/dist/utils/arguments.d.ts +14 -0
- package/dist/utils/arguments.js +28 -0
- package/dist/utils/arguments.js.map +1 -1
- package/dist/utils/cache.d.ts +6 -4
- package/dist/utils/cache.js +14 -11
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/charts/blessed/charts-apr.js +5 -1
- package/dist/utils/charts/blessed/charts-apr.js.map +1 -1
- package/dist/utils/charts/blessed/charts-rewards.js +5 -1
- package/dist/utils/charts/blessed/charts-rewards.js.map +1 -1
- package/dist/utils/charts/simple/simple-charts.js +5 -1
- package/dist/utils/charts/simple/simple-charts.js.map +1 -1
- package/dist/utils/commands/report.d.ts +5 -2
- package/dist/utils/commands/report.js +21 -7
- package/dist/utils/commands/report.js.map +1 -1
- package/dist/utils/consts.d.ts +1 -0
- package/dist/utils/consts.js +5 -0
- package/dist/utils/consts.js.map +1 -1
- package/dist/utils/fetchCL.d.ts +10 -0
- package/dist/utils/fetchCL.js +19 -0
- package/dist/utils/fetchCL.js.map +1 -1
- package/dist/utils/health/health-utils.d.ts +2 -27707
- package/dist/utils/health/health-utils.js +26 -8
- 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/prompts/operations.js +1 -3
- package/dist/utils/prompts/operations.js.map +1 -1
- package/dist/utils/rate-limit.d.ts +10 -0
- package/dist/utils/rate-limit.js +30 -0
- package/dist/utils/rate-limit.js.map +1 -0
- package/dist/utils/read-programs-by-abi.js +22 -4
- package/dist/utils/read-programs-by-abi.js.map +1 -1
- package/dist/utils/report/statistic-data.js +8 -2
- package/dist/utils/report/statistic-data.js.map +1 -1
- package/dist/utils/share-rate.js +16 -4
- package/dist/utils/share-rate.js.map +1 -1
- package/dist/utils/sleep.js.map +1 -1
- package/dist/utils/transactions/tx-private-key.d.ts +3 -5
- package/dist/utils/transactions/tx-private-key.js +13 -10
- package/dist/utils/transactions/tx-private-key.js.map +1 -1
- package/dist/utils/transactions/types.d.ts +7 -0
- package/dist/utils/transactions/utils.js +2 -2
- package/dist/utils/transactions/utils.js.map +1 -1
- package/dist/version/index.js +1 -1
- package/package.json +3 -12
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js +0 -180
- package/dist/programs/defi-wrapper/use-cases/wrapper-operations/create-pool.js.map +0 -1
- /package/dist/programs/defi-wrapper/use-cases/{wrapper-operations/create-pool.d.ts → distributor/read.d.ts} +0 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import { Option } from 'commander';
|
|
2
|
+
import { logInfo, getCommandsJson, stringToAddress, callReadMethodSilent, logResult, addressPrompt, logError, stringToBigInt, } from '../../../../../utils/index.js';
|
|
3
|
+
import { common } from './main.js';
|
|
4
|
+
import { decodeFunctionData } from 'viem';
|
|
5
|
+
import { getStvPoolContract } from '../../../../../contracts/defi-wrapper/index.js';
|
|
6
|
+
import { getPromptTimelock, OPERATION_ID_ARGUMENT, promptOperationId, TIMELOCK_ARGUMENT, waitTimeTo, } from '../../../../../features/defi-wrapper/timelock.js';
|
|
7
|
+
import { getPublicClient } from '../../../../../providers/index.js';
|
|
8
|
+
import { DashboardAbi } from '../../../../../abi/index.js';
|
|
9
|
+
import { StvPoolAbi } from '../../../../../abi/defi-wrapper/StvPool.js';
|
|
10
|
+
import { StvStETHPoolAbi } from '../../../../../abi/defi-wrapper/StvStETHPool.js';
|
|
11
|
+
import { WithdrawalQueueAbi } from '../../../../../abi/defi-wrapper/WithdrawalQueue.js';
|
|
12
|
+
import { OssifiableProxyAbi } from '../../../../../abi/defi-wrapper/OssifiableProxy.js';
|
|
13
|
+
import { TimeLockAbi } from '../../../../../abi/defi-wrapper/TimeLock.js';
|
|
14
|
+
import { DistributorAbi } from '../../../../../abi/defi-wrapper/Distributor.js';
|
|
15
|
+
// all abis of expected timelock governed contracts
|
|
16
|
+
const mixAbi = [
|
|
17
|
+
...DashboardAbi,
|
|
18
|
+
...StvPoolAbi,
|
|
19
|
+
...StvStETHPoolAbi,
|
|
20
|
+
...WithdrawalQueueAbi,
|
|
21
|
+
...OssifiableProxyAbi,
|
|
22
|
+
...TimeLockAbi,
|
|
23
|
+
...DistributorAbi,
|
|
24
|
+
];
|
|
25
|
+
const commonRead = common
|
|
26
|
+
.command('read')
|
|
27
|
+
.alias('r')
|
|
28
|
+
.description('common timelock read commands');
|
|
29
|
+
commonRead.addOption(new Option('-cmd2json'));
|
|
30
|
+
commonRead.on('option:-cmd2json', function () {
|
|
31
|
+
logInfo(getCommandsJson(commonRead));
|
|
32
|
+
process.exit();
|
|
33
|
+
});
|
|
34
|
+
commonRead
|
|
35
|
+
.command('get-timelock-address')
|
|
36
|
+
.description('get address of timelock governance contract based on pool address')
|
|
37
|
+
.argument('[pool]', 'pool contract address', stringToAddress)
|
|
38
|
+
.action(async (pool) => {
|
|
39
|
+
if (!pool) {
|
|
40
|
+
const poolPrompt = await addressPrompt('Enter pool contract address', 'pool');
|
|
41
|
+
pool = poolPrompt.pool;
|
|
42
|
+
}
|
|
43
|
+
const stvPoolContract = await getStvPoolContract(pool);
|
|
44
|
+
const defaultAdminRole = await callReadMethodSilent({
|
|
45
|
+
contract: stvPoolContract,
|
|
46
|
+
methodName: 'DEFAULT_ADMIN_ROLE',
|
|
47
|
+
payload: [],
|
|
48
|
+
});
|
|
49
|
+
const admins = await callReadMethodSilent({
|
|
50
|
+
contract: stvPoolContract,
|
|
51
|
+
methodName: 'getRoleMembers',
|
|
52
|
+
payload: [[defaultAdminRole]],
|
|
53
|
+
});
|
|
54
|
+
if (admins.length === 0) {
|
|
55
|
+
logError('No timelock governance found for the pool');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (admins.length === 1) {
|
|
59
|
+
logResult({
|
|
60
|
+
data: [['Timelock Governance Address', admins[0]]],
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (admins.length > 1) {
|
|
64
|
+
logError('Multiple admins found for the pool; Invalid configuration:');
|
|
65
|
+
const data = admins.map((addr, index) => [`Admin ${index + 1}`, addr]);
|
|
66
|
+
logResult({ data });
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
commonRead
|
|
70
|
+
.command('get-last-operations')
|
|
71
|
+
.description('get last timelock operations')
|
|
72
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
73
|
+
.option('-n, --number <number>', 'number of blocks to look back', stringToBigInt, 5000n)
|
|
74
|
+
.action(async (timelockAddress, options) => {
|
|
75
|
+
const client = await getPublicClient();
|
|
76
|
+
const timelock = await getPromptTimelock(timelockAddress);
|
|
77
|
+
const currentBlock = await client.getBlock({ blockTag: 'latest' });
|
|
78
|
+
const toBlock = currentBlock.number;
|
|
79
|
+
let fromBlock = toBlock - options.number;
|
|
80
|
+
if (fromBlock < 0n)
|
|
81
|
+
fromBlock = 0n;
|
|
82
|
+
const events = await timelock.getEvents.CallScheduled(undefined, {
|
|
83
|
+
toBlock,
|
|
84
|
+
fromBlock,
|
|
85
|
+
strict: true,
|
|
86
|
+
});
|
|
87
|
+
logInfo(`Found ${events.length} CallScheduled events from block ${fromBlock} to ${toBlock}:`);
|
|
88
|
+
for (const event of events) {
|
|
89
|
+
const { data, delay, id, index, predecessor, target, value } = event.args;
|
|
90
|
+
let waitTime = 0n;
|
|
91
|
+
const timestamp = 0n;
|
|
92
|
+
const state = await callReadMethodSilent({
|
|
93
|
+
contract: timelock,
|
|
94
|
+
methodName: 'getOperationState',
|
|
95
|
+
payload: [[id]],
|
|
96
|
+
});
|
|
97
|
+
if (state === 1) {
|
|
98
|
+
const timestamp = await callReadMethodSilent({
|
|
99
|
+
contract: timelock,
|
|
100
|
+
methodName: 'getTimestamp',
|
|
101
|
+
payload: [[id]],
|
|
102
|
+
});
|
|
103
|
+
waitTime = waitTimeTo(timestamp);
|
|
104
|
+
}
|
|
105
|
+
const stateNames = ['Unset', 'Waiting', 'Ready', 'Done'];
|
|
106
|
+
const stateName = stateNames[state] || 'Unknown';
|
|
107
|
+
let args, functionName;
|
|
108
|
+
try {
|
|
109
|
+
const decodeResult = decodeFunctionData({
|
|
110
|
+
abi: mixAbi,
|
|
111
|
+
data,
|
|
112
|
+
});
|
|
113
|
+
args = decodeResult.args;
|
|
114
|
+
functionName = decodeResult.functionName;
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
args = [];
|
|
118
|
+
functionName = 'Unknown function';
|
|
119
|
+
}
|
|
120
|
+
logResult({
|
|
121
|
+
data: [
|
|
122
|
+
['Operation ID', id],
|
|
123
|
+
['Operation Index', index.toString()],
|
|
124
|
+
['State', stateName],
|
|
125
|
+
['Target', target],
|
|
126
|
+
['Value (ETH)', value.toString()],
|
|
127
|
+
['Data', data],
|
|
128
|
+
['Function', functionName],
|
|
129
|
+
[
|
|
130
|
+
'Arguments',
|
|
131
|
+
JSON.stringify(args, (_key, value) => typeof value === 'bigint' ? value.toString() + 'n' : value),
|
|
132
|
+
],
|
|
133
|
+
['Delay (seconds)', delay.toString()],
|
|
134
|
+
['Predecessor', predecessor],
|
|
135
|
+
['Wait Time (seconds)', waitTime.toString()],
|
|
136
|
+
['Ready Timestamp', timestamp.toString()],
|
|
137
|
+
],
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
commonRead
|
|
142
|
+
.command('get-operation-state')
|
|
143
|
+
.description('get the state of a timelock operation')
|
|
144
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
145
|
+
.argument(...OPERATION_ID_ARGUMENT)
|
|
146
|
+
.action(async (timelock, operationIdInput) => {
|
|
147
|
+
const timelockContract = await getPromptTimelock(timelock);
|
|
148
|
+
const operationId = await promptOperationId(operationIdInput);
|
|
149
|
+
const state = await callReadMethodSilent({
|
|
150
|
+
contract: timelockContract,
|
|
151
|
+
methodName: 'getOperationState',
|
|
152
|
+
payload: [[operationId]],
|
|
153
|
+
});
|
|
154
|
+
// OperationState: Unset=0, Waiting=1, Ready=2, Done=3
|
|
155
|
+
const stateNames = ['Unset', 'Waiting', 'Ready', 'Done'];
|
|
156
|
+
const stateName = stateNames[state] || 'Unknown';
|
|
157
|
+
logResult({
|
|
158
|
+
data: [
|
|
159
|
+
['Operation ID', operationId],
|
|
160
|
+
['State', `${state} (${stateName})`],
|
|
161
|
+
],
|
|
162
|
+
});
|
|
163
|
+
if (state === 1) {
|
|
164
|
+
const timestamp = await callReadMethodSilent({
|
|
165
|
+
contract: timelockContract,
|
|
166
|
+
methodName: 'getTimestamp',
|
|
167
|
+
payload: [[operationId]],
|
|
168
|
+
});
|
|
169
|
+
const waitTime = waitTimeTo(timestamp);
|
|
170
|
+
logInfo(`Will be ready at timestamp ${timestamp} (in ${waitTime} seconds)`);
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
commonRead
|
|
174
|
+
.command('get-timestamp')
|
|
175
|
+
.description('get the timestamp when an operation will be ready')
|
|
176
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
177
|
+
.argument(...OPERATION_ID_ARGUMENT)
|
|
178
|
+
.action(async (timelock, operationIdInput) => {
|
|
179
|
+
const timelockContract = await getPromptTimelock(timelock);
|
|
180
|
+
const operationId = await promptOperationId(operationIdInput);
|
|
181
|
+
const timestamp = await callReadMethodSilent({
|
|
182
|
+
contract: timelockContract,
|
|
183
|
+
methodName: 'getTimestamp',
|
|
184
|
+
payload: [[operationId]],
|
|
185
|
+
});
|
|
186
|
+
const waitTime = waitTimeTo(timestamp);
|
|
187
|
+
const readyDate = new Date(Number(timestamp) * 1000).toLocaleString();
|
|
188
|
+
logResult({
|
|
189
|
+
data: [
|
|
190
|
+
['Operation ID', operationId],
|
|
191
|
+
['Timestamp', timestamp.toString()],
|
|
192
|
+
['Ready Date', readyDate],
|
|
193
|
+
['Wait Time (seconds)', waitTime.toString()],
|
|
194
|
+
],
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
commonRead
|
|
198
|
+
.command('get-min-delay')
|
|
199
|
+
.description('get the minimum delay for timelock operations')
|
|
200
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
201
|
+
.action(async (timelock) => {
|
|
202
|
+
const timelockContract = await getPromptTimelock(timelock);
|
|
203
|
+
const minDelay = await callReadMethodSilent({
|
|
204
|
+
contract: timelockContract,
|
|
205
|
+
methodName: 'getMinDelay',
|
|
206
|
+
payload: [],
|
|
207
|
+
});
|
|
208
|
+
logResult({
|
|
209
|
+
data: [
|
|
210
|
+
['Timelock', timelock],
|
|
211
|
+
['Min Delay (seconds)', minDelay.toString()],
|
|
212
|
+
['Min Delay (hours)', (Number(minDelay) / 3600).toFixed(2)],
|
|
213
|
+
],
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
commonRead
|
|
217
|
+
.command('is-operation')
|
|
218
|
+
.description('check if an operation is registered')
|
|
219
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
220
|
+
.argument(...OPERATION_ID_ARGUMENT)
|
|
221
|
+
.action(async (timelock, operationIdInput) => {
|
|
222
|
+
const timelockContract = await getPromptTimelock(timelock);
|
|
223
|
+
const operationId = await promptOperationId(operationIdInput);
|
|
224
|
+
const isOp = await callReadMethodSilent({
|
|
225
|
+
contract: timelockContract,
|
|
226
|
+
methodName: 'isOperation',
|
|
227
|
+
payload: [[operationId]],
|
|
228
|
+
});
|
|
229
|
+
logResult({
|
|
230
|
+
data: [
|
|
231
|
+
['Operation ID', operationId],
|
|
232
|
+
['Is Operation', isOp ? '✅ Yes' : '❌ No'],
|
|
233
|
+
],
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
commonRead
|
|
237
|
+
.command('is-operation-pending')
|
|
238
|
+
.description('check if an operation is pending (waiting or ready)')
|
|
239
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
240
|
+
.argument(...OPERATION_ID_ARGUMENT)
|
|
241
|
+
.action(async (timelock, operationIdInput) => {
|
|
242
|
+
const timelockContract = await getPromptTimelock(timelock);
|
|
243
|
+
const operationId = await promptOperationId(operationIdInput);
|
|
244
|
+
const isPending = await callReadMethodSilent({
|
|
245
|
+
contract: timelockContract,
|
|
246
|
+
methodName: 'isOperationPending',
|
|
247
|
+
payload: [[operationId]],
|
|
248
|
+
});
|
|
249
|
+
logResult({
|
|
250
|
+
data: [
|
|
251
|
+
['Operation ID', operationId],
|
|
252
|
+
['Is Pending', isPending ? '✅ Yes' : '❌ No'],
|
|
253
|
+
],
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
commonRead
|
|
257
|
+
.command('is-operation-ready')
|
|
258
|
+
.description('check if an operation is ready for execution')
|
|
259
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
260
|
+
.argument(...OPERATION_ID_ARGUMENT)
|
|
261
|
+
.action(async (timelock, operationIdInput) => {
|
|
262
|
+
const timelockContract = await getPromptTimelock(timelock);
|
|
263
|
+
const operationId = await promptOperationId(operationIdInput);
|
|
264
|
+
const isReady = await callReadMethodSilent({
|
|
265
|
+
contract: timelockContract,
|
|
266
|
+
methodName: 'isOperationReady',
|
|
267
|
+
payload: [[operationId]],
|
|
268
|
+
});
|
|
269
|
+
logResult({
|
|
270
|
+
data: [
|
|
271
|
+
['Operation ID', operationId],
|
|
272
|
+
['Is Ready', isReady ? '✅ Yes' : '❌ No'],
|
|
273
|
+
],
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
commonRead
|
|
277
|
+
.command('is-operation-done')
|
|
278
|
+
.description('check if an operation is done (executed)')
|
|
279
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
280
|
+
.argument(...OPERATION_ID_ARGUMENT)
|
|
281
|
+
.action(async (timelock, operationIdInput) => {
|
|
282
|
+
const timelockContract = await getPromptTimelock(timelock);
|
|
283
|
+
const operationId = await promptOperationId(operationIdInput);
|
|
284
|
+
const isDone = await callReadMethodSilent({
|
|
285
|
+
contract: timelockContract,
|
|
286
|
+
methodName: 'isOperationDone',
|
|
287
|
+
payload: [[operationId]],
|
|
288
|
+
});
|
|
289
|
+
logResult({
|
|
290
|
+
data: [
|
|
291
|
+
['Operation ID', operationId],
|
|
292
|
+
['Is Done', isDone ? '✅ Yes' : '❌ No'],
|
|
293
|
+
],
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
commonRead
|
|
297
|
+
.command('get-operation-info')
|
|
298
|
+
.description('get comprehensive information about an operation')
|
|
299
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
300
|
+
.argument(...OPERATION_ID_ARGUMENT)
|
|
301
|
+
.action(async (timelock, operationIdInput) => {
|
|
302
|
+
const timelockContract = await getPromptTimelock(timelock);
|
|
303
|
+
const operationId = await promptOperationId(operationIdInput);
|
|
304
|
+
const publicClient = await getPublicClient();
|
|
305
|
+
const currentBlock = await publicClient.getBlock({ blockTag: 'latest' });
|
|
306
|
+
const now = currentBlock.timestamp;
|
|
307
|
+
const [state, timestamp, isOp, isPending, isReady, isDone] = await Promise.all([
|
|
308
|
+
callReadMethodSilent({
|
|
309
|
+
contract: timelockContract,
|
|
310
|
+
methodName: 'getOperationState',
|
|
311
|
+
payload: [[operationId]],
|
|
312
|
+
}),
|
|
313
|
+
callReadMethodSilent({
|
|
314
|
+
contract: timelockContract,
|
|
315
|
+
methodName: 'getTimestamp',
|
|
316
|
+
payload: [[operationId]],
|
|
317
|
+
}),
|
|
318
|
+
callReadMethodSilent({
|
|
319
|
+
contract: timelockContract,
|
|
320
|
+
methodName: 'isOperation',
|
|
321
|
+
payload: [[operationId]],
|
|
322
|
+
}),
|
|
323
|
+
callReadMethodSilent({
|
|
324
|
+
contract: timelockContract,
|
|
325
|
+
methodName: 'isOperationPending',
|
|
326
|
+
payload: [[operationId]],
|
|
327
|
+
}),
|
|
328
|
+
callReadMethodSilent({
|
|
329
|
+
contract: timelockContract,
|
|
330
|
+
methodName: 'isOperationReady',
|
|
331
|
+
payload: [[operationId]],
|
|
332
|
+
}),
|
|
333
|
+
callReadMethodSilent({
|
|
334
|
+
contract: timelockContract,
|
|
335
|
+
methodName: 'isOperationDone',
|
|
336
|
+
payload: [[operationId]],
|
|
337
|
+
}),
|
|
338
|
+
]);
|
|
339
|
+
const stateNames = ['Unset', 'Waiting', 'Ready', 'Done'];
|
|
340
|
+
const stateName = stateNames[state] || 'Unknown';
|
|
341
|
+
const waitTime = timestamp > 0n && timestamp !== 1n && timestamp > now
|
|
342
|
+
? timestamp - now
|
|
343
|
+
: 0n;
|
|
344
|
+
const readyDate = timestamp > 0n && timestamp !== 1n
|
|
345
|
+
? new Date(Number(timestamp) * 1000).toLocaleString()
|
|
346
|
+
: 'N/A';
|
|
347
|
+
logResult({
|
|
348
|
+
data: [
|
|
349
|
+
['Operation ID', operationId],
|
|
350
|
+
['State', `${state} (${stateName})`],
|
|
351
|
+
['Timestamp', timestamp.toString()],
|
|
352
|
+
['Ready Date', readyDate],
|
|
353
|
+
['Is Operation', isOp ? '✅ Yes' : '❌ No'],
|
|
354
|
+
['Is Pending', isPending ? '✅ Yes' : '❌ No'],
|
|
355
|
+
['Is Ready', isReady ? '✅ Yes' : '❌ No'],
|
|
356
|
+
['Is Done', isDone ? '✅ Yes' : '❌ No'],
|
|
357
|
+
['Current Block Timestamp', now.toString()],
|
|
358
|
+
['Wait Time (seconds)', waitTime.toString()],
|
|
359
|
+
],
|
|
360
|
+
});
|
|
361
|
+
});
|
|
362
|
+
//# sourceMappingURL=read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../../../programs/defi-wrapper/use-cases/timelock-governance/common/read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Option } from 'commander';
|
|
2
|
+
import { logInfo, getCommandsJson, stringToAddress, callWriteMethodWithReceipt, confirmOperation, callReadMethodSilent, addressPrompt, textPrompt, stringToBigInt, } from '../../../../../utils/index.js';
|
|
3
|
+
import { common } from './main.js';
|
|
4
|
+
import { stringToHex, isHex } from 'viem';
|
|
5
|
+
import { DEFAULT_PREDECESSOR, executeOperation, getPromptTimelock, OPERATION_ID_ARGUMENT, processSalt, promptOperationId, SALT_OPTION, TIMELOCK_ARGUMENT, } from '../../../../../features/defi-wrapper/index.js';
|
|
6
|
+
const commonWrite = common
|
|
7
|
+
.command('write')
|
|
8
|
+
.alias('w')
|
|
9
|
+
.description('common timelock write commands');
|
|
10
|
+
commonWrite.addOption(new Option('-cmd2json'));
|
|
11
|
+
commonWrite.on('option:-cmd2json', function () {
|
|
12
|
+
logInfo(getCommandsJson(commonWrite));
|
|
13
|
+
process.exit();
|
|
14
|
+
});
|
|
15
|
+
commonWrite
|
|
16
|
+
.command('execute')
|
|
17
|
+
.description('execute a scheduled timelock operation')
|
|
18
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
19
|
+
.argument('[target]', 'target contract address', stringToAddress)
|
|
20
|
+
.argument('[value]', 'ETH value to send (in wei, default: 0)', stringToBigInt, 0n)
|
|
21
|
+
.argument('[payload]', 'call data payload (hex)')
|
|
22
|
+
.option('-p, --predecessor <predecessor>', 'predecessor operation ID (bytes32 hex, default: 0x0)')
|
|
23
|
+
.option(...SALT_OPTION)
|
|
24
|
+
.action(async (timelock, target, value, payloadInput, options) => {
|
|
25
|
+
// Interactive prompts for missing parameters
|
|
26
|
+
const timelockContract = await getPromptTimelock(timelock);
|
|
27
|
+
if (!target) {
|
|
28
|
+
const targetPrompt = await addressPrompt('Enter target contract address', 'target');
|
|
29
|
+
target = targetPrompt.target;
|
|
30
|
+
}
|
|
31
|
+
const finalValue = value ?? 0n;
|
|
32
|
+
let payload;
|
|
33
|
+
if (!payloadInput) {
|
|
34
|
+
const payloadPrompt = await textPrompt('Enter call data payload (hex)', 'payload');
|
|
35
|
+
payloadInput = payloadPrompt.payload;
|
|
36
|
+
}
|
|
37
|
+
// Validate and convert to hex - if already hex, use as is
|
|
38
|
+
if (isHex(payloadInput)) {
|
|
39
|
+
payload = payloadInput;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
payload = stringToHex(payloadInput);
|
|
43
|
+
}
|
|
44
|
+
const predecessor = options?.predecessor
|
|
45
|
+
? isHex(options.predecessor)
|
|
46
|
+
? options.predecessor
|
|
47
|
+
: stringToHex(options.predecessor)
|
|
48
|
+
: DEFAULT_PREDECESSOR;
|
|
49
|
+
const salt = processSalt(options?.salt);
|
|
50
|
+
await executeOperation(timelockContract.address, target, payload, salt, 'Unknown execute operation', `Are you sure you want to execute this operation on target ${target}?`, finalValue, predecessor);
|
|
51
|
+
});
|
|
52
|
+
commonWrite
|
|
53
|
+
.command('cancel')
|
|
54
|
+
.description('cancel a scheduled timelock operation')
|
|
55
|
+
.argument(...TIMELOCK_ARGUMENT)
|
|
56
|
+
.argument(...OPERATION_ID_ARGUMENT)
|
|
57
|
+
.action(async (timelock, operationIdInput) => {
|
|
58
|
+
// Interactive prompts for missing parameters
|
|
59
|
+
const timelockContract = await getPromptTimelock(timelock);
|
|
60
|
+
const operationId = await promptOperationId(operationIdInput);
|
|
61
|
+
// Check operation state
|
|
62
|
+
const state = await callReadMethodSilent({
|
|
63
|
+
contract: timelockContract,
|
|
64
|
+
methodName: 'getOperationState',
|
|
65
|
+
payload: [[operationId]],
|
|
66
|
+
});
|
|
67
|
+
if (state === 0) {
|
|
68
|
+
logInfo('❌ Operation not found (Unset)');
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (state === 3) {
|
|
72
|
+
logInfo('❌ Cannot cancel: operation already executed (Done)');
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const confirmationMessage = `Are you sure you want to cancel this operation?
|
|
76
|
+
Operation ID: ${operationId}`;
|
|
77
|
+
const confirm = await confirmOperation(confirmationMessage);
|
|
78
|
+
if (!confirm)
|
|
79
|
+
return;
|
|
80
|
+
await callWriteMethodWithReceipt({
|
|
81
|
+
contract: timelockContract,
|
|
82
|
+
methodName: 'cancel',
|
|
83
|
+
payload: [operationId],
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../../../programs/defi-wrapper/use-cases/timelock-governance/common/write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../programs/defi-wrapper/use-cases/timelock-governance/dashboard/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const dashboardTimelockGovernance: import("commander").Command;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../../../programs/defi-wrapper/use-cases/timelock-governance/dashboard/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,CAAC,MAAM,2BAA2B,GAAG,kBAAkB;KAC1D,OAAO,CAAC,WAAW,CAAC;KACpB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,wCAAwC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|