A soulmate entering the queue first to look for another soulmate is not minted their NFT, unlike their soulmate which joins in second. Assuming the airdrop was correctly implemented, it would check if the claimer has their NFT minted. This prevents the first soulmate to claim their airdrops.
In the Soulmate::mintSoulmateToken function, the following code part mints the NFT token:
The _mint function is only called, if a second soulmate joins the first soulmate waiting in the queue for their soulmate. which then mints the NFT to the second soulmate. Nevertheless, the first soulmate never receives their NFT token.
Add the following PoC to the BaseTest.t.sol to test for the issue:
The Airdrop::claim function supposedly only sends rewards to those, who are in possession of a soulmate NFT token. Since soulmate1 did not get their NFT minted, they will never receive their airdrops.
Foundry
Upon successfully matching two soulmates, mint the NFT to both:
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.