@lidofinance/lsv-cli 1.0.0-alpha.2 → 1.0.0-alpha.20

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 (211) hide show
  1. package/README.md +542 -1
  2. package/dist/abi/CLProofVerifier.js +279 -0
  3. package/dist/abi/CLProofVerifier.js.map +1 -0
  4. package/dist/abi/Dashboard.js +1498 -0
  5. package/dist/abi/Dashboard.js.map +1 -0
  6. package/dist/abi/Delegation.js +1786 -0
  7. package/dist/abi/Delegation.js.map +1 -0
  8. package/dist/abi/LidoLocator.js +426 -0
  9. package/dist/abi/LidoLocator.js.map +1 -0
  10. package/dist/abi/PredepositGuarantee.js +1733 -0
  11. package/dist/abi/PredepositGuarantee.js.map +1 -0
  12. package/dist/abi/StEth.js +493 -0
  13. package/dist/abi/StEth.js.map +1 -0
  14. package/dist/abi/StakingVault.js +978 -0
  15. package/dist/abi/StakingVault.js.map +1 -0
  16. package/dist/abi/TokenManager.js +756 -0
  17. package/dist/abi/TokenManager.js.map +1 -0
  18. package/dist/abi/VaultFactory.js +246 -0
  19. package/dist/abi/VaultFactory.js.map +1 -0
  20. package/dist/abi/VaultHub.js +1138 -439
  21. package/dist/abi/VaultHub.js.map +1 -1
  22. package/dist/abi/VaultHubViewer.js +297 -0
  23. package/dist/abi/VaultHubViewer.js.map +1 -0
  24. package/dist/abi/Voting.js +884 -0
  25. package/dist/abi/Voting.js.map +1 -0
  26. package/dist/abi/index.js +13 -0
  27. package/dist/abi/index.js.map +1 -0
  28. package/dist/command/index.js +4 -5
  29. package/dist/command/index.js.map +1 -1
  30. package/dist/configs/constants.js +3 -0
  31. package/dist/configs/constants.js.map +1 -0
  32. package/dist/configs/deployed.js +114 -53
  33. package/dist/configs/deployed.js.map +1 -1
  34. package/dist/configs/envs.js +10 -28
  35. package/dist/configs/envs.js.map +1 -1
  36. package/dist/configs/index.js +3 -18
  37. package/dist/configs/index.js.map +1 -1
  38. package/dist/configs/utils.js +26 -0
  39. package/dist/configs/utils.js.map +1 -0
  40. package/dist/contracts/clProofVerifier.js +29 -0
  41. package/dist/contracts/clProofVerifier.js.map +1 -0
  42. package/dist/contracts/dashboard.js +11 -0
  43. package/dist/contracts/dashboard.js.map +1 -0
  44. package/dist/contracts/delegation.js +11 -0
  45. package/dist/contracts/delegation.js.map +1 -0
  46. package/dist/contracts/index.js +12 -17
  47. package/dist/contracts/index.js.map +1 -1
  48. package/dist/contracts/locator.js +16 -0
  49. package/dist/contracts/locator.js.map +1 -0
  50. package/dist/contracts/pdg.js +17 -0
  51. package/dist/contracts/pdg.js.map +1 -0
  52. package/dist/contracts/steth.js +15 -0
  53. package/dist/contracts/steth.js.map +1 -0
  54. package/dist/contracts/token-manager.js +16 -0
  55. package/dist/contracts/token-manager.js.map +1 -0
  56. package/dist/contracts/vault-factory.js +14 -0
  57. package/dist/contracts/vault-factory.js.map +1 -0
  58. package/dist/contracts/vault-hub-viewer.js +14 -0
  59. package/dist/contracts/vault-hub-viewer.js.map +1 -0
  60. package/dist/contracts/vault-hub.js +14 -17
  61. package/dist/contracts/vault-hub.js.map +1 -1
  62. package/dist/contracts/vault.js +14 -0
  63. package/dist/contracts/vault.js.map +1 -0
  64. package/dist/contracts/voting.js +18 -0
  65. package/dist/contracts/voting.js.map +1 -0
  66. package/dist/features/advanced-config.js +16 -0
  67. package/dist/features/advanced-config.js.map +1 -0
  68. package/dist/features/dashboard-delegation.js +25 -0
  69. package/dist/features/dashboard-delegation.js.map +1 -0
  70. package/dist/features/index.js +5 -0
  71. package/dist/features/index.js.map +1 -0
  72. package/dist/features/token-manager.js +7 -0
  73. package/dist/features/token-manager.js.map +1 -0
  74. package/dist/features/vault-factory.js +25 -0
  75. package/dist/features/vault-factory.js.map +1 -0
  76. package/dist/features/voting.js +125 -0
  77. package/dist/features/voting.js.map +1 -0
  78. package/dist/index.js +6 -5
  79. package/dist/index.js.map +1 -1
  80. package/dist/programs/account.js +29 -0
  81. package/dist/programs/account.js.map +1 -0
  82. package/dist/programs/config.js +31 -0
  83. package/dist/programs/config.js.map +1 -0
  84. package/dist/programs/dashboard/config.js +65 -0
  85. package/dist/programs/dashboard/config.js.map +1 -0
  86. package/dist/programs/dashboard/index.js +4 -0
  87. package/dist/programs/dashboard/index.js.map +1 -0
  88. package/dist/programs/dashboard/main.js +12 -0
  89. package/dist/programs/dashboard/main.js.map +1 -0
  90. package/dist/programs/dashboard/read.js +25 -0
  91. package/dist/programs/dashboard/read.js.map +1 -0
  92. package/dist/programs/dashboard/write.js +302 -0
  93. package/dist/programs/dashboard/write.js.map +1 -0
  94. package/dist/programs/delegation/config.js +33 -0
  95. package/dist/programs/delegation/config.js.map +1 -0
  96. package/dist/programs/delegation/index.js +4 -0
  97. package/dist/programs/delegation/index.js.map +1 -0
  98. package/dist/programs/delegation/main.js +12 -0
  99. package/dist/programs/delegation/main.js.map +1 -0
  100. package/dist/programs/delegation/read.js +98 -0
  101. package/dist/programs/delegation/read.js.map +1 -0
  102. package/dist/programs/delegation/write.js +327 -0
  103. package/dist/programs/delegation/write.js.map +1 -0
  104. package/dist/programs/hub/config.js +127 -0
  105. package/dist/programs/hub/config.js.map +1 -0
  106. package/dist/programs/hub/index.js +4 -0
  107. package/dist/programs/hub/index.js.map +1 -0
  108. package/dist/programs/hub/main.js +12 -0
  109. package/dist/programs/hub/main.js.map +1 -0
  110. package/dist/programs/hub/read.js +62 -0
  111. package/dist/programs/hub/read.js.map +1 -0
  112. package/dist/programs/hub/write.js +109 -0
  113. package/dist/programs/hub/write.js.map +1 -0
  114. package/dist/programs/index.js +10 -17
  115. package/dist/programs/index.js.map +1 -1
  116. package/dist/programs/pdg/config.js +97 -0
  117. package/dist/programs/pdg/config.js.map +1 -0
  118. package/dist/programs/pdg/index.js +4 -0
  119. package/dist/programs/pdg/index.js.map +1 -0
  120. package/dist/programs/pdg/main.js +12 -0
  121. package/dist/programs/pdg/main.js.map +1 -0
  122. package/dist/programs/pdg/read.js +7 -0
  123. package/dist/programs/pdg/read.js.map +1 -0
  124. package/dist/programs/pdg/write.js +114 -0
  125. package/dist/programs/pdg/write.js.map +1 -0
  126. package/dist/programs/pdg-helpers.js +73 -0
  127. package/dist/programs/pdg-helpers.js.map +1 -0
  128. package/dist/programs/vault/config.js +66 -0
  129. package/dist/programs/vault/config.js.map +1 -0
  130. package/dist/programs/vault/index.js +4 -0
  131. package/dist/programs/vault/index.js.map +1 -0
  132. package/dist/programs/vault/main.js +10 -0
  133. package/dist/programs/vault/main.js.map +1 -0
  134. package/dist/programs/vault/read.js +53 -0
  135. package/dist/programs/vault/read.js.map +1 -0
  136. package/dist/programs/vault/write.js +123 -0
  137. package/dist/programs/vault/write.js.map +1 -0
  138. package/dist/programs/vault-factory/config.js +2 -0
  139. package/dist/programs/vault-factory/config.js.map +1 -0
  140. package/dist/programs/vault-factory/index.js +4 -0
  141. package/dist/programs/vault-factory/index.js.map +1 -0
  142. package/dist/programs/vault-factory/main.js +12 -0
  143. package/dist/programs/vault-factory/main.js.map +1 -0
  144. package/dist/programs/vault-factory/read.js +26 -0
  145. package/dist/programs/vault-factory/read.js.map +1 -0
  146. package/dist/programs/vault-factory/write.js +110 -0
  147. package/dist/programs/vault-factory/write.js.map +1 -0
  148. package/dist/programs/vault-hub-viewer.js +52 -0
  149. package/dist/programs/vault-hub-viewer.js.map +1 -0
  150. package/dist/programs/voting.js +33 -0
  151. package/dist/programs/voting.js.map +1 -0
  152. package/dist/providers/index.js +1 -17
  153. package/dist/providers/index.js.map +1 -1
  154. package/dist/providers/wallet.js +20 -32
  155. package/dist/providers/wallet.js.map +1 -1
  156. package/dist/types/common.js +2 -0
  157. package/dist/types/common.js.map +1 -0
  158. package/dist/types/config.js +2 -0
  159. package/dist/types/config.js.map +1 -0
  160. package/dist/types/index.js +3 -0
  161. package/dist/types/index.js.map +1 -0
  162. package/dist/utils/contract.js +98 -0
  163. package/dist/utils/contract.js.map +1 -0
  164. package/dist/utils/data-validators.js +69 -0
  165. package/dist/utils/data-validators.js.map +1 -0
  166. package/dist/utils/error-handler.js +7 -0
  167. package/dist/utils/error-handler.js.map +1 -0
  168. package/dist/utils/get-commands.js +11 -0
  169. package/dist/utils/get-commands.js.map +1 -0
  170. package/dist/utils/get-value.js +5 -11
  171. package/dist/utils/get-value.js.map +1 -1
  172. package/dist/utils/index.js +12 -17
  173. package/dist/utils/index.js.map +1 -1
  174. package/dist/utils/parse-string.js +20 -0
  175. package/dist/utils/parse-string.js.map +1 -0
  176. package/dist/utils/prompts/default.js +17 -0
  177. package/dist/utils/prompts/default.js.map +1 -0
  178. package/dist/utils/prompts/delegation-dashboard.js +29 -0
  179. package/dist/utils/prompts/delegation-dashboard.js.map +1 -0
  180. package/dist/utils/prompts/index.js +5 -0
  181. package/dist/utils/prompts/index.js.map +1 -0
  182. package/dist/utils/prompts/predeposit-guarantee.js +25 -0
  183. package/dist/utils/prompts/predeposit-guarantee.js.map +1 -0
  184. package/dist/utils/prompts/vault.js +11 -0
  185. package/dist/utils/prompts/vault.js.map +1 -0
  186. package/dist/utils/proof/create-proof.js +62 -0
  187. package/dist/utils/proof/create-proof.js.map +1 -0
  188. package/dist/utils/proof/first-validator-gindex.js +26 -0
  189. package/dist/utils/proof/first-validator-gindex.js.map +1 -0
  190. package/dist/utils/proof/index.js +4 -0
  191. package/dist/utils/proof/index.js.map +1 -0
  192. package/dist/utils/proof/merkle-utils.js +131 -0
  193. package/dist/utils/proof/merkle-utils.js.map +1 -0
  194. package/dist/utils/proof/proofs.js +52 -0
  195. package/dist/utils/proof/proofs.js.map +1 -0
  196. package/dist/utils/read-programs-by-abi.js +87 -0
  197. package/dist/utils/read-programs-by-abi.js.map +1 -0
  198. package/dist/utils/resolve-path.js +10 -0
  199. package/dist/utils/resolve-path.js.map +1 -0
  200. package/dist/utils/sleep.js +4 -0
  201. package/dist/utils/sleep.js.map +1 -0
  202. package/dist/utils/spinner/index.js +2 -0
  203. package/dist/utils/spinner/index.js.map +1 -0
  204. package/dist/utils/spinner/spinners.js +16 -0
  205. package/dist/utils/spinner/spinners.js.map +1 -0
  206. package/dist/utils/spinner/spinners.json +119 -0
  207. package/dist/version/index.js +1 -0
  208. package/dist/version/index.js.map +1 -0
  209. package/package.json +52 -7
  210. package/dist/programs/vault-hub.js +0 -137
  211. package/dist/programs/vault-hub.js.map +0 -1
