The getRewards function updates the user's lastClaimTime even when they have zero rewards to claim.
The protocol allows users to claim rewards after MIN_CLAIM_INTERVAL. However, the lastClaimTime of the user is updated even if the reward amount is 0, as shown in the code below.
This could create a problem in edge cases where the MIN_CLAIM_INTERVAL has passed, but the user's reward amount is 0. If the user calls the getRewards function at this point, they will be unable to call it again until the next MIN_CLAIM_INTERVAL, even if they accrue rewards in the meantime.
If a user's last call to getRewards returned 0 rewards, they will be unable to claim rewards again until the MIN_CLAIM_INTERVAL has passed, even if they have accrued rewards in the meantime.
Manual Review
The best approach could be to only update the lastClaimTime when the user accrued some reward amount :
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.