Learn the most powerful primary programming language for writing smart contracts and discover how to write, deploy, and test smart contracts in Ethereum
Key Features
- Get up and running with the Solidity programming language
- Use Solidity as a scripting language to build smart contracts in Ethereum
- Learn to test and deploy smart contracts to your private blockchain
Book Description
Solidity is a contract-oriented language with a syntax that is highly influenced by JavaScript, and designed to compile code for the Ethereum Virtual Machine (EVM). Solidity Programming Essentials is your guide to understanding Solidity programming to build smart contracts for Ethereum and blockchain from ground-up.
The book will begin by taking you through concepts like blockchain, and Ethereum, in addition to highlighting their most important components. Next, you'll delve into the technicalities of installing the necessary tools to write, test, and debug Solidity contracts on Ethereum. You'll then go on to explore the layout of a Solidity source file and work with the different data types. The next set of recipes will help you to work with operators, control structures, and data structures while building your smart contracts. As you progress further, you'll study function calls, return types, function modifiers, and recipes in object-oriented programming with Solidity. You'll also get well-versed with event logging, exception handling, and testing and debugging smart contracts.
By the end of this book, you'll not only have knowledge of Ethereum and blockchain concepts, but also be able to write, deploy, and test smart contracts in Ethereum.
What you will learn
- Study the basics and foundational concepts of Solidity and Ethereum
- Explore programming in Solidity and its various nuances
- Create new accounts and submit transactions to blockchain
- Understand the language to write smart contracts
- Discover the major tools for developing and deploying smart contracts
- Write defensive code using exception handling and error checking
- Understand Truffle basics and the debugging process
Who This Book Is For
This beginner-level book is for anyone who wants to get started with Solidity programming for developing Ethereum smart contracts. No prior knowledge of Ethereum Virtual Machine (EVM) is required.
Table of Contents
- Introduction to Blockchain, Ethereum, and Smart Contracts
- Installing Ethereum and Solidity
- Introducing Solidity
- Global Variables and Functions
- Expressions and Control Structures
- Writing Smart Contracts
- Functions, Modifiers, and Fallbacks
- Exceptions, Events, and Logging
- Truffle Basics and Unit Testing
- Debugging Contracts
How to compile Solidity Contracts using Solidity Compiler (Solc)Solidity compiler can be downloaded using the command
npm install -g solc
This command not only provides access to solc compiler from node environment but it also provides a commandline equivalent (Solcjs)
Using solcjs is shown next.Getting version number of solidity compilersolcjs --helpCompiling and generating both ABI definition and binary codesolcjs "Ether.sol" --abi --binCompiling, optimizing and generating ABI definition and binary code.solcjs "Ether.sol" --abi --bin --optimizeChanging the output foldersolcjs "Ether.sol" --abi --bin --optimize --output-dir "C:outputfolder"
This book exclusively focuses on Solidity as a programming language for writing smart contracts. It gets into details about programming language and teaches how to use it for smart contracts. It can be deployed on multiple Blockchain platforms like Hyperledger and Monax. Moreover, It is quite widely adopted for the Ethereum platform. Ethereum provides multiple platforms and environments. These includes test environments like Rinkeby, Kovan, main network and also supports private deployments. This book is not about how to use these platforms. We can use these platforms even without using Solidity. This book does not discusses in depth the options available with Geth and Parity although it mentions steps to create a private network so that reader can deploy their own smart contracts.
There are multiple technologies used for writing web applications including HTML CSS, JavaScript etc. This book will not talk about these technologies. There are ample books on these in market.
There is a gap in market where none of existing books deals exclusively about Solidity and this book is about teaching nuances of Solidity and writing smart contracts.
Imagine knowing all the rules about working with Storage and Memory variables in Smart contracts, error handling, fallback functions, modifiers in depth along with contract level dependency deployment using Truffle. This book covers these aspects and more!!Solidity can be used uniformly whether its windows/Linux or a heterogeneous environment. There is no difference in authoring smart contracts based on them.