package/README.md CHANGED
@@ -1 +1,542 @@
1
- # liquid-staking-vault-cli
1
+ # Lido Staking Vault CLI
2
+
3
+ A command-line interface (CLI) tool for managing lido staking vaults. Simplify your staking operations with intuitive commands and streamlined workflows.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Features](#features)
8
+ - [Prerequisites](#prerequisites)
9
+ - [Installation](#installation)
10
+ - [Configuration](#configuration)
11
+ - [Usage](#usage)
12
+ - [Examples](#examples)
13
+ - [Programs](#programs)
14
+ - [License](#license)
15
+
16
+ ## Features
17
+
18
+ - **Easy Setup**: Quick installation and configuration to get you started.
19
+ - **Vault Management**: Create, update, and delete staking vaults with simple commands.
20
+ - **Monitoring**: Track vault metrics.
21
+
22
+ ## Prerequisites
23
+
24
+ - **Node.js**: Ensure you have Node.js (v20 or later) installed.
25
+ - **npm**: Node Package Manager is required to install dependencies.
26
+
27
+ ## Installation
28
+
29
+ Install the Lido Staking Vault CLI globally using npm:
30
+
31
+ ```bash
32
+ npm install -g @lidofinance/lsv-cli
33
+ ```
34
+
35
+ Alternatively, you can install it locally in your project:
36
+
37
+ ```bash
38
+ npm install @lidofinance/lsv-cli
39
+ ```
40
+
41
+ ## Configuration
42
+
43
+ Before using the CLI, configure your environment variables. You can set them in a `.env` file in your project root.
44
+
45
+ ```.env
46
+ RPC_URL_17000=
47
+ RPC_URL_1=
48
+
49
+ # Contract addresses
50
+ DEPLOYED=deployed-holesky-vaults-devnet-0.json
51
+ CONFIG=./config.json
52
+
53
+ # Wallet
54
+ PRIVATE_KEY_1=0x...
55
+ PRIVATE_KEY_17000=0x...
56
+
57
+ ```
58
+
59
+ Application supported a few ways to adding or combine different settings
60
+
61
+ - #### 1st step
62
+ You can pass link to json file with address of deployed contacts into **DEPLOYED** variable. If you want use
63
+ devnet the all needed addresses of the contracts like VaultHub, VaultFactory etc already passed as example in configs/deployed-holesky-vaults-devnet-1.json.
64
+ Also at near future this feature will be changed to resolving contracts addresses by LIDO locator and link to json
65
+ file will no longer be necessary
66
+ - #### 2nd step
67
+ You need to pass link to json config file into **CONFIG** variable. The structure of a config file has to be like
68
+ ```javascript
69
+ {
70
+ "rpcLink": "https://link_to_rpc",
71
+ "privateKey": "some_key",
72
+ "chainId": 1, // or another number of chain id
73
+ "lidoLocator": "LIDO locator address", // take LIDO locator address in paticular chainId
74
+ "accounting": "LIDO accountind address" // take LIDO accounting address in paticular chainId
75
+ "clLink": "url" // CL url
76
+ }
77
+ ```
78
+ If you plan to manage contracts the **privateKey** is required property for this type of operations.
79
+ For using rpcLink in a right way be attentive to match rpc resolver link and its chain ID.
80
+ Also, You can pass rpc link as env variable into RPC*URL*(chainID)
81
+ where chainID is current chain ID, chainId basically takes from config file, but also you can
82
+ pass it to deployed file and process env CHAIN_ID variable.
83
+
84
+ ## Usage
85
+
86
+ After installation and configuration, you can start using the CLI to manage your staking vaults.
87
+
88
+ ```bash
89
+ lsv-cli [command] [options]
90
+ ```
91
+
92
+ ```bash
93
+ lsv-cli -h
94
+ ```
95
+
96
+ ### Examples
97
+
98
+ **VaultHub constants**
99
+
100
+ ```bash
101
+ lsv-cli hub constants
102
+ ```
103
+
104
+ **Count of all vaults**
105
+
106
+ ```bash
107
+ lsv-cli hub v-count
108
+ ```
109
+
110
+ ## Programs
111
+
112
+ - [Account](#Account)
113
+ - [VaultHub](#vaulthub)
114
+ - [VaultFactory](#vaultfactory)
115
+ - [Vault](#vault)
116
+ - [Dashboard](#dashboard)
117
+ - [Delegation](#delegation)
118
+
119
+ ### Account
120
+
121
+ #### Command
122
+
123
+ ```bash
124
+ lsv-cli account [arguments] [-options]
125
+ ```
126
+
127
+ #### Account commands list
128
+
129
+ ```bash
130
+ lsv-cli account -h
131
+ ```
132
+
133
+ #### API
134
+
135
+ | Command | Description |
136
+ | ------- | -------------------- |
137
+ | info | general account info |
138
+
139
+ ### VaultHub
140
+
141
+ #### Command
142
+
143
+ ```bash
144
+ lsv-cli hub [arguments] [-options]
145
+ ```
146
+
147
+ #### VaultHub commands list
148
+
149
+ ```bash
150
+ lsv-cli hub -h
151
+ ```
152
+
153
+ #### API
154
+
155
+ | Command | Description |
156
+ | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
157
+ | constants | get vault hub constants |
158
+ | dar | get default admin role |
159
+ | lido | get lido address |
160
+ | ll | get lido locator address |
161
+ | pi | get pause infinitely |
162
+ | pr | get pause role |
163
+ | rr | get resume role |
164
+ | vm-role | get vault master role |
165
+ | vr-role | get vault registry role |
166
+ | calc-t-fee \<r-val> \<socket> \<pre-t-shares> \<pre-t-pe> \<post-i-shares> \<post-i-ether> \<s-mlc-fees> | get calculated vault treasury fees |
167
+ | calc-v-rebase \<v-vals> \<pre-t-shares> \<pre-t-pe> \<post-i-shares> \<post-i-ether> \<s-mlc-fees> | get calculated vaults rebase |
168
+ | getResumeSinceTimestamp | Calls the read-only function "getResumeSinceTimestamp" on the contract. |
169
+ | getRoleAdmin \<role> | Calls the read-only function "getRoleAdmin" on the contract. |
170
+ | getRoleMember \<role> \<index> | Calls the read-only function "getRoleMember" on the contract. |
171
+ | getRoleMemberCount \<role> | Calls the read-only function "getRoleMemberCount" on the contract. |
172
+ | getRoleMembers \<role> | Calls the read-only function "getRoleMembers" on the contract. |
173
+ | hasRole \<role> \<account> | Calls the read-only function "hasRole" on the contract. |
174
+ | is-paused | get is paused boolean |
175
+ | is-v-h \<\_vault> | get is vault healthy boolean |
176
+ | supportsInterface \<interfaceId> | Calls the read-only function "supportsInterface" on the contract. |
177
+ | vault \<\_index> | Calls the read-only function "vault" on the contract. |
178
+ | vaultSocket \<\_index> | Calls the read-only function "vaultSocket" on the contract. |
179
+ | vaultSocket_vault \<\_vault> | Calls the read-only function "vaultSocket" on the contract. |
180
+ | v-count | get connected vaults count |
181
+ | vi \<index> | get vault and vault socket by index |
182
+ | add-codehash \<codehash> | add vault proxy codehash to allowed list |
183
+ | v-connect \<address> \<shareLimit> \<reserveRatio> \<reserveRatioThreshold> \<treasuryFeeBP> | connects a vault to the hub (vault master role needed) |
184
+ | v-update-share-limit \<address> \<shareLimit> | updates share limit for the vault |
185
+ | v-disconnect \<address> | force disconnects a vault from the hub |
186
+ | v-owner-disconnect \<address> | disconnects a vault from the hub, msg.sender should be vault's owner |
187
+ | v-mint \<address> \<recipient> \<amountOfShares> | mint StETH shares backed by vault external balance to the receiver address |
188
+ | v-burn \<address> \<amountOfShares> | burn steth shares from the balance of the VaultHub contract |
189
+ | v-transfer-and-burn \<address> \<amountOfShares> | separate burn function for EOA vault owners; requires vaultHub to be approved to transfer stETH |
190
+ | v-force-rebalance \<address> | force rebalance of the vault to have sufficient reserve ratio |
191
+
192
+ ### VaultFactory
193
+
194
+ #### Command
195
+
196
+ ```bash
197
+ lsv-cli factory [arguments] [-options]
198
+ ```
199
+
200
+ #### VaultFactory commands list
201
+
202
+ ```bash
203
+ lsv-cli factory -h
204
+ ```
205
+
206
+ #### API
207
+
208
+ | Command | Description |
209
+ | ------------------------------------------------------------- | --------------------------------------------------------------- |
210
+ | constants | get vault factory constants info |
211
+ | BEACON \<address> | Calls the read-only function "BEACON" on the contract. |
212
+ | DELEGATION_IMPL \<address> | Calls the read-only function "DELEGATION_IMPL" on the contract. |
213
+ | create-vault \<curatorFeeBP> \<nodeOperatorFeeBP> \<quantity> | create vault contract |
214
+
215
+ Note: \[quantity] is optional argument, default 1
216
+ **[options]**
217
+
218
+ | Option | Description |
219
+ | ------------------------------------------------------ | --------------------------------- |
220
+ | -a, --defaultAdmin \<defaultAdmin> | default admin address |
221
+ | -f, --funder \<funder> | funder role address |
222
+ | -w, --withdrawer \<withdrawer> | withdrawer role address |
223
+ | -m, --minter \<minter> | minter role address |
224
+ | -b, --burner \<burner> | burner role address |
225
+ | -r, --rebalancer \<rebalancer> | rebalancer role address |
226
+ | -p, --depositPauser \<depositPauser> | depositPauser role address |
227
+ | -d, --depositResumer \<depositResumer> | depositResumer role address |
228
+ | -e, --exitRequester \<exitRequester> | exitRequester role address |
229
+ | -u, --disconnecter \<disconnecter> | disconnecter role address |
230
+ | -c, --curator \<curator> | curator address |
231
+ | -n, --nodeOperatorManager \<nodeOperatorManager> | node operator manager address |
232
+ | -o, --nodeOperatorFeeClaimer \<nodeOperatorFeeClaimer> | node operator fee claimer address |
233
+
234
+ ### Vault
235
+
236
+ #### Command
237
+
238
+ ```bash
239
+ lsv-cli vault [arguments] [-options]
240
+ ```
241
+
242
+ #### Vault commands list
243
+
244
+ ```bash
245
+ lsv-cli vault -h
246
+ ```
247
+
248
+ #### API
249
+
250
+ | Command | Description |
251
+ | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
252
+ | deposit-contract \<address> | get vault deposit contract |
253
+ | PUBLIC_KEY_LENGTH \<address> | Calls the read-only function "PUBLIC_KEY_LENGTH" on the contract. |
254
+ | is-paused \<address> | get whether deposits are paused by the vault owner |
255
+ | validator-w-fee \<address> \<numberOfKeys> | get calculated withdrawal fee for a validator |
256
+ | depositor \<address> | Calls the read-only function "depositor" on the contract. |
257
+ | getInitializedVersion \<address> | Calls the read-only function "getInitializedVersion" on the contract. |
258
+ | delta \<address> | get the net difference between deposits and withdrawals |
259
+ | l-report \<address> | get latest vault report |
260
+ | locked \<address> | get vault locked |
261
+ | no \<address> | get vault node operator |
262
+ | owner \<address> | get vault owner |
263
+ | unlocked \<address> | get vault unlocked |
264
+ | valuation \<address> | get vault valuation |
265
+ | vault-hub \<address> | get vault hub |
266
+ | version \<address> | get vault version |
267
+ | wc \<address> | get vault withdrawal credentials |
268
+ | info \<address> | get vault base info |
269
+ | fund | fund vault |
270
+ | withdraw \<address> \<recipient> \<wei> | withdraw from vault |
271
+ | no-deposit-beacon \<address> \<amountOfDeposit> \<pubkey> \<signature> \<depositDataRoot> | deposit to beacon chain |
272
+ | no-val-exit \<address> \<validatorPublicKey> | request to exit validator |
273
+ | bc-resume \<address> | Resumes deposits to beacon chain |
274
+ | bc-pause \<address> | Pauses deposits to beacon chain |
275
+ | report \<address> \<valuation> \<inOutDelta> \<locked> | Submits a report containing valuation, inOutDelta, and locked amount |
276
+ | rebalance \<address> \<amount> | Rebalances the vault |
277
+ | trigger-v-w \<address> \<pubkeys> \<amounts> \<refundRecipient> | Trigger validator withdrawal |
278
+
279
+ ### Dashboard
280
+
281
+ #### Command
282
+
283
+ ```bash
284
+ lsv-cli dashboard [arguments] [-options]
285
+ ```
286
+
287
+ #### Dashboard commands list
288
+
289
+ ```bash
290
+ lsv-cli dashboard -h
291
+ ```
292
+
293
+ #### API
294
+
295
+ | Command | Description |
296
+ | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
297
+ | ASSET_RECOVERY_ROLE \<address> | Calls the read-only function "ASSET_RECOVERY_ROLE" on the contract. |
298
+ | BURN_ROLE \<address> | Calls the read-only function "BURN_ROLE" on the contract. |
299
+ | DEFAULT_ADMIN_ROLE \<address> | Calls the read-only function "DEFAULT_ADMIN_ROLE" on the contract. |
300
+ | ETH \<address> | Calls the read-only function "ETH" on the contract. |
301
+ | FUND_ROLE \<address> | Calls the read-only function "FUND_ROLE" on the contract. |
302
+ | MAX_CONFIRM_EXPIRY \<address> | Calls the read-only function "MAX_CONFIRM_EXPIRY" on the contract. |
303
+ | MINT_ROLE \<address> | Calls the read-only function "MINT_ROLE" on the contract. |
304
+ | MIN_CONFIRM_EXPIRY \<address> | Calls the read-only function "MIN_CONFIRM_EXPIRY" on the contract. |
305
+ | PAUSE_BEACON_CHAIN_DEPOSITS_ROLE \<address> | Calls the read-only function "PAUSE_BEACON_CHAIN_DEPOSITS_ROLE" on the contract. |
306
+ | PDG_WITHDRAWAL_ROLE \<address> | Calls the read-only function "PDG_WITHDRAWAL_ROLE" on the contract. |
307
+ | REBALANCE_ROLE \<address> | Calls the read-only function "REBALANCE_ROLE" on the contract. |
308
+ | REQUEST_VALIDATOR_EXIT_ROLE \<address> | Calls the read-only function "REQUEST_VALIDATOR_EXIT_ROLE" on the contract. |
309
+ | RESUME_BEACON_CHAIN_DEPOSITS_ROLE \<address> | Calls the read-only function "RESUME_BEACON_CHAIN_DEPOSITS_ROLE" on the contract. |
310
+ | STETH \<address> | Calls the read-only function "STETH" on the contract. |
311
+ | TRIGGER_VALIDATOR_WITHDRAWAL_ROLE \<address> | Calls the read-only function "TRIGGER_VALIDATOR_WITHDRAWAL_ROLE" on the contract. |
312
+ | VOLUNTARY_DISCONNECT_ROLE \<address> | Calls the read-only function "VOLUNTARY_DISCONNECT_ROLE" on the contract. |
313
+ | WETH \<address> | Calls the read-only function "WETH" on the contract. |
314
+ | WITHDRAW_ROLE \<address> | Calls the read-only function "WITHDRAW_ROLE" on the contract. |
315
+ | WSTETH \<address> | Calls the read-only function "WSTETH" on the contract. |
316
+ | confirmations \<address> \<callData> \<role> | Calls the read-only function "confirmations" on the contract. |
317
+ | confirmingRoles \<address> | Calls the read-only function "confirmingRoles" on the contract. |
318
+ | getConfirmExpiry \<address> | Calls the read-only function "getConfirmExpiry" on the contract. |
319
+ | getRoleAdmin \<address> \<role> | Calls the read-only function "getRoleAdmin" on the contract. |
320
+ | getRoleMember \<address> \<role> \<index> | Calls the read-only function "getRoleMember" on the contract. |
321
+ | getRoleMemberCount \<address> \<role> | Calls the read-only function "getRoleMemberCount" on the contract. |
322
+ | getRoleMembers \<address> \<role> | Calls the read-only function "getRoleMembers" on the contract. |
323
+ | has-role \<address> \<role> \<account> | get has role by role and account |
324
+ | initialized \<address> | Calls the read-only function "initialized" on the contract. |
325
+ | projected-new-mintable-shares \<address> \<etherToFund> | get projected new mintable shares |
326
+ | r-threshold \<address> | get rebalance threshold in basis points |
327
+ | reserve-ratio \<address> | get reserve ratio in basis points |
328
+ | s-limit \<address> | get share limit |
329
+ | s-minted \<address> | get shares minted |
330
+ | vault \<address> | get staking vault address |
331
+ | supports-interface \<address> \<interfaceId> | get supports interface by id |
332
+ | total-mintable-shares \<address> | get total of shares that can be minted on the vault |
333
+ | t-fee \<address> | get treasury fee in basis points |
334
+ | valuation \<address> | get vault valuation |
335
+ | hub \<address> | get vaultHub address |
336
+ | socket \<address> | get vault socket |
337
+ | w-ether \<address> | get amount of ether that can be withdrawn from the staking vault |
338
+ | info | get dashboard base info |
339
+ | ownership \<address> \<newOwner> | transfers ownership of the staking vault to a new owner |
340
+ | disconnect \<address> | disconnects the staking vault from the vault hub |
341
+ | fund | funds the staking vault with ether |
342
+ | fund-weth \<address> \<wethAmount> | funds the staking vault with wrapped ether |
343
+ | withdraw \<address> \<recipient> \<wei> | withdraws ether from the staking vault to a recipient |
344
+ | withdraw-weth \<address> \<recipient> \<ether> | withdraws stETH tokens from the staking vault to wrapped ether |
345
+ | exit \<address> \<validatorPubKey> | requests the exit of a validator from the staking vault |
346
+ | trigger-validator-withdrawal \<address> \<pubkeys> \<amounts> \<recipient> | triggers the withdrawal of a validator from the staking vault |
347
+ | mint-shares \<address> \<recipient> \<amountOfShares> | mints stETH tokens backed by the vault to a recipient |
348
+ | mint-steth \<address> \<recipient> \<amountOfShares> | mints stETH tokens backed by the vault to a recipient |
349
+ | mint-wsteth \<address> \<recipient> \<tokens> | mints wstETH tokens backed by the vault to a recipient |
350
+ | burn-shares \<address> \<amountOfShares> | Burns stETH shares from the sender backed by the vault. Expects corresponding amount of stETH approved to this contract |
351
+ | burn-steth \<address> \<amountOfShares> | Burns stETH shares from the sender backed by the vault. Expects stETH amount approved to this contract. |
352
+ | burn-wsteth \<address> \<tokens> | burn wstETH tokens from the sender backed by the vault |
353
+ | burn-shares-permit \<address> \<tokens> \<permitJSON> | Burns stETH tokens (in shares) backed by the vault from the sender using permit (with value in stETH). |
354
+ | burn-steth-permit \<address> \<tokens> \<permitJSON> | Burns stETH tokens backed by the vault from the sender using permit. |
355
+ | burn-wsteth-permit \<address> \<tokens> \<permitJSON> | burn wstETH tokens from the sender backed by the vault using EIP-2612 Permit |
356
+ | rebalance \<address> \<ether> | rebalance the vault by transferring ether |
357
+ | recover-erc20 \<address> \<token> \<recipient> \<amount> | recovers ERC20 tokens or ether from the dashboard contract to sender |
358
+ | recover-erc721 \<address> \<token> \<tokenId> \<recipient> | Transfers a given token_id of an ERC721-compatible NFT (defined by the token contract address) |
359
+ | deposit-pause \<address> | Pauses beacon chain deposits on the staking vault. |
360
+ | deposit-resume \<address> | Mass-grants multiple roles to multiple accounts. |
361
+ | role-grant \<address> \<roleAssignmentJSON> | Mass-revokes multiple roles from multiple accounts. |
362
+ | role-revoke \<address> \<roleAssignmentJSON> | Resumes beacon chain deposits on the staking vault. |
363
+ | compensate-disproven-predeposit \<address> \<pubkey> \<recipient> | Compensates a disproven predeposit from the Predeposit Guarantee contract. |
364
+
365
+ **\<permitJSON>**
366
+
367
+ ```json
368
+ {
369
+ "value": number as bigint;
370
+ "deadline": number as bigint;
371
+ "v": number;
372
+ "r": string as Address;
373
+ "s": string as Address;
374
+ }
375
+ ```
376
+
377
+ **\<roleAssignmentJSON>**
378
+
379
+ ```json
380
+ [{
381
+ "account": string as Address;
382
+ "role": string as `0x${string}`;
383
+ }]
384
+ ```
385
+
386
+ ### Delegation
387
+
388
+ #### Command
389
+
390
+ ```bash
391
+ lsv-cli delegation [arguments] [-options]
392
+ ```
393
+
394
+ #### Delegation commands list
395
+
396
+ ```bash
397
+ lsv-cli delegation -h
398
+ ```
399
+
400
+ #### API
401
+
402
+ | Command | Description |
403
+ | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
404
+ | ASSET_RECOVERY_ROLE \<address> | Calls the read-only function "ASSET_RECOVERY_ROLE" on the contract. |
405
+ | BURN_ROLE \<address> | Calls the read-only function "BURN_ROLE" on the contract. |
406
+ | CURATOR_FEE_CLAIM_ROLE \<address> | Calls the read-only function "CURATOR_FEE_CLAIM_ROLE" on the contract. |
407
+ | CURATOR_FEE_SET_ROLE \<address> | Calls the read-only function "CURATOR_FEE_SET_ROLE" on the contract. |
408
+ | DEFAULT_ADMIN_ROLE \<address> | Calls the read-only function "DEFAULT_ADMIN_ROLE" on the contract. |
409
+ | ETH \<address> | Calls the read-only function "ETH" on the contract. |
410
+ | FUND_ROLE \<address> | Calls the read-only function "FUND_ROLE" on the contract. |
411
+ | MAX_CONFIRM_EXPIRY \<address> | Calls the read-only function "MAX_CONFIRM_EXPIRY" on the contract. |
412
+ | MINT_ROLE \<address> | Calls the read-only function "MINT_ROLE" on the contract. |
413
+ | MIN_CONFIRM_EXPIRY \<address> | Calls the read-only function "MIN_CONFIRM_EXPIRY" on the contract. |
414
+ | NODE_OPERATOR_FEE_CLAIM_ROLE \<address> | Calls the read-only function "NODE_OPERATOR_FEE_CLAIM_ROLE" on the contract. |
415
+ | NODE_OPERATOR_MANAGER_ROLE \<address> | Calls the read-only function "NODE_OPERATOR_MANAGER_ROLE" on the contract. |
416
+ | PAUSE_BEACON_CHAIN_DEPOSITS_ROLE \<address> | Calls the read-only function "PAUSE_BEACON_CHAIN_DEPOSITS_ROLE" on the contract. |
417
+ | PDG_WITHDRAWAL_ROLE \<address> | Calls the read-only function "PDG_WITHDRAWAL_ROLE" on the contract. |
418
+ | REBALANCE_ROLE \<address> | Calls the read-only function "REBALANCE_ROLE" on the contract. |
419
+ | REQUEST_VALIDATOR_EXIT_ROLE \<address> | Calls the read-only function "REQUEST_VALIDATOR_EXIT_ROLE" on the contract. |
420
+ | RESUME_BEACON_CHAIN_DEPOSITS_ROLE \<address> | Calls the read-only function "RESUME_BEACON_CHAIN_DEPOSITS_ROLE" on the contract. |
421
+ | STETH \<address> | Calls the read-only function "STETH" on the contract. |
422
+ | TRIGGER_VALIDATOR_WITHDRAWAL_ROLE \<address> | Calls the read-only function "TRIGGER_VALIDATOR_WITHDRAWAL_ROLE" on the contract. |
423
+ | VOLUNTARY_DISCONNECT_ROLE \<address> | Calls the read-only function "VOLUNTARY_DISCONNECT_ROLE" on the contract. |
424
+ | WETH \<address> | Calls the read-only function "WETH" on the contract. |
425
+ | WITHDRAW_ROLE \<address> | Calls the read-only function "WITHDRAW_ROLE" on the contract. |
426
+ | WSTETH \<address> | Calls the read-only function "WSTETH" on the contract. |
427
+ | confirmations \<address> \<callData> \<role> | Calls the read-only function "confirmations" on the contract. |
428
+ | confirmingRoles \<address> | Calls the read-only function "confirmingRoles" on the contract. |
429
+ | curatorFeeBP \<address> | Calls the read-only function "curatorFeeBP" on the contract. |
430
+ | curatorFeeClaimedReport \<address> | Calls the read-only function "curatorFeeClaimedReport" on the contract. |
431
+ | cf-unclaimed \<address> | Returns the accumulated unclaimed curator fee in ether |
432
+ | getConfirmExpiry \<address> | Calls the read-only function "getConfirmExpiry" on the contract. |
433
+ | getRoleAdmin \<address> \<role> | Calls the read-only function "getRoleAdmin" on the contract. |
434
+ | getRoleMember \<address> \<role> \<index> | Calls the read-only function "getRoleMember" on the contract. |
435
+ | getRoleMemberCount \<address> \<role> | Calls the read-only function "getRoleMemberCount" on the contract. |
436
+ | getRoleMembers \<address> \<role> | Calls the read-only function "getRoleMembers" on the contract. |
437
+ | has-role \<address> \<role> \<account> | get has role by role and account |
438
+ | initialized \<address> | Calls the read-only function "initialized" on the contract. |
439
+ | no-fee \<address> | get node operator fee in basis points |
440
+ | no-fee-report \<address> | get node operator fee claimed report |
441
+ | no-unclaimed-fee \<address> | Returns the accumulated unclaimed node operator fee in ether |
442
+ | projected-new-mintable-shares \<address> \<etherToFund> | get projected new mintable shares |
443
+ | r-threshold \<address> | get rebalance threshold in basis points |
444
+ | reserve-ratio \<address> | get reserve ratio in basis points |
445
+ | s-limit \<address> | get share limit |
446
+ | s-minted \<address> | get shares minted |
447
+ | vault \<address> | get staking vault address |
448
+ | supports-interface \<address> \<interfaceId> | get supports interface by id |
449
+ | total-mintable-shares \<address> | get total of shares that can be minted on the vault |
450
+ | t-fee \<address> | get treasury fee in basis points |
451
+ | unreserved \<address> | Calls the read-only function "unreserved" on the contract. |
452
+ | valuation \<address> | get vault valuation |
453
+ | hub \<address> | get vaultHub address |
454
+ | socket \<address> | get vault socket |
455
+ | w-ether \<address> | get amount of ether that can be withdrawn from the staking vault |
456
+ | roles \<address> | get delegation contract roles info |
457
+ | base-info \<address> | get delegation base info |
458
+ | is-healthy \<address> | get vault healthy info |
459
+ | cf-set \<address> \<newCuratorFee> | sets the curator fee |
460
+ | cf-claim \<address> \<recipient> | claims the curator fee |
461
+ | nof-set \<address> \<newNodeOperatorFeeBP> | sets the node operator fee |
462
+ | nof-claim \<address> \<recipient> | claims the node operator fee |
463
+ | fund \<address> \<wei> | funds the StakingVault with ether |
464
+ | withdraw \<address> \<recipient> \<wei> | withdraws ether from the StakingVault |
465
+ | rebalance \<address> \<ether> | rebalances the StakingVault with a given amount of ether |
466
+ | t-ownership \<address> \<newOwner> | transfers the ownership of the StakingVault |
467
+ | disconnect \<address> | voluntarily disconnects a StakingVault from VaultHub |
468
+ | deposit-pause \<address> | Pauses deposits to beacon chain from the StakingVault. |
469
+ | deposit-resume \<address> | Resumes deposits to beacon chain from the StakingVault. |
470
+ | fund-weth \<address> \<wethAmount> | funds the staking vault with wrapped ether |
471
+ | withdraw-weth \<address> \<recipient> \<ether> | withdraws stETH tokens from the staking vault to wrapped ether |
472
+ | exit \<address> \<validatorPubKey> | requests the exit of a validator from the staking vault |
473
+ | mint-shares \<address> \<recipient> \<amountOfShares> | mints stETH tokens backed by the vault to a recipient |
474
+ | mint-steth \<address> \<recipient> \<amountOfShares> | mints stETH tokens backed by the vault to a recipient |
475
+ | mint-wsteth \<address> \<recipient> \<tokens> | mints wstETH tokens backed by the vault to a recipient |
476
+ | burn-shares \<address> \<amountOfShares> | Burns stETH shares from the sender backed by the vault. Expects corresponding amount of stETH approved to this contract |
477
+ | burn-steth \<address> \<amountOfShares> | Burns stETH shares from the sender backed by the vault. Expects stETH amount approved to this contract. |
478
+ | burn-wsteth \<address> \<tokens> | burn wstETH tokens from the sender backed by the vault |
479
+ | burn-shares-permit \<address> \<tokens> \<permitJSON> | Burns stETH tokens (in shares) backed by the vault from the sender using permit (with value in stETH). |
480
+ | burn-steth-permit \<address> \<tokens> \<permitJSON> | Burns stETH tokens backed by the vault from the sender using permit. |
481
+ | burn-wsteth-permit \<address> \<tokens> \<permitJSON> | burn wstETH tokens from the sender backed by the vault using EIP-2612 Permit |
482
+ | recover-erc20 \<address> \<token> \<recipient> \<amount> | recovers ERC20 tokens or ether from the delegation contract to sender |
483
+ | recover-erc721 \<address> \<token> \<tokenId> \<recipient> | Transfers a given token_id of an ERC721-compatible NFT (defined by the token contract address) |
484
+ | role-grant \<address> \<roleAssignmentJSON> | Mass-revokes multiple roles from multiple accounts. |
485
+ | role-revoke \<address> \<roleAssignmentJSON> | Resumes beacon chain deposits on the staking vault. |
486
+ | set-confirm-expiry \<address> \<newConfirmExpiry> | set the confirmation expiry |
487
+
488
+ ### PredepositGuarantee
489
+
490
+ #### Command
491
+
492
+ ```bash
493
+ lsv-cli pdg [arguments] [-options]
494
+ ```
495
+
496
+ #### Delegation commands list
497
+
498
+ ```bash
499
+ lsv-cli pdg -h
500
+ ```
501
+
502
+ #### API
503
+
504
+ | Command | Description |
505
+ | -------------------------------------------- | ------------------------------------------------------------------------------- |
506
+ | BEACON_ROOTS | Calls the read-only function "BEACON_ROOTS" on the contract. |
507
+ | DEFAULT_ADMIN_ROLE | Calls the read-only function "DEFAULT_ADMIN_ROLE" on the contract. |
508
+ | GI_FIRST_VALIDATOR | Calls the read-only function "GI_FIRST_VALIDATOR" on the contract. |
509
+ | GI_FIRST_VALIDATOR_AFTER_CHANGE | Calls the read-only function "GI_FIRST_VALIDATOR_AFTER_CHANGE" on the contract. |
510
+ | GI_PUBKEY_WC_PARENT | Calls the read-only function "GI_PUBKEY_WC_PARENT" on the contract. |
511
+ | GI_STATE_ROOT | Calls the read-only function "GI_STATE_ROOT" on the contract. |
512
+ | MAX_SUPPORTED_WC_VERSION | Calls the read-only function "MAX_SUPPORTED_WC_VERSION" on the contract. |
513
+ | MIN_SUPPORTED_WC_VERSION | Calls the read-only function "MIN_SUPPORTED_WC_VERSION" on the contract. |
514
+ | PAUSE_INFINITELY | Calls the read-only function "PAUSE_INFINITELY" on the contract. |
515
+ | PAUSE_ROLE | Calls the read-only function "PAUSE_ROLE" on the contract. |
516
+ | PREDEPOSIT_AMOUNT | Calls the read-only function "PREDEPOSIT_AMOUNT" on the contract. |
517
+ | RESUME_ROLE | Calls the read-only function "RESUME_ROLE" on the contract. |
518
+ | SLOT_CHANGE_GI_FIRST_VALIDATOR | Calls the read-only function "SLOT_CHANGE_GI_FIRST_VALIDATOR" on the contract. |
519
+ | STATE_ROOT_DEPTH | Calls the read-only function "STATE_ROOT_DEPTH" on the contract. |
520
+ | STATE_ROOT_POSITION | Calls the read-only function "STATE_ROOT_POSITION" on the contract. |
521
+ | WC_PUBKEY_PARENT_DEPTH | Calls the read-only function "WC_PUBKEY_PARENT_DEPTH" on the contract. |
522
+ | WC_PUBKEY_PARENT_POSITION | Calls the read-only function "WC_PUBKEY_PARENT_POSITION" on the contract. |
523
+ | claimableRefund \<\_guarantor> | Calls the read-only function "claimableRefund" on the contract. |
524
+ | getResumeSinceTimestamp | Calls the read-only function "getResumeSinceTimestamp" on the contract. |
525
+ | getRoleAdmin \<role> | Calls the read-only function "getRoleAdmin" on the contract. |
526
+ | getRoleMember \<role> \<index> | Calls the read-only function "getRoleMember" on the contract. |
527
+ | getRoleMemberCount \<role> | Calls the read-only function "getRoleMemberCount" on the contract. |
528
+ | getRoleMembers \<role> | Calls the read-only function "getRoleMembers" on the contract. |
529
+ | hasRole \<role> \<account> | Calls the read-only function "hasRole" on the contract. |
530
+ | isPaused | Calls the read-only function "isPaused" on the contract. |
531
+ | nodeOperatorBalance \<\_nodeOperator> | Calls the read-only function "nodeOperatorBalance" on the contract. |
532
+ | nodeOperatorGuarantor \<\_nodeOperator> | Calls the read-only function "nodeOperatorGuarantor" on the contract. |
533
+ | supportsInterface \<interfaceId> | Calls the read-only function "supportsInterface" on the contract. |
534
+ | unlockedBalance \<\_nodeOperator> | Calls the read-only function "unlockedBalance" on the contract. |
535
+ | validatorStatus \<\_validatorPubkey> | Calls the read-only function "validatorStatus" on the contract. |
536
+ | predeposit \<vault> \<deposits> | predeposit |
537
+ | create-proof-and-prove \<index> | create proof and prove |
538
+ | deposit-to-beacon-chain \<vault> \<deposits> | deposit to beacon chain |
539
+
540
+ ## License
541
+
542
+ This project is licensed under the [MIT License](LICENSE).