Solidity contract compiler

Because it's optional. I'll add a comment.