The contract requires users to send at least 1 ETH to like someone but fails to track these deposits. This results in funds getting stuck, preventing rewards and fees from being distributed. Even when users match, no ETH is sent, breaking the core functionality. Extra ETH sent is also not refunded or credited, leading to unintended overpayments.
ETH sent by users is never stored in userBalances
, making the reward system ineffective. When a match occurs, the contract calculates rewards based on empty balances, leading to zero payouts. Users who send more than 1 ETH also receive no credit or refund for the excess.
Users lose funds as they cannot claim rewards, and the contract fails to collect fees.
The contract should update userBalances[msg.sender]
when ETH is sent to ensure funds are properly tracked. It should also handle excess ETH by either refunding it or enforcing an exact deposit amount.
Likelihood: High, always. Impact: High, loss of funds
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.