@lidofinance/lsv-cli 1.0.0-alpha.22 → 1.0.0-alpha.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abi/ReportChecker.js +109 -0
- package/dist/abi/ReportChecker.js.map +1 -0
- package/dist/abi/index.js +1 -0
- package/dist/abi/index.js.map +1 -1
- package/dist/contracts/index.js +1 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/reportChecker.js +24 -0
- package/dist/contracts/reportChecker.js.map +1 -0
- package/dist/contracts/steth.js +6 -3
- package/dist/contracts/steth.js.map +1 -1
- package/dist/features/voting.js +5 -1
- package/dist/features/voting.js.map +1 -1
- package/dist/programs/dashboard/read.js +40 -2
- package/dist/programs/dashboard/read.js.map +1 -1
- package/dist/programs/dashboard/write.js +29 -27
- package/dist/programs/dashboard/write.js.map +1 -1
- package/dist/programs/delegation/read.js +26 -20
- package/dist/programs/delegation/read.js.map +1 -1
- package/dist/programs/delegation/write.js +11 -15
- package/dist/programs/delegation/write.js.map +1 -1
- package/dist/programs/hub/write.js +3 -3
- package/dist/programs/hub/write.js.map +1 -1
- package/dist/programs/index.js +1 -0
- package/dist/programs/index.js.map +1 -1
- package/dist/programs/pdg/write.js +10 -12
- package/dist/programs/pdg/write.js.map +1 -1
- package/dist/programs/report.js +101 -0
- package/dist/programs/report.js.map +1 -0
- package/dist/programs/vault/write.js +16 -20
- package/dist/programs/vault/write.js.map +1 -1
- package/dist/programs/vault-factory/write.js +5 -21
- package/dist/programs/vault-factory/write.js.map +1 -1
- package/dist/utils/arguments.js +24 -0
- package/dist/utils/arguments.js.map +1 -0
- package/dist/utils/contract.js +1 -0
- package/dist/utils/contract.js.map +1 -1
- package/dist/utils/error-handler.js +3 -0
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/health.js +18 -0
- package/dist/utils/health.js.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.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/report-proof.js +21 -0
- package/dist/utils/proof/report-proof.js.map +1 -0
- package/dist/utils/report.js +68 -0
- package/dist/utils/report.js.map +1 -0
- package/dist/version/index.js +1 -1
- package/package.json +2 -4
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
export const ReportCheckerAbi = [
|
|
2
|
+
{
|
|
3
|
+
inputs: [],
|
|
4
|
+
stateMutability: 'nonpayable',
|
|
5
|
+
type: 'constructor',
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
inputs: [
|
|
9
|
+
{
|
|
10
|
+
internalType: 'bytes32',
|
|
11
|
+
name: 'leaf',
|
|
12
|
+
type: 'bytes32',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
internalType: 'bytes32',
|
|
16
|
+
name: 'root',
|
|
17
|
+
type: 'bytes32',
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
name: 'InvalidProof',
|
|
21
|
+
type: 'error',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
inputs: [
|
|
25
|
+
{
|
|
26
|
+
internalType: 'string',
|
|
27
|
+
name: 'argName',
|
|
28
|
+
type: 'string',
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
name: 'ZeroArgument',
|
|
32
|
+
type: 'error',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
inputs: [
|
|
36
|
+
{
|
|
37
|
+
internalType: 'address',
|
|
38
|
+
name: '_vault',
|
|
39
|
+
type: 'address',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
internalType: 'uint256',
|
|
43
|
+
name: '_valuation',
|
|
44
|
+
type: 'uint256',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
internalType: 'int256',
|
|
48
|
+
name: '_inOutDelta',
|
|
49
|
+
type: 'int256',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
internalType: 'uint256',
|
|
53
|
+
name: '_fees',
|
|
54
|
+
type: 'uint256',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
internalType: 'uint256',
|
|
58
|
+
name: '_sharesMinted',
|
|
59
|
+
type: 'uint256',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
internalType: 'bytes32[]',
|
|
63
|
+
name: '_proof',
|
|
64
|
+
type: 'bytes32[]',
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
name: 'checkReport',
|
|
68
|
+
outputs: [],
|
|
69
|
+
stateMutability: 'view',
|
|
70
|
+
type: 'function',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
inputs: [],
|
|
74
|
+
name: 'getReportCheckerData',
|
|
75
|
+
outputs: [
|
|
76
|
+
{
|
|
77
|
+
internalType: 'bytes32',
|
|
78
|
+
name: '',
|
|
79
|
+
type: 'bytes32',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
internalType: 'string',
|
|
83
|
+
name: '',
|
|
84
|
+
type: 'string',
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
stateMutability: 'view',
|
|
88
|
+
type: 'function',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
inputs: [
|
|
92
|
+
{
|
|
93
|
+
internalType: 'bytes32',
|
|
94
|
+
name: '_vaultsDataTreeRoot',
|
|
95
|
+
type: 'bytes32',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
internalType: 'string',
|
|
99
|
+
name: '_vaultsDataTreeCid',
|
|
100
|
+
type: 'string',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
name: 'updateReportCheckerData',
|
|
104
|
+
outputs: [],
|
|
105
|
+
stateMutability: 'nonpayable',
|
|
106
|
+
type: 'function',
|
|
107
|
+
},
|
|
108
|
+
];
|
|
109
|
+
//# sourceMappingURL=ReportChecker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportChecker.js","sourceRoot":"","sources":["../../abi/ReportChecker.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,aAAa;KACpB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,OAAO;KACd;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;aACf;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,WAAW;aAClB;SACF;QACD,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,QAAQ;aACf;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,QAAQ;aACf;SACF;QACD,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;KACjB;CACO,CAAC"}
|
package/dist/abi/index.js
CHANGED
package/dist/abi/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../abi/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../abi/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
|
package/dist/contracts/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { getContract, createPublicClient, http } from 'viem';
|
|
2
|
+
import { mainnet, sepolia } from 'viem/chains';
|
|
3
|
+
import { ReportCheckerAbi } from '../abi/index.js';
|
|
4
|
+
import { getChain, getRpcUrl } from '../configs/index.js';
|
|
5
|
+
const REPORT_CHECKER_BY_CHAIN = {
|
|
6
|
+
[mainnet.id]: '0x',
|
|
7
|
+
[sepolia.id]: '0x2D271F259b54BE7d61bbFE9ac464E06eccCe6df5',
|
|
8
|
+
};
|
|
9
|
+
export const getReportCheckerContract = () => {
|
|
10
|
+
const chainId = getChain().id;
|
|
11
|
+
const address = REPORT_CHECKER_BY_CHAIN[chainId];
|
|
12
|
+
if (!address) {
|
|
13
|
+
throw new Error(`ReportChecker contract not found for chain ${chainId}`);
|
|
14
|
+
}
|
|
15
|
+
return getContract({
|
|
16
|
+
address,
|
|
17
|
+
abi: ReportCheckerAbi,
|
|
18
|
+
client: createPublicClient({
|
|
19
|
+
chain: getChain(),
|
|
20
|
+
transport: http(getRpcUrl()),
|
|
21
|
+
}),
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=reportChecker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reportChecker.js","sourceRoot":"","sources":["../../contracts/reportChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAW,MAAM,MAAM,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,uBAAuB,GAA4B;IACvD,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI;IAClB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,4CAA4C;CAC3D,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,WAAW,CAAC;QACjB,OAAO;QACP,GAAG,EAAE,gBAAgB;QACrB,MAAM,EAAE,kBAAkB,CAAC;YACzB,KAAK,EAAE,QAAQ,EAAE;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;SAC7B,CAAC;KACH,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/dist/contracts/steth.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { getContract, createPublicClient, http } from 'viem';
|
|
2
2
|
import { StEthAbi } from '../abi/index.js';
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import { getChain, getRpcUrl } from '../configs/index.js';
|
|
4
|
+
import { getLocatorContract } from './index.js';
|
|
5
|
+
export const getStethContract = async () => {
|
|
6
|
+
const locator = getLocatorContract();
|
|
5
7
|
const rpcUrl = getRpcUrl();
|
|
8
|
+
const address = await locator.read.lido();
|
|
6
9
|
return getContract({
|
|
7
|
-
address:
|
|
10
|
+
address: address,
|
|
8
11
|
abi: StEthAbi,
|
|
9
12
|
client: createPublicClient({
|
|
10
13
|
chain: getChain(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steth.js","sourceRoot":"","sources":["../../contracts/steth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"steth.js","sourceRoot":"","sources":["../../contracts/steth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IACzC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAE1C,OAAO,WAAW,CAAC;QACjB,OAAO,EAAE,OAAO;QAChB,GAAG,EAAE,QAAQ;QACb,MAAM,EAAE,kBAAkB,CAAC;YACzB,KAAK,EAAE,QAAQ,EAAE;YACjB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;SACxB,CAAC;KACH,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/dist/features/voting.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import progress from 'cli-progress';
|
|
2
2
|
import { getVotingContract } from '../contracts/index.js';
|
|
3
|
-
import { sleep, callReadMethod, callWriteMethodWithReceipt } from '../utils/index.js';
|
|
3
|
+
import { sleep, callReadMethod, callWriteMethodWithReceipt, printError, } from '../utils/index.js';
|
|
4
4
|
const voteAbi = [
|
|
5
5
|
{
|
|
6
6
|
name: 'open',
|
|
@@ -39,6 +39,10 @@ const voteAbi = [
|
|
|
39
39
|
export const voteLastVoting = async () => {
|
|
40
40
|
const { contract } = getVotingContract();
|
|
41
41
|
const votesLength = await callReadMethod(contract, 'votesLength');
|
|
42
|
+
if (!votesLength) {
|
|
43
|
+
printError(null, 'Error when getting votes length');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
42
46
|
const lastVoteId = votesLength - 1n;
|
|
43
47
|
if (lastVoteId === -1n) {
|
|
44
48
|
console.warn('No votes');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voting.js","sourceRoot":"","sources":["../../features/voting.ts"],"names":[],"mappings":"AAAA,OAAO,QAAuB,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"voting.js","sourceRoot":"","sources":["../../features/voting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { getDashboardContract } from '../../contracts/index.js';
|
|
1
|
+
import { getDashboardContract, getStethContract } from '../../contracts/index.js';
|
|
2
|
+
import { formatEther } from 'viem';
|
|
2
3
|
import { DashboardAbi } from '../../abi/index.js';
|
|
3
|
-
import { generateReadCommands, textPrompt } from '../../utils/index.js';
|
|
4
|
+
import { calculateHealthRatio, generateReadCommands, textPrompt } from '../../utils/index.js';
|
|
4
5
|
import { getBaseInfo } from '../../features/index.js';
|
|
5
6
|
import { dashboard } from './main.js';
|
|
6
7
|
import { readCommandConfig } from './config.js';
|
|
@@ -21,5 +22,42 @@ dashboard
|
|
|
21
22
|
const contract = getDashboardContract(dashboardAddress);
|
|
22
23
|
await getBaseInfo(contract);
|
|
23
24
|
});
|
|
25
|
+
dashboard
|
|
26
|
+
.command('health')
|
|
27
|
+
.description('get vault health info')
|
|
28
|
+
.argument('<address>', 'delegation address')
|
|
29
|
+
.action(async (address) => {
|
|
30
|
+
const contract = getDashboardContract(address);
|
|
31
|
+
const stethContract = await getStethContract();
|
|
32
|
+
try {
|
|
33
|
+
const [valuation, minted, rebalanceThresholdBP] = await Promise.all([
|
|
34
|
+
contract.read.valuation(), // BigInt, in wei
|
|
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({
|
|
47
|
+
'Vault Healthy': isHealthy,
|
|
48
|
+
'Valuation, wei': valuation,
|
|
49
|
+
'Valuation, ether': `${formatEther(valuation)} ETH`,
|
|
50
|
+
'Minted, stETH': `${mintedInSteth} stETH`,
|
|
51
|
+
'Rebalance Threshold, BP': rebalanceThresholdBP,
|
|
52
|
+
'Rebalance Threshold, %': `${rebalanceThresholdBP / 100}%`,
|
|
53
|
+
'Health Rate': `${healthRatioNumber}%`,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
if (err instanceof Error) {
|
|
58
|
+
console.info('Error when getting info:\n', err.message);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
24
62
|
generateReadCommands(DashboardAbi, getDashboardContract, dashboard, readCommandConfig);
|
|
25
63
|
//# sourceMappingURL=read.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/dashboard/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/dashboard/read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getDashboardContract } from '../../contracts/index.js';
|
|
2
|
-
import { callWriteMethodWithReceipt, confirmFund } from '../../utils/index.js';
|
|
1
|
+
import { getDashboardContract, getStakingVaultContract } from '../../contracts/index.js';
|
|
2
|
+
import { callReadMethod, callWriteMethodWithReceipt, confirmFund, printError, stringToBigIntArray, jsonToPermit, jsonToRoleAssignment, } from '../../utils/index.js';
|
|
3
3
|
import { dashboard } from './main.js';
|
|
4
4
|
// TODO: test without voting
|
|
5
5
|
dashboard
|
|
@@ -84,15 +84,22 @@ dashboard
|
|
|
84
84
|
.description('triggers the withdrawal of a validator from the staking vault')
|
|
85
85
|
.argument('<address>', 'dashboard address')
|
|
86
86
|
.argument('<pubkeys>', 'pubkeys of the validators to withdraw')
|
|
87
|
-
.argument('<amounts>', 'amounts of ether to withdraw')
|
|
87
|
+
.argument('<amounts>', 'amounts of ether to withdraw', stringToBigIntArray)
|
|
88
88
|
.argument('<recipient>', 'address of the recipient')
|
|
89
89
|
.action(async (address, pubkeys, amounts, recipient) => {
|
|
90
90
|
const contract = getDashboardContract(address);
|
|
91
|
-
await
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
91
|
+
const vault = await callReadMethod(contract, 'stakingVault');
|
|
92
|
+
if (!vault) {
|
|
93
|
+
printError(null, 'Error when getting staking vault address');
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const vaultContract = getStakingVaultContract(vault);
|
|
97
|
+
const fee = await callReadMethod(vaultContract, 'calculateValidatorWithdrawalFee', [BigInt(amounts.length)]);
|
|
98
|
+
if (!fee) {
|
|
99
|
+
printError(null, 'Error when getting withdrawal fee');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
await callWriteMethodWithReceipt(contract, 'triggerValidatorWithdrawal', [pubkeys, amounts, recipient], fee);
|
|
96
103
|
});
|
|
97
104
|
dashboard
|
|
98
105
|
.command('mint-shares')
|
|
@@ -169,9 +176,8 @@ dashboard
|
|
|
169
176
|
.description('Burns stETH tokens (in shares) backed by the vault from the sender using permit (with value in stETH).')
|
|
170
177
|
.argument('<address>', 'dashboard address')
|
|
171
178
|
.argument('<tokens>', 'amount of stETH tokens to burn')
|
|
172
|
-
.argument('<permitJSON>', 'JSON data required for the stETH.permit() method to set the allowance')
|
|
173
|
-
.action(async (address, tokens,
|
|
174
|
-
const permit = JSON.parse(permitJSON);
|
|
179
|
+
.argument('<permitJSON>', 'JSON data required for the stETH.permit() method to set the allowance', jsonToPermit)
|
|
180
|
+
.action(async (address, tokens, permit) => {
|
|
175
181
|
const contract = getDashboardContract(address);
|
|
176
182
|
await callWriteMethodWithReceipt(contract, 'burnSharesWithPermit', [
|
|
177
183
|
BigInt(tokens),
|
|
@@ -183,9 +189,8 @@ dashboard
|
|
|
183
189
|
.description('Burns stETH tokens backed by the vault from the sender using permit.')
|
|
184
190
|
.argument('<address>', 'dashboard address')
|
|
185
191
|
.argument('<tokens>', 'amount of stETH tokens to burn')
|
|
186
|
-
.argument('<permitJSON>', 'JSON data required for the stETH.permit() method to set the allowance')
|
|
187
|
-
.action(async (address, tokens,
|
|
188
|
-
const permit = JSON.parse(permitJSON);
|
|
192
|
+
.argument('<permitJSON>', 'JSON data required for the stETH.permit() method to set the allowance', jsonToPermit)
|
|
193
|
+
.action(async (address, tokens, permit) => {
|
|
189
194
|
const contract = getDashboardContract(address);
|
|
190
195
|
await callWriteMethodWithReceipt(contract, 'burnStETHWithPermit', [
|
|
191
196
|
BigInt(tokens),
|
|
@@ -197,9 +202,8 @@ dashboard
|
|
|
197
202
|
.description('burn wstETH tokens from the sender backed by the vault using EIP-2612 Permit')
|
|
198
203
|
.argument('<address>', 'dashboard address')
|
|
199
204
|
.argument('<tokens>', 'amount of wstETH tokens to burn')
|
|
200
|
-
.argument('<permitJSON>', 'JSON data required for the wstETH.permit() method to set the allowance')
|
|
201
|
-
.action(async (address, tokens,
|
|
202
|
-
const permit = JSON.parse(permitJSON);
|
|
205
|
+
.argument('<permitJSON>', 'JSON data required for the wstETH.permit() method to set the allowance', jsonToPermit)
|
|
206
|
+
.action(async (address, tokens, permit) => {
|
|
203
207
|
const contract = getDashboardContract(address);
|
|
204
208
|
await callWriteMethodWithReceipt(contract, 'burnWstETHWithPermit', [
|
|
205
209
|
BigInt(tokens),
|
|
@@ -267,27 +271,25 @@ dashboard
|
|
|
267
271
|
.command('role-grant')
|
|
268
272
|
.description('Mass-revokes multiple roles from multiple accounts.')
|
|
269
273
|
.argument('<address>', 'dashboard address')
|
|
270
|
-
.argument('<roleAssignmentJSON>', 'JSON array of role assignments')
|
|
271
|
-
.action(async (address,
|
|
274
|
+
.argument('<roleAssignmentJSON>', 'JSON array of role assignments', jsonToRoleAssignment)
|
|
275
|
+
.action(async (address, roleAssignment) => {
|
|
272
276
|
const contract = getDashboardContract(address);
|
|
273
|
-
|
|
274
|
-
if (!Array.isArray(payload)) {
|
|
277
|
+
if (!Array.isArray(roleAssignment)) {
|
|
275
278
|
throw new Error('the 2nd argument should be an array of role assignments');
|
|
276
279
|
}
|
|
277
|
-
await callWriteMethodWithReceipt(contract, 'grantRoles', [
|
|
280
|
+
await callWriteMethodWithReceipt(contract, 'grantRoles', [roleAssignment]);
|
|
278
281
|
});
|
|
279
282
|
dashboard
|
|
280
283
|
.command('role-revoke')
|
|
281
284
|
.description('Resumes beacon chain deposits on the staking vault.')
|
|
282
285
|
.argument('<address>', 'dashboard address')
|
|
283
|
-
.argument('<roleAssignmentJSON>', 'JSON array of role assignments')
|
|
284
|
-
.action(async (address,
|
|
286
|
+
.argument('<roleAssignmentJSON>', 'JSON array of role assignments', jsonToRoleAssignment)
|
|
287
|
+
.action(async (address, roleAssignment) => {
|
|
285
288
|
const contract = getDashboardContract(address);
|
|
286
|
-
|
|
287
|
-
if (!Array.isArray(payload)) {
|
|
289
|
+
if (!Array.isArray(roleAssignment)) {
|
|
288
290
|
throw new Error('the 2nd argument should be an array of role assignments');
|
|
289
291
|
}
|
|
290
|
-
await callWriteMethodWithReceipt(contract, 'revokeRoles', [
|
|
292
|
+
await callWriteMethodWithReceipt(contract, 'revokeRoles', [roleAssignment]);
|
|
291
293
|
});
|
|
292
294
|
dashboard
|
|
293
295
|
.command('compensate-disproven-predeposit')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../programs/dashboard/write.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../programs/dashboard/write.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { formatEther } from 'viem';
|
|
1
2
|
import { DelegationAbi } from '../../abi/index.js';
|
|
2
|
-
import { getDelegationContract,
|
|
3
|
-
import { generateReadCommands } from '../../utils/index.js';
|
|
3
|
+
import { getDelegationContract, getStethContract } from '../../contracts/index.js';
|
|
4
|
+
import { generateReadCommands, calculateHealthRatio } from '../../utils/index.js';
|
|
4
5
|
import { getBaseInfo } from '../../features/index.js';
|
|
5
6
|
import { delegation } from './main.js';
|
|
6
7
|
import { readCommandConfig } from './config.js';
|
|
@@ -64,29 +65,34 @@ delegation
|
|
|
64
65
|
await getBaseInfo(contract);
|
|
65
66
|
});
|
|
66
67
|
delegation
|
|
67
|
-
.command('
|
|
68
|
-
.description('get vault
|
|
69
|
-
.argument('<address>', '
|
|
68
|
+
.command('health')
|
|
69
|
+
.description('get vault health info')
|
|
70
|
+
.argument('<address>', 'delegation address')
|
|
70
71
|
.action(async (address) => {
|
|
71
72
|
const contract = getDelegationContract(address);
|
|
73
|
+
const stethContract = await getStethContract();
|
|
72
74
|
try {
|
|
73
|
-
const valuation = await
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const
|
|
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);
|
|
83
88
|
console.table({
|
|
84
89
|
'Vault Healthy': isHealthy,
|
|
85
|
-
Valuation: valuation,
|
|
86
|
-
'
|
|
87
|
-
'
|
|
88
|
-
|
|
89
|
-
|
|
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}%`,
|
|
90
96
|
});
|
|
91
97
|
}
|
|
92
98
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/delegation/read.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../programs/delegation/read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getDelegationContract } from '../../contracts/index.js';
|
|
2
|
-
import { callWriteMethodWithReceipt } from '../../utils/index.js';
|
|
2
|
+
import { callWriteMethodWithReceipt, jsonToPermit, jsonToRoleAssignment, } from '../../utils/index.js';
|
|
3
3
|
import { delegation } from './main.js';
|
|
4
4
|
delegation
|
|
5
5
|
.command('cf-set')
|
|
@@ -220,9 +220,8 @@ delegation
|
|
|
220
220
|
.description('Burns stETH tokens (in shares) backed by the vault from the sender using permit (with value in stETH).')
|
|
221
221
|
.argument('<address>', 'delegation address')
|
|
222
222
|
.argument('<tokens>', 'amount of stETH tokens to burn')
|
|
223
|
-
.argument('<permitJSON>', 'JSON data required for the stETH.permit() method to set the allowance')
|
|
224
|
-
.action(async (address, tokens,
|
|
225
|
-
const permit = JSON.parse(permitJSON);
|
|
223
|
+
.argument('<permitJSON>', 'JSON data required for the stETH.permit() method to set the allowance', jsonToPermit)
|
|
224
|
+
.action(async (address, tokens, permit) => {
|
|
226
225
|
const contract = getDelegationContract(address);
|
|
227
226
|
await callWriteMethodWithReceipt(contract, 'burnSharesWithPermit', [
|
|
228
227
|
BigInt(tokens),
|
|
@@ -234,9 +233,8 @@ delegation
|
|
|
234
233
|
.description('Burns stETH tokens backed by the vault from the sender using permit.')
|
|
235
234
|
.argument('<address>', 'delegation address')
|
|
236
235
|
.argument('<tokens>', 'amount of stETH tokens to burn')
|
|
237
|
-
.argument('<permitJSON>', 'JSON data required for the stETH.permit() method to set the allowance')
|
|
238
|
-
.action(async (address, tokens,
|
|
239
|
-
const permit = JSON.parse(permitJSON);
|
|
236
|
+
.argument('<permitJSON>', 'JSON data required for the stETH.permit() method to set the allowance', jsonToPermit)
|
|
237
|
+
.action(async (address, tokens, permit) => {
|
|
240
238
|
const contract = getDelegationContract(address);
|
|
241
239
|
await callWriteMethodWithReceipt(contract, 'burnStETHWithPermit', [
|
|
242
240
|
BigInt(tokens),
|
|
@@ -248,9 +246,8 @@ delegation
|
|
|
248
246
|
.description('burn wstETH tokens from the sender backed by the vault using EIP-2612 Permit')
|
|
249
247
|
.argument('<address>', 'delegation address')
|
|
250
248
|
.argument('<tokens>', 'amount of wstETH tokens to burn')
|
|
251
|
-
.argument('<permitJSON>', 'JSON data required for the wstETH.permit() method to set the allowance')
|
|
252
|
-
.action(async (address, tokens,
|
|
253
|
-
const permit = JSON.parse(permitJSON);
|
|
249
|
+
.argument('<permitJSON>', 'JSON data required for the wstETH.permit() method to set the allowance', jsonToPermit)
|
|
250
|
+
.action(async (address, tokens, permit) => {
|
|
254
251
|
const contract = getDelegationContract(address);
|
|
255
252
|
await callWriteMethodWithReceipt(contract, 'burnWstETHWithPermit', [
|
|
256
253
|
BigInt(tokens),
|
|
@@ -291,14 +288,13 @@ delegation
|
|
|
291
288
|
.command('role-grant')
|
|
292
289
|
.description('Mass-revokes multiple roles from multiple accounts.')
|
|
293
290
|
.argument('<address>', 'delegation address')
|
|
294
|
-
.argument('<roleAssignmentJSON>', 'JSON array of role assignments')
|
|
295
|
-
.action(async (address,
|
|
291
|
+
.argument('<roleAssignmentJSON>', 'JSON array of role assignments', jsonToRoleAssignment)
|
|
292
|
+
.action(async (address, roleAssignment) => {
|
|
296
293
|
const contract = getDelegationContract(address);
|
|
297
|
-
|
|
298
|
-
if (!Array.isArray(payload)) {
|
|
294
|
+
if (!Array.isArray(roleAssignment)) {
|
|
299
295
|
throw new Error('the 2nd argument should be an array of role assignments');
|
|
300
296
|
}
|
|
301
|
-
await callWriteMethodWithReceipt(contract, 'grantRoles', [
|
|
297
|
+
await callWriteMethodWithReceipt(contract, 'grantRoles', [roleAssignment]);
|
|
302
298
|
});
|
|
303
299
|
delegation
|
|
304
300
|
.command('role-revoke')
|