Solidity中文文档
0.6.12
基础
入门智能合约
简单的智能合约
存储合约(把一个数据保存到链上)
子货币合约(Subcurrency)示例
区块链基础
交易/事务
区块
以太坊虚拟机
概述
账户
交易
Gas
存储,内存和栈
指令集
消息调用
委托调用/代码调用和库
日志
合约创建
失效和自毁
安装Solidity编译器
版本
Remix
npm / Node.js
Docker
二进制包
从源代码编译
预先安装环境 - 所有平台
最低的编译器版本
环境依赖条件 - macOS
环境依赖条件 - Windows
依赖的帮助脚本
克隆代码库
命令行构建
CMake参数
SMT Solvers
版本号字符串详解
版本信息详情
根据例子学习Solidity
投票合约
可能的优化
秘密竞价(盲拍)合约
简单的公开拍卖
秘密竞拍(盲拍)
安全的远程购买合约
微支付通道合约
创建及验证签名
创建签名
哪些内容需要签名
打包参数
在Solidity中还原消息签名者
提取签名参数
计算信息的Hash
ReceiverPays 完整合约代码
编写一个简单的支付通道
什么是支付通道?
打开支付通道
进行支付
关闭状态通道
通道有效期
完整合约代码
验证支付
库合约使用
Solidity 详解
Solidity 源文件结构
SPDX License Identifier
Pragmas
版本标识
标注实验性功能
ABIEncoderV2
SMTChecker
导入其他源文件
语法与语义
路径
在实际的编译器中使用
注释
合约结构
状态变量
函数
函数
修改器
(
modifier
)
事件 Event
结构体
枚举类型
类型
值类型
布尔类型
整型
比较运算
位运算
移位
加、减、乘法运算
除法运算
模运算(取余)
幂运算
定长浮点型
地址类型 Address
地址类型成员变量
合约类型
定长字节数组
变长字节数组
地址字面常量
有理数和整数字面常量
字符串字面常量及类型
十六进制字面常量
枚举类型
函数类型
引用类型
数据位置
数据位置与赋值行为
数组
bytes
和
strings
也是数组
创建内存数组
数组字面常量 / 内联数组
数组成员
数组切片
结构体
映射
可迭代映射
涉及 LValues 的运算符
delete
基本类型之间的转换
隐式转换
显式转换
字面常量与基本类型的转换
整型与字面常量转换
定长字节数组与字面常量转换
地址类型
单位和全局变量
以太币
(
Ether
)
单位
时间单位
特殊变量和函数
区块和交易属性
ABI 编码及解码函数
错误处理
数学和密码学函数
地址成员
合约相关
类型信息
表达式和控制结构
控制结构
函数调用
内部函数调用
外部函数调用
具名调用和匿名函数参数
省略函数参数名称
通过
new
创建合约
Salted contract creations / create2
表达式计算顺序
赋值
解构赋值和返回多值
数组和结构体的复杂性
作用域和声明
错误处理及异常:Assert, Require, Revert
assert
and
require
revert
try
/
catch
合约
创建合约
可见性和 getter 函数
Getter 函数
函数
修改器
(
modifier
)
Constant 和 Immutable 状态变量
Constant
Immutable
函数
函数参数及返回值
函数参数(输入参数)
返回变量
返回多个值
View 视图函数
Pure 纯函数
receive 接收以太函数
Fallback 回退函数
函数重载
重载解析和参数匹配
事件 Events
日志的底层接口
其它学习事件机制的资源
继承
函数重写(Overriding)
修改器重写
构造函数
基类构造函数的参数
多重继承与线性化
继承有相同名字的不同类型成员
抽象合约
接口
库
库的函数签名与选择器
库的调用保护
Using For
内联汇编
Example
Access to External Variables, Functions and Libraries
Things to Avoid
Conventions in Solidity
速查表
运算符优先级
全局变量
函数可见性
修饰符
保留关键字
语言语法
深入 Solidity 内部
状态变量储存结构
映射和动态数组
bytes
和
string
JSON Output
Layout in Memory
Layout of Call Data
Cleaning Up Variables
Source Mappings
The Optimiser
合约的元数据
字节码中元数据哈希的编码
自动化接口生成和 |natspec| 的使用方法
源代码验证的使用方法
应用二进制接口说明
基本设计
函数选择器
(
Function Selector
)
参数编码
类型
编码的形式化说明
函数选择器
(
Function Selector
)
和参数编码
例子
动态类型的使用
事件
JSON
处理
元组
(
tuple
)
类型
非标准打包模式
补充材料
Solidity v0.5.0 重大更新
语义变化
语义及语法更改
准确性要求
弃用元素
弃用命令行及 JSON 接口
构造函数变更
弃用函数
弃用类型转换
弃用字面量及后缀
弃用变量
弃用语法
和老合约进行交互
举例
Solidity v0.6.0重大更新
更改编译器不用关注的修改
需要明确指定的更改
语义和句法变化
新特性
接口变化
新错误报告器
Metadata 哈希选项
Yul 优化器
C API Changes
怎样修改代码
注释描述规范
文档举例
标签Tags
Dynamic expressions
Inheritance Notes
文档输出
用户文档
开发者文档
安全考量
陷阱
私有信息和随机性
重入
gas 限制和循环
发送和接收
以太币
(
Ether
)
调用栈深度
tx.origin问题
整型溢出问题
Clearing Mappings
细枝末节
推荐做法
认真对待警告
限定
以太币
(
Ether
)
的数量
保持合约简练且模块化
使用“检查-生效-交互”(Checks-Effects-Interactions)模式
包含故障-安全(Fail-Safe)模式
Ask for Peer Review
形式化验证
SMT Encoding
Model Checking Engines
Bounded Model Checker (BMC)
Constrained Horn Clauses (CHC)
Abstraction and False Positives
Reference Types and Aliasing
资源
常用资源
Solidity IDE及编辑器
Solidity 工具
第三方 Solidity 解析器
使用编译器
使用命令行编译器
Setting the EVM version to target
Target options
编译器输入输出JSON描述
输入说明
输出说明
错误类型
Compiler tools
solidity-upgrade
How it works
Available upgrade modules
Synopsis
Bug Reports / Feature requests
Example
Yul
Motivation and High-level Description
简单示例
单独使用
Yul 非正式规范
语法
字面常量
函数调用
变量声明
赋值
If
Switch
循环
函数声明
Specification of Yul
Restrictions on the Grammar
Scoping Rules
Formal Specification
EVM Dialect
datasize, dataoffset, datacopy
setimmutable, loadimmutable
linkersymbol
Specification of Yul Object
Yul Optimizer
Optimization step sequence
Complete ERC20 Example
编程风格指南
概述
代码结构
缩进
制表符或空格
空行
代码行的最大长度
源文件编码格式
Imports 规范
函数顺序
表达式中的空格
控制结构
函数声明
映射
变量声明
其他建议
Order of Layout
命名规范
命名风格
应避免的名称
合约和库名称
结构体名称
事件名称
函数名称
函数参数命名
局部变量和状态变量名称
常量命名
修饰符命名
枚举命名
避免命名冲突
描述注释 NatSpec
通用模式
从合约中提款
限制访问
状态机
示例
已知bug列表
贡献方式
怎样报告问题
Pull Request 的工作流
运行编译器测试
编写和运行语法测试
通过 AFL 运行 Fuzzer
Whiskers 模板系统
相关文档
Web3.js 中文文档
Truffle 中文文档
ethers.js 中文文档
Solidity中文文档
»
索引
编辑
索引
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
P
|
R
|
S
|
T
|
U
|
V
|
W
|
Y
A
abi
,
[1]
,
[2]
abstract contract
,
[1]
access
restricting
account
addmod
,
[1]
address
,
[1]
,
[2]
,
[3]
,
[4]
anonymous
application binary interface
array
,
[1]
,
[2]
,
[3]
,
[4]
,
[5]
allocating
,
[1]
length
,
[1]
literals
,
[1]
pop
,
[1]
push
,
[1]
slice
,
[1]
array of strings
,
[1]
asm
,
[1]
assembly
,
[1]
assert
,
[1]
,
[2]
assignment
,
[1]
,
[2]
destructuring
auction
blind
open
B
balance
,
[1]
,
[2]
,
[3]
,
[4]
ballot
base
constructor
,
[1]
base class
,
[1]
blind auction
block
,
[1]
,
[2]
number
,
[1]
timestamp
,
[1]
bool
,
[1]
break
Bugs
byte array
,
[1]
bytes
,
[1]
,
[2]
,
[3]
bytes32
,
[1]
C
C3 linearization
,
[1]
call
,
[1]
,
[2]
callcode
,
[1]
,
[2]
,
[3]
cast
,
[1]
coding style
coin
coinbase
,
[1]
commandline compiler
comment
common subexpression elimination
compile target
compiler
commandline
constant
,
[1]
,
[2]
constant propagation
constructor
,
[1]
,
[2]
,
[3]
arguments
,
[1]
continue
contract
,
[1]
abstract
,
[1]
base
,
[1]
creation
,
[1]
interface
,
[1]
modular
contract creation
contract type
,
[1]
contract verification
contracts
creating
creationCode
cryptography
,
[1]
D
data
,
[1]
days
declarations
default value
delegatecall
,
[1]
,
[2]
,
[3]
,
[4]
,
[5]
delete
,
[1]
deriving
,
[1]
difficulty
,
[1]
do/while
dynamic array
,
[1]
E
ecrecover
,
[1]
else
encode
encoding
enum
,
[1]
,
[2]
errors
escrow
ether
ethereum virtual machine
event
,
[1]
,
[2]
,
[3]
evm
EVM version
evmasm
,
[1]
exception
experimental
external
,
[1]
,
[2]
F
fallback function
,
[1]
false
,
[1]
finney
fixed
,
[1]
fixed point number
,
[1]
for
function
call
,
[1]
external
fallback
,
[1]
getter
,
[1]
internal
modifier
,
[1]
,
[2]
,
[3]
,
[4]
pure
,
[1]
receive ! receive
,
[1]
view
,
[1]
function type
,
[1]
functions
,
[1]
G
gas
,
[1]
,
[2]
gas price
,
[1]
,
[2]
getter
function
,
[1]
goto
H
hours
I
if
import
indexed
inheritance
,
[1]
multiple
,
[1]
inline
arrays
,
[1]
installing
instruction
int
,
[1]
integer
,
[1]
interface contract
,
[1]
internal
,
[1]
,
[2]
iterable mappings
,
[1]
iulia
J
julia
K
keccak256
,
[1]
L
length
,
[1]
library
,
[1]
,
[2]
,
[3]
,
[4]
linearization
,
[1]
linker
literal
,
[1]
,
[2]
,
[3]
,
[4]
,
[5]
address
,
[1]
rational
,
[1]
string
,
[1]
location
,
[1]
log
,
[1]
,
[2]
lvalue
,
[1]
M
mapping
,
[1]
,
[2]
,
[3]
memory
,
[1]
,
[2]
message call
metadata
minutes
modifiers
modular contract
msg
,
[1]
mulmod
,
[1]
N
natspec
new
,
[1]
,
[2]
now
,
[1]
number
,
[1]
O
open auction
optimizer
origin
,
[1]
overload
,
[1]
overriding
function
,
[1]
modifier
,
[1]
P
packed
payable
pop
,
[1]
pragma
,
[1]
,
[2]
precedence
private
,
[1]
,
[2]
public
,
[1]
,
[2]
purchase
pure
pure function
,
[1]
push
,
[1]
R
receive ether function
,
[1]
reference type
,
[1]
remote purchase
require
,
[1]
,
[2]
return
return array
,
[1]
return string
,
[1]
return struct
,
[1]
revert
,
[1]
,
[2]
ripemd160
,
[1]
runtimeCode
S
scoping
seconds
selfdestruct
,
[1]
,
[2]
send
,
[1]
,
[2]
,
[3]
sender
,
[1]
set
,
[1]
sha256
,
[1]
solc
source file
source mappings
stack
state machine
state variable
,
[1]
storage
,
[1]
,
[2]
,
[3]
,
[4]
string
,
[1]
,
[2]
,
[3]
,
[4]
,
[5]
struct
,
[1]
,
[2]
,
[3]
,
[4]
,
[5]
,
[6]
style
subcurrency
super
switch
szabo
T
this
,
[1]
throw
time
timestamp
,
[1]
transaction
,
[1]
transfer
,
[1]
,
[2]
true
,
[1]
type
,
[1]
contract
,
[1]
conversion
,
[1]
function
,
[1]
reference
,
[1]
struct
,
[1]
value
,
[1]
U
ufixed
,
[1]
uint
,
[1]
using for
,
[1]
,
[2]
,
[3]
V
value
,
[1]
value type
,
[1]
variably sized array
,
[1]
version
view
view function
,
[1]
visibility
,
[1]
,
[2]
voting
W
weeks
wei
while
withdrawal
Y
years
yul
当前版本
v: 0.6.12
版本列表
v0.8.28
v0.8.17
v0.8.13
v0.8.0
v0.7.5
v0.7.1
v0.6.12
v0.6.9
v0.6.4
v0.5.x
Solidity文档由
登链社区
维护