The smart contract includes functionality to create games using ETH bets via the createGameWithEth()
function. However, there is no corresponding joinGameWithEth()
function. Instead, thejoinGameWithToken()
function explicitly rejects ETH-based games through this condition:
As a result, any game created with an ETH bet (i.e., game.bet > 0) becomes permanently unjoinable. This leads to:
Funds being locked in the contract indefinitely.
A broken gameplay experience for ETH users.
Waste of gas and frustration for users trying to join games.
In the contract file : RockPaperScissors.sol
ETH-based games cannot be played at all.
ETH sent during game creation becomes locked unless a withdrawal mechanism exists (not provided in the snippet).
User funds are potentially frozen permanently.
Manual test
Put bet to be > 0
There IS a joinGameWithEth() function in the contract (lines 145-159) that allows players to join ETH-based games.
There IS a joinGameWithEth() function in the contract (lines 145-159) that allows players to join ETH-based 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.