The getTimeRemaining function handles the end time boundary (block.timestamp == endTime) differently from other game functions like searchForEgg and getGameStatus, which could lead to player confusion and inconsistent game state reporting.
Compare how different functions handle the end time condition:
The inconsistency occurs at exactly block.timestamp == endTime:
getTimeRemaining returns 0 (suggests game is over)
searchForEgg allows playing (suggests game is active)
getGameStatus reports "Game is active" (suggests game is active)
LOW severity because no funds or assets are at risk, but it affects user experience at a very specific timestamp.
Manual code review
Make the boundary condition handling consistent across all functions.
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.