claimThrone()
Function Prevents All GameplayNormal Behavior: Players should be able to claim the throne by sending ETH >= claimFee
, becoming the new currentKing
. Previous king receives a payout, and the fee increases for the next claim.
Issue: Due to an inverted condition in claimThrone()
, the contract rejects ALL claims because it incorrectly requires the caller to be the current king — which is logically impossible for new players, when currentKing
is initially address(0)
.
Likelihood:
100% Reproducibility: Every claimThrone()
call reverts until the contract is fixed. No edge cases.
Immediate Failure: The issue manifests on the very first interaction, preventing further gameplay.
Impact:
Game Bricked: Core functionality is completely broken. No throne claims possible.
User Trust & Reputation Damage: The project appears non-functional, which may erode user confidence even though funds remain safe.
Here’s a Foundry test script which can be run against a local Ethereum fork.
This test reverts 100% of the time due to incorrect require()
logic.
Even after sending valid ETH, currentKing
remains address(0)
and no player becomes king.
Add explicit validation for currentKing != address(0)
in payout logic.
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.