I am trying to derive the Method ID, the Keccak (SHA-3) hash, in Python so that I may call the functions of my contracts once they are deployed as detailed in the ABI documentation: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI
This details that
0xcdcd77c0 should be the ID derived for the function with the signature
I have tried to replicate this using the python sha3 module (https://pypi.python.org/pypi/pysha3):
>>> import sys >>> import hashlib >>> import sha3 >>> s = hashlib.sha3_512() >>> s.update(b"baz(uint32,bool)") >>>s.hexdigest() 'f1bb0cbc152d49505684ee7d2a37a860af1820ff8052ed6b32eddd3d82f97e89b24aac5ef334f94474264795cb7672339aecfc2cd2dc1cd0b87adccada2e7bc1'
How can I get the first four bytes from this in the correct format to use as a method signature in a transaction? Converting this digest to hex doesn't seem to give the correct signature.