您现在的位置是:首页 > 正文

区块链EOS|智能合约入门3——解析abi文件

2024-02-01 03:05:06阅读 2

系列文章:

1. Hello World!
2. 部署token合约并发行、交易币
3. 解析abi文件(本文)


正文

  通过eosio.cdt提供的eosin-cpp 工具可以生成ABI文件。为什么要理解ABI,因为在开发的时候,自定义类型等可能会导致生成的ABI文件错误,为了能够修复错误,我们需要先理解ABI。

  ABI全称是Application Binary Interface,它是一个基于JSON格式的说明文件,用来描述action在JSON和二进制之间的转换。同时,它还用来描述怎么用JSON表示数据库状态,或根据JSON得到数据库状态。与说明文档类似,有了ABI,开发人员可以通过它理解合约。

注:ABI只是一个说明文件,传递给合约的消息或action不一定得完全符合它。


  为了更好理解abi,现在,自己来写一个ABI文件。

  在任意一个位置,创建一个空白文件,叫eosio.token.abi,写入下列代码。

{
   
   "version": "eosio::abi/1.0",
   "types": [],
   "structs": [],
   "actions": [],
   "tables": [],
   "ricardian_clauses": [],
   "abi_extensions": [],
   "___comment" : ""
}

  接下来会逐个解释每一行。

1. Type

  这里的types是对于自定义类型的说明。在编写代码时,有些类型的名字可能比较长,或者我们想要让类型名称更加具体,我们给这样的类型起一个别名。举一个例子,我们在编写Hello World的时候,用到了eosio中的类型name,我们现在想让它更具体一点,我们给它起个别名叫username。修改完的代码如下。

#include <eosio/eosio.hpp>  

using namespace eosio;      
typedef name username; //给name取个别名叫username

class [[eosio::contract]] helloWorld : 

网站文章