In Solidity, there are multiple ways to call an external contract and send ether. The function transfer
reverts if the transfer fails. However, the functions call
and send
return false. Programmers may mistakenly expect call
and send
to revert, and fail to check for their return value.