GivingThanks

First Flight #28
Beginner FriendlyFoundry
100 EXP
View results
Submission Details
Severity: low
Invalid

Missing Events for Critical Operations

Summary

Contract lacks event emissions for critical state changes like charity registration, verification, and admin changes.

Vulnerability Details

function registerCharity(address charity) public {
registeredCharities[charity] = true;
// No event emitted
}
function verifyCharity(address charity) public {
require(msg.sender == admin, "Only admin can verify");
verifiedCharities[charity] = true;
// No event emitted
}
function changeAdmin(address newAdmin) public {
require(msg.sender == admin, "Only admin can change admin");
admin = newAdmin;
// No event emitted
}

Impact

LOW:

  • No on-chain tracking of important changes

  • Difficult to monitor contract activity

  • Limited transparency for users

  • Hard to build proper indexing

Tools Used

  • Manual code review

  • Event analysis

  • Best practices review

Recommendations

contract CharityRegistry {
event CharityRegistered(address indexed charity);
event CharityVerified(address indexed charity);
event AdminChanged(address indexed oldAdmin, address indexed newAdmin);
function registerCharity(address charity) public {
registeredCharities[charity] = true;
emit CharityRegistered(charity);
}
}
Updates

Lead Judging Commences

n0kto Lead Judge 10 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

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