@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
|
@@ -1,21 +1,26 @@
|
|
|
1
|
-
import { encodeAbiParameters, keccak256 } from 'viem';
|
|
1
|
+
import { encodeAbiParameters, keccak256, concatHex } from 'viem';
|
|
2
|
+
export const DOUBLE_HASH = (data) => keccak256(keccak256(data));
|
|
3
|
+
export const hashNode = (a, b) => {
|
|
4
|
+
const [left, right] = a < b ? [a, b] : [b, a];
|
|
5
|
+
return keccak256(concatHex([left, right]));
|
|
6
|
+
};
|
|
2
7
|
const encoding = [
|
|
3
8
|
{ type: 'address', name: 'vault_address' },
|
|
4
|
-
{ type: 'uint256', name: '
|
|
9
|
+
{ type: 'uint256', name: 'total_value_wei' },
|
|
5
10
|
{ type: 'uint256', name: 'in_out_delta' },
|
|
6
11
|
{ type: 'uint256', name: 'fee' },
|
|
7
|
-
{ type: 'uint256', name: '
|
|
12
|
+
{ type: 'uint256', name: 'liability_shares' },
|
|
8
13
|
];
|
|
9
14
|
const getLeafInput = (vault) => [
|
|
10
15
|
vault.vault_address,
|
|
11
|
-
BigInt(vault.
|
|
16
|
+
BigInt(vault.total_value_wei),
|
|
12
17
|
BigInt(vault.in_out_delta),
|
|
13
18
|
BigInt(vault.fee),
|
|
14
|
-
BigInt(vault.
|
|
19
|
+
BigInt(vault.liability_shares),
|
|
15
20
|
];
|
|
16
21
|
export const getReportLeaf = (input) => {
|
|
17
22
|
const encoded = encodeAbiParameters(encoding, getLeafInput(input));
|
|
18
|
-
const leaf =
|
|
23
|
+
const leaf = DOUBLE_HASH(encoded);
|
|
19
24
|
return leaf;
|
|
20
25
|
};
|
|
21
26
|
//# sourceMappingURL=report-proof.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-proof.js","sourceRoot":"","sources":["../../../utils/proof/report-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAO,SAAS,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"report-proof.js","sourceRoot":"","sources":["../../../utils/proof/report-proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAO,SAAS,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAS,EAAO,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,CAAM,EAAO,EAAE;IAC9C,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE;IAC1C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE;IACzC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE;CAC9C,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAqB,EAAE,EAAE,CAAC;IAC9C,KAAK,CAAC,aAAa;IACnB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;IAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACjB,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAqB,EAAO,EAAE;IAC1D,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { callReadMethod } from './index.js';
|
|
1
|
+
import { callReadMethod, stringToAddress } from './index.js';
|
|
2
2
|
/**
|
|
3
3
|
* Generates a CLI command based on the provided ABI.
|
|
4
4
|
* Only functions with stateMutability === 'view' or 'pure' are taken.
|
|
@@ -33,7 +33,7 @@ export function generateReadCommands(abi, createContractOrContract, command, com
|
|
|
33
33
|
methods.push(fnName);
|
|
34
34
|
// If the contract needs an address, add the <address> argument
|
|
35
35
|
if (isNeedsAddress) {
|
|
36
|
-
fnCommand.argument('<address>', 'Contract address');
|
|
36
|
+
fnCommand.argument('<address>', 'Contract address', stringToAddress);
|
|
37
37
|
}
|
|
38
38
|
// Add arguments for each function parameter
|
|
39
39
|
inputs.forEach((input, index) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-programs-by-abi.js","sourceRoot":"","sources":["../../utils/read-programs-by-abi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAgB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"read-programs-by-abi.js","sourceRoot":"","sources":["../../utils/read-programs-by-abi.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/report.js
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
const IPFS_GATEWAY = 'https://emerald-characteristic-yak-701.mypinata.cloud/ipfs';
|
|
1
|
+
import { fetchIPFS, IPFS_GATEWAY } from './index.js';
|
|
3
2
|
export const getReport = async (CID, url = IPFS_GATEWAY) => {
|
|
4
|
-
const
|
|
5
|
-
console.info('Fetching report from', ipfsUrl);
|
|
6
|
-
const response = await fetch(ipfsUrl);
|
|
7
|
-
if (!response.ok) {
|
|
8
|
-
throw new Error(`Failed to fetch IPFS report: ${response.statusText}`);
|
|
9
|
-
}
|
|
10
|
-
const data = await response.json();
|
|
3
|
+
const data = await fetchIPFS(CID, url);
|
|
11
4
|
return data;
|
|
12
5
|
};
|
|
13
6
|
export const getVaultReport = async (vault, cid, url = IPFS_GATEWAY) => {
|
|
@@ -24,10 +17,10 @@ const getVaultData = (report, vault) => {
|
|
|
24
17
|
throw new Error('Leaf not found');
|
|
25
18
|
const data = {
|
|
26
19
|
vault_address: '',
|
|
27
|
-
valuation_wei: '',
|
|
28
20
|
in_out_delta: '',
|
|
29
21
|
fee: '',
|
|
30
|
-
|
|
22
|
+
total_value_wei: '',
|
|
23
|
+
liability_shares: '',
|
|
31
24
|
};
|
|
32
25
|
for (const [index, fieldName] of Object.entries(report.leafIndexToData)) {
|
|
33
26
|
const value = match.value[Number(index)];
|
|
@@ -39,18 +32,18 @@ const getVaultData = (report, vault) => {
|
|
|
39
32
|
return {
|
|
40
33
|
data,
|
|
41
34
|
leaf,
|
|
42
|
-
|
|
35
|
+
refSlot: report.refSlot,
|
|
43
36
|
blockNumber: report.blockNumber,
|
|
37
|
+
timestamp: report.timestamp,
|
|
44
38
|
proofsCID: report.proofsCID,
|
|
45
39
|
merkleTreeRoot: report.merkleTreeRoot,
|
|
40
|
+
prevTreeCID: report.prevTreeCID,
|
|
46
41
|
};
|
|
47
42
|
};
|
|
48
|
-
export const
|
|
43
|
+
export const getReportProofByVault = async (vault, cid) => {
|
|
49
44
|
const report = await getReport(cid);
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
console.info('Fetching proof from', url);
|
|
53
|
-
const response = await fetch(url);
|
|
45
|
+
const proofCID = report.proofsCID;
|
|
46
|
+
const response = await fetchIPFS(proofCID);
|
|
54
47
|
if (!response.ok) {
|
|
55
48
|
throw new Error(`Failed to fetch IPFS proof: ${response.statusText}`);
|
|
56
49
|
}
|
|
@@ -60,6 +53,13 @@ export const getReportProof = async (vault, cid) => {
|
|
|
60
53
|
throw new Error('Proof not found');
|
|
61
54
|
return proofByVault;
|
|
62
55
|
};
|
|
56
|
+
export const getReportProofByCid = async (vault, proofCID) => {
|
|
57
|
+
const proof = await fetchIPFS(proofCID);
|
|
58
|
+
const proofByVault = proof.proofs[vault];
|
|
59
|
+
if (!proofByVault)
|
|
60
|
+
throw new Error('Proof not found');
|
|
61
|
+
return proofByVault;
|
|
62
|
+
};
|
|
63
63
|
export const getAllVaultsReports = async (CID, url = IPFS_GATEWAY) => {
|
|
64
64
|
const report = await getReport(CID, url);
|
|
65
65
|
const vaultReports = report.values.map((value) => getVaultData(report, value.value[0]).data);
|
package/dist/utils/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../utils/report.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../utils/report.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAwDhD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,GAAW,EACX,GAAG,GAAG,YAAY,EACD,EAAE;IACnB,MAAM,IAAI,GAAW,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE/C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,KAAc,EACd,GAAW,EACX,GAAG,GAAG,YAAY,EACI,EAAE;IACxB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE9C,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,KAAc,EAAE,EAAE;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CACjE,CAAC;IAEF,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAmB;QAC3B,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,EAAE;QAChB,GAAG,EAAE,EAAE;QACP,eAAe,EAAE,EAAE;QACnB,gBAAgB,EAAE,EAAE;KACrB,CAAC;IAEF,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACxE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,0BAA0B,KAAK,eAAe,SAAS,GAAG,CAC3D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,KAAc,EAAE,GAAW,EAAE,EAAE;IACzE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;IAElC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,GAAoB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAEtD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,KAAc,EAAE,QAAgB,EAAE,EAAE;IAC5E,MAAM,KAAK,GAAoB,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEzD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAEtD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,GAAW,EACX,GAAG,GAAG,YAAY,EACc,EAAE;IAClC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEzC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAY,CAAC,CAAC,IAAI,CAChE,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { parseEther } from 'viem';
|
|
2
|
+
import { getStethContract, getDashboardContract, getStakingVaultContract, } from '../contracts/index.js';
|
|
3
|
+
import { callReadMethodSilent } from './index.js';
|
|
4
|
+
export const getRequiredLockByShares = async (address, newShares) => {
|
|
5
|
+
const contract = getDashboardContract(address);
|
|
6
|
+
const [stETHContract, socket, vault] = await Promise.all([
|
|
7
|
+
getStethContract(),
|
|
8
|
+
callReadMethodSilent(contract, 'vaultSocket'),
|
|
9
|
+
callReadMethodSilent(contract, 'stakingVault'),
|
|
10
|
+
]);
|
|
11
|
+
const pooledEthByShares = await stETHContract.read.getPooledEthByShares([
|
|
12
|
+
socket.liabilityShares + parseEther(newShares),
|
|
13
|
+
]);
|
|
14
|
+
const vaultContract = getStakingVaultContract(vault);
|
|
15
|
+
const currentLock = await callReadMethodSilent(vaultContract, 'locked');
|
|
16
|
+
const totalBasisPoints = 10000n;
|
|
17
|
+
const requiredLock = (pooledEthByShares * totalBasisPoints) /
|
|
18
|
+
(totalBasisPoints - BigInt(socket.reserveRatioBP));
|
|
19
|
+
return { requiredLock, currentLock };
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=required-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required-lock.js","sourceRoot":"","sources":["../../utils/required-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,MAAM,MAAM,CAAC;AAE3C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,OAAgB,EAChB,SAAiB,EACjB,EAAE;IACF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvD,gBAAgB,EAAE;QAClB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC7C,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC;KAC/C,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACtE,MAAM,CAAC,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC;KAC/C,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAExE,MAAM,gBAAgB,GAAG,MAAM,CAAC;IAEhC,MAAM,YAAY,GAChB,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QACtC,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAErD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACvC,CAAC,CAAC"}
|
package/dist/version/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = 'v1.0.0-alpha.
|
|
1
|
+
export const version = 'v1.0.0-alpha.24'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lidofinance/lsv-cli",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.24",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "module",
|
|
9
9
|
"bin": "dist/index.js",
|
|
10
10
|
"scripts": {
|
|
11
|
-
"start": "
|
|
11
|
+
"start": "tsx ./index.ts",
|
|
12
12
|
"build": "npx tsc && tsc-alias",
|
|
13
13
|
"types": "echo 'No types yet'",
|
|
14
14
|
"lint": "eslint . --ext .ts --max-warnings 0",
|
|
@@ -31,14 +31,19 @@
|
|
|
31
31
|
"provenance": true
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
+
"@chainsafe/blst": "^2.2.0",
|
|
34
35
|
"@chainsafe/persistent-merkle-tree": "^1.0.1",
|
|
35
36
|
"@chainsafe/ssz": "^1.0.2",
|
|
36
37
|
"@lodestar/types": "^1.27.1",
|
|
38
|
+
"blockstore-core": "^5.0.2",
|
|
39
|
+
"chalk": "^5.4.1",
|
|
37
40
|
"cli-progress": "^3.12.0",
|
|
38
41
|
"commander": "^12.1.0",
|
|
39
42
|
"dotenv": "^16.4.5",
|
|
40
43
|
"fs-extra": "^11.3.0",
|
|
44
|
+
"ipfs-unixfs-importer": "^15.3.2",
|
|
41
45
|
"log-update": "^6.1.0",
|
|
46
|
+
"multiformats": "^13.3.2",
|
|
42
47
|
"prompts": "^2.4.2",
|
|
43
48
|
"viem": "^2.21.37"
|
|
44
49
|
},
|
|
@@ -47,11 +52,11 @@
|
|
|
47
52
|
"@commitlint/config-conventional": "^17.4.4",
|
|
48
53
|
"@commitlint/prompt": "^17.4.4",
|
|
49
54
|
"@lidofinance/eslint-config": "^0.48.0",
|
|
50
|
-
"@swc/core": "^1.
|
|
55
|
+
"@swc/core": "^1.11.21",
|
|
51
56
|
"@types/cli-progress": "^3.11.6",
|
|
52
57
|
"@types/fs-extra": "^11.0.4",
|
|
53
58
|
"@types/log-update": "^3.1.0",
|
|
54
|
-
"@types/node": "^22.
|
|
59
|
+
"@types/node": "^22.14.1",
|
|
55
60
|
"@types/prompts": "^2.4.9",
|
|
56
61
|
"@typescript-eslint/eslint-plugin": "^5",
|
|
57
62
|
"@typescript-eslint/parser": "^5.46.0",
|
|
@@ -74,6 +79,7 @@
|
|
|
74
79
|
"ts-node": "^10.9.2",
|
|
75
80
|
"tsc-alias": "^1.8.10",
|
|
76
81
|
"tsconfig-paths": "^4.2.0",
|
|
82
|
+
"tsx": "^4.19.3",
|
|
77
83
|
"typescript": "^5.7.2"
|
|
78
84
|
},
|
|
79
85
|
"lint-staged": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Delegation.js","sourceRoot":"","sources":["../../abi/Delegation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { getContract } from 'viem';
|
|
2
|
-
import { DelegationAbi } from '../abi/index.js';
|
|
3
|
-
import { getPublicClient } from '../providers/index.js';
|
|
4
|
-
export const getDelegationContract = (address) => {
|
|
5
|
-
return getContract({
|
|
6
|
-
address: address,
|
|
7
|
-
abi: DelegationAbi,
|
|
8
|
-
client: getPublicClient(),
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=delegation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delegation.js","sourceRoot":"","sources":["../../contracts/delegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAW,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAgB,EAAE,EAAE;IACxD,OAAO,WAAW,CAAC;QACjB,OAAO,EAAE,OAAO;QAChB,GAAG,EAAE,aAAa;QAClB,MAAM,EAAE,eAAe,EAAE;KAC1B,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { printError, showSpinner } from '../utils/index.js';
|
|
2
|
-
export const getBaseInfo = async (contract) => {
|
|
3
|
-
const hideSpinner = showSpinner();
|
|
4
|
-
try {
|
|
5
|
-
const steth = await contract.read.STETH();
|
|
6
|
-
const wsteth = await contract.read.WSTETH();
|
|
7
|
-
const weth = await contract.read.WETH();
|
|
8
|
-
const isInit = await contract.read.initialized();
|
|
9
|
-
const vault = await contract.read.stakingVault();
|
|
10
|
-
hideSpinner();
|
|
11
|
-
const payload = {
|
|
12
|
-
steth,
|
|
13
|
-
wsteth,
|
|
14
|
-
weth,
|
|
15
|
-
vault,
|
|
16
|
-
isInit,
|
|
17
|
-
};
|
|
18
|
-
console.table(Object.entries(payload));
|
|
19
|
-
}
|
|
20
|
-
catch (err) {
|
|
21
|
-
hideSpinner();
|
|
22
|
-
printError(err, 'Error when getting base info');
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=dashboard-delegation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-delegation.js","sourceRoot":"","sources":["../../features/dashboard-delegation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGhD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,QAAgD,EAChD,EAAE;IACF,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAEjD,WAAW,EAAE,CAAC;QAEd,MAAM,OAAO,GAAG;YACd,KAAK;YACL,MAAM;YACN,IAAI;YACJ,KAAK;YACL,MAAM;SACP,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,UAAU,CAAC,GAAG,EAAE,8BAA8B,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { readCommandConfig as dashboardReadCommandConfig } from '../../programs/dashboard/config.js';
|
|
2
|
-
export const readCommandConfig = {
|
|
3
|
-
...dashboardReadCommandConfig,
|
|
4
|
-
nodeOperatorFeeBP: {
|
|
5
|
-
name: 'no-fee',
|
|
6
|
-
description: 'get node operator fee in basis points',
|
|
7
|
-
},
|
|
8
|
-
nodeOperatorFeeClaimedReport: {
|
|
9
|
-
name: 'no-fee-report',
|
|
10
|
-
description: 'get node operator fee claimed report',
|
|
11
|
-
},
|
|
12
|
-
nodeOperatorUnclaimedFee: {
|
|
13
|
-
name: 'no-unclaimed-fee',
|
|
14
|
-
description: `Returns the accumulated unclaimed node operator fee in ether,
|
|
15
|
-
calculated as: U = (R * F) / T
|
|
16
|
-
where:
|
|
17
|
-
- U is the node operator unclaimed fee;
|
|
18
|
-
- R is the StakingVault rewards accrued since the last node operator fee claim;
|
|
19
|
-
- F is nodeOperatorFeeBP
|
|
20
|
-
- T is the total basis points, 10,000.`,
|
|
21
|
-
},
|
|
22
|
-
curatorUnclaimedFee: {
|
|
23
|
-
name: 'cf-unclaimed',
|
|
24
|
-
description: `Returns the accumulated unclaimed curator fee in ether,
|
|
25
|
-
calculated as: U = (R * F) / T
|
|
26
|
-
where:
|
|
27
|
-
- U is the curator unclaimed fee;
|
|
28
|
-
- R is the StakingVault rewards accrued since the last curator fee claim;
|
|
29
|
-
- F is curatorFeeBP
|
|
30
|
-
- T is the total basis points, 10,000.`,
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../programs/delegation/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE/F,MAAM,CAAC,MAAM,iBAAiB,GAA6B;IACzD,GAAG,0BAA0B;IAC7B,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uCAAuC;KACrD;IACD,4BAA4B,EAAE;QAC5B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,sCAAsC;KACpD;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE;;;;;;uDAMsC;KACpD;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE;;;;;;uDAMsC;KACpD;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../programs/delegation/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { program } from '../../command/index.js';
|
|
2
|
-
import { Option } from 'commander';
|
|
3
|
-
import { getCommandsJson } from '../../utils/index.js';
|
|
4
|
-
export const delegation = program
|
|
5
|
-
.command('delegation')
|
|
6
|
-
.description('delegation contract');
|
|
7
|
-
delegation.addOption(new Option('-cmd2json'));
|
|
8
|
-
delegation.on('option:-cmd2json', function () {
|
|
9
|
-
console.info(getCommandsJson(delegation));
|
|
10
|
-
process.exit();
|
|
11
|
-
});
|
|
12
|
-
//# sourceMappingURL=main.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../programs/delegation/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO;KAC9B,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAEtC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9C,UAAU,CAAC,EAAE,CAAC,kBAAkB,EAAE;IAChC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { formatEther } from 'viem';
|
|
2
|
-
import { DelegationAbi } from '../../abi/index.js';
|
|
3
|
-
import { getDelegationContract, getStethContract } from '../../contracts/index.js';
|
|
4
|
-
import { generateReadCommands, calculateHealthRatio } from '../../utils/index.js';
|
|
5
|
-
import { getBaseInfo } from '../../features/index.js';
|
|
6
|
-
import { delegation } from './main.js';
|
|
7
|
-
import { readCommandConfig } from './config.js';
|
|
8
|
-
generateReadCommands(DelegationAbi, getDelegationContract, delegation, readCommandConfig);
|
|
9
|
-
delegation
|
|
10
|
-
.command('roles')
|
|
11
|
-
.description('get delegation contract roles info')
|
|
12
|
-
.argument('<address>', 'delegation contract address')
|
|
13
|
-
.action(async (address) => {
|
|
14
|
-
const contract = getDelegationContract(address);
|
|
15
|
-
// TODO: check roles
|
|
16
|
-
try {
|
|
17
|
-
const CURATOR_FEE_CLAIM_ROLE = await contract.read.CURATOR_FEE_CLAIM_ROLE();
|
|
18
|
-
const CURATOR_FEE_SET_ROLE = await contract.read.CURATOR_FEE_SET_ROLE();
|
|
19
|
-
const NODE_OPERATOR_MANAGER_ROLE = await contract.read.NODE_OPERATOR_MANAGER_ROLE();
|
|
20
|
-
const NODE_OPERATOR_FEE_CLAIMER_ROLE = await contract.read.NODE_OPERATOR_FEE_CLAIM_ROLE();
|
|
21
|
-
const FUND_ROLE = await contract.read.FUND_ROLE();
|
|
22
|
-
const WITHDRAW_ROLE = await contract.read.WITHDRAW_ROLE();
|
|
23
|
-
const MINT_ROLE = await contract.read.MINT_ROLE();
|
|
24
|
-
const BURN_ROLE = await contract.read.BURN_ROLE();
|
|
25
|
-
const REBALANCE_ROLE = await contract.read.REBALANCE_ROLE();
|
|
26
|
-
const PAUSE_BEACON_CHAIN_DEPOSITS_ROLE = await contract.read.PAUSE_BEACON_CHAIN_DEPOSITS_ROLE();
|
|
27
|
-
const RESUME_BEACON_CHAIN_DEPOSITS_ROLE = await contract.read.RESUME_BEACON_CHAIN_DEPOSITS_ROLE();
|
|
28
|
-
const REQUEST_VALIDATOR_EXIT_ROLE = await contract.read.REQUEST_VALIDATOR_EXIT_ROLE();
|
|
29
|
-
const VOLUNTARY_DISCONNECT_ROLE = await contract.read.VOLUNTARY_DISCONNECT_ROLE();
|
|
30
|
-
const TRIGGER_VALIDATOR_WITHDRAWAL_ROLE = await contract.read.TRIGGER_VALIDATOR_WITHDRAWAL_ROLE();
|
|
31
|
-
const PDG_WITHDRAWAL_ROLE = await contract.read.PDG_WITHDRAWAL_ROLE();
|
|
32
|
-
const ASSET_RECOVERY_ROLE = await contract.read.ASSET_RECOVERY_ROLE();
|
|
33
|
-
const payload = {
|
|
34
|
-
CURATOR_FEE_CLAIM_ROLE,
|
|
35
|
-
CURATOR_FEE_SET_ROLE,
|
|
36
|
-
NODE_OPERATOR_MANAGER_ROLE,
|
|
37
|
-
NODE_OPERATOR_FEE_CLAIMER_ROLE,
|
|
38
|
-
FUND_ROLE,
|
|
39
|
-
WITHDRAW_ROLE,
|
|
40
|
-
MINT_ROLE,
|
|
41
|
-
BURN_ROLE,
|
|
42
|
-
REBALANCE_ROLE,
|
|
43
|
-
PAUSE_BEACON_CHAIN_DEPOSITS_ROLE,
|
|
44
|
-
RESUME_BEACON_CHAIN_DEPOSITS_ROLE,
|
|
45
|
-
REQUEST_VALIDATOR_EXIT_ROLE,
|
|
46
|
-
VOLUNTARY_DISCONNECT_ROLE,
|
|
47
|
-
TRIGGER_VALIDATOR_WITHDRAWAL_ROLE,
|
|
48
|
-
PDG_WITHDRAWAL_ROLE,
|
|
49
|
-
ASSET_RECOVERY_ROLE,
|
|
50
|
-
};
|
|
51
|
-
console.table(Object.entries(payload));
|
|
52
|
-
}
|
|
53
|
-
catch (err) {
|
|
54
|
-
if (err instanceof Error) {
|
|
55
|
-
console.info('Error when getting roles:\n', err.message);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
delegation
|
|
60
|
-
.command('base-info')
|
|
61
|
-
.description('get delegation base info')
|
|
62
|
-
.argument('<address>', 'delegation address')
|
|
63
|
-
.action(async (address) => {
|
|
64
|
-
const contract = getDelegationContract(address);
|
|
65
|
-
await getBaseInfo(contract);
|
|
66
|
-
});
|
|
67
|
-
delegation
|
|
68
|
-
.command('health')
|
|
69
|
-
.description('get vault health info')
|
|
70
|
-
.argument('<address>', 'delegation address')
|
|
71
|
-
.action(async (address) => {
|
|
72
|
-
const contract = getDelegationContract(address);
|
|
73
|
-
const stethContract = await getStethContract();
|
|
74
|
-
try {
|
|
75
|
-
const [valuation, minted, rebalanceThresholdBP] = await Promise.all([
|
|
76
|
-
contract.read.valuation(), // BigInt, in wei
|
|
77
|
-
contract.read.sharesMinted(), // BigInt, in shares
|
|
78
|
-
contract.read.rebalanceThresholdBP(), // number (in basis points)
|
|
79
|
-
]);
|
|
80
|
-
if (minted === BigInt(0)) {
|
|
81
|
-
console.info('Minted is 0');
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
const mintedInSteth = await stethContract.read.getPooledEthByShares([
|
|
85
|
-
minted,
|
|
86
|
-
]); // BigInt
|
|
87
|
-
const { healthRatioNumber, isHealthy } = calculateHealthRatio(valuation, mintedInSteth, rebalanceThresholdBP);
|
|
88
|
-
console.table({
|
|
89
|
-
'Vault Healthy': isHealthy,
|
|
90
|
-
'Valuation, wei': valuation,
|
|
91
|
-
'Valuation, ether': `${formatEther(valuation)} ETH`,
|
|
92
|
-
'Minted, stETH': `${mintedInSteth} stETH`,
|
|
93
|
-
'Rebalance Threshold, BP': rebalanceThresholdBP,
|
|
94
|
-
'Rebalance Threshold, %': `${rebalanceThresholdBP / 100}%`,
|
|
95
|
-
'Health Rate': `${healthRatioNumber}%`,
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
catch (err) {
|
|
99
|
-
if (err instanceof Error) {
|
|
100
|
-
console.info('Error when getting info:\n', err.message);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
//# sourceMappingURL=read.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/delegation/read.ts"],"names":[],"mappings":"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"}
|