問題一覧に戻る
中級関数
問題59: Receive関数
Solidityのreceive関数を学習します - プレーンなEther転送を受信するための特別な関数です。ReceiveはETHがデータなし(空のcalldata)で送信されたときに呼び出されます。externalかつpayableでなければならず、引数や戻り値はありません。Fallback関数はデータ付きの呼び出しや存在しない関数を処理します。一緒に、コントラクトがすべての受信トランザクションを処理できるようにします。receive/fallbackの区別の理解はウォレット、支払い分割器、ETHを受け入れるコントラクトの構築に重要です。現代のSolidityコントラクトでの適切なETH処理に不可欠です。
pragma solidity ^0.8.0;
contract EtherReceiver {
event Received(address from, uint256 amount);
// ETH受信関数
() external {
emit Received(msg.sender, msg.value);
}
// その他の呼び出しのフォールバック
() external payable {
// Handle other calls
}
}