A user can start a game even though there are not enough funds on the contract to pay him back if he wins.
startGame()
do not check if there is enough ETH at the start to pay back the user in case he wins.
If a user wins, endGame()
It will revert as it will try to send 2 ether, but there are insufficient funds on the contract.
There is no way for the user to retrieve his funds.
A user can lock all of his 1 ETH on the contract.
Manual
Check that the contract holds enough funds to pay the user back in case he wins when creating a game.
We can go further and require the contract to check if other players are already playing and that the balance is superior to the total of players playing.
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.