Let's say, I've a function defined on contract and anyone can call that function(a user, a different contract etc.).
Is there a way to identify within that function if it is a contract address or a user address in solidity? And if it is a contract, is it possible to identify the type of the contract?
Thanks in advance!