The game time control in the EggHuntGame contract has inconsistencies that may lead to game state not matching actual time, affecting game experience and fairness.
The current game status reporting mechanism allows the game to be in a state where gameActive
is true but block.timestamp > endTime
:
However, there is no automatic mechanism to end the game when time expires. This means the game can still be "active" even though getGameStatus
returns "Game time elapsed".
Game state inconsistent with actual time
Potential user confusion
Possible game mechanic exploits
Reliance on manual intervention to end games
Manual code review
Time control logic analysis
Implement an automatic game state update mechanism or add a function that can be called by anyone to update game state when time expires:
Incorrect values reported when a game is ended early
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.