feat: support moocow#177
Merged
Merged
Conversation
* refactor: consolidate status print statements
* make verbose flag a per-command option instead of global (it was hidden when running subcommand help) * fix verbosity in status command * remove extraneous print in status command
ypatil12
reviewed
May 23, 2025
ypatil12
left a comment
Contributor
There was a problem hiding this comment.
Minor comments, I think we should:
- Add a usage guide for getting relevant validators to pod (so we can pass in the indices)
- Give error to user if attempt to consolidate or withdraw with validator type that will be a no-op on beacon chain
ypatil12
reviewed
May 23, 2025
ypatil12
left a comment
Contributor
There was a problem hiding this comment.
Can we also update the readme with usage guide in the PR description?
Contributor
Contributor
Author
Contributor
Author
|
hmm, no, |
ypatil12
approved these changes
Jun 10, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Adds support for upcoming v1.6.0 core contract release, allowing EigenPods to request consolidations and withdrawals.
See EigenPod notes, docs, etc in the relevant PR: Layr-Labs/eigenlayer-contracts#1375
TODO: it's quite difficult to test this at the moment, since the upgrade isn't live on testnet yet. I don't have time this week to spin up a foundry forked network / anvil environment, so for now I've done some manual validation but it's possible there are bugs.
New commands and usage examples follow.
Notes on Safety/Predeploy Fees
Quick note on batching. One of the main things I want to avoid with the CLI is footguns due to the predeploy's exponential fee increase. For example, if someone submits a ton of consolidations at the right time, my predeploy fee might suddenly be much higher than I expected. The CLI needs to guarantee the user an upper bound on the predeploy fee. For this reason:
--no-promptflag--fee-overestimate-factorflag for each of the new commands. This is "1.5" by default, which will have the user send 1.5X the currently-measured predeploy fee when calling the contract. The user can tweak this if they want more/less wiggle room.Required Flags
Outside of arguments required for specific commands, all new commands require the following flags:
Consolidate - Switch
Pass in a list of validator indices. This will initiate switch requests to change each validator's withdrawal prefix from 0x01 to 0x02. In order to be a consolidation target, a validator must have 0x02 credentials.
Consolidate - Source to Target
Pass in a target index and a list of source indices. This will initiate consolidations from each source to the specified target.
Request Withdrawal - Full Exit
Pass in a list of validator indices. This will initiate full exits from the beacon chain.
Request Withdrawal - Partial
Pass in a list of validator indices and an equally-sized list of amounts in gwei. This will initiate partial withdrawals from the beacon chain. Note that this method will NOT allow
amountGwei == 0, as that is a full exit. We want to be extra sure that CLI users are aware if they are initiating a full exit. Also note that in order to successfully process a partial withdrawal via this method, the beacon chain requires the validator to have 0x02 credentials. 0x01 validators can only full-exit.