In solidity, function execution always needs to start with an external caller. A smart-contract will just sit on the blockchain doing nothing until someone calls one of its functions. So there will always be a msg.sender.
In solidity, function execution always needs to start with an external caller. A smart-contract will just sit on the blockchain doing nothing until someone calls one of its functions. So there will always be a msg.sender.