A faulty require check in the Game::claimThrone() function that prevents anyone including non-kings from claiming the throne.
No one can become the king the core functionality of the game is blocked permanently.
Normal Behavior:
Any user should be able to claim the throne by sending the required claimFee() and become the currentKing. Only the currentKing should be restricted from calling claimThrone() again to avoid redundant updates.
Bug:
In the current implementation, even the first user to call claimThrone() gets blocked by the require condition because the contract incorrectly assumes currentKing == msg.sender before the first successful claim. As a result, no one can claim the throne, making the game unplayable.
Likelihood: HIGH
This bug always occurs on the first claim, preventing anyone from participating.
The game becomes immediately unusable on deployment.
Impact: HIGH
No player can ever become the currentKing.
Game flow is completely broken; users are blocked from interacting even if the fee is correct.
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.