Description: The contract allows the users to participate in voting for martenitsa tokens listed on the marketplace (only producers can add their MartenitsaTokens for voting). After the voting period ends, the owner can announce the winner based on the number of votes, and the winner receives a HealthToken as a reward. However, In MartenitsaVoting::announceWinner the function does not delete the hasVoted mapping users because of that the previous voting participant remains always saved in the hasVoted mapping that's why next time when the voting for martenitsa tokens start the previous users cannot participate in the this voting listed on the marketplace.
Impact: The previous users can not participate in the future voting tokens listed on the marketplace because this protocol is no longer usable.
Proof Of Concept: Paste this test to your test folder and run the test.
Recommendation: Delete all the participants from the hasVoted mapping so that next time same user can participate in voting for martenitsa tokens listed on the marketplace.
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.