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.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.