Automated Invariant Generation for Solidity Smart Contracts