In the claimThrone()
function, a comment states:
But this logic is not implemented. Instead, the full msg.value - platformFee
is added to the pot, and the previous king never receives any payout.
The Game::claimThrone()
function includes a comment indicating that a portion of the claim fee should be sent to the previous king as a reward. However, this logic is completely missing in the actual implementation. Instead, the full msg.value - platformFee
is added to the pot, and the dethroned king receives nothing, breaking the intended game mechanics.
This introduces a mismatch between expectations and reality, especially if users were led to believe (via UI/comments/announcements) that dethroned kings will be rewarded. The lack of such reward removes any economic incentive to compete, discouraging participation and possibly leading to centralization or inactivity.
Economic incentive flaw: Being dethroned has no reward, which can discourage users from participating.
Creates a mismatch between expected reward flow (as hinted in the comment or UI) and actual smart contract logic.
Reduces game attractiveness and can break trust if off-chain frontends claim there's a payout.
Can be considered loss of user funds if users were expecting a return on getting dethroned.
Implement logic to pay a small reward to the previous king
Loss of incentive: Users may avoid participation once they realize there's no payout after losing the throne.
Trust issue: Off-chain users and UIs expecting a reward will find the protocol misleading.
Potential loss of funds: Players may assume they’ll get some reward and spend ETH accordingly.
Game disruption: The competitive loop of the game (claim → dethrone → reward) breaks, turning the game into a one-way ETH sink.
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.