The contract mints tokens to a winner's address based on the game type (ETH or token-based), using the mint
function. However, there are no safety checks to ensure that the recipient can actually receive the token
The current minting logic directly uses mint(...)
, which may succeed even when _winner
is a contract that cannot handle tokens.
Malicious or misconfigured contracts could receive tokens they can't use or accidentally lock them forever.
Loss of tokens: Tokens may be minted to contracts that do not support receiving them, causing them to be locked and unusable.
Unexpected behavior: If _winner
is a contract without handling logic, this might silently succeed in unsafe implementations or revert in safer ones.
Reduced interoperability: Limits the flexibility of game integrations with wallets, proxies, and contract accounts.
Manual review
Use safeMint()
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.