The refillSepEth() function contains an unnecessary parameter that creates redundant logic and increases the chance of user error:
The function requires the caller to pass amountToRefill as a parameter, but then immediately enforces that this parameter must equal msg.value (the actual Sepolia ETH sent with the transaction). Since the function reverts if these values don't match, the parameter provides no functional value - msg.value already contains all the information needed.
The amountToRefill parameter is essentially forcing the caller to repeat information that's already available in msg.value.
The owner must remember to pass the exact same value twice—once in the transaction value and once as a parameter. This is unintuitive and error-prone.
If the owner makes a mistake and the values don't match (e.g., refillSepEth{value: 1 ether}(0.5 ether)), the transaction reverts, wasting gas fees.
The equality check require(msg.value == amountToRefill, ...) consumes gas for a validation that provides no real security or functionality benefit.
The function appears more complex than necessary, making it harder to audit and understand. Reviewers might wonder if there's a hidden reason for the parameter, wasting audit time.
Remove the amountToRefill parameter entirely and use msg.value directly:
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.