EOS开发完全解析(四):EOS快速发币,何以圈钱?唯有发币!
一、前言
“不要跟我谈什么狗屁爱情故事,我现在只想搞钱!”
这可能是大部分韭菜的心声,既然要搞钱,就要弄明白,币圈搞啥来钱快,没错,就是发币!
二、发币
在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
如何创建账号之前章节已经讲得很详细了,这里不再赘述,不明白的童鞋可以回去复习一下前面的章节。
创建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总量
*/voidcreate( account_name issuer,asset maximum_supply);/*
*发币,合约所有者使用操作
** to 接收账户
** quantity 发送数量
** memo 备注
*/voidissue( account_name to, asset quantity,stringmemo );/*
*转账,普通用户也可以
** from 发送账户
** to 接收账户
** quantity 发送数量
** memo 备注
*/voidtransfer( account_name from,account_name to,asset quantity,stringmemo)
要创建代币,我们这里只需要使用create()方法即可,参数issue为发行人,发行人将有权执行冻结,召回和列入所有者白名单等操作。
执行create()方法,
./cleos push action eosio.token create '["eosio","100000000.00 LG"]' -p eosio.token
这段命令是指用eosio.token这个账号执行create()方法,传的参数为eosio和100000000.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开发系列教材推荐