In the RockPaperScissors contract, tokens received from joinGameWithToken
and createGameWithToken
are permanently locked in the contract as there is no function to withdraw or transfer these tokens, and the contract is the owner of the token contract. This creates an ever-growing pool of inaccessible tokens.
The contract accumulates tokens in two ways:
Each token game locks 2 tokens in the contract (1 from creator + 1 from joiner)
When game finishes, new tokens are minted instead of transferring existing ones:
There is no function to:
Transfer accumulated tokens
Withdraw tokens
Recover locked tokens
Every token game permanently locks 2 tokens
These tokens can never be recovered
Creates "dead" tokens that dilute token value
Manual Review
Add token withdrawal function for admin
Fix the token game reward mechanism
Mints new tokens upon game completion or cancellation for token-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.