博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EOSIO 指南(部署、发行和转移代币)
阅读量:5893 次
发布时间:2019-06-19

本文共 4078 字,大约阅读时间需要 13 分钟。

部署、发行和转移代币

第1步:获取合约源

导航到你的contracts目录。

cd CONTRACTS_DIR

拉取源:

git clone https://github.com/EOSIO/eosio.contracts --branch v1.4.0 --single-branch

这个存储库包含几个合约,但现在重要的是eosio.token合约,导航到该目录。

cd eosio.contracts/eosio.token

第2步:创建合约帐户

在我们部署代币合约之前,我们必须创建一个帐户来部署它,我们将为该帐户使用eosio开发密钥。

你可能必须首先解锁你的钱包!
cleos create account eosio eosio.token EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

第3步:编译合约

eosio-cpp -I include -o eosio.token.wasm src/eosio.token.cpp --abigen

第4步:部署代币合约

cleos set contract eosio.token CONTRACTS_DIR/eosio.contracts/eosio.token --abi eosio.token.abi -p eosio.token@active

响应:

Reading WASM from ...Publishing contract...executed transaction: 69c68b1bd5d61a0cc146b11e89e11f02527f24e4b240731c4003ad1dc0c87c2c  9696 bytes  6290 us#         eosio <= eosio::setcode               {"account":"eosio.token","vmtype":0,"vmversion":0,"code":"0061736d0100000001aa011c60037f7e7f0060047f...#         eosio <= eosio::setabi                {"account":"eosio.token","abi":"0e656f73696f3a3a6162692f312e30000605636c6f73650002056f776e6572046e61...warning: transaction executed locally, but may not be confirmed by the network yet         ]

第5步:创建代币

要创建新代币,请使用正确的参数调用create(...)操作,此操作接受1个参数,它是一个symbol_name类型,由两个数据组成,最大供应的浮点数和仅大写字母字符的symbol_name,例如“1.0000 SYM”,发行人将是有权要求发行或执行其他操作,如冻结、召回和列入所有者的白名单。

下面是使用位置参数调用此方法的简明方法:

cleos push action eosio.token create '[ "eosio", "1000000000.0000 SYS"]' -p eosio.token@active

响应:

executed transaction: 0e49a421f6e75f4c5e09dd738a02d3f51bd18a0cf31894f68d335cd70d9c0e12  120 bytes  1000 cycles#   eosio.token <= eosio.token::create          {"issuer":"eosio","maximum_supply":"1000000000.0000 SYS"}

另一种方法使用命名参数:

cleos push action eosio.token create '{"issuer":"eosio", "maximum_supply":"1000000000.0000 SYS"}' -p eosio.token@active

响应:

executed transaction: 0e49a421f6e75f4c5e09dd738a02d3f51bd18a0cf31894f68d335cd70d9c0e12  120 bytes  1000 cycles#   eosio.token <= eosio.token::create          {"issuer":"eosio","maximum_supply":"1000000000.0000 SYS"}

此命令创建了一个新的代币SYS,其精度为4位小数,最大供应量为1000000000.0000 SYS,要创建此代币,需要获得eosio.token合约的许可,因此,传递了-p eosio.token@active以授权请求。

第6步:发行代币

发行者可以向之前创建的“alice”帐户发放新代币。

cleos push action eosio.token issue '[ "alice", "100.0000 SYS", "memo" ]' -p eosio@active

响应:

executed transaction: 822a607a9196112831ecc2dc14ffb1722634f1749f3ac18b73ffacd41160b019  268 bytes  1000 cycles#   eosio.token <= eosio.token::issue           {"to":"user","quantity":"100.0000 SYS","memo":"memo"}>> issue#   eosio.token <= eosio.token::transfer        {"from":"eosio","to":"user","quantity":"100.0000 SYS","memo":"memo"}>> transfer#         eosio <= eosio.token::transfer        {"from":"eosio","to":"user","quantity":"100.0000 SYS","memo":"memo"}#          user <= eosio.token::transfer        {"from":"eosio","to":"user","quantity":"100.0000 SYS","memo":"memo"}

这次输出包含几个不同的操作:一个发行和三个转移,虽然签名的唯一操作是issue,但issue操作执行了“内联转移”,“内联转移”通知了发件人和收件人帐户,输出指示被调用的所有操作处理程序、调用它们的顺序以及操作是否生成任何输出。

从技术上讲,eosio.token合约可能会跳过inline transfer并选择直接修改余额,但是,在这种情况下,eosio.token合约遵循我们的代币约定,该约定要求所有帐户余额可以通过引用它们的转移操作的总和来推导,它还要求通知资金的发送方和接收方,以便它们可以自动处理存款和取款。

要检查交易,请尝试使用-d -j选项,它们表示“不要广播”和“将交易返回为json”,这在开发过程中可能会有用。

cleos push action eosio.token issue '["alice", "100.0000 SYS", "memo"]' -p eosio@active -d -j

第7步:转移代币

现在alice帐户已经发行了代币,将其中一些转移到帐户bob,之前使用参数-p alice@active表示alice授权此操作。

cleos push action eosio.token transfer '[ "alice", "bob", "25.0000 SYS", "m" ]' -p alice@active

响应:

executed transaction: 06d0a99652c11637230d08a207520bf38066b8817ef7cafaab2f0344aafd7018  268 bytes  1000 cycles#   eosio.token <= eosio.token::transfer        {"from":"alice","to":"bob","quantity":"25.0000 SYS","memo":"Here you go bob!"}>> transfer#          user <= eosio.token::transfer        {"from":"alice","to":"bob","quantity":"25.0000 SYS","memo":"Here you go bob!"}#        tester <= eosio.token::transfer        {"from":"alice","to":"bob","quantity":"25.0000 SYS","memo":"Here you go bob!"}

现在使用cleos get currency balance检查“bob”是否获得代币。

cleos get currency balance eosio.token bob SYS25.00 SYS

检查“alice”的余额,注意从帐户中扣除了代币。

cleos get currency balance eosio.token alice SYS75.00 SYS

转载地址:http://tvisx.baihongyu.com/

你可能感兴趣的文章
PHP盛宴——经常使用函数集锦
查看>>
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
struts中的xwork源码下载地址
查看>>
我的友情链接
查看>>
PHP 程序员的技术成长规划
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
js replace,正则截取字符串内容
查看>>
nginx的信号量
查看>>
开源 java CMS - FreeCMS2.3字典管理
查看>>
block,inline和inline-block概念和区别
查看>>
移动端常见随屏幕滑动顶部固定导航栏背景色透明度变化简单jquery特效
查看>>
javascript继承方式详解
查看>>