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の場合は空になる