メインコンテンツまでスキップ

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を送金に利用することが推奨されている

Reference