前言
昨天我们学习了使用 web3.js 库查询链上区块和交易的用法,今天我们来介绍一下使用 web3.js 与智能合约的交互。在学习本节前,你应该对智能合约有一定的了解。
智能合约的生命周期包括 创建
、发布
、执行
以及 销毁
。
- 创建:在 Remix 中编写智能合约,编译生成 ABI 和 字节码文件。
- 发布:对应 Remix 中的
Deploy
按钮的功能,也即 web3.js 中合约实例上的deploy
方法。 - 执行:对应web3.js 中合约实例上的
call
和send
方法。 - 销毁:在合约中使用
destruct(address)
方法销毁指定合约。
因此我们在使用 web3.js 与合约交互时也包括这几个步骤。
与合约交互
应用程序二进制接口(ABI)
应用程序二进制接口(ABI)相当于智能合约暴露出来的标准接口,通过这个接口可以将智能合约转换为别的应用程序中的对象实例。通过这个对象实例就可以与智能合约进行交互。
💡 ABI对象实例
- 函数(functions)* type:函数类型。默认为
function
,也可能是constructor
* stateMutability:状态可变性。* payable* nonpayable* view* pure* inputs,outputs:函数输入输出的参数列表* name:函数名称* 事件(events)* type:event* inputs:输入对象列表,包括name
,type
,indexed
* anonymous:是否为匿名的
创建合约
在一个合约中,我们可以编写的内容:函数,结构体,构造函数,状态变量,事件,枚举类型等。一个合约想