i have a "registry" contract that holds a list of contract addresses. i would like to find a way to validate the contracts that register themselves with my registry contract. my thought was that a hash of the calling contracts code might suffice for it's "type signature" and could be used to verify that it is a contract of a certain type. i see that solidity has a sha3 function. how would i access the calling contracts hex representation?