@lidofinance/lsv-cli 1.0.0-alpha.15 → 1.0.0-alpha.16

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.
@@ -1,324 +0,0 @@
1
- import { program } from '../command/index.js';
2
- import { getVaultHubContract } from '../contracts/index.js';
3
- import { getAccount } from '../providers/index.js';
4
- import { getChain } from '../configs/index.js';
5
- import { callWriteMethodWithReceipt, callReadMethod } from '../utils/index.js';
6
- const vaultHub = program.command('hub').description('vault hub contract');
7
- // Works fine
8
- vaultHub
9
- .command('constants')
10
- .description('get vault hub constants')
11
- .action(async () => {
12
- const contract = await getVaultHubContract();
13
- try {
14
- const VAULT_MASTER_ROLE = await contract.read.VAULT_MASTER_ROLE();
15
- const VAULT_REGISTRY_ROLE = await contract.read.VAULT_REGISTRY_ROLE();
16
- const STETH = await contract.read.STETH();
17
- const DEFAULT_ADMIN_ROLE = await contract.read.DEFAULT_ADMIN_ROLE();
18
- const CONTRACT_ADDRESS = contract.address;
19
- const payload = {
20
- VAULT_MASTER_ROLE,
21
- DEFAULT_ADMIN_ROLE,
22
- VAULT_REGISTRY_ROLE,
23
- STETH,
24
- CONTRACT_ADDRESS,
25
- };
26
- console.table(Object.entries(payload));
27
- }
28
- catch (err) {
29
- if (err instanceof Error) {
30
- console.info('Error when getting info:\n', err.message);
31
- }
32
- }
33
- });
34
- vaultHub
35
- .command('add-codehash')
36
- .description('add vault proxy codehash to allowed list')
37
- .argument('<codehash>', 'codehash vault proxy codehash')
38
- .action(async (codehash) => {
39
- const contract = await getVaultHubContract();
40
- await callWriteMethodWithReceipt(contract, 'addVaultProxyCodehash', [
41
- codehash,
42
- ]);
43
- });
44
- // Works fine
45
- vaultHub
46
- .command('v-count')
47
- .description('get connected vaults number')
48
- .action(async () => {
49
- const contract = await getVaultHubContract();
50
- const vaultsCount = await callReadMethod(contract, 'vaultsCount');
51
- console.table({
52
- 'Vaults count': Number(vaultsCount),
53
- });
54
- });
55
- vaultHub
56
- .command('vi')
57
- .description('get vault and vault socket by index')
58
- .argument('<index>', 'index')
59
- .action(async (index) => {
60
- const biIndex = BigInt(index);
61
- const contract = await getVaultHubContract();
62
- try {
63
- const vault = await contract.read.vault([biIndex]);
64
- const vaultSocket = await contract.read.vaultSocket([biIndex]);
65
- console.table({
66
- Vault: vault,
67
- 'Vault Socket': vaultSocket,
68
- });
69
- }
70
- catch (err) {
71
- if (err instanceof Error) {
72
- console.info('Error when getting vault:\n', err.message);
73
- }
74
- }
75
- });
76
- // TODO: check when vault will be connected
77
- vaultHub
78
- .command('va')
79
- .description('get vault socket by address')
80
- .argument('<address>', 'address')
81
- .action(async (address) => {
82
- const contract = await getVaultHubContract();
83
- const vaultSocket = await callReadMethod(contract, 'vaultSocket', [
84
- address,
85
- ]);
86
- console.table({ 'Vault Socket': vaultSocket });
87
- });
88
- // TODO: replace by voting
89
- vaultHub
90
- .command('v-connect')
91
- .description('connects a vault to the hub (vault master role needed)')
92
- .argument('<address>', 'vault address')
93
- .argument('<shareLimit>', 'maximum number of stETH shares that can be minted by the vault')
94
- .argument('<reserveRatio>', 'minimum Reserve ratio in basis points')
95
- .argument('<reserveRatioThreshold>', 'reserve ratio that makes possible to force rebalance on the vault (in basis points)')
96
- .argument('<treasuryFeeBP>', 'treasury fee in basis points')
97
- .action(async (address, shareLimit, reserveRatio, reserveRatioThreshold, treasuryFeeBP) => {
98
- const contract = await getVaultHubContract();
99
- await callWriteMethodWithReceipt(contract, 'connectVault', [
100
- address,
101
- shareLimit,
102
- reserveRatio,
103
- reserveRatioThreshold,
104
- treasuryFeeBP,
105
- ]);
106
- });
107
- vaultHub
108
- .command('v-update-share-limit')
109
- .description('updates share limit for the vault')
110
- .argument('<address>', 'vault address')
111
- .argument('<shareLimit>', 'vault address')
112
- .action(async (address, shareLimit) => {
113
- try {
114
- const contract = await getVaultHubContract();
115
- const tx = await contract.write.updateShareLimit([address, BigInt(shareLimit)], {
116
- account: getAccount(),
117
- chain: getChain(),
118
- });
119
- console.table({ Transaction: tx });
120
- }
121
- catch (err) {
122
- if (err instanceof Error) {
123
- program.error(err.message);
124
- }
125
- }
126
- });
127
- vaultHub
128
- .command('v-disconnect')
129
- .description('force disconnects a vault from the hub')
130
- .argument('<address>', 'vault address')
131
- .action(async (address) => {
132
- try {
133
- const contract = await getVaultHubContract();
134
- const tx = await contract.write.disconnect([address], {
135
- account: getAccount(),
136
- chain: getChain(),
137
- });
138
- console.table({ Transaction: tx });
139
- }
140
- catch (err) {
141
- if (err instanceof Error) {
142
- program.error(err.message);
143
- }
144
- }
145
- });
146
- vaultHub
147
- .command('v-owner-disconnect')
148
- .description("disconnects a vault from the hub, msg.sender should be vault's owner")
149
- .argument('<address>', 'vault address')
150
- .action(async (address) => {
151
- try {
152
- const contract = await getVaultHubContract();
153
- const tx = await contract.write.voluntaryDisconnect([address], {
154
- account: getAccount(),
155
- chain: getChain(),
156
- });
157
- console.table({ Transaction: tx });
158
- }
159
- catch (err) {
160
- if (err instanceof Error) {
161
- program.error(err.message);
162
- }
163
- }
164
- });
165
- vaultHub
166
- .command('v-bbv-mint')
167
- .description(' mint StETH shares backed by vault external balance to the receiver address')
168
- .argument('<address>', 'vault address')
169
- .argument('<recipient>', 'address of the receiver')
170
- .argument('<amountOfShares>', 'amount of stETH shares to mint')
171
- .action(async (address, recipient, amountOfShares) => {
172
- try {
173
- const contract = await getVaultHubContract();
174
- const tx = await contract.write.mintSharesBackedByVault([address, recipient, BigInt(amountOfShares)], {
175
- account: getAccount(),
176
- chain: getChain(),
177
- });
178
- console.table({ Transaction: tx });
179
- }
180
- catch (err) {
181
- if (err instanceof Error) {
182
- program.error(err.message);
183
- }
184
- }
185
- });
186
- vaultHub
187
- .command('v-bbv-burn')
188
- .description('burn steth shares from the balance of the VaultHub contract')
189
- .argument('<address>', 'vault address')
190
- .argument('<amountOfShares>', 'amount of stETH shares to mint')
191
- .action(async (address, amountOfShares) => {
192
- try {
193
- const contract = await getVaultHubContract();
194
- const tx = await contract.write.burnSharesBackedByVault([address, BigInt(amountOfShares)], {
195
- account: getAccount(),
196
- chain: getChain(),
197
- });
198
- console.table({ Transaction: tx });
199
- }
200
- catch (err) {
201
- if (err instanceof Error) {
202
- program.error(err.message);
203
- }
204
- }
205
- });
206
- vaultHub
207
- .command('v-bbv-transfer')
208
- .description('separate burn function for EOA vault owners; requires vaultHub to be approved to transfer stETH')
209
- .argument('<address>', 'vault address')
210
- .argument('<amountOfShares>', 'amount of stETH shares to mint')
211
- .action(async (address, amountOfShares) => {
212
- try {
213
- const contract = await getVaultHubContract();
214
- const tx = await contract.write.transferAndBurnSharesBackedByVault([address, BigInt(amountOfShares)], {
215
- account: getAccount(),
216
- chain: getChain(),
217
- });
218
- console.table({ Transaction: tx });
219
- }
220
- catch (err) {
221
- if (err instanceof Error) {
222
- program.error(err.message);
223
- }
224
- }
225
- });
226
- vaultHub
227
- .command('v-force-rebalance')
228
- .description('force rebalance of the vault to have sufficient reserve ratio')
229
- .argument('<address>', 'vault address')
230
- .action(async (address) => {
231
- try {
232
- const contract = await getVaultHubContract();
233
- const tx = await contract.write.forceRebalance([address], {
234
- account: getAccount(),
235
- chain: getChain(),
236
- });
237
- console.table({
238
- Transaction: tx,
239
- });
240
- }
241
- catch (err) {
242
- if (err instanceof Error) {
243
- program.error(err.message);
244
- }
245
- }
246
- });
247
- vaultHub
248
- .command('v-role-admin')
249
- .description('returns the admin role that controls `role`')
250
- .argument('<role>', 'role')
251
- .action(async (role) => {
252
- try {
253
- const contract = await getVaultHubContract();
254
- const roleAdmin = await contract.read.getRoleAdmin([role]);
255
- console.table({
256
- 'Role admin': roleAdmin,
257
- });
258
- }
259
- catch (err) {
260
- if (err instanceof Error) {
261
- program.error(err.message);
262
- }
263
- }
264
- });
265
- // Works
266
- vaultHub
267
- .command('v-role-member')
268
- .description('returns one of the accounts that have `role`')
269
- .argument('<role>', 'role')
270
- .argument('<index>', 'index')
271
- .action(async (role, index) => {
272
- try {
273
- const contract = await getVaultHubContract();
274
- const roleMember = await contract.read.getRoleMember([role, index]);
275
- console.table({
276
- 'Role member': roleMember,
277
- });
278
- }
279
- catch (err) {
280
- if (err instanceof Error) {
281
- program.error(err.message);
282
- }
283
- }
284
- });
285
- // Works
286
- vaultHub
287
- .command('v-role-member-count')
288
- .description('returns the number of accounts that have `role`')
289
- .argument('<role>', 'role')
290
- .action(async (role) => {
291
- try {
292
- const contract = await getVaultHubContract();
293
- const roleMemberCount = await contract.read.getRoleMemberCount([role]);
294
- console.table({
295
- 'Role member count': roleMemberCount,
296
- });
297
- }
298
- catch (err) {
299
- if (err instanceof Error) {
300
- program.error(err.message);
301
- }
302
- }
303
- });
304
- // Works
305
- vaultHub
306
- .command('v-role-has')
307
- .description('returns `true` if `account` has been granted `role`')
308
- .argument('<role>', 'role')
309
- .argument('<account>', 'account')
310
- .action(async (role, account) => {
311
- try {
312
- const contract = await getVaultHubContract();
313
- const roleHas = await contract.read.hasRole([role, account]);
314
- console.table({
315
- 'Role has': roleHas,
316
- });
317
- }
318
- catch (err) {
319
- if (err instanceof Error) {
320
- program.error(err.message);
321
- }
322
- }
323
- });
324
- //# sourceMappingURL=vault-hub.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vault-hub.js","sourceRoot":"","sources":["../../programs/vault-hub.ts"],"names":[],"mappings":"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"}