@lidofinance/lsv-cli 1.0.0-alpha.6 → 1.0.0-alpha.8

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.
Files changed (96) hide show
  1. package/README.md +217 -1
  2. package/dist/abi/Dashboard.js +1383 -0
  3. package/dist/abi/Dashboard.js.map +1 -0
  4. package/dist/abi/Delegation.js +1658 -0
  5. package/dist/abi/Delegation.js.map +1 -0
  6. package/dist/abi/LidoLocator.js +388 -0
  7. package/dist/abi/LidoLocator.js.map +1 -0
  8. package/dist/abi/StEth.js +496 -0
  9. package/dist/abi/StEth.js.map +1 -0
  10. package/dist/abi/StakingVault.js +786 -0
  11. package/dist/abi/StakingVault.js.map +1 -0
  12. package/dist/abi/TokenManager.js +759 -0
  13. package/dist/abi/TokenManager.js.map +1 -0
  14. package/dist/abi/VaultFactory.js +229 -0
  15. package/dist/abi/VaultFactory.js.map +1 -0
  16. package/dist/abi/VaultHub.js +923 -586
  17. package/dist/abi/VaultHub.js.map +1 -1
  18. package/dist/abi/Voting.js +887 -0
  19. package/dist/abi/Voting.js.map +1 -0
  20. package/dist/abi/index.js +26 -0
  21. package/dist/abi/index.js.map +1 -0
  22. package/dist/command/index.js +16 -0
  23. package/dist/command/index.js.map +1 -1
  24. package/dist/configs/constants.js +6 -0
  25. package/dist/configs/constants.js.map +1 -0
  26. package/dist/configs/deployed.js +118 -24
  27. package/dist/configs/deployed.js.map +1 -1
  28. package/dist/configs/envs.js +24 -16
  29. package/dist/configs/envs.js.map +1 -1
  30. package/dist/configs/index.js +1 -0
  31. package/dist/configs/index.js.map +1 -1
  32. package/dist/configs/utils.js +32 -0
  33. package/dist/configs/utils.js.map +1 -0
  34. package/dist/contracts/dashboard.js +19 -0
  35. package/dist/contracts/dashboard.js.map +1 -0
  36. package/dist/contracts/delegation.js +19 -0
  37. package/dist/contracts/delegation.js.map +1 -0
  38. package/dist/contracts/index.js +8 -0
  39. package/dist/contracts/index.js.map +1 -1
  40. package/dist/contracts/locator.js +20 -0
  41. package/dist/contracts/locator.js.map +1 -0
  42. package/dist/contracts/steth.js +19 -0
  43. package/dist/contracts/steth.js.map +1 -0
  44. package/dist/contracts/token-manager.js +20 -0
  45. package/dist/contracts/token-manager.js.map +1 -0
  46. package/dist/contracts/vault-factory.js +22 -0
  47. package/dist/contracts/vault-factory.js.map +1 -0
  48. package/dist/contracts/vault-hub.js +10 -8
  49. package/dist/contracts/vault-hub.js.map +1 -1
  50. package/dist/contracts/vault.js +18 -0
  51. package/dist/contracts/vault.js.map +1 -0
  52. package/dist/contracts/voting.js +22 -0
  53. package/dist/contracts/voting.js.map +1 -0
  54. package/dist/features/advanced-config.js +21 -0
  55. package/dist/features/advanced-config.js.map +1 -0
  56. package/dist/features/index.js +20 -0
  57. package/dist/features/index.js.map +1 -0
  58. package/dist/features/token-manager.js +6 -0
  59. package/dist/features/token-manager.js.map +1 -0
  60. package/dist/features/vault-factory.js +36 -0
  61. package/dist/features/vault-factory.js.map +1 -0
  62. package/dist/features/voting.js +136 -0
  63. package/dist/features/voting.js.map +1 -0
  64. package/dist/programs/config.js +33 -0
  65. package/dist/programs/config.js.map +1 -0
  66. package/dist/programs/dashboard.js +688 -0
  67. package/dist/programs/dashboard.js.map +1 -0
  68. package/dist/programs/delegation.js +539 -0
  69. package/dist/programs/delegation.js.map +1 -0
  70. package/dist/programs/index.js +5 -0
  71. package/dist/programs/index.js.map +1 -1
  72. package/dist/programs/vault-factory.js +84 -0
  73. package/dist/programs/vault-factory.js.map +1 -0
  74. package/dist/programs/vault-hub.js +331 -116
  75. package/dist/programs/vault-hub.js.map +1 -1
  76. package/dist/programs/vault.js +378 -0
  77. package/dist/programs/vault.js.map +1 -0
  78. package/dist/programs/voting.js +53 -0
  79. package/dist/programs/voting.js.map +1 -0
  80. package/dist/providers/wallet.js +20 -18
  81. package/dist/providers/wallet.js.map +1 -1
  82. package/dist/types/common.js +3 -0
  83. package/dist/types/common.js.map +1 -0
  84. package/dist/types/config.js +3 -0
  85. package/dist/types/config.js.map +1 -0
  86. package/dist/types/index.js +19 -0
  87. package/dist/types/index.js.map +1 -0
  88. package/dist/utils/data-validators.js +51 -0
  89. package/dist/utils/data-validators.js.map +1 -0
  90. package/dist/utils/index.js +3 -0
  91. package/dist/utils/index.js.map +1 -1
  92. package/dist/utils/resolve-path.js +13 -0
  93. package/dist/utils/resolve-path.js.map +1 -0
  94. package/dist/utils/sleep.js +8 -0
  95. package/dist/utils/sleep.js.map +1 -0
  96. package/package.json +7 -10
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const _command_1 = require("../command");
4
+ const _contracts_1 = require("../contracts");
5
+ const _features_1 = require("../features");
6
+ const _utils_1 = require("../utils");
7
+ const vaultFactory = _command_1.program.command("factory").description("vault factory contract");
8
+ vaultFactory
9
+ .command("constants")
10
+ .description("get vault factory constants info")
11
+ .action(async () => {
12
+ const { contract } = (0, _contracts_1.getVaultFactoryContract)();
13
+ try {
14
+ const beaconAddress = await contract.read.BEACON();
15
+ const delegationImplAddress = await contract.read.DELEGATION_IMPL();
16
+ console.table({
17
+ beaconAddress,
18
+ delegationImplAddress,
19
+ });
20
+ }
21
+ catch (err) {
22
+ if (err instanceof Error) {
23
+ console.log('Error when getting constants:\n', err.message);
24
+ }
25
+ }
26
+ });
27
+ vaultFactory
28
+ .command("create-vault")
29
+ .description("create vault contract")
30
+ .option("-a, --admin <defaultAdmin>", "default admin address")
31
+ .option("-f, --funder <funder>", "funder role address")
32
+ .option("-w, --withdrawer <withdrawer>", "withdrawer role address")
33
+ .option("-m, --mint <minter>", "minter role address")
34
+ .option("-b, --burn <burner>", "burner role address")
35
+ .option("-r, --rebalancer <rebalancer>", "rebalancer role address")
36
+ .option("-p, --pauser <depositPauser>", "depositPauser role address")
37
+ .option("-d, --resumer <depositResumer>", "depositResumer role address")
38
+ .option("-e, --exiter <exitRequester>", "exitRequester role address")
39
+ .option("-u, --disconnecter <disconnecter>", "disconnecter role address")
40
+ .option("-c, --curator <curator>", "curator address")
41
+ .option("-n, --no-manager <nodeOperatorManager>", "node operator manager address")
42
+ .option("-o, --no-fee-claimer <nodeOperatorFeeClaimer>", "node operator fee claimer address")
43
+ .argument("<quantity>", "quantity of vaults to create, default 1")
44
+ .argument("<curatorFeeBP>", "Vault curator fee, for e.g. 100 == 1%")
45
+ .argument("<nodeOperatorFeeBP>", "Node operator fee, for e.g. 100 == 1%")
46
+ .action(async (curatorFeeBP, nodeOperatorFeeBP, quantity = '1', options) => {
47
+ let curatorFee = parseInt(curatorFeeBP);
48
+ let nodeOperatorFee = parseInt(nodeOperatorFeeBP);
49
+ const qnt = parseInt(quantity);
50
+ if (isNaN(curatorFee) || curatorFee < 0) {
51
+ _command_1.program.error("curator fee must be a positive number", { exitCode: 1 });
52
+ }
53
+ if (isNaN(nodeOperatorFee) || nodeOperatorFee < 0) {
54
+ _command_1.program.error("operator fee must be a positive number", { exitCode: 1 });
55
+ }
56
+ if (isNaN(qnt)) {
57
+ _command_1.program.error("quantity must be a number", { exitCode: 1 });
58
+ }
59
+ const errorsList = (0, _utils_1.validateAddressMap)(options);
60
+ if (errorsList.length > 0) {
61
+ errorsList.forEach((error) => _command_1.program.error(error));
62
+ return;
63
+ }
64
+ const list = Array.from(Array(qnt));
65
+ const payload = {
66
+ ...options,
67
+ curatorFeeBP: curatorFee,
68
+ nodeOperatorFeeBP: nodeOperatorFee,
69
+ };
70
+ const transactions = [];
71
+ try {
72
+ for (const _ of list) {
73
+ const tx = await (0, _features_1.createVault)(payload);
74
+ transactions.push(tx);
75
+ }
76
+ console.table(transactions);
77
+ }
78
+ catch (err) {
79
+ if (err instanceof Error) {
80
+ console.log('Create vault error:\n', err.message);
81
+ }
82
+ }
83
+ });
84
+ //# sourceMappingURL=vault-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-factory.js","sourceRoot":"","sources":["../../programs/vault-factory.ts"],"names":[],"mappings":"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"}
@@ -3,135 +3,350 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const _command_1 = require("../command");
4
4
  const _contracts_1 = require("../contracts");
