Normally, any player who is not the current king should be able to call claimThrone()
by paying the required fee to become the new king.
However, the current implementation uses a require
condition that mistakenly allows only the current king to claim the throne, which breaks the entire game logic.
Likelihood:
The issue occurs on every call to claimThrone()
after deployment.
It is persistent, and no precondition has to be fulfilled.
Impact:
Practically, no participant can execute the claimThrone()
function successfully.
The game is completely unplayable, because no new king can ever be crowned.
Deploy the core contract Game.sol
, then any user can attempt to call claimThrone()
:
Replace ==
with !=
in the requirement statement to correctly enforce that new participants can become king:
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.