Expected Behavior:
The refillSepEth() function should reliably top up the faucet’s ETH balance for future claims. It should validate inputs strictly and emit an event confirming the refill.
Actual Behavior:
The function currently validates msg.value against the _amountToRefill argument, but this is redundant and can cause user confusion or failure if mismatched accidentally. Additionally, there’s no mechanism to handle overpayment, underpayment, or reject invalid transfers cleanly.
Likelihood
Medium :Owner-triggered, but likely to occur during manual refill operations or testing phases.
Impact
1.The function can fail even when ETH is sent correctly if the owner misinputs amount to refill.
2.The UX for the owner or scripts interacting with the contract worsens.
3.In a worst-case scenario, an invalid refill could delay faucet availability to users.
Explanation:
Even though the transaction sends 1 ETH, the call fails because amount ToRefill != msg.value, proving the redundant check breaks expected behavior.
Explanation
Removes the _amountToRefill parameter to avoid mismatch and simplify usage.
Relies solely on msg.value, the native and accurate ETH value indicator.
Keeps the event emission for transparency and tracking.
Improves UX, reduces call errors, and ensures seamless faucet operation.
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.
The contest is complete and the rewards are being distributed.