There are multiple ways to sign up for the dinner without actually funding it:
ChristmasDinner::changeParticipationStatus allows signing up for the dinner without funding it.
Funding amount is not checked to be non-zero in ChristmasDinner::deposit() nor in ChristmasDinner:receive() either.
Anyone can sign up for the dinner by funding it, then get a refund and still be considered a participant.
Although no mimum funding amount is implemented, allowing participants to sign up with amount 0 will effectively defeat the purpose of the contract, whis is defined in its About section: with our Christmas Dinner Contract we directly "force" the attendees to pay upon signup, so the host can plan properly knowing the total budget after deadline.
When someone who is not a participant of the contract calls ChristmasDinner:changeParticipationStatus before the deadline, they will be set as a participant despite bypassing the depositing of funds:
Currently there is no minimum funding amount in order to sign up using ChristmasDinner:deposit() or ChristmasDinner:receive() either, which again allows participants to sign up without funding the dinner at all, defeating the purpose of the contract.
The ChrismasDinner:refund() function should also reset the participation status of a user in order to prevent them from showing up to the dinner after being refunded.
Anyone can sign up without funding the dinner.
Add the following lines:
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.