call() should be used instead of transfer() on an address payable.
The use of the deprecated transfer() function for an address will inevitably make the transaction fail when:
does not implement a payable function.
does implement a payable fallback which uses more than 2300 gas unit.
The msg.sender implements a payable fallback function that needs less than 2300 gas units but is called through proxy, raising the call's gas usage above 2300.
Additionally, using higher than 2300 gas might be mandatory for some multisig wallets.
eth can not be sent successfully
Manual review
using call()
instead of transfer()
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.