The TwentyOne contract does not verify if it has sufficient balance (2 ETH) to pay out potential winnings before allowing a game to start. This can result in players winning games but being unable to receive their payouts.
No Balance Check:
startGame() function accepts bets without verifying contract balance
No guarantee that winning players can be paid
Players may win but not receive payouts
Contract could accept bets it cannot cover
Game integrity compromised
Manual Code Review
Add balance verification before starting games:
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.