The FeeCollector contract contains an issue in its reward distribution mechanism where users may lose their entitled rewards due to improper tracking of claimed rewards. This occurs because the contract resets user rewards to the total distributed amount instead of properly accumulating them.
The issue exists in the claimRewards function where userRewards[user] is set to totalDistributed:
The reward calculation in _calculatePendingRewards:
Users lose rewards when claiming during active distribution periods
Incorrect reward distribution affects the fairness of the protocol's incentive mechanism
Financial loss for users who don't receive their full share of rewards
Manual Review
Modify the reward tracking mechanism to properly accumulate rewards:
Implement period-based reward tracking to ensure accurate distribution across multiple periods.
Add proper documentation for the reward calculation and distribution mechanism.
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.