When LikeRegistry::likeUser is called the likes mapping as well as matches gets updated and internally calls LikeRegistry::matchRewards. The userBalances mapping does not get updated leaving the like payments for each individual untracked.
LikeRegistry::likeUser does not get to track the individual user's like payments since they will happen in separate transactions leaving LikeRegistry::matchRewards to default the couple's balances to 0. This makes LikeRegistry function just like a honeypot allowing users to buy-in (make deposits) but they are unable to withdraw.
Without properly updating userBalances, the variables matchUserOne and matchUserTwo (which are always going to be 0) are summed to obtain totalRewards (0), and fees are calculated from totalRewards (obtaining 0) as well.
multiSigWallet gets deployed with 0 ETH sent into it leaving the couple's contributions for their date locked in LikeRegistry. The couple loses all funds intended to be put towards use on their first date.
Manual Review, Remix IDE.
Properly track the contributions of individuals to allow them maximize the use of the DatingDapp.
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.