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

Receive,Fallback

Receive,Fallbackについて学習します

Receive,Fallbackはコントラクトが通常の関数以外に持てる特別な関数です

宣言

それぞれ以下のように宣言される

Receive

receive() external payable [virtual] [override] [modifier] {}

function宣言と引数を持たず、external payableが必須で返り値を持てない virtual,override,modifier修飾子を付けることが可能

Fallback

fallback() external [payable] [virtual] [override] [modifier] {}

function宣言と引数を持たず、externalが必須で返り値を持てる(ただしreturnsの定義ではなくreturnDataを用いる) virtual,override,modifier修飾子を付けることが可能

呼び出し

以下のような判定で呼び出される

msg.dataとはcallに用いる関数シグネチャとその引数であり、Transfer,Sendの場合は空になる

Reference