美文网首页EOS开发区块链开发区块链研习社
EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!

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

作者: 区块链浪潮之巅 | 来源:发表于2018-10-27 21:27 被阅读14次

    一、前言

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

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

    二、发币

    在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账号创建

    创建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

    部署eosio.token合约

    2.3 创建代币

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

    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创建代币

    2.4 发送代币

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

    发送代币

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

    查询eos账号余额1

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

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

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

    发送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余额查询2

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

    三、总结

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

    团队在做事

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

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

    相关文章

      网友评论

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

      本文链接:https://www.haomeiwen.com/subject/pwvltqtx.html