i_snow.balanceOf(receiver) is called on line 76 (zero check) and again on line 84 (actual amount). Additionally, getMessageHash() reads the balance two more times (lines 113, 117). Total: 4 reads of the same value in a single claim flow.
Likelihood:
Low with current standard ERC20, but any token with transfer hooks could change balance between reads.
Impact:
Merkle proof could be computed on a different amount than what gets transferred.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.