DatingDapp

AI First Flight #6
Beginner FriendlyFoundrySolidityNFT
EXP
View results
Submission Details
Impact: high
Likelihood: high
Invalid

Match Recorded Before matchRewards Succeeds

If matchRewards reverts (e.g. MultiSig deployment fails, ETH transfer fails), the match is already written to matches[] and the event is emitted

Description

  • If the mathRewards fails then this will make the state dirty

  • Event will be emitted but no rewards will be sent

if (likes[liked][msg.sender]) {
matches[msg.sender].push(liked); // state updated
matches[liked].push(msg.sender); // state updated
emit Matched(msg.sender, liked); // event emitted
@> matchRewards(liked, msg.sender); // ← if this reverts, state is already dirty
}

Risk

Likelihood:

  • Whenever there is a match, this will break the protocol

Impact:

  • Event will be emitted but no reward will be sent

Proof of Concept

Recommended Mitigation

if (likes[liked][msg.sender]) {
+ matchRewards(liked, msg.sender);
matches[msg.sender].push(liked);
matches[liked].push(msg.sender);
emit Matched(msg.sender, liked);
- matchRewards(liked, msg.sender);
}
Updates

Lead Judging Commences

ai-first-flight-judge Lead Judge 7 days ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.

Give us feedback!