An empty message still invokes the code of the contract and is the mechanism that allows Solidity to implement a feature of a fallback function per contract.
But when msg.data
is empty, why does contract code still need to execute?
If a caller leaves msg.data
empty, meaning they don't want to pass any data or call any functions at all on a contract, why does the contract code still need to run?