The endGame function in the smart contract uses the transfer() method to distribute prizes to players. However, this implementation introduces a critical bug when interacting with modern smart contract wallets (e.g., Gnosis Safe). The transfer() method imposes a hard gas limit of 2300 gas, which is insufficient for most smart wallets to process incoming Ether. Consequently, transactions to such wallets revert, preventing prize distribution and potentially locking funds in the contract.
Funds will be locked in contract if player is a smart wallet or contract that requires more than 2300 gas to receive ether
Manual Review
Replace transfer() with the recommended call() pattern:
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.