Addresses eligible for present can collect present for more than one
The comment mentions that addresses should not be able to collect present more than once, it does this by checking the nft balance of the address. Attacker can bypass this check by transfering their nft to another address owned by them to make their balance to 0 and collect more than once
Attacker can collect present more than once
Manual review
Instead of checking the balance, create a mapping that track if an address has collected their present
Relying on balanceOf > 0 in collectPresent() allows the msg.sender to send their present to another address and then collect again.
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.