Part 1: Compiling smart contracts in the browser