The issue arises because the MarketCreator contract fails to decrement the market.reward value when users redeem their rewards. This leads to an inconsistency where the stored market.reward value remains artificially high, even after redemptions, causing the contract to incorrectly report available rewards. Over time, this discrepancy can result in redemption attempts that exceed the contract's actual balance, causing transactions to revert and potentially leading to a DOS for users.
The MarketCreator contract allows users to redeem their assets and rewards after the lock duration expires. However, the market.reward value is not properly decremented when rewards are claimed. This results in:
Stale Reward Value: The market.reward remains unchanged even after redemptions, causing subsequent users to calculate their rewards based on an inflated, incorrect value.
Failed Transactions: When users attempt to redeem rewards, raacToken.safeTransfer(msg.sender, reward) may revert due to insufficient contract balance, as the actual available rewards are lower than the reported market.reward.
User funds may become stuck in the contract
Rewards are distributed unfairly.
Manual audit
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.