Contracts should only accept ETH through intended functions to prevent accidental fund loss and maintain clear accounting.
The contract includes a receive()
function that accepts ETH sent directly to the contract address without providing any mechanism to recover these funds.
Likelihood:
Users frequently send ETH directly to contract addresses by mistake
Frontend applications may incorrectly send ETH to contract address instead of specific functions
Impact:
Funds become permanently stuck in the contract
Users lose ETH with no possibility of recovery
Contract accounting becomes inconsistent
No benefit provided by allowing direct ETH deposits
Option 1: Remove the receive()
function entirely:
Option 2: Add recovery mechanism for stuck ETH:
Option 3: Redirect direct ETH deposits to pot:
There is no reason for a user to directly send ETH or anything to this contract. Basic user mistake, info, invalid according to CH Docs.
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.