The receive() function emits the NewSignup event for all Ether deposits, regardless of whether the sender is a new participant or an existing participant adding more Ether. This can create misleading logs, as it might appear that a new participant has joined when an existing one has only contributed additional funds.
The issue lies in the receive function, which emits the NewSignup event unconditionally when Ether is received. It does not check whether the sender is already a participant, conflating new signups with additional Ether contributions.
The NewSignup event should only be emitted for new participants, ensuring the event logs accurately reflect participant signups
-> Observers might misinterpret the event logs, believing more participants have joined than actually have.
-> Systems or analytics tools relying on event data might overcount participants or miscalculate contributions.
-> The host and participants could make planning decisions based on incorrect assumptions about participation levels.
Manual code review of the receive function.
Add a conditional check to determine if the sender is a new participant or an existing one:
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.