In the claimFaucetTokens() function, the contract includes the following line:
The variable faucetClaimer is declared as a persistent state variable, but it is only used to temporarily hold the caller’s address.
Since this variable is overwritten with every call, it does not have any meaningful persistence.
Moreover, the public getter getClaimer() returns the previous caller’s address, which could mislead front-end or off-chain services relying on it for identifying the current claimer.
This also wastes gas, because writing to storage costs significantly more than using a local (memory) variable—approximately 20,000 gas per write operation.
Impact:
External systems may incorrectly assume getClaimer() reflects the current user, causing state misinterpretation or logic errors.
Every claim unnecessarily writes to storage, increasing gas costs.
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.