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.