Users cannot claim rewards after their first claim due to incorrect checkpoint logic, where userRewards[user]
is set to the entire totalDistributed
amount, making subsequent claims always return zero.
In the FeeCollector contract, the claimRewards mechanism has a critical flaw in its checkpoint logic:
In _calculatePendingRewards, since the serRewards[user] will always be bigger than the share, then it will always return 0.
Users permanently lose access to new rewards after their first claim due to incorrect checkpoint logic, breaking the protocol's entire reward distribution system.
Manual Review
Set checkpoint to user's share instead of total
Or track claimed amounts instead of shares
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.