EOS 智能合约源代码解读 (10)token合约“简介”
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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合约“简介”的主要内容,如果未能解决你的问题,请参考以下文章