上一章我们细致地学习了
- 索引和迭代器的关系;
- 如何生成和使用索引以及迭代器
- 介绍了multi_index的相关操作
相信大家对multi_index已经有了比较全面的理论理解以及掌握了一些基础的操作。这一章将会教大家如何完整地构建一个智能合约,并在合约中直观地操作multi_index。
摘要
这一章主要以实操为主,会有较大篇幅的代码,希望大家最好可以照着文章自己操作一遍。
这一章将会以一个简单的智能合约例子,简单了解一个完整的EOS智能合约长什么样。希望大家通过这一章的学习,不仅可以有能力构建一个简单的智能合约,并且对multi_index在EOS智能合约中的重要性,会有更加深刻的认识。
头文件:*.hpp
C++的源代码文件分为两类:头文件(Header file)和源文件(Source code file)。
- 头文件用于存放对类型定义、函数声明、全局变量声明等实体的声明,作为对外接口;
- 源程序文件存放类型的实现、函数体、全局变量定义;
我们先来看头文件里的代码:
#include <eosiolib/eosio.hpp>
#include <eosiolib/print.hpp>
#include <string>
using namespace eosio;
using std::string;
最前面按惯例都是import,接着往下看:
class app : public contract {
public:
using contract::contract;
app(account_name self)
: contract(self) {}
// @abi action
void hello(const account_name account);
// @abi action
void create(const account_name account,
const string& username,
uint32_t age,
const string& bio);
// @abi action
void get(const account_name account);
// @abi action
void update(const account_name account,
const string& username,
uint32_t age,
const string& bio);
// @abi action
void remove(const account_name account);
// @abi action
void byage(uint32_t age);
// @abi action
void agerange(uint32_t young, uint32_t old);
这里定义了源文件里的方法接口,接下来就到了最核心的multi_index的