5
5
  const _providers_1 = require("../providers");
6
- const vaultHub = _command_1.program.command("vh").description("vault hub contract");
6
+ const _configs_1 = require("../configs");
7
+ const vaultHub = _command_1.program.command("hub").description("vault hub contract");
8
+ // Works fine
7
9
  vaultHub
8
10
  .command("constants")
9
11
  .description("get vault hub constants")
10
- .option("-c, --chainId <chainId>", "chainId")
11
- .action(async ({ chainId }) => {
12
- const contract = (0, _contracts_1.getVaultHubContract)(chainId);
13
- const VAULT_MASTER_ROLE = await contract.read.VAULT_MASTER_ROLE();
14
- const DEFAULT_ADMIN_ROLE = await contract.read.DEFAULT_ADMIN_ROLE();
15
- const STETH = await contract.read.STETH();
16
- console.table({
17
- VAULT_MASTER_ROLE,
18
- DEFAULT_ADMIN_ROLE,
19
- STETH,
20
- });
12
+ .action(async () => {
13
+ const contract = await (0, _contracts_1.getVaultHubContract)();
14
+ try {
15
+ const VAULT_MASTER_ROLE = await contract.read.VAULT_MASTER_ROLE();
16
+ const VAULT_REGISTRY_ROLE = await contract.read.VAULT_REGISTRY_ROLE();
17
+ const STETH = await contract.read.STETH();
18
+ const DEFAULT_ADMIN_ROLE = await contract.read.DEFAULT_ADMIN_ROLE();
19
+ const CONTRACT_ADDRESS = contract.address;
20
+ const payload = {
21
+ VAULT_MASTER_ROLE,
22
+ DEFAULT_ADMIN_ROLE,
23
+ VAULT_REGISTRY_ROLE,
24
+ STETH,
25
+ CONTRACT_ADDRESS,
26
+ };
27
+ console.table(Object.entries(payload));
28
+ }
29
+ catch (err) {
30
+ if (err instanceof Error) {
31
+ console.log('Error when getting info:\n', err.message);
32
+ }
33
+ }
21
34
  });
35
+ vaultHub
36
+ .command("add-codehash")
37
+ .description("add vault proxy codehash to allowed list")
38
+ .argument("<codehash>", "codehash vault proxy codehash")
39
+ .action(async (codehash) => {
40
+ const contract = await (0, _contracts_1.getVaultHubContract)();
41
+ try {
42
+ const tx = contract.write.addVaultProxyCodehash([codehash], {
43
+ account: (0, _providers_1.getAccount)(),
44
+ chain: (0, _configs_1.getChain)(),
45
+ });
46
+ console.table({ Transaction: tx });
47
+ }
48
+ catch (err) {
49
+ if (err instanceof Error) {
50
+ console.log('Error while adding codehash:\n', err.message);
51
+ }
52
+ }
53
+ });
54
+ // Works fine
22
55
  vaultHub
23
56
  .command("v-count")
24
- .description("get vaults count")
25
- .option("-c, --chainId <chainId>", "chainId")
26
- .action(async ({ chainId }) => {
27
- const contract = (0, _contracts_1.getVaultHubContract)(chainId);
28
- const vaultsCount = await contract.read.vaultsCount();
29
- console.log("Vaults count:", Number(vaultsCount));
57
+ .description("get connected vaults number")
58
+ .action(async () => {
59
+ const contract = await (0, _contracts_1.getVaultHubContract)();
60
+ try {
61
+ const vaultsCount = await contract.read.vaultsCount();
62
+ console.table({
63
+ "Vaults count": Number(vaultsCount),
64
+ });
65
+ }
66
+ catch (err) {
67
+ if (err instanceof Error) {
68
+ console.log('Error when getting vaults count:\n', err.message);
69
+ }
70
+ }
30
71
  });
31
72
  vaultHub
32
- .command("v")
33
- .description("get vault")
34
- .option("-c, --chainId <chainId>", "chainId")
73
+ .command("vi")
74
+ .description("get vault and vault socket by index")
35
75
  .argument("<index>", "index")
36
- .action(async (index, { chainId }) => {
37
- const contract = (0, _contracts_1.getVaultHubContract)(chainId);
38
- const vault = await contract.read.vault(index);
39
- const vaultSocket = await contract.read.vaultSocket(index);
40
- console.table({
41
- vault,
42
- vaultSocket,
43
- });
44
- });
45
- vaultHub
46
- .command("rr-index")
47
- .description("get reserve ratio by index")
48
- .option("-c, --chainId <chainId>", "chainId")
49
- .argument("<index>", "index")
50
- .action(async (index, { chainId }) => {
51
- const contract = (0, _contracts_1.getVaultHubContract)(chainId);
52
- const vault = await contract.read.vault(index);
53
- const reserveRatio = await contract.read.reserveRatio([vault]);
54
- console.log("Reserve ratio:", Number(reserveRatio));
76
+ .action(async (index) => {
77
+ const biIndex = BigInt(index);
78
+ const contract = await (0, _contracts_1.getVaultHubContract)();
79
+ try {
80
+ const vault = await contract.read.vault([biIndex]);
81
+ const vaultSocket = await contract.read.vaultSocket([biIndex]);
82
+ console.table({
83
+ Vault: vault,
84
+ "Vault Socket": vaultSocket,
85
+ });
86
+ }
87
+ catch (err) {
88
+ if (err instanceof Error) {
89
+ console.log('Error when getting vault:\n', err.message);
90
+ }
91
+ }
55
92
  });
93
+ // TODO: check when vault will be connected
56
94
  vaultHub
57
- .command("rr-vault")
58
- .description("get reserve ratio by vault")
59
- .option("-c, --chainId <chainId>", "chainId")
60
- .argument("<vault>", "vault")
61
- .action(async (vault, { chainId }) => {
62
- const contract = (0, _contracts_1.getVaultHubContract)(chainId);
63
- const reserveRatio = await contract.read.reserveRatio([vault]);
64
- console.log("Reserve ratio:", Number(reserveRatio));
95
+ .command("va")
96
+ .description("get vault socket by address")
97
+ .argument("<address>", "address")
98
+ .action(async (address) => {
99
+ const contract = await (0, _contracts_1.getVaultHubContract)();
100
+ try {
101
+ const vaultSocket = await contract.read.vaultSocket([address]);
102
+ console.table({ "Vault Socket": vaultSocket });
103
+ }
104
+ catch (err) {
105
+ if (err instanceof Error) {
106
+ console.log('Error when getting vault:\n', err.message);
107
+ }
108
+ }
65
109
  });
110
+ // TODO: replace by voting
66
111
  vaultHub
67
112
  .command("v-connect")
68
- .description("connect vault")
69
- .option("-c, --chainId <chainId>", "chainId")
70
- .argument("<vault>", "vault")
71
- .argument("<capShares>", "cap shares")
72
- .argument("<minReserveRatioBP>", "min reserve ratio bp")
73
- .argument("<treasuryFeeBP>", "treasury fee bp")
74
- .action(async (vault, capShares, minReserveRatioBP, treasuryFeeBP, { chainId }) => {
75
- const contract = (0, _contracts_1.getVaultHubContract)(chainId);
76
- const tx = await contract.write.connectVault([vault, capShares, minReserveRatioBP, treasuryFeeBP], {
77
- account: (0, _providers_1.getAccount)(chainId),
78
- chain: chainId,
79
- });
80
- console.log("Transaction:", tx);
81
- });
82
- vaultHub
83
- .command("v-mint-steth") // Define the 'v-mint-steth' command
84
- .description("mint StETH tokens backed by vault external balance to the receiver address") // Description of the command
85
- .option("-c, --chainId <chainId>", "chainId") // Argument: chain ID
86
- .argument("<receiver>", "receiver") // Argument: receiver address
87
- .argument("<amount>", "amount") // Argument: amount to mint
88
- .action(async (receiver, amount, { chainId }) => {
89
- // Get the VaultHub contract instance for the specified chain ID
90
- const contract = (0, _contracts_1.getVaultHubContract)(chainId);
91
- // Execute the mintStethBackedByVault transaction with receiver and amount
92
- const tx = await contract.write.mintStethBackedByVault([receiver, amount], {
93
- account: (0, _providers_1.getAccount)(chainId),
94
- chain: chainId,
95
- });
96
- // Log the transaction details to the console
97
- console.log("Transaction:", tx);
98
- });
99
- vaultHub
100
- .command("v-burn-steth")
101
- .description("burn steth from the balance of the vault contract")
102
- .option("-c, --chainId <chainId>", "chainId")
103
- .argument("<amount>", "amount")
104
- .action(async (amount, { chainId }) => {
105
- const contract = (0, _contracts_1.getVaultHubContract)(chainId);
106
- const tx = await contract.write.burnStethBackedByVault([amount], {
107
- account: (0, _providers_1.getAccount)(chainId),
108
- chain: chainId,
109
- });
110
- console.log("Transaction:", tx);
111
- });
112
- vaultHub
113
- .command("v-force-balance")
114
- .description("force rebalance of the vault")
115
- .option("-c, --chainId <chainId>", "chainId")
116
- .argument("<vault>", "vault")
117
- .action(async (vault, { chainId }) => {
118
- const contract = (0, _contracts_1.getVaultHubContract)(chainId);
119
- const tx = await contract.write.forceRebalance([vault], {
120
- account: (0, _providers_1.getAccount)(chainId),
121
- chain: chainId,
122
- });
123
- console.log("Transaction:", tx);
124
- });
125
- vaultHub
126
- .command("v-rebalance")
127
- .description("rebalances the vault, by writing off the amount equal to passed ether from the vault's minted stETH counter")
128
- .option("-c, --chainId <chainId>", "chainId")
129
- .action(async ({ chainId }) => {
130
- const contract = (0, _contracts_1.getVaultHubContract)(chainId);
131
- const tx = await contract.write.rebalance({
132
- account: (0, _providers_1.getAccount)(chainId),
133
- chain: chainId,
134
- });
135
- console.log("Transaction:", tx);
113
+ .description("connects a vault to the hub (vault master role needed)")
114
+ .argument("<address>", "vault address")
115
+ .argument("<shareLimit>", "maximum number of stETH shares that can be minted by the vault")
116
+ .argument("<reserveRatio>", "minimum Reserve ratio in basis points")
117
+ .argument("<reserveRatioThreshold>", "reserve ratio that makes possible to force rebalance on the vault (in basis points)")
118
+ .argument("<treasuryFeeBP>", "treasury fee in basis points")
119
+ .action(async (address, shareLimit, reserveRatio, reserveRatioThreshold, treasuryFeeBP) => {
120
+ try {
121
+ const contract = await (0, _contracts_1.getVaultHubContract)();
122
+ const account = (0, _providers_1.getAccount)();
123
+ const tx = await contract.write.connectVault([address, shareLimit, reserveRatio, reserveRatioThreshold, treasuryFeeBP], {
124
+ account,
125
+ chain: (0, _configs_1.getChain)(),
126
+ });
127
+ console.table({ Transaction: tx });
128
+ }
129
+ catch (err) {
130
+ if (err instanceof Error) {
131
+ _command_1.program.error(err.message);
132
+ }
133
+ }
134
+ });
135
+ vaultHub
136
+ .command("v-update-share-limit")
137
+ .description("updates share limit for the vault")
138
+ .argument("<address>", "vault address")
139
+ .argument("<shareLimit>", "vault address")
140
+ .action(async (address, shareLimit) => {
141
+ try {
142
+ const contract = await (0, _contracts_1.getVaultHubContract)();
143
+ const tx = await contract.write.updateShareLimit([address, BigInt(shareLimit)], {
144
+ account: (0, _providers_1.getAccount)(),
145
+ chain: (0, _configs_1.getChain)(),
146
+ });
147
+ console.table({ Transaction: tx });
148
+ }
149
+ catch (err) {
150
+ if (err instanceof Error) {
151
+ _command_1.program.error(err.message);
152
+ }
153
+ }
154
+ });
155
+ vaultHub
156
+ .command("v-disconnect")
157
+ .description("force disconnects a vault from the hub")
158
+ .argument("<address>", "vault address")
159
+ .action(async (address) => {
160
+ try {
161
+ const contract = await (0, _contracts_1.getVaultHubContract)();
162
+ const tx = await contract.write.disconnect([address], {
163
+ account: (0, _providers_1.getAccount)(),
164
+ chain: (0, _configs_1.getChain)(),
165
+ });
166
+ console.table({ Transaction: tx });
167
+ }
168
+ catch (err) {
169
+ if (err instanceof Error) {
170
+ _command_1.program.error(err.message);
171
+ }
172
+ }
173
+ });
174
+ vaultHub
175
+ .command("v-owner-disconnect")
176
+ .description("disconnects a vault from the hub, msg.sender should be vault's owner")
177
+ .argument("<address>", "vault address")
178
+ .action(async (address) => {
179
+ try {
180
+ const contract = await (0, _contracts_1.getVaultHubContract)();
181
+ const tx = await contract.write.voluntaryDisconnect([address], {
182
+ account: (0, _providers_1.getAccount)(),
183
+ chain: (0, _configs_1.getChain)(),
184
+ });
185
+ console.table({ Transaction: tx });
186
+ }
187
+ catch (err) {
188
+ if (err instanceof Error) {
189
+ _command_1.program.error(err.message);
190
+ }
191
+ }
192
+ });
193
+ vaultHub
194
+ .command("v-bbv-mint")
195
+ .description(" mint StETH shares backed by vault external balance to the receiver address")
196
+ .argument("<address>", "vault address")
197
+ .argument("<recipient>", "address of the receiver")
198
+ .argument("<amountOfShares>", "amount of stETH shares to mint")
199
+ .action(async (address, recipient, amountOfShares) => {
200
+ try {
201
+ const contract = await (0, _contracts_1.getVaultHubContract)();
202
+ const tx = await contract.write.mintSharesBackedByVault([address, recipient, BigInt(amountOfShares)], {
203
+ account: (0, _providers_1.getAccount)(),
204
+ chain: (0, _configs_1.getChain)(),
205
+ });
206
+ console.table({ Transaction: tx });
207
+ }
208
+ catch (err) {
209
+ if (err instanceof Error) {
210
+ _command_1.program.error(err.message);
211
+ }
212
+ }
213
+ });
214
+ vaultHub
215
+ .command("v-bbv-burn")
216
+ .description("burn steth shares from the balance of the VaultHub contract")
217
+ .argument("<address>", "vault address")
218
+ .argument("<amountOfShares>", "amount of stETH shares to mint")
219
+ .action(async (address, amountOfShares) => {
220
+ try {
221
+ const contract = await (0, _contracts_1.getVaultHubContract)();
222
+ const tx = await contract.write.burnSharesBackedByVault([address, BigInt(amountOfShares)], {
223
+ account: (0, _providers_1.getAccount)(),
224
+ chain: (0, _configs_1.getChain)(),
225
+ });
226
+ console.table({ Transaction: tx });
227
+ }
228
+ catch (err) {
229
+ if (err instanceof Error) {
230
+ _command_1.program.error(err.message);
231
+ }
232
+ }
233
+ });
234
+ vaultHub
235
+ .command("v-bbv-transfer")
236
+ .description("separate burn function for EOA vault owners; requires vaultHub to be approved to transfer stETH")
237
+ .argument("<address>", "vault address")
238
+ .argument("<amountOfShares>", "amount of stETH shares to mint")
239
+ .action(async (address, amountOfShares) => {
240
+ try {
241
+ const contract = await (0, _contracts_1.getVaultHubContract)();
242
+ const tx = await contract.write.transferAndBurnSharesBackedByVault([address, BigInt(amountOfShares)], {
243
+ account: (0, _providers_1.getAccount)(),
244
+ chain: (0, _configs_1.getChain)(),
245
+ });
246
+ console.table({ Transaction: tx });
247
+ }
248
+ catch (err) {
249
+ if (err instanceof Error) {
250
+ _command_1.program.error(err.message);
251
+ }
252
+ }
253
+ });
254
+ vaultHub
255
+ .command("v-force-rebalance")
256
+ .description("force rebalance of the vault to have sufficient reserve ratio")
257
+ .argument("<address>", "vault address")
258
+ .action(async (address) => {
259
+ try {
260
+ const contract = await (0, _contracts_1.getVaultHubContract)();
261
+ const tx = await contract.write.forceRebalance([address], {
262
+ account: (0, _providers_1.getAccount)(),
263
+ chain: (0, _configs_1.getChain)(),
264
+ });
265
+ console.table({
266
+ Transaction: tx,
267
+ });
268
+ }
269
+ catch (err) {
270
+ if (err instanceof Error) {
271
+ _command_1.program.error(err.message);
272
+ }
273
+ }
274
+ });
275
+ vaultHub
276
+ .command("v-role-admin")
277
+ .description("returns the admin role that controls `role`")
278
+ .argument("<role>", "role")
279
+ .action(async (role) => {
280
+ try {
281
+ const contract = await (0, _contracts_1.getVaultHubContract)();
282
+ const roleAdmin = await contract.read.getRoleAdmin([role]);
283
+ console.table({
284
+ "Role admin": roleAdmin,
285
+ });
286
+ }
287
+ catch (err) {
288
+ if (err instanceof Error) {
289
+ _command_1.program.error(err.message);
290
+ }
291
+ }
292
+ });
293
+ // Works
294
+ vaultHub
295
+ .command("v-role-member")
296
+ .description("returns one of the accounts that have `role`")
297
+ .argument("<role>", "role")
298
+ .argument("<index>", "index")
299
+ .action(async (role, index) => {
300
+ try {
301
+ const contract = await (0, _contracts_1.getVaultHubContract)();
302
+ const roleMember = await contract.read.getRoleMember([role, index]);
303
+ console.table({
304
+ "Role member": roleMember,
305
+ });
306
+ }
307
+ catch (err) {
308
+ if (err instanceof Error) {
309
+ _command_1.program.error(err.message);
310
+ }
311
+ }
312
+ });
313
+ // Works
314
+ vaultHub
315
+ .command("v-role-member-count")
316
+ .description("returns the number of accounts that have `role`")
317
+ .argument("<role>", "role")
318
+ .action(async (role) => {
319
+ try {
320
+ const contract = await (0, _contracts_1.getVaultHubContract)();
321
+ const roleMemberCount = await contract.read.getRoleMemberCount([role]);
322
+ console.table({
323
+ "Role member count": roleMemberCount,
324
+ });
325
+ }
326
+ catch (err) {
327
+ if (err instanceof Error) {
328
+ _command_1.program.error(err.message);
329
+ }
330
+ }
331
+ });
332
+ // Works
333
+ vaultHub
334
+ .command("v-role-has")
335
+ .description("returns `true` if `account` has been granted `role`")
336
+ .argument("<role>", "role")
337
+ .argument("<account>", "account")
338
+ .action(async (role, account) => {
339
+ try {
340
+ const contract = await (0, _contracts_1.getVaultHubContract)();
341
+ const roleHas = await contract.read.hasRole([role, account]);
342
+ console.table({
343
+ "Role has": roleHas,
344
+ });
345
+ }
346
+ catch (err) {
347
+ if (err instanceof Error) {
348
+ _command_1.program.error(err.message);
349
+ }
350
+ }
136
351
  });
137
352
  //# sourceMappingURL=vault-hub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vault-hub.js","sourceRoot":"","sources":["../../programs/vault-hub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault-hub.js","sourceRoot":"","sources":["../../programs/vault-hub.ts"],"names":[],"mappings":"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"}