Compiling an ethereum smart contract