A minimal core calculus for Solidity contracts