Solidity Programming Essentials: A guide to building smart contracts and tokens using the widely used Solidity language, 2nd Edition