EOS 智能合约源代码解读 (10)token合约“简介”
1. 记录用户的token,比如有哪些代币
class [[eosio::contract("eosio.token")]] token : public contract {public:using contract::contract;[[eosio::action]]void _create( const text_name& issuer, const asset& maximum_supply);[[eosio::action]]void _issue( const text_name& to, const asset& quantity, const string& memo );[[eosio::action]]void _transfer( const text_name& from,const text_name& to,const asset& quantity,const string& memo);struct [[eosio::table]] account {asset balance;uint64_t primary_key()const { return balance.symbol.code().raw(); }};struct [[eosio::table]] currency_stats {asset supply;asset max_supply;name issuer;uint64_t primary_key()const { return supply.symbol.code().raw(); }};typedef eosio::multi_index< "accounts"_n, account > accounts;typedef eosio::multi_index< "stat"_n, currency_stats > stats;
}
1.1 accounts表
由不同的account对象组成,每个account对象持有不同代币的余额accounts表的范围限定为eosio帐户
eg. 有一个名为tom的eosio帐户,他有自己的范围。在他的范围内是一个名为accounts的表。在该表中是一个单独的account对象,用于他持有的每个代币,SYS和EOS
1.2 stat表
此表将包含现有代币的状态,新标记在其自己的符号名称范围内创建,范围内是一个包含currency_stats对象的stat表
stat表仅包含给定标记符号的单个currency_stats对象,由持有供应,max_supply和发行者的currency_stats对象(由struct currency_stats定义)组成。
stat表的范围限定为代币符号名称
(根据eosio::multi_index定义,code是具有写权限的帐户的名称,scope是存储数据的帐户)
EOS 智能合约源代码解读 (10)token合约“简介”相关推荐
- EOS 智能合约源代码解读 (1)总体说明
1. 基本定义 在eos私有节点操作中,我们通常是一个合约对应一个合约账户,并且一个账户中只能部署一个智能合约.如果在同一个账户部署多个合约,那么最后部署的合约会覆盖掉之前的合约.每个帐户都至少链接到 ...
- EOS 智能合约源代码解读 (10)token合约“几种关键操作”
1. create:负责创建资产 void token::create( const text_name& issuer, const asset& maximum_supply) { ...
- EOS 智能合约源代码解读 (11)wrap合约“action_wrapper类”
1. 功能 对于许多用例,需要从合同代码向另一个合同发送新操作.这是合同之间能够积极沟通的唯一途径.它为特定智能合约代码的特定操作创建"操作模板",然后可使用该模板来调用此操作. ...
- EOS 智能合约源代码解读 (7)合约开发示例
官方提供了一个工具eosiocpp,它可以按照固定的模板创建一个新的智能合约.eosiocpp可以创建2个合约文件(曾经是三个文件),它们仅仅包含了合约的框架. 1. HelloWorld合约代码如下 ...
- EOS 智能合约源代码解读 (14)system合约“exchange_state.hpp”
1. 使用bancor数学创建一个在两种资产类型中的50/50的中继 namespace eosiosystem {using eosio::asset;using eosio::symbol;typ ...
- EOS 智能合约源代码解读 (6)合约之action
1. 动作 ( action ) 是 EOS 合约的灵魂,是 EOS 的基础组成单位 1.1 一个动作就是一个公开的 ( pubic ) 的 C++ 类的成员方法 必须使用 [[eosio::acti ...
- EOS 智能合约源代码解读 (3)asset.hpp
1. 合约中关于资产的数据结构的定义 输入字符串: "10.0000 CUR" 输出:amount = 10, symbol(4,"CUR") /**asset ...
- EOS 智能合约源代码解读 (5)class contract
1. 所有合约的基类 #define CONTRACT class [[eosio::contract]] // 合约 #define ACTION [[eosio::action]] //动作 #d ...
- EOS 智能合约源代码解读 (4)symbol.hpp
token的名称和数字精度 名称大写 /** class symbol represents a token and contains precision and name. When encoded ...
最新文章
- 神经网络常用激活函数
- 部署Tomcat服务时,解决Cannot invoke Tomcat Manager 异常
- 微信小程序 - 时间戳转时间
- 【手写系列】透彻理解MyBatis设计思想之手写实现
- C++特化的应用——类型萃取
- 20145236《信息安全系统设计基础》第0周学习总结
- WCF面向服务应用程序系列之十:绑定-标准绑定(HTTP/TCP)
- 测试SAP BRF+ ruleset
- 在地铁和公交车上给职业乞丐施舍合适吗?
- 数据结构之排序算法Java实现(2)——选择类排序之堆排序算法
- docker镜像启动后端口号是多少_java项目docker云化入门
- Linux基础(2)-基础命令和bash的基础特性(1)
- LeetCode—数据库简单题(三)
- ERStudio 安装
- 国美易卡线上操作流程,国美易卡利用科技力量
- 历史上水平最高的三十首七律
- 2年前端 杭州 面试 集合 面经 前端
- 《第六周RFID作业》物联112118 林家辉
- 学习软件测试的一天(11.4)
- 计算机蓝牙快捷键,如何打开Windows10笔记本电脑的蓝牙,快捷键打开笔记本电脑的蓝牙!...
热门文章
- Android --- View.inflate()的详细介绍
- 数据中心基础设施管理的演进
- 数据中心机房环境温度与微模块机柜有什么关系?
- 问答:双总线并机,可以使用不同品牌的ups吗?
- 数据中心基础设施:建设与设计
- 数据中心液体冷却技术的五个主要关注点
- PDU是如何帮助机房安然度夏?如何选择PDU电源配套机柜?
- 台湾高校首创气体灭火数位实境教育馆
- 成功解决If your current network has https://www.anaconda.com blocked, please filea support request with
- Paper:《A Few Useful Things to Know About Machine Learning—关于机器学习的一些有用的知识》翻译与解读