You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
User story
As an EigenPod contract owner I want the events PartialWithdrawalRedeemed & FullWithdrawalRedeemed to include a uint256 withdrawalIndex (this is a unique id that marks the position of a withdrawal within beacon chain history), so that I may parse through event logs and know which withdrawals have already been redeemed for a pod.
/// @notice Emitted when an ETH validator is prove to have withdrawn from the beacon chainevent FullWithdrawalRedeemed(
uint40validatorIndex,
uint64withdrawalTimestamp,
addressindexedrecipient,
uint64withdrawalAmountGwei,
uint256 indexed withdrawalIndex // new log
);
/// @notice Emitted when a partial withdrawal claim is successfully redeemedevent PartialWithdrawalRedeemed(
uint40validatorIndex,
uint64withdrawalTimestamp,
addressindexedrecipient,
uint64partialWithdrawalAmountGwei,
uint256 indexed withdrawalIndex // new log
);
Actions
Modify IEigenPod.sol event interfaces PartialWithdrawalRedeemed & FullWithdrawalRedeemed to include withdrawalIndex
Update BeaconChainProofs.sol with the capability to parse the withdrawalIndex value from submitted withdrawal proofs
Update EigenPod.sol to pass the withdrawalIndex when emitting the relevant events
The text was updated successfully, but these errors were encountered:
youfoundron
changed the title
Feature: Include unique id with withdrawal verification -- urgently needed for projects that handle lots of withdrawal processing
Feature: Include unique id with withdrawal verification -- urgently needed for projects that process many withdrawals
Mar 9, 2024
Granted, there is a bit of a naming collision here as what EL calls the withdrawalIndex is actually referring to a withdrawal's index within a given slot (0 - 15).
However, if the event emitted this value along with the slotRoot it would be enough information to uniquely identify a withdrawal and solve the broader problem of not being able to uniquely identify withdrawal redemptions from on-chain data.
While this approach is not as clean as the one offered in my original post, it would technically solve the problem without requiring any changes to proof generation logic.
Hey there. unfortunately since we're so close to our mainnet launch, we're not comfortable making this change.
Could you explain the impact of the change? From the timestamp (which gives you the slot) and the validator index, you should be able to get the withdrawal index?
User story
As an
EigenPod
contract owner I want the eventsPartialWithdrawalRedeemed
&FullWithdrawalRedeemed
to include auint256 withdrawalIndex
(this is a unique id that marks the position of a withdrawal within beacon chain history), so that I may parse through event logs and know which withdrawals have already been redeemed for a pod.The WithdrawalIndex has been in-spec since Capella
I propose modifying the event interfaces on
IEigenPod.sol
like so:Actions
IEigenPod.sol
event interfacesPartialWithdrawalRedeemed
&FullWithdrawalRedeemed
to includewithdrawalIndex
BeaconChainProofs.sol
with the capability to parse thewithdrawalIndex
value from submitted withdrawal proofsEigenPod.sol
to pass thewithdrawalIndex
when emitting the relevant eventsThe text was updated successfully, but these errors were encountered: