The Pot::_transferReward
uses an unchecked transfer operation to distribute rewards to users. This could result in situations where the reward transfer fails without detection, potentially leaving users without their expected rewards.
The _transferReward function handles the distribution of rewards to individual users:
This transfer operation does not check the return value to ensure the transfer was successful. If the transfer fails, the function will not revert, leading the contract to believe the transfer was successful when it was not.
User Rewards: Users may not receive their rewards if the transfer fails.
Locked Funds: If rewards are not transferred as expected, they may remain locked in the contract, potentially leading to funds being stuck and unusable.
Manual Review
Slither
Implement the SafeERC20 library’s safeTransfer function to handle transfers and ensure the operation’s success:
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.