The gameActive state variable is only set to false within the endGame function, which requires owner intervention. The startGame function requires gameActive to be false before initiating a new game. If the owner loses their keys or neglects to call endGame after endTime has passed, gameActive will remain true indefinitely.
The contract becomes permanently locked out of starting new games if the owner cannot or does not call the endGame function after the intended game duration (endTime) has elapsed.
Remove the explicit gameActive state variable and rely directly on comparing block.timestamp with startTime and endTime to determine the game's active status within functions.
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.