Single address can vote only once. But anyone can create multiple wallets to vote for specific token, which leads to manipulation of voting.
Single user can create many EOA wallets for free and then call MartenitsaVoting::voteForMartenitsa
function with each wallet to vote for specific token.
Voting can be easily manipulated by creating many wallets and voting for specific token. Which makes voting logic invalid and voting is main purpose of this MartenitsaVoting
contract.
User creates 100 EOA wallets
Calls MartenitsaVoting::voteForMartenitsa
function with each wallet to vote for token id 0
Now token id 0 has 100 votes
Place the following test into MartenitsaVoting.t.sol
.
Manual review
Voting logic needs to be changed completely. In voting there shouldn't be logic that every address can vote once.
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.