bug-free smart contracts in Solidity