@lidofinance/lsv-cli 1.0.0-alpha.23 → 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/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 +5 -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 +3 -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 +4 -5
- package/dist/contracts/reportChecker.js.map +1 -1
- package/dist/contracts/steth.js +3 -3
- 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 -9
- 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 +64 -42
- package/dist/programs/dashboard/read.js.map +1 -1
- package/dist/programs/dashboard/write.js +259 -155
- 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 +148 -40
- package/dist/programs/hub/write.js.map +1 -1
- package/dist/programs/index.js +1 -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 +147 -82
- 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 +66 -78
- package/dist/programs/report.js.map +1 -1
- 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 +117 -33
- 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 +30 -52
- 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 +44 -1
- package/dist/utils/arguments.js.map +1 -1
- 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 -15
- 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 +5 -2
- 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 +69 -7
- package/dist/utils/health.js.map +1 -1
- package/dist/utils/index.js +6 -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/merkle-utils.js +15 -3
- package/dist/utils/proof/merkle-utils.js.map +1 -1
- package/dist/utils/proof/report-proof.js +11 -6
- package/dist/utils/proof/report-proof.js.map +1 -1
- 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 +17 -17
- package/dist/utils/report.js.map +1 -1
- 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 +10 -4
- 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 -104
- package/dist/programs/delegation/read.js.map +0 -1
- package/dist/programs/delegation/write.js +0 -323
- 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,63 +1,85 @@
|
|
|
1
|
-
import { getDashboardContract, getStethContract } from '../../contracts/index.js';
|
|
2
1
|
import { formatEther } from 'viem';
|
|
2
|
+
import { Option } from 'commander';
|
|
3
3
|
import { DashboardAbi } from '../../abi/index.js';
|
|
4
|
-
import {
|
|
5
|
-
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';
|
|
6
7
|
import { dashboard } from './main.js';
|
|
7
8
|
import { readCommandConfig } from './config.js';
|
|
8
|
-
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
|
|
9
19
|
.command('info')
|
|
10
20
|
.description('get dashboard base info')
|
|
11
|
-
.
|
|
12
|
-
.action(async (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const answer = await textPrompt('Enter dashboard address', 'address');
|
|
16
|
-
dashboardAddress = answer.address;
|
|
17
|
-
if (!dashboardAddress) {
|
|
18
|
-
console.info('Command cancelled');
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
const contract = getDashboardContract(dashboardAddress);
|
|
23
|
-
await getBaseInfo(contract);
|
|
21
|
+
.argument('<address>', 'dashboard address', stringToAddress)
|
|
22
|
+
.action(async (address) => {
|
|
23
|
+
const contract = getDashboardContract(address);
|
|
24
|
+
await getDashboardBaseInfo(contract);
|
|
24
25
|
});
|
|
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
|
|
26
35
|
.command('health')
|
|
27
36
|
.description('get vault health info')
|
|
28
|
-
.argument('<address>', '
|
|
37
|
+
.argument('<address>', 'dashboard address', stringToAddress)
|
|
29
38
|
.action(async (address) => {
|
|
30
39
|
const contract = getDashboardContract(address);
|
|
31
|
-
const stethContract = await getStethContract();
|
|
32
40
|
try {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
contract.read.sharesMinted(), // BigInt, in shares
|
|
36
|
-
contract.read.rebalanceThresholdBP(), // number (in basis points)
|
|
37
|
-
]);
|
|
38
|
-
if (minted === BigInt(0)) {
|
|
39
|
-
console.info('Minted is 0');
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
const mintedInSteth = await stethContract.read.getPooledEthByShares([
|
|
43
|
-
minted,
|
|
44
|
-
]); // BigInt
|
|
45
|
-
const { healthRatioNumber, isHealthy } = calculateHealthRatio(valuation, mintedInSteth, rebalanceThresholdBP);
|
|
46
|
-
console.table({
|
|
41
|
+
const { healthRatio, isHealthy, totalValue, totalValueInEth, liabilitySharesInSteth, forceRebalanceThresholdBP, liabilityShares, } = await fetchAndCalculateVaultHealth(contract);
|
|
42
|
+
logResult({
|
|
47
43
|
'Vault Healthy': isHealthy,
|
|
48
|
-
'
|
|
49
|
-
'
|
|
50
|
-
'
|
|
51
|
-
'
|
|
52
|
-
'Rebalance Threshold,
|
|
53
|
-
'
|
|
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}%`,
|
|
54
51
|
});
|
|
55
52
|
}
|
|
56
53
|
catch (err) {
|
|
57
54
|
if (err instanceof Error) {
|
|
58
|
-
|
|
55
|
+
logInfo('Error when getting info:\n', err.message);
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
58
|
});
|
|
62
|
-
|
|
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);
|
|
63
85
|
//# sourceMappingURL=read.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/dashboard/read.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/dashboard/read.ts"],"names":[],"mappings":"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"}
|