The normal behavior is that Claimed(treasureHash, recipient) reflects the address that receives payout.
The issue is that event emission uses msg.sender instead of the recipient parameter. Off-chain consumers indexing rewards from logs get systematically incorrect attribution.
Likelihood:
Every successful claim emits the wrong second indexed parameter.
Existing test demonstrates this behavior deterministically.
Impact:
Analytics, scoreboards, and monitoring systems receive corrupted claim attribution.
Operational and dispute-resolution workflows relying on event logs can fail.
Standalone reproduction:
Pick msg.sender = participant and recipient = anotherAddress.
Submit a valid claim(proof, treasureHash, recipient).
Inspect emitted log.
Observe second indexed argument equals participant instead of recipient.
Written explanation: the reward can be sent to recipient, but indexers reading the event will record PARTICIPANT as recipient because the contract emits the caller.
Use the function claim(bytes calldata proof, bytes32 treasureHash, address payable recipient).
The event is declared as event `Claimed(bytes32 indexed treasureHash, address indexed recipient);`, which clearly indicates that the second indexed field is meant to represent the reward recipient, but `claim()` emits `Claimed(treasureHash, msg.sender)` instead of `Claimed(treasureHash, recipient)`, even though the ETH transfer is sent to recipient and the proof itself is constructed around the public inputs (treasureHash, recipient). As a standalone finding, this is appropriately low severity because it is fundamentally an event/accounting inconsistency rather than a direct loss-of-funds issue: the core state transition and payout still follow the intended recipient, but off-chain consumers reading the event log will observe incorrect metadata about who was associated with the claim.
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.