There's no timeout mechanism for commit phases after the initial turn
The following code snippet shows how each move is commited
Unlike the reveal phase which has timeoutReveal() to handle non-responsive players, here there's no such equivalent timeoutCommit() function or commit deadline, which with the lack of creates a permament lockup vector.
Permanent lock of both players' funds (ETH or tokens) in the contract with no recovery method
Manual code review
Add a commit phase timeout for each turn by introducing a commitDeadline
variable in the Game
struct
Set commitDeadline at the start of every commit phase
Implement a timeoutCommit function which allows the responsive player to claim victory/refund if the opponent fails to commit before the set deadline
Attack allows a player to reveal their move for the next turn before the opponent commits
Attack allows a player to reveal their move for the next turn before the opponent commits
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.