The removeBoostDelegation
function restricts delegation removal to the delegatee (msg.sender
), which can become problematic if the delegatee refuses to remove themselves. As a result, expired delegations may persist indefinitely, causing state bloat and incorrect boost calculations.
Currently, the function checks:
This ensures that only the delegatee can remove the delegation. However, if the delegatee is uncooperative or malicious, the expired delegation remains in storage even after delegation.expiry
has passed.
Incorrect Reward Calculations: Boost metrics may be skewed, potentially affecting fair reward distributions.
Loss of Control: Users lose control over their delegations if the delegatee is unresponsive.
Manual code review and state flow analysis.
Allow anyone to remove an expired delegation, ensuring proper cleanup and consistent state.
Replace:
With:
This change:
Permits anyone to remove delegations only after expiry, preventing abuse.
Ensures timely cleanup of expired delegations.
Restores user autonomy over their delegations.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.