How to HACK a smart contract