xxxxxxxxxx
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
contract Receive_FallBack {
event ReceivedEth(uint256 amount);
function fundme() public payable {
emit ReceivedEth(msg.value);
}
receive() external payable {
fundme();
}
fallback() external payable {
fundme();
}
// is msg.data empty?
// / \
// yes no
// / \
// receive() exists? is the function selector fundMe()?
// / \ / \
// yes no no yes
// / \ / \
// receive() fallback() fundMe()
}