Chapter 1. A first look at decentralized applications
Table 1.1. Matrix summarizing key aspects of each term, with DAO standing for Dapp
Table 1.2. A summary of Solidity keywords used in the first code sample
Table 1.3. Remix test accounts whose full address is hidden behind the HTML
Table 1.4. Balance of each Remix test account after contract instantiation
Table 1.5. Balance of each Remix test account after a transfer operation
Chapter 2. Understanding the blockchain
Chapter 3. The Ethereum platform
Table 3.1. Comparison between an EOA and a Contract Account
Table 3.2. Ether denominations and values in Wei
Table 3.3. Wallet types and their characteristics
Table 3.4. Gas cost for simple EVM operations
Table 3.5. Ethereum client implementations by language
Chapter 4. Deploying your first smart contract
Table 4.1. Ethereum wallet account addresses
Table 4.2. Expected account balances
Table 4.3. Expected updated account balances
Table 4.4. Updated account balances after second transfer
Chapter 5. Programming smart contracts in Solidity
Table 5.1. Functions provided by the address type
Table 5.2. Default data location of variables and function parameters
Table 5.3. Members of the main global variables
Table 5.4. Access levels of a state variable
Table 5.5. Access levels of a function
Table 5.6. Actions that lead to a state modification
Table 5.7. Actions that can be interpreted as reading from state
Chapter 6. Writing more complex smart contracts
Table 6.1. Inheritance terminology
Table 6.2. Number of tokens assigned to each investor
Table 6.3. Amended ReleasableSimpleCoin token balance after a token transfer
Chapter 7. Generalizing functionality with abstract contracts and interfaces
Table 7.1. Differences between the ERC20 specification and SimpleCoin
Chapter 8. Managing smart contracts with Web3.js
Table 8.1. The solc compiler options used to compile SimpleCoin
Table 8.2. Expected account balances
Table 8.3. Expected new account balances
Table 8.4. Expected account balances
Table 8.5. Expected account balances
Table 8.6. Genesis file settings
Table 8.7. The options used to start geth against a private network
Chapter 9. The Ethereum ecosystem
Table 9.1. ENS registry mapping record
Table 9.2. Options used to start up the Swarm client
Chapter 10. Unit testing contracts with Mocha
Chapter 11. Improving the development cycle with Truffle
Table 11.1. Truffle directory structure
Table 11.2. Compilation artifacts
Chapter 12. Putting it all together: Building a complete voting Dapp
Table 12.1. Sample of unit tests you should cover against SimpleVoting
Chapter 14. Security considerations
Table 14.1. Characteristics of each external call execution type
Table 14.2. User and contract account addresses
Table 14.3. Initial state of the contracts
Table 14.4. State of the contracts and msg object following an external call
Table 14.5. Initial state of the contracts
Table 14.6. State of the contracts and msg object following an external call through delegatecall
Table 14.7. State of the contracts following an external call through callcode
Table 14.8. Summary of execution context and msg object in each call type
Table 14.9. Security attacks, strategies, and techniques
Table 14.10. Ethereum security resources ConsenSys Diligence has distributed
Chapter 15. Conclusions
Table 15.1. Public Ethereum versus Enterprise Ethereum building blocks