Santa's List

AI First Flight #3
Beginner FriendlyFoundry
EXP
View results
Submission Details
Impact: low
Likelihood: low
Invalid

[I-01] Event Parameters Not Indexed

Event Parameters Not Indexed + Reduced Off-Chain Observability

Description

  • The protocol emits events to signal that a person has been checked once or twice, including the address involved and the resulting status. These events are intended to be consumed by off-chain services such as indexers, monitoring tools, or analytics systems.

  • The CheckedOnce and CheckedTwice events do not mark any parameters as indexed, which prevents efficient filtering by address or status at the log topic level and forces off-chain consumers to scan and decode all emitted events.

event CheckedOnce(address person, Status status);
event CheckedTwice(address person, Status status);
// @> No event parameters are marked as indexed

Risk

Likelihood:

  • Off-chain consumers query event logs by person address during routine indexing, monitoring, or analytics workflows

  • Event volume grows over time, increasing the cost and complexity of full log scans

Impact:

  • Reduced efficiency and higher operational cost for off-chain indexing and monitoring systems

  • Degraded developer experience and more complex integration logic for downstream consumers

Proof of Concept

// ethers.js example: cannot filter by `person` at the RPC level
contract.filters.CheckedOnce(personAddress);
// Instead, all CheckedOnce events must be fetched and decoded client-side
provider.getLogs({ topics: [CheckedOnceTopic] });

Recommended Mitigation

- event CheckedOnce(address person, Status status);
- event CheckedTwice(address person, Status status);
+ event CheckedOnce(address indexed person, Status indexed status);
+ event CheckedTwice(address indexed person, Status indexed status);
Updates

Lead Judging Commences

ai-first-flight-judge Lead Judge about 3 hours 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!