The use of transfer() (with its fixed 2300 gas stipend) instead of call() for sending ETH can cause transactions to fail when interacting with recipient contracts that have complex receive/fallback functions. This limitation prevents compatibility with contracts requiring more than 2300 gas for their receive logic, potentially breaking core contract functionality and creating poor user experience.
Complex recipient contract functions requiring more than 2300 gas will cause withdrawals to fail permanently, effectively locking funds in the contract and preventing the owner from accessing their fees.
Use the call method with reentrancy guards in order to mitigate this issue
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.