Transfer
コントラクトにおけるETHの送信方法について学習します
送信はいくつかの方法があり、それぞれ振る舞いが異なります
transfer
(address payable).transfer(amount)
送金に失敗した場合は例外をスローし、トランザクションの実行を中止する
send
bool success = (address payable).send(amount);
送金に失敗した場合はfalseを返し、トランザクションの実行は継続する
call
(bool success, bytes memory data) = (address payable).call{value: amount}("");
送金に失敗した場合はfalseを返し、トランザクションの実行は継続する またdataにエラーメッセージが格納される
現在はこのcallを送金に利用することが推奨されている