1. Docker是什么? Docker是一种开源的容器化平台,能够将应用程序和开发环境依赖打包到容器中,从而实现在不同环境的服务器上快速部署和运行。 2. Docker和虚...
1. Docker是什么? Docker是一种开源的容器化平台,能够将应用程序和开发环境依赖打包到容器中,从而实现在不同环境的服务器上快速部署和运行。 2. Docker和虚...
19.1 selector 当我们调用智能合约时,本质上是向目标合约发送了一段calldata,在remix中发送一次交易后,可以在详细信息中看见input即为此次交易的ca...
17.1 哈希运算 哈希函数(hash function)是一个密码学概念,它可以将任意长度的消息转换为一个固定长度的值,这个值也称作哈希(hash)。 Hash的性质 一个...
16.1 在合约中创建合约 16.1.1 create create的用法很简单,就是new一个合约,并传入新合约构造函数所需的参数: Contract x = new Co...
15.1 call call 是address类型的低级成员函数,它用来与其他合约交互。它的返回值为(bool, data),分别对应call是否成功以及目标函数的返回值。 ...
14.1 编写测试合约 首先编写一个测试合约,用于被其他合约调用: 测试合约有一个状态变量x,同时有以下几个函数: setX():设置状态变量x getX():获取状态变量x...
13.1 接受ETH 在智能合约中,对一个函数标记payable关键词,那么这个函数可以接受ETH(合约并不能接收ETH,需要添加回调函数,下节介绍): 运行结果: depo...
12.1 库合约 库合约是一种特殊的合约,为了提升solidity代码的复用性和减少gas而存在。库合约一般都是一些好用的函数合集(库函数),由大神或者项目方创作。他和普通合...
11.1 抽象合约 抽象合约的形式为: 抽象合约在声明时需要在前面加上关键字abstract。 如果合约中最少存在一个未实现函数,则合约必须声明为抽象合约,否则编译不通过。...
10.1 单继承 继承是面向对象编程很重要的组成部分,可以显著减少重复代码。如果把合约看作是对象的话,solidity也是面向对象的编程,也支持继承。 10.1.1 virt...
9.1 Solidity中的控制流 9.1.1 for循环 定义数组: for循环计算sum: 循环中的控制语句break和continue和大部分语言相同,不再赘述。 9....
8.1 构造函数 构造函数(constructor)是一种比较特殊的函数,它在合约部署的时候被调用一次,之后不会再被调用。构造函数一般用于初始化一些变量。在Solidity ...
7.1 报错控制 Solidity中抛出异常的方法有:require、revert、assert。本章分别介绍三种方法的使用。 7.1.1 require require命令...
6.1 映射的声明 映射(mapping)是Solidity中的哈希表,实现通过key值查询对应的Value,例如:通过调用者的地址查询其余额。声明映射的格式为:mappin...
5.1 结构体定义和初始化 Solidity支持通过构造结构体的形式定义新的类型。创建结构体的方法: 定义状态变量结构体和结构体数组: 5.2 新增 在内存中初始化结构体变量...
4.1 数组分类 动态数组(可变长度数组) 定长数组 4.2 数组操作 length: 获取数组长度 push() & push(x): 数组长度+1,push() 为添...
2.1 函数形式 1. function:声明函数时的固定用法,想写函数,就要以function关键字开头。2. <function name>:函数名。3. ( ):...
3.1 变量存储类型 引用类型变量占空间大,赋值的时候直接传递地址(类似指针),在使用时必需声明数据存储位置。Solidity中引用类型包括:数组(array)、结构体(st...