@lidofinance/lsv-cli 1.0.0-alpha.22 → 1.0.0-alpha.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -44
- package/dist/abi/BlsHarness.js +232 -0
- package/dist/abi/BlsHarness.js.map +1 -0
- package/dist/abi/CLProofVerifier.js +47 -79
- package/dist/abi/CLProofVerifier.js.map +1 -1
- package/dist/abi/Dashboard.js +618 -196
- package/dist/abi/Dashboard.js.map +1 -1
- package/dist/abi/LidoLocator.js +7 -7
- package/dist/abi/LidoLocator.js.map +1 -1
- package/dist/abi/{Delegation.js → OperatorGrid.js} +466 -1067
- package/dist/abi/OperatorGrid.js.map +1 -0
- package/dist/abi/PredepositGuarantee.js +69 -13
- package/dist/abi/PredepositGuarantee.js.map +1 -1
- package/dist/abi/ReportChecker.js +109 -0
- package/dist/abi/ReportChecker.js.map +1 -0
- package/dist/abi/StEth.js +341 -341
- package/dist/abi/StEth.js.map +1 -1
- package/dist/abi/StakingVault.js +207 -73
- package/dist/abi/StakingVault.js.map +1 -1
- package/dist/abi/VaultFactory.js +67 -104
- package/dist/abi/VaultFactory.js.map +1 -1
- package/dist/abi/VaultHub.js +347 -237
- package/dist/abi/VaultHub.js.map +1 -1
- package/dist/abi/WstEth.js +478 -0
- package/dist/abi/WstEth.js.map +1 -0
- package/dist/abi/index.js +6 -2
- package/dist/abi/index.js.map +1 -1
- package/dist/configs/constants.js +2 -2
- package/dist/configs/constants.js.map +1 -1
- package/dist/configs/deployed.js +21 -47
- package/dist/configs/deployed.js.map +1 -1
- package/dist/configs/envs.js +5 -6
- package/dist/configs/envs.js.map +1 -1
- package/dist/configs/utils.js +4 -8
- package/dist/configs/utils.js.map +1 -1
- package/dist/contracts/blsHarness.js +24 -0
- package/dist/contracts/blsHarness.js.map +1 -0
- package/dist/contracts/clProofVerifier.js +4 -10
- package/dist/contracts/clProofVerifier.js.map +1 -1
- package/dist/contracts/index.js +4 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/locator.js +3 -3
- package/dist/contracts/locator.js.map +1 -1
- package/dist/contracts/operator-grid.js +17 -0
- package/dist/contracts/operator-grid.js.map +1 -0
- package/dist/contracts/pdg.js +2 -2
- package/dist/contracts/pdg.js.map +1 -1
- package/dist/contracts/reportChecker.js +23 -0
- package/dist/contracts/reportChecker.js.map +1 -0
- package/dist/contracts/steth.js +8 -5
- package/dist/contracts/steth.js.map +1 -1
- package/dist/contracts/token-manager.js +3 -3
- package/dist/contracts/token-manager.js.map +1 -1
- package/dist/contracts/vault-factory.js +2 -2
- package/dist/contracts/vault-factory.js.map +1 -1
- package/dist/contracts/vault-hub.js +3 -3
- package/dist/contracts/vault-hub.js.map +1 -1
- package/dist/contracts/vault-viewer.js +4 -6
- package/dist/contracts/vault-viewer.js.map +1 -1
- package/dist/contracts/vault.js +2 -2
- package/dist/contracts/vault.js.map +1 -1
- package/dist/contracts/voting.js +3 -3
- package/dist/contracts/voting.js.map +1 -1
- package/dist/contracts/wsteth.js +18 -0
- package/dist/contracts/wsteth.js.map +1 -0
- package/dist/features/advanced-config.js +3 -2
- package/dist/features/advanced-config.js.map +1 -1
- package/dist/features/dashboard.js +131 -0
- package/dist/features/dashboard.js.map +1 -0
- package/dist/features/index.js +8 -4
- package/dist/features/index.js.map +1 -1
- package/dist/features/operator-grid.js +57 -0
- package/dist/features/operator-grid.js.map +1 -0
- package/dist/features/pdg.js +79 -0
- package/dist/features/pdg.js.map +1 -0
- package/dist/features/vault-factory.js +33 -6
- package/dist/features/vault-factory.js.map +1 -1
- package/dist/features/vault-hub.js +81 -0
- package/dist/features/vault-hub.js.map +1 -0
- package/dist/features/vault.js +54 -0
- package/dist/features/vault.js.map +1 -0
- package/dist/features/voting.js +5 -5
- package/dist/features/voting.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/programs/account.js +107 -5
- package/dist/programs/account.js.map +1 -1
- package/dist/programs/config.js +2 -2
- package/dist/programs/config.js.map +1 -1
- package/dist/programs/dashboard/config.js +63 -17
- package/dist/programs/dashboard/config.js.map +1 -1
- package/dist/programs/dashboard/main.js +0 -7
- package/dist/programs/dashboard/main.js.map +1 -1
- package/dist/programs/dashboard/read.js +76 -16
- package/dist/programs/dashboard/read.js.map +1 -1
- package/dist/programs/dashboard/write.js +274 -168
- package/dist/programs/dashboard/write.js.map +1 -1
- package/dist/programs/hub/config.js +28 -32
- package/dist/programs/hub/config.js.map +1 -1
- package/dist/programs/hub/main.js +0 -7
- package/dist/programs/hub/main.js.map +1 -1
- package/dist/programs/hub/read.js +30 -35
- package/dist/programs/hub/read.js.map +1 -1
- package/dist/programs/hub/write.js +150 -42
- package/dist/programs/hub/write.js.map +1 -1
- package/dist/programs/index.js +2 -1
- package/dist/programs/index.js.map +1 -1
- package/dist/programs/operator-grid/config.js +81 -0
- package/dist/programs/operator-grid/config.js.map +1 -0
- package/dist/programs/operator-grid/index.js.map +1 -0
- package/dist/programs/operator-grid/main.js +5 -0
- package/dist/programs/operator-grid/main.js.map +1 -0
- package/dist/programs/operator-grid/read.js +24 -0
- package/dist/programs/operator-grid/read.js.map +1 -0
- package/dist/programs/operator-grid/write.js +109 -0
- package/dist/programs/operator-grid/write.js.map +1 -0
- package/dist/programs/pdg/config.js +49 -13
- package/dist/programs/pdg/config.js.map +1 -1
- package/dist/programs/pdg/main.js +0 -7
- package/dist/programs/pdg/main.js.map +1 -1
- package/dist/programs/pdg/read.js +20 -3
- package/dist/programs/pdg/read.js.map +1 -1
- package/dist/programs/pdg/write.js +155 -92
- package/dist/programs/pdg/write.js.map +1 -1
- package/dist/programs/pdg-helpers.js +155 -38
- package/dist/programs/pdg-helpers.js.map +1 -1
- package/dist/programs/report.js +89 -0
- package/dist/programs/report.js.map +1 -0
- package/dist/programs/vault/config.js +6 -2
- package/dist/programs/vault/config.js.map +1 -1
- package/dist/programs/vault/main.js +0 -7
- package/dist/programs/vault/main.js.map +1 -1
- package/dist/programs/vault/read.js +16 -44
- package/dist/programs/vault/read.js.map +1 -1
- package/dist/programs/vault/write.js +125 -45
- package/dist/programs/vault/write.js.map +1 -1
- package/dist/programs/vault-factory/main.js +0 -7
- package/dist/programs/vault-factory/main.js.map +1 -1
- package/dist/programs/vault-factory/read.js +17 -19
- package/dist/programs/vault-factory/read.js.map +1 -1
- package/dist/programs/vault-factory/write.js +31 -69
- package/dist/programs/vault-factory/write.js.map +1 -1
- package/dist/programs/vault-viewer/main.js +2 -2
- package/dist/programs/vault-viewer/main.js.map +1 -1
- package/dist/programs/voting.js +8 -23
- package/dist/programs/voting.js.map +1 -1
- package/dist/providers/wallet.js +4 -4
- package/dist/providers/wallet.js.map +1 -1
- package/dist/utils/arguments.js +67 -0
- package/dist/utils/arguments.js.map +1 -0
- package/dist/utils/bls.js +101 -0
- package/dist/utils/bls.js.map +1 -0
- package/dist/utils/commands/dashboard.js +103 -0
- package/dist/utils/commands/dashboard.js.map +1 -0
- package/dist/utils/commands/index.js +2 -0
- package/dist/utils/commands/index.js.map +1 -0
- package/dist/utils/contract.js +54 -14
- package/dist/utils/contract.js.map +1 -1
- package/dist/utils/data-validators.js +7 -22
- package/dist/utils/data-validators.js.map +1 -1
- package/dist/utils/error-handler.js +7 -1
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/fetchCL.js +57 -0
- package/dist/utils/fetchCL.js.map +1 -0
- package/dist/utils/get-deposit-data-root.js +3 -3
- package/dist/utils/health.js +80 -0
- package/dist/utils/health.js.map +1 -0
- package/dist/utils/index.js +9 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/ipfs.js +54 -0
- package/dist/utils/ipfs.js.map +1 -0
- package/dist/utils/logging/console.js +23 -0
- package/dist/utils/logging/console.js.map +1 -0
- package/dist/utils/logging/constants.js +12 -0
- package/dist/utils/logging/constants.js.map +1 -0
- package/dist/utils/logging/index.js +2 -0
- package/dist/utils/logging/index.js.map +1 -0
- package/dist/utils/prompts/dashboard.js +63 -0
- package/dist/utils/prompts/dashboard.js.map +1 -0
- package/dist/utils/prompts/index.js +2 -1
- package/dist/utils/prompts/index.js.map +1 -1
- package/dist/utils/prompts/operations.js +41 -0
- package/dist/utils/prompts/operations.js.map +1 -0
- package/dist/utils/prompts/predeposit-guarantee.js +10 -13
- package/dist/utils/prompts/predeposit-guarantee.js.map +1 -1
- package/dist/utils/prompts/vault.js +4 -1
- package/dist/utils/prompts/vault.js.map +1 -1
- package/dist/utils/proof/create-proof.js +5 -29
- package/dist/utils/proof/create-proof.js.map +1 -1
- package/dist/utils/proof/first-validator-gindex.js +2 -1
- package/dist/utils/proof/first-validator-gindex.js.map +1 -1
- package/dist/utils/proof/index.js +1 -0
- package/dist/utils/proof/index.js.map +1 -1
- package/dist/utils/proof/merkle-utils.js +15 -3
- package/dist/utils/proof/merkle-utils.js.map +1 -1
- package/dist/utils/proof/report-proof.js +26 -0
- package/dist/utils/proof/report-proof.js.map +1 -0
- package/dist/utils/read-programs-by-abi.js +2 -2
- package/dist/utils/read-programs-by-abi.js.map +1 -1
- package/dist/utils/report.js +68 -0
- package/dist/utils/report.js.map +1 -0
- package/dist/utils/required-lock.js +21 -0
- package/dist/utils/required-lock.js.map +1 -0
- package/dist/version/index.js +1 -1
- package/package.json +11 -7
- package/dist/abi/Delegation.js.map +0 -1
- package/dist/contracts/delegation.js +0 -11
- package/dist/contracts/delegation.js.map +0 -1
- package/dist/features/dashboard-delegation.js +0 -25
- package/dist/features/dashboard-delegation.js.map +0 -1
- package/dist/programs/delegation/config.js +0 -33
- package/dist/programs/delegation/config.js.map +0 -1
- package/dist/programs/delegation/index.js.map +0 -1
- package/dist/programs/delegation/main.js +0 -12
- package/dist/programs/delegation/main.js.map +0 -1
- package/dist/programs/delegation/read.js +0 -98
- package/dist/programs/delegation/read.js.map +0 -1
- package/dist/programs/delegation/write.js +0 -327
- package/dist/programs/delegation/write.js.map +0 -1
- package/dist/utils/parse-string.js +0 -20
- package/dist/utils/parse-string.js.map +0 -1
- package/dist/utils/prompts/delegation-dashboard.js +0 -29
- package/dist/utils/prompts/delegation-dashboard.js.map +0 -1
- /package/dist/programs/{delegation → operator-grid}/index.js +0 -0
package/dist/programs/account.js
CHANGED
|
@@ -1,29 +1,131 @@
|
|
|
1
|
-
import { formatEther } from 'viem';
|
|
1
|
+
import { encodeFunctionData, formatEther, parseEther } from 'viem';
|
|
2
|
+
import { generatePrivateKey } from 'viem/accounts';
|
|
2
3
|
import { program } from '../command/index.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { Option } from 'commander';
|
|
5
|
+
import { getStethContract, getWstethContract } from '../contracts/index.js';
|
|
6
|
+
import { getWalletWithAccount, getPublicClient, getAccount } from '../providers/index.js';
|
|
7
|
+
import { printError, showSpinner, logResult, getCommandsJson, logInfo, callWriteMethodWithReceipt, stringToAddress, confirmOperation, callReadMethod, } from '../utils/index.js';
|
|
5
8
|
const account = program
|
|
6
9
|
.command('account')
|
|
7
10
|
.description('connected account info');
|
|
11
|
+
account.addOption(new Option('-cmd2json'));
|
|
12
|
+
account.on('option:-cmd2json', function () {
|
|
13
|
+
logInfo(getCommandsJson(account));
|
|
14
|
+
process.exit();
|
|
15
|
+
});
|
|
8
16
|
account
|
|
9
17
|
.command('info')
|
|
10
|
-
.description('general account info')
|
|
18
|
+
.description('general account info.')
|
|
11
19
|
.action(async () => {
|
|
12
20
|
const walletClient = getWalletWithAccount();
|
|
13
21
|
const publicClient = getPublicClient();
|
|
14
22
|
const { address } = walletClient.account;
|
|
15
23
|
try {
|
|
24
|
+
const stETHContract = await getStethContract();
|
|
25
|
+
const wstETHContract = await getWstethContract();
|
|
16
26
|
const hideSpinner = showSpinner();
|
|
17
27
|
const balance = await publicClient.getBalance({ address });
|
|
28
|
+
const stETHBalance = await stETHContract.read.balanceOf([address]);
|
|
29
|
+
const wstETHBalance = await wstETHContract.read.balanceOf([address]);
|
|
18
30
|
hideSpinner();
|
|
19
|
-
|
|
31
|
+
logResult({
|
|
20
32
|
address,
|
|
21
33
|
balanceWEI: balance,
|
|
22
34
|
balanceETH: formatEther(balance),
|
|
35
|
+
balanceSTETH: formatEther(stETHBalance),
|
|
36
|
+
balanceWSTETH: formatEther(wstETHBalance),
|
|
23
37
|
});
|
|
24
38
|
}
|
|
25
39
|
catch (err) {
|
|
26
40
|
printError(err, 'Error when getting account info');
|
|
27
41
|
}
|
|
28
42
|
});
|
|
43
|
+
account
|
|
44
|
+
.command('generate-key')
|
|
45
|
+
.description('generate a new key. Disclaimer: this command is not recommended for production use.')
|
|
46
|
+
.action(async () => {
|
|
47
|
+
const privateKey = generatePrivateKey();
|
|
48
|
+
logInfo(`Private key: ${privateKey}`);
|
|
49
|
+
});
|
|
50
|
+
account
|
|
51
|
+
.command('steth-allowance')
|
|
52
|
+
.description('set allowance for steth contract')
|
|
53
|
+
.argument('<address>', 'address to set allowance for', stringToAddress)
|
|
54
|
+
.argument('<amount>', 'amount of steth to allow')
|
|
55
|
+
.action(async (address, amount) => {
|
|
56
|
+
const stethContract = await getStethContract();
|
|
57
|
+
const confirm = await confirmOperation(`Are you sure you want to set allowance ${formatEther(parseEther(amount))} for ${address}?`);
|
|
58
|
+
if (!confirm)
|
|
59
|
+
return;
|
|
60
|
+
await callWriteMethodWithReceipt(stethContract, 'approve', [
|
|
61
|
+
address,
|
|
62
|
+
parseEther(amount),
|
|
63
|
+
]);
|
|
64
|
+
});
|
|
65
|
+
account
|
|
66
|
+
.command('steth-allowance-populate-tx')
|
|
67
|
+
.alias('steth-allowance-tx')
|
|
68
|
+
.description('populate tx for steth allowance')
|
|
69
|
+
.argument('<address>', 'address to set allowance for', stringToAddress)
|
|
70
|
+
.argument('<amount>', 'amount of steth to allow')
|
|
71
|
+
.action(async (address, amount) => {
|
|
72
|
+
const stethContract = await getStethContract();
|
|
73
|
+
const tx = encodeFunctionData({
|
|
74
|
+
abi: stethContract.abi,
|
|
75
|
+
functionName: 'approve',
|
|
76
|
+
args: [address, parseEther(amount)],
|
|
77
|
+
});
|
|
78
|
+
logInfo(tx);
|
|
79
|
+
});
|
|
80
|
+
account
|
|
81
|
+
.command('get-steth-allowance')
|
|
82
|
+
.description('get steth allowance for an address')
|
|
83
|
+
.argument('<address>', 'address to get allowance for', stringToAddress)
|
|
84
|
+
.action(async (address) => {
|
|
85
|
+
const accountAddress = getAccount().address;
|
|
86
|
+
const stethContract = await getStethContract();
|
|
87
|
+
await callReadMethod(stethContract, 'allowance', [accountAddress, address]);
|
|
88
|
+
});
|
|
89
|
+
account
|
|
90
|
+
.command('wsteth-allowance')
|
|
91
|
+
.description('set allowance for wsteth contract')
|
|
92
|
+
.argument('<address>', 'address to set allowance for', stringToAddress)
|
|
93
|
+
.argument('<amount>', 'amount of wsteth to allow')
|
|
94
|
+
.action(async (address, amount) => {
|
|
95
|
+
const wstethContract = await getWstethContract();
|
|
96
|
+
const confirm = await confirmOperation(`Are you sure you want to set allowance ${formatEther(parseEther(amount))} for ${address}?`);
|
|
97
|
+
if (!confirm)
|
|
98
|
+
return;
|
|
99
|
+
await callWriteMethodWithReceipt(wstethContract, 'approve', [
|
|
100
|
+
address,
|
|
101
|
+
parseEther(amount),
|
|
102
|
+
]);
|
|
103
|
+
});
|
|
104
|
+
account
|
|
105
|
+
.command('wsteth-allowance-populate-tx')
|
|
106
|
+
.alias('wsteth-allowance-tx')
|
|
107
|
+
.description('populate tx for wsteth allowance')
|
|
108
|
+
.argument('<address>', 'address to set allowance for', stringToAddress)
|
|
109
|
+
.argument('<amount>', 'amount of wsteth to allow')
|
|
110
|
+
.action(async (address, amount) => {
|
|
111
|
+
const wstethContract = await getWstethContract();
|
|
112
|
+
const tx = encodeFunctionData({
|
|
113
|
+
abi: wstethContract.abi,
|
|
114
|
+
functionName: 'approve',
|
|
115
|
+
args: [address, parseEther(amount)],
|
|
116
|
+
});
|
|
117
|
+
logInfo(tx);
|
|
118
|
+
});
|
|
119
|
+
account
|
|
120
|
+
.command('get-wsteth-allowance')
|
|
121
|
+
.description('get wsteth allowance for an address')
|
|
122
|
+
.argument('<address>', 'address to get allowance for', stringToAddress)
|
|
123
|
+
.action(async (address) => {
|
|
124
|
+
const accountAddress = getAccount().address;
|
|
125
|
+
const wstethContract = await getWstethContract();
|
|
126
|
+
await callReadMethod(wstethContract, 'allowance', [
|
|
127
|
+
accountAddress,
|
|
128
|
+
address,
|
|
129
|
+
]);
|
|
130
|
+
});
|
|
29
131
|
//# sourceMappingURL=account.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../programs/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../programs/account.ts"],"names":[],"mappings":"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"}
|
package/dist/programs/config.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFileSync, existsSync } from 'node:fs';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
3
|
import { program } from '../command/index.js';
|
|
4
|
-
import { validateConfig } from '../utils/index.js';
|
|
4
|
+
import { validateConfig, logInfo } from '../utils/index.js';
|
|
5
5
|
program
|
|
6
6
|
.command('conf <path>')
|
|
7
7
|
.description('Load and validate a JSON configuration file')
|
|
@@ -19,7 +19,7 @@ program
|
|
|
19
19
|
errorKeys.forEach((key) => program.error(`${key} - ${errors[key]}`));
|
|
20
20
|
process.exit(1);
|
|
21
21
|
}
|
|
22
|
-
|
|
22
|
+
logInfo('Configuration is valid!');
|
|
23
23
|
}
|
|
24
24
|
catch (error) {
|
|
25
25
|
if (error instanceof Error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../programs/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../programs/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhD,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;IACnB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,mBAAmB,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACxB,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,MAAM,CAAC,GAAmB,CAAC,EAAE,CAAC,CACzD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseEther } from 'viem';
|
|
1
2
|
export const readCommandConfig = {
|
|
2
3
|
withdrawableEther: {
|
|
3
4
|
name: 'w-ether',
|
|
@@ -11,17 +12,17 @@ export const readCommandConfig = {
|
|
|
11
12
|
name: 'hub',
|
|
12
13
|
description: 'get vaultHub address',
|
|
13
14
|
},
|
|
14
|
-
|
|
15
|
-
name: '
|
|
16
|
-
description: 'get vault
|
|
15
|
+
totalValue: {
|
|
16
|
+
name: 'total-value',
|
|
17
|
+
description: 'get the total value of the vault in ether',
|
|
17
18
|
},
|
|
18
19
|
treasuryFeeBP: {
|
|
19
20
|
name: 't-fee',
|
|
20
21
|
description: 'get treasury fee in basis points',
|
|
21
22
|
},
|
|
22
|
-
|
|
23
|
-
name: 'total-mintable-
|
|
24
|
-
description: 'get
|
|
23
|
+
totalMintingCapacity: {
|
|
24
|
+
name: 'total-mintable-capacity',
|
|
25
|
+
description: 'get the overall capacity for stETH shares that can be minted by the vault',
|
|
25
26
|
},
|
|
26
27
|
supportsInterface: {
|
|
27
28
|
name: 'supports-interface',
|
|
@@ -31,35 +32,80 @@ export const readCommandConfig = {
|
|
|
31
32
|
name: 'vault',
|
|
32
33
|
description: 'get staking vault address',
|
|
33
34
|
},
|
|
34
|
-
|
|
35
|
-
name: '
|
|
36
|
-
description: 'get
|
|
35
|
+
liabilityShares: {
|
|
36
|
+
name: 'liability-shares',
|
|
37
|
+
description: 'get the number of stETHshares minted',
|
|
37
38
|
},
|
|
38
39
|
shareLimit: {
|
|
39
40
|
name: 's-limit',
|
|
40
|
-
description: 'get share limit',
|
|
41
|
+
description: 'get the stETH share limit of the vault',
|
|
41
42
|
},
|
|
42
43
|
reserveRatioBP: {
|
|
43
44
|
name: 'reserve-ratio',
|
|
44
45
|
description: 'get reserve ratio in basis points',
|
|
45
46
|
},
|
|
46
|
-
|
|
47
|
-
name: '
|
|
48
|
-
description: 'get rebalance threshold in basis points',
|
|
47
|
+
forcedRebalanceThresholdBP: {
|
|
48
|
+
name: 'force-rebalance-threshold',
|
|
49
|
+
description: 'get the rebalance threshold of the vault in basis points',
|
|
49
50
|
},
|
|
50
|
-
|
|
51
|
-
name: '
|
|
52
|
-
description: 'get
|
|
51
|
+
remainingMintingCapacity: {
|
|
52
|
+
name: 'remaining-minting-capacity',
|
|
53
|
+
description: 'get the remaining capacity for stETH shares that can be minted by the vault if additional ether is funded',
|
|
53
54
|
arguments: {
|
|
54
55
|
_etherToFund: {
|
|
55
56
|
name: 'etherToFund',
|
|
56
|
-
description: 'ether to
|
|
57
|
+
description: 'the amount of ether to be funded, can be zero',
|
|
58
|
+
modifier: parseEther,
|
|
57
59
|
},
|
|
58
60
|
},
|
|
59
61
|
},
|
|
62
|
+
unreserved: {
|
|
63
|
+
name: 'unreserved',
|
|
64
|
+
description: 'get the unreserved amount of ether',
|
|
65
|
+
},
|
|
60
66
|
hasRole: {
|
|
61
67
|
name: 'has-role',
|
|
62
68
|
description: 'get has role by role and account',
|
|
63
69
|
},
|
|
70
|
+
nodeOperatorUnclaimedFee: {
|
|
71
|
+
name: 'no-unclaimed-fee',
|
|
72
|
+
description: `returns the accumulated unclaimed node operator fee in ether`,
|
|
73
|
+
},
|
|
74
|
+
nodeOperatorFeeClaimedReport: {
|
|
75
|
+
name: 'no-fee-report',
|
|
76
|
+
description: 'get node operator fee claimed report',
|
|
77
|
+
},
|
|
78
|
+
nodeOperatorFeeBP: {
|
|
79
|
+
name: 'no-fee',
|
|
80
|
+
description: 'get node operator fee in basis points',
|
|
81
|
+
},
|
|
82
|
+
accruedRewardsAdjustment: {
|
|
83
|
+
name: 'accrued-rewards-adjustment',
|
|
84
|
+
description: 'get adjustment to allow fee correction during side deposits or consolidations.',
|
|
85
|
+
},
|
|
86
|
+
confirmations: {
|
|
87
|
+
name: 'confirmations',
|
|
88
|
+
description: 'get tracks confirmations',
|
|
89
|
+
},
|
|
90
|
+
confirmingRoles: {
|
|
91
|
+
name: 'confirming-roles',
|
|
92
|
+
description: 'get confirming roles',
|
|
93
|
+
},
|
|
94
|
+
getConfirmExpiry: {
|
|
95
|
+
name: 'get-confirm-expiry',
|
|
96
|
+
description: 'get the confirmation expiry',
|
|
97
|
+
},
|
|
98
|
+
MANUAL_ACCRUED_REWARDS_ADJUSTMENT_LIMIT: {
|
|
99
|
+
name: 'MANUAL_ACCRUED_REWARDS_ADJUSTMENT_LIMIT',
|
|
100
|
+
description: 'get the manual accrued rewards adjustment limit',
|
|
101
|
+
},
|
|
102
|
+
MAX_CONFIRM_EXPIRY: {
|
|
103
|
+
name: 'MAX_CONFIRM_EXPIRY',
|
|
104
|
+
description: 'get the max confirm expiry',
|
|
105
|
+
},
|
|
106
|
+
MIN_CONFIRM_EXPIRY: {
|
|
107
|
+
name: 'MIN_CONFIRM_EXPIRY',
|
|
108
|
+
description: 'get the min confirm expiry',
|
|
109
|
+
},
|
|
64
110
|
};
|
|
65
111
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../programs/dashboard/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../programs/dashboard/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,CAAC,MAAM,iBAAiB,GAA6B;IACzD,iBAAiB,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,kEAAkE;KACrE;IACD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kBAAkB;KAChC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,sBAAsB;KACpC;IACD,UAAU,EAAE;QACV,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,2CAA2C;KACzD;IACD,aAAa,EAAE;QACb,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kCAAkC;KAChD;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACT,2EAA2E;KAC9E;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,8BAA8B;KAC5C;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,2BAA2B;KACzC;IACD,eAAe,EAAE;QACf,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,sCAAsC;KACpD;IACD,UAAU,EAAE;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,wCAAwC;KACtD;IACD,cAAc,EAAE;QACd,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,mCAAmC;KACjD;IACD,0BAA0B,EAAE;QAC1B,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,0DAA0D;KACxE;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,2GAA2G;QAC7G,SAAS,EAAE;YACT,YAAY,EAAE;gBACZ,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,+CAA+C;gBAC5D,QAAQ,EAAE,UAAU;aACrB;SACF;KACF;IACD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,oCAAoC;KAClD;IACD,OAAO,EAAE;QACP,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,kCAAkC;KAChD;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,8DAA8D;KAC5E;IACD,4BAA4B,EAAE;QAC5B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,sCAAsC;KACpD;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uCAAuC;KACrD;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,gFAAgF;KACnF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,0BAA0B;KACxC;IACD,eAAe,EAAE;QACf,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,sBAAsB;KACpC;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,6BAA6B;KAC3C;IACD,uCAAuC,EAAE;QACvC,IAAI,EAAE,yCAAyC;QAC/C,WAAW,EAAE,iDAAiD;KAC/D;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,4BAA4B;KAC1C;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,4BAA4B;KAC1C;CACF,CAAC"}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import { program } from '../../command/index.js';
|
|
2
|
-
import { Option } from 'commander';
|
|
3
|
-
import { getCommandsJson } from '../../utils/index.js';
|
|
4
2
|
export const dashboard = program
|
|
5
3
|
.command('dashboard')
|
|
6
4
|
.description('dashboard contract');
|
|
7
|
-
dashboard.addOption(new Option('-cmd2json'));
|
|
8
|
-
dashboard.on('option:-cmd2json', function () {
|
|
9
|
-
console.info(getCommandsJson(dashboard));
|
|
10
|
-
process.exit();
|
|
11
|
-
});
|
|
12
5
|
//# sourceMappingURL=main.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../programs/dashboard/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../programs/dashboard/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO;KAC7B,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -1,25 +1,85 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { formatEther } from 'viem';
|
|
2
|
+
import { Option } from 'commander';
|
|
2
3
|
import { DashboardAbi } from '../../abi/index.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { getDashboardBaseInfo, getDashboardRoles } from '../../features/index.js';
|
|
5
|
+
import { getDashboardContract, getStakingVaultContract } from '../../contracts/index.js';
|
|
6
|
+
import { fetchAndCalculateVaultHealth, generateReadCommands, logResult, logInfo, getCommandsJson, stringToAddress, callReadMethod, getRequiredLockByShares, } from '../../utils/index.js';
|
|
5
7
|
import { dashboard } from './main.js';
|
|
6
8
|
import { readCommandConfig } from './config.js';
|
|
7
|
-
dashboard
|
|
9
|
+
const dashboardRead = dashboard
|
|
10
|
+
.command('read')
|
|
11
|
+
.alias('r')
|
|
12
|
+
.description('read commands');
|
|
13
|
+
dashboardRead.addOption(new Option('-cmd2json'));
|
|
14
|
+
dashboardRead.on('option:-cmd2json', function () {
|
|
15
|
+
logInfo(getCommandsJson(dashboardRead));
|
|
16
|
+
process.exit();
|
|
17
|
+
});
|
|
18
|
+
dashboardRead
|
|
8
19
|
.command('info')
|
|
9
20
|
.description('get dashboard base info')
|
|
10
|
-
.
|
|
11
|
-
.action(async (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
.argument('<address>', 'dashboard address', stringToAddress)
|
|
22
|
+
.action(async (address) => {
|
|
23
|
+
const contract = getDashboardContract(address);
|
|
24
|
+
await getDashboardBaseInfo(contract);
|
|
25
|
+
});
|
|
26
|
+
dashboardRead
|
|
27
|
+
.command('roles')
|
|
28
|
+
.description('get dashboard roles')
|
|
29
|
+
.argument('<address>', 'dashboard address', stringToAddress)
|
|
30
|
+
.action(async (address) => {
|
|
31
|
+
const contract = getDashboardContract(address);
|
|
32
|
+
await getDashboardRoles(contract);
|
|
33
|
+
});
|
|
34
|
+
dashboardRead
|
|
35
|
+
.command('health')
|
|
36
|
+
.description('get vault health info')
|
|
37
|
+
.argument('<address>', 'dashboard address', stringToAddress)
|
|
38
|
+
.action(async (address) => {
|
|
39
|
+
const contract = getDashboardContract(address);
|
|
40
|
+
try {
|
|
41
|
+
const { healthRatio, isHealthy, totalValue, totalValueInEth, liabilitySharesInSteth, forceRebalanceThresholdBP, liabilityShares, } = await fetchAndCalculateVaultHealth(contract);
|
|
42
|
+
logResult({
|
|
43
|
+
'Vault Healthy': isHealthy,
|
|
44
|
+
'Total Value, wei': totalValue,
|
|
45
|
+
'Total Value, ether': totalValueInEth,
|
|
46
|
+
'Liability Shares': `${formatEther(liabilityShares)} shares`,
|
|
47
|
+
'Liability Shares in stETH': liabilitySharesInSteth,
|
|
48
|
+
'Rebalance Threshold, BP': forceRebalanceThresholdBP,
|
|
49
|
+
'Rebalance Threshold, %': `${forceRebalanceThresholdBP / 100}%`,
|
|
50
|
+
'Health Rate': `${healthRatio}%`,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
if (err instanceof Error) {
|
|
55
|
+
logInfo('Error when getting info:\n', err.message);
|
|
19
56
|
}
|
|
20
57
|
}
|
|
21
|
-
const contract = getDashboardContract(dashboardAddress);
|
|
22
|
-
await getBaseInfo(contract);
|
|
23
58
|
});
|
|
24
|
-
|
|
59
|
+
dashboardRead
|
|
60
|
+
.command('locked')
|
|
61
|
+
.description('get locked info')
|
|
62
|
+
.argument('<address>', 'dashboard address', stringToAddress)
|
|
63
|
+
.action(async (address) => {
|
|
64
|
+
const contract = getDashboardContract(address);
|
|
65
|
+
const vault = await callReadMethod(contract, 'stakingVault');
|
|
66
|
+
const vaultContract = getStakingVaultContract(vault);
|
|
67
|
+
await callReadMethod(vaultContract, 'locked');
|
|
68
|
+
});
|
|
69
|
+
dashboardRead
|
|
70
|
+
.command('required-lock-by-shares')
|
|
71
|
+
.alias('req-lock')
|
|
72
|
+
.description('get required lock by shares')
|
|
73
|
+
.argument('<address>', 'dashboard address', stringToAddress)
|
|
74
|
+
.argument('<newShares>', 'new shares')
|
|
75
|
+
.action(async (address, newShares) => {
|
|
76
|
+
const { requiredLock, currentLock } = await getRequiredLockByShares(address, newShares);
|
|
77
|
+
logResult({
|
|
78
|
+
'Required Lock (wei)': requiredLock,
|
|
79
|
+
'Required Lock (shares)': formatEther(requiredLock),
|
|
80
|
+
'Current Lock (wei)': currentLock,
|
|
81
|
+
'Current Lock (shares)': formatEther(currentLock),
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
generateReadCommands(DashboardAbi, getDashboardContract, dashboardRead, readCommandConfig);
|
|
25
85
|
//# sourceMappingURL=read.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/dashboard/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/dashboard/read.ts"],"names":[],"mappings":"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"}
|