EOS 智能合约源代码解读 合约之action
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EOS 智能合约源代码解读 合约之action相关的知识,希望对你有一定的参考价值。
1. 动作 ( action ) 是 EOS 合约的灵魂,是 EOS 的基础组成单位
1.1 一个动作就是一个公开的 ( pubic ) 的 C++ 类的成员方法
- 必须使用 [[eosio::action]] C++11 特性修饰,否则就是一个普通的类成员函数
- 访问级别必须是公开的 public
- 必须没有任何返回值,也不能返回任何值,也就是说,必须使用 void 作为返回值
- 可以接受任意数量的参数
- 必须在 EOSIO_DISPATCH 中导出
eg.
#include <eosiolib/eosio.hpp>
using namespace eosio;
using namespace std;
class hello:public eosio::contract {
public:
using eosio::contract::contract;
// 一个名为 hi 的动作,没有任何参数
[[eosio::action]]
void hi(){
}
// 一个名为 greeting 的动作,接受一个参数
[[eosio::action]]
void greeting(name to){}
// 一个名为 age 的动作,虽然有返回值,但返回值会被合约忽略
[[eosio::action]]
void age() {
}
// 这不是一个动作,因为没有使用 [[eosio::action]] 修饰
void born() {
print(1990);
}
// 这虽然是一个动作,因为没有被导出,所以根本不会被执行到
[[eosio::action]]
void province() {
print("北京");
}
};
EOSIO_DISPATCH(hello,(hi)(greeting)(age)(born))
以上是关于EOS 智能合约源代码解读 合约之action的主要内容,如果未能解决你的问题,请参考以下文章