When the “For" votes outweigh the “Against" votes, the funds are sent to those who voted “For" . If everyone votes “For" there is no problem, but the calculation of the amount when there are “Against” votes is incorrect.
In the _distributeRewards() function, uint256 rewardPerVoter = totalRewards / totalVotes; is calculated and rewardPerVoter is sent to the VotesFor person. However, since uint256 totalVotes = totalVotesFor + totalVotesAgainst; is calculated, ETH is locked into the contract without being transferred for the amount of totalVotesAgainst.
The POC is as follows. This test fails.
The appropriate amount is not transferred and ETH is locked to the contract.
Manual
uint256 rewardPerVoter = totalRewards / totalVotesFor;
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.