第1章 初探以太坊智能合约 1
以太坊诞生 1
智能合约 2
Solidity语言 2
一个货币合约的例子 6
本章小结 9
第2章 以太坊核心概念 10
区块链基础概念 10
共识协议:工作量证明(PoW) 12
以太坊虚拟机(EVM) 13
账户 13
以太坊钱包 16
交易 17
消息调用 17
费用(gas) 17
以太坊网络 18
存储、内存和栈 19
指令集 20
委托调用和库 20
日志 20
自毁 21
以太坊路线图 21
本章小结 22
第3章 Solidity合约内容 23
Solidity文件结构 23
合约结构 27
本章小结 29
第4章 Solidity数据类型 30
类型概述及分类 31
布尔类型(Boolean) 32
整型(Integer) 32
定长浮点型(Fixed Point Number) 34
定长字节数组(Fixed-size Byte Array) 35
有理数和整型常量(Rational and Integer Literal) 36
字符串常量(String Literal) 37
十六进制常量(Hexadecimal Literal) 37
枚举(Enum) 38
函数类型(Function Type) 38
地址类型(Address) 44
地址常量(Address Literal) 49
数据位置(Data Location) 50
数组(Array) 52
数组成员 55
字符串string及字节数组bytes 58
结构体(Struct) 60
映射(Mapping) 64
类型转换 65
var类型推导 67
运算符 67
本章小结 71
第5章 Solidity中的单位 72
货币单位(Ether Unit) 72
时间单位(Time Unit) 73
本章小结 74
第6章 Solidity全局变量及函数 75
区块和交易的属性 75
地址相关属性和函数 79
合约相关属性和函数 81
本章小结 82
第7章 Solidity表达式及控制结构 83
函数参数 83
控制结构 84
函数调用表达式 86
赋值表达式 89
变量声明与作用范围 90
错误处理 92
本章小结 96
第8章 合约 97
合约概述 98
创建合约 98
可见性 101
访问函数(Getter Function) 103
函数修改器(Function Modifier) 105
状态常量 108
视图函数(View Function) 109
纯函数(Pure Function) 110
回退函数(Fallback Function) 110
函数重载(Function Overloading) 112
事件 113
继承 116
构造函数(Constructor) 120
抽象合约(Abstract Contract) 123
接口(Interface) 124
库 124
Using for指令 128
本章小结 131
第9章 合约编译、部署、交互、调试 132
Solidity编译器 132
合约编译 134
合约部署及调用 136
使用geth 138
使用Remix+MetaMask 140
合约调试 144
本章小结 147
第10章 应用程序二进制接口(ABI) 148
简单理解ABI 148
ABI手册 149
本章小结 161
第11章 智能合约最佳实践 162
编码规范 162
代码格式 163
函数编写规范 170
安全性考虑 173
一些安全陷阱 174
编写合约的安全建议 176
本章小结 185
第12章 合约案例 187
代币 187
高级功能代币 196
众筹(ICO)合约 201
众筹智能合约代码 201
非同质化代币ERC721 206
本章小结 211
第13章 去中心化应用开发 213
JSON RPC 214
Web3 .js 215
在geth中使用Web3.js 216
在应用中使用Web3.js 216
去中心化应用案例 218
搭建测试环境 219
创建智能合约 220
合约加入事件 227
使用Web3监听事件、刷新UI 227
Truffle框架 228
安装Truffle 228
Truffle使用案例 229
在浏览器中运行 237
本章小结 239