withdraw() has no check for block.timestamp >= expiry
Users can withdraw principal after pool expiry
as long as outcome remains UNRESOLVED
This causes them to forfeit their bonus entitlement.
Functionality inconsistency.
Setup:
Pool expiry = Day 100
Alice staked = 100 tokens
Bonus pool = 1000 tokens
riskWindowStart = 0 (no attack observed)
Day 101: Nobody called claimExpired() yet
outcome = UNRESOLVED
Alice calls withdraw():
Gets: 100 tokens (principal only)
Alice should have called claimExpired():
Gets: 100 tokens + bonus share
Alice lost her bonus by using wrong function post-expiry
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.