Players may accidentally send more ETH than the required claim fee when calling claimThrone()
.
The contract does not refund the excess amount; all sent ETH is added to the pot and platform fees.
Likelihood:
This will occur whenever a player overpays the claim fee.
Users may lose funds due to mistakes.
Impact:
Loss of user funds.
Poor user experience and reduced trust.
The function checks: require(msg.value >= claimFee, ...)
If you send less: It fails (reverts).
If you send more: All ETH (msg.value
) is accepted. The contract proceeds to process the claim as if only the claimFee
had been sent.
But: There is no logic to refund msg.value - claimFee
(the "overpaid" amount).
All the ETH received is distributed among platform fees and the pot per the function's logic; the player cannot recover any excess ETH sent by mistake.
Add explicit logic in claimThrone()
to refund any amount sent above the required claim 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.