When a user burns their profile (burnProfile function in SoulboundProfileNFT) or when their profile is blocked (blockProfile function), there is no mechanism to return the ETH they've paid for likes that did not result in mutual matches. This means users who leave or are removed from the platform lose access to these funds.
Users lose their investment for non-mutual likes when they decide to exit or are forced out of the platform, potentially leading to user dissatisfaction.
This situation could undermine trust in the platform, as users might feel entitled to reclaim their unused payments.
Manual Review
Implement a refund system for non mutual likes when users burn their profiles or get blocked:
Modify burnProfile and blockProfile methods:
solidity
Add refundNonMutualLikes function in LikeRegistry:
solidity
Additional Considerations:
Ensure userLikes or similar data structure is implemented to track non-mutual likes for each user.
Consider applying a small administrative fee or setting a time limit for when refunds can be claimed to avoid potential abuse.
This system assumes each like costs 1 ETH; adjust if the system allows for variable like costs.
This approach ensures users retain control over their funds for non-mutual likes even when they leave or are removed from the platform, enhancing user trust and experience.
Likelihood: Low, burning with money in it would be a user mistake, and being blocked is Low. 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.