EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!

一、前言

“不要跟我谈什么狗屁爱情故事,我现在只想搞钱!”

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第1张图片

这可能是大部分韭菜的心声,既然要搞钱,就要弄明白,币圈搞啥来钱快,没错,就是发币!

二、发币

在eos上发币和在ETH上发币一样,都非常简单。在eos上发币我们主要用到一个叫eosio.token的智能合约,该合约运行创建许多不同的token,每个token可以由不同的用户管理。

在我们部署token合约之前,首先需要创建一个账号来管理合约。

2.1 创建账号

我们这里创建3个账号用于测试,分别是eosio.token、langge111111和langge222222。其中eosio.token用来部署合约,另外两个账号用来测试转账。
./cleos create account eosio eosio.token EOS75bGH5NwCen69GczAgGkg9vVVMQAdqDDqNeZHAyxX2TxDMP5tT EOS6u5pwb64P9HshRcWHFixgtU8WAe3yNHDjFJwKwLcuWYq4p1h1x
如何创建账号之前章节已经讲得很详细了,这里不再赘述,不明白的童鞋可以回去复习一下前面的章节。
EOS开发完全解析(三):EOS账号创建

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第2张图片
创建eosio.token账号

这里我们成功创建了eosio.token这个账号

由于所有的操作都要基于钱包,所以,我们需要先把账号导入到钱包。
./cleos wallet import -n eosio.token --private-key 5K3rGTJvymup1nXhbZM9aYNnRr5y9shtzCmDmTB5vREA1ujmv8E
EOS开发完全解析(二):用cleos命令行创建、导入、解锁钱包

导入eosio.token到钱包

2.2 部署eosio.token合约

./cleos set contract eosio.token ~/eos/build/contracts/eosio.token -p eosio.token
第一个eosio.token是部署合约的账号,第二个eosio.token是要部署的合约,-p eosio.token的意思是授权账号为eosio.token

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第3张图片
部署eosio.token合约

2.3 创建代币

eosio.token这个合约在~/eos/contracts/eosio.token这个目录下面,我们看一下他的文件结构

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第4张图片
eosio.token合约文件

我们打开eosio.token.hpp这个C++头文件可以看到提供了如下几个公共方法,我把它们加上了注释,这样便于大家理解。

        /*
        *创建token
        ** issuer 发行人
        ** maximum_supply token总量
        */
         void create( account_name issuer,asset maximum_supply);
        /*
        *发币,合约所有者使用操作
        ** to 接收账户
        ** quantity 发送数量
        ** memo 备注
        */
         void issue( account_name to, asset quantity, string memo );
        /*
        *转账,普通用户也可以
        ** from 发送账户
        ** to 接收账户
        ** quantity 发送数量
        ** memo 备注
        */
         void transfer( account_name from,account_name to,asset quantity,string memo)

要创建代币,我们这里只需要使用create()方法即可,参数issue为发行人,发行人将有权执行冻结,召回和列入所有者白名单等操作。

执行create()方法,
./cleos push action eosio.token create '["eosio","100000000.00 LG"]' -p eosio.token
这段命令是指用eosio.token这个账号执行create()方法,传的参数为eosio100000000.00 LG,最后是授权,默认为active权限。意思是为eosio这个账号创建100000000.00个LG,精度为2位小数。

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第5张图片
eos创建代币

2.4 发送代币

./cleos push action eosio.token issue '["langge111111","10000.00 LG","airdrop"]' -p eosio -j
这段指令是为langge111111这个账号发送10000.00个LG,备注为“空投”,同时以json格式输出。

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第6张图片
发送代币

这里打印内容有点多,我只截取了部分。我们现在来查询一下余额,看看是否已经到账。
./cleos get currency balance eosio.token langge111111
我们可以看到,langge111111这个账号已经有10000.00个LG了,而另外两个账号的LG为零。

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第7张图片
查询eos账号余额1

不知道大家有没有发现一个神奇的现象,浪哥创建tokne的时候,明明指定了token所有者为eosio这个账号,但是查询余额的时候,为啥它的LG余额也为0呢?
产生这个问题的原因是因为创建代币的时候,只是指定了该代币的所有者为eosio这个账号,而真正发送代币还需要调用issue方法。

接下来我们再执行一次issue方法,为eosio这个账号发送5000.00个LG。

温馨提示:eos钱包在长时间未操作会自动锁定,这个间隔大概是几分钟,所以继续操作之前需要重新解锁钱包。

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第8张图片
发送LG给eosio

再次查询余额,这时候就到账了。

2.5 转账

./cleos push action eosio.token transfer '["langge111111","langge222222","5000.00 LG","test transfer"]' -p langge111111
从账号langge111111转5000.00个LG到账号langge222222

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第9张图片
eos转账

再来查询一下余额,安排上了,整整齐齐。

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第10张图片
eos余额查询2

温馨提示:不管是调用issue()还是transfer()方法,发送token的精度必须与create()时的精度一致,否则会操作失败。

三、总结

至此,我们已经掌握了eos全套发币流程,是不是相当easy,比在ETH上发币有过之而无不及吧?币发完之后,接下来我们该干嘛?
这个就见仁见智了,不过,浪哥只有一个要求:圈钱被维权了不要说看的浪哥的发币教程就ok了。
下一讲浪哥将讲述如何做事之——手摸手实现一个eos智能合约。
毕竟,我们是做事的团队......

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第11张图片
团队在做事

EOS开发系列教材推荐
EOS开发完全解析(一):Ubuntu上搭建EOS开发环境
EOS开发完全解析(二):用cleos命令行创建、导入、解锁钱包
EOS开发完全解析(三):EOS账号创建

获取最新、最全的EOS开发教程请关注微信公众号:区块链浪潮之巅——一个集项目分析与区块链技术开发于一体的公众号。

EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!_第12张图片

你可能感兴趣的:(EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!)