Joining the MartenitsaEvent makes an user producer temporarily by adding them to producers list and setting isProducers[] to true. stopEvent function is used to stop the event and undo the producer status temporarily given to the users. The function implementation sets isProducers[] to false, but does not delete the entry from producers list. Presence of a user's entry in producers list is not intended.
joinEvent function uses _addProducer function to grant users producer status by setting
-> isProducer[_producer] = true; and producers.push(_producer);
stopEvent is intended to revoke producer status of users, sets isProducer[participants[i]] = false; rightly, but does not delete/undo previously added producers.push(_producer).
Although the user is revoked his producer status by using isProducer mapping, his address is still present in producers list, which is unintended.
Manual Review
In stopEvent function call, we can add delete producers[participants[i]] or follow any other implementation that is deemed fit.
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.