In the event that a user invokes the MerkleAirdrop::claim function, carrying a fee value that exceeds the predefined FEE value, the system erroneously flags this as an InvalidFeeAmount. This results in an unwarranted premature reversion of the call. However, it’s important to note that such a scenario is, in fact, permissible within the system’s operational parameters.
Within the MerkleAirdrop::claim function, the condition if (msg.value != FEE) is employed to validate if the transaction fee FEE provided by the participant is adequate. While this condition is generally reliable, it fails to account for instances where the submitted fee exceeds the required FEE. In such cases, despite the fee being more than sufficient from a design standpoint, the function reverts due to the overly stringent condition. This represents a potential area for improvement in the function’s design to better accommodate varying transaction fees.
The stringent verification process in place could potentially inhibit users from successfully claiming their airdrop rewards.
Manual review
Change if (msg.value ! = FEE) {
to if (msg.value >= FEE) {
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.