Beginner FriendlyFoundryNFT
100 EXP
View results
Submission Details
Severity: low
Valid

Wrong event emission

Summary

Wrong event emission in RapBattle.sol contract

Vulnerability Details

emit Battle(msg.sender, _tokenId, random < defenderRapperSkill ? _defender : msg.sender);

It should be

emit Battle(msg.sender, _tokenId, random <= defenderRapperSkill ? _defender : msg.sender);

to synchronize with the results:

// If random <= defenderRapperSkill -> defenderRapperSkill wins, otherwise they lose
if (random <= defenderRapperSkill) {
// We give them the money the defender deposited, and the challenger's bet
credToken.transfer(_defender, defenderBet);
credToken.transferFrom(msg.sender, _defender, _credBet);
} else {
// Otherwise, since the challenger never sent us the money, we just give the money in the contract
credToken.transfer(msg.sender, _credBet);
}

Impact

Wrong winner announcement.

Tools Used

Manual review

Recommendations

Change to:

emit Battle(msg.sender, _tokenId, random <= defenderRapperSkill ? _defender : msg.sender);
Updates

Lead Judging Commences

inallhonesty Lead Judge over 1 year ago
Submission Judgement Published
Validated
Assigned finding tags:

Contradictory battle result event

Support

FAQs

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