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 refundEth to fail permanently, and preventing the user from getting refund before deadline.
To mitigate this issue, consider use call for withdrawing ether instead of transfer. Moreover, the refund function is prevent against reentrancy attack.
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.