revert: restore createPod/stake forwarding to the EigenPodManager (undo #493) - #495
Open
0xpanicError wants to merge 1 commit into
Conversation
Reverts the block added in #493. The protocol still needs the ability to create new EigenPods and stake into them via the forwarding path (EtherFiNode.forwardExternalCall -> EigenPodManager.createPod/stake), so restore the unrestricted forward and drop the deny test. Trade-off (accepted): a node's pod-or-no-pod status is no longer immutable in code (re-review MED 2). Operations must not attach a pod to a node that already has pod-less validators, since that would flip its credential resolution from node to pod. Enforced operationally via the forwarding whitelist rather than in the contract. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
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.
Revert of #493
The protocol still needs the ability to create new EigenPods and stake into them via the forwarding path (
EtherFiNode.forwardExternalCall→EigenPodManager.createPod/stake). #493 blocked exactly that, so this restores the unrestrictedforwardExternalCalland removes the deny test.What changes
EtherFiNode.forwardExternalCallback toreturn LibCall.callContract(to, 0, data);(no selector/target restriction).test/behaviour-tests/forwarding-createpod-deny.t.sol.Trade-off (accepted, worth an auditor/ops note)
This reopens re-review MED 2: a node's pod-or-no-pod status is no longer immutable in code. Because the credential resolver derives node→pod from
getEigenPod(), attaching a pod to a node that already has pod-less validators would flip that node's credential resolution from node to pod (breaking EL-triggered exits for those validators). The invariant is now enforced operationally via the per-caller forwarding whitelist (only the operating timelock can grantcreatePod/stakeentries) rather than in the contract — so the guardrail is: never whitelist pod creation for a node that already runs pod-less validators.Tests: forwarding-whitelist suite 2 green, credentials 79 green.
Base:
pankaj/feat/non-eigenpod-withdrawal-credentials.🤖 Generated with Claude Code
Note
Medium Risk
Reopens a credential-resolution invariant that was previously hard-blocked on-chain; safety now depends on forwarding whitelist discipline rather than contract-level denial.
Overview
Reverts #493 so the protocol can again create EigenPods and stake through the manager → node forwarding path (
EtherFiNodesManager.forwardExternalCall→EtherFiNode.forwardExternalCall→EigenPodManager).EtherFiNode.forwardExternalCallno longer inspectsto == eigenPodManageror rejectscreatePod/stakeselectors; it only forwards viaLibCall.callContract. The behaviour testforwarding-createpod-deny.t.solis removed.Trade-off: pod-vs-pod-less status is no longer enforced in the node contract. Whitelisted forwarding could attach a pod to a node that already runs pod-less validators and change credential resolution (node → pod). That risk is shifted to ops: only grant
createPod/stakeon the forwarding whitelist when safe (operating timelock onupdateAllowedForwardedExternalCalls).Reviewed by Cursor Bugbot for commit 12de167. Bugbot is set up for automated code reviews on this repo. Configure here.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.