EOS开发基础之五:使用cleos命令行客户端操作EOS——智能合约之Exchange
先回答一下上一节中留下的问题,为什么我就看不到eosio这个账户中的钱呢?我明明为它create了很多token啊。
对,你是create了,但是没有issue啊。create了1000000000 SYS,只能说明eosio.token这个用户为eosio这个用户在eosio.token用户的这个合约上创建了1000000000 SYS,这些SYS还在央行里面躺着呢,还没有发行,它就是一堆废纸。
所以,咱们issue一下试试?
执行命令:./cleos push action eosio.token issue '["eosio", "1000000000.0000 SYS", "memo"]' -p eosio
也就是发行者给把1000000000个SYS全部放进自己的账户里准备流通了。

怎么样?我没骗你吧?
好了,咱们来看一下上边的脚本执行情况。
1、因为又过了一天了,所以我执行第一条命令的时候,它要求我打开钱包,于是我就吧默认钱包给打开了。
2、打开钱包后,我直接给eosio发1000000000个SYS,第一次报错了,说交易时间过长,我忍了,再执行一遍,它告诉我说 数量超过可供应量。
3、好吧,我们把十亿换成999999900,再执行,成功了。
4、现在再来看看它们各自有多少钱,看到没?eosio这个账户也真的有钱了。但是它钱是不是太多了点?比如说我们想再给simayi发行(issue)点SYS,还能成功吗?

看到没?没钱了,国库空虚了,以后simayi想要钱,只能找eosio这家伙要了,只能通过transfer的方式获得了。咦,我们试试能不能给它发行负的钱可好?

有点不好意思,它告诉我说让我别闹,要正数才行。看来,simayi的这500块,我只能transfer给它了:
执行命令:./cleos push action eosio.token transfer '[ "eosio", "simayi", "500.0000 SYS", "m" ]' -p eosio

好了,大家的钱的问题都讲清楚了,咱们再来聊聊其它的合约吧。嗯,第三个:
3、Exchange
The exchange contract 提供了创造和交易货币的能力。这是个什么情况?上边的eosio.token不也能创建和交易货币嘛?等等,这里所说的交易货币,是不是指像现实生活中美元和人民币兑换之类的事啊?所谓的跨货币交易?这只是我的个人猜测哈。我们现在来做下实验吧。
那么,既然它能创建货币,那咱们现在就试试Exchange这个东西好不好使可好?
a、转到nodeos的运行界面,使用ctrl+c,停止nodeos的运行(咱们不去/home/fengwork/.local/share/eosio/nodeos删data文件夹哈,留着有用)
b、再次输入./nodeos,启动节点
c、打开一个新的Terminal来操作cleos
3.1创建eosio.exch账户(./cleos create account eosio eosio.exch)

要创建一个账户还真是挺麻烦的。先得创建key,解锁钱包,然后把key导入钱包,之后才能创建account。而且啊,account不能超过13个字符,且有命名规则要求。别告诉我你懒癌犯了哈,命令自己敲去。
呃,如果实在是真的懒癌犯了,那命令在下边,谁叫我心软呢:
fengwork@ubuntu:~$ cd eos/build/programs/cleos/
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos create key
Private key: 5Jm5G6rFAaxjPKuAraR8mYVmzqpB3E35Mjw363SceFjUeSF6G61
Public key: EOS5m1u5coWVEAfCwpJvh2ftGq2AEnVWFSS6ytvXgegZra11PK6hK
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos create key
Private key: 5JfYHqk8wh2v3335Mxsp71B3pBevmpUxHKfkEiomKHcLDDnpfiy
Public key: EOS6wLBffPDWeaYCxTnD1KwFYMR1YjWcCMVf5iRpoQo53tsAAJCeE
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet list
Wallets:
[
"default",
"hanmeimei",
"simaguang",
"wangerxiao"
]
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet unlock -n default --password PW5KZGrxQR77W2ctkZPGsZugQVekdEipZKxE48sxy6rPFE6sUfnV6(可还记得你的default钱包的password?)
Unlocked: default
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet import 5Jm5G6rFAaxjPKuAraR8mYVmzqpB3E35Mjw363SceFjUeSF6G61
imported private key for: EOS5m1u5coWVEAfCwpJvh2ftGq2AEnVWFSS6ytvXgegZra11PK6hK
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet import 5JfYHqk8wh2v3335Mxsp71B3pBevmpUxHKfkEiomKHcLDDnpfiy
imported private key for: EOS6wLBffPDWeaYCxTnD1KwFYMR1YjWcCMVf5iRpoQo53tsAAJCeE
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos create account eosio eosio.exch EOS5m1u5coWVEAfCwpJvh2ftGq2AEnVWFSS6ytvXgegZra11PK6hK EOS6wLBffPDWeaYCxTnD1KwFYMR1YjWcCMVf5iRpoQo53tsAAJCeE
executed transaction: c89b760279cb449d25dbce13ffb36a58bbabddaf28b656336acda9ca4fd42f1e 200 bytes 14902 us
# eosio <= eosio::newaccount {"creator":"eosio","name":"eosio.exch","owner":{"threshold":1,"keys":[{"key":"EOS5m1u5coWVEAfCwpJvh2...
warning: transaction executed locally, but may not be confirmed by the network yet
警告先不管。
3.2加载Exchange合约(./cleos set contract eosio.exch ../../contracts/exchange -p eosio.exch)

3.3给eosio.exch创造点货币(./cleos push action eosio.exch create '{"issuer":"eosio", "maximum_supply":"200000000.0000 EXCH"}' -p eosio.exch)

看到没?我们换着方的玩,它都创造不了货币。
那特么的上边说它能够创造和交易货币,逗咱们玩呢?
我们再次用eosio.token来试试,另外创建一个币种,看看效果:

这才是最正确的姿势嘛,那个Exchange合约是个什么鬼?!
通过上边的命令执行情况,我们可以得到如下信息:
1、eosio.token加载过一遍后,就被写入到链上了,即使我们重启节点,已加载的合约也不会丢失,除非你把块都删了,且没有和别的机器连在一起上链
2、可以为同一个账户,如eosio,创造多个币种,且把该币种发布出去
3、还是不知道Exchange干啥用的
暂时到这里吧,下篇继续。
EOS开发基础之五:使用cleos命令行客户端操作EOS——智能合约之Exchange的更多相关文章
- eos开发(二)使用cleos命令行客户端操作EOS(钱包wallet基础操作)
不知道下边这一段英文你们是不是能看懂,如果看不懂那就算了,我就是转过来随便看看的. 总之你记住nodeos.cleos和keosd这三个工程十分重要就行了,回头咱们的研究都从这三个工程杀进去. EOS ...
- EOS开发基础之二:使用cleos命令行客户端操作EOS(钱包wallet基础操作)
不知道下边这一段英文你们是不是能看懂,如果看不懂那就算了,我就是转过来随便看看的. 总之你记住nodeos.cleos和keosd这三个工程十分重要就行了,回头咱们的研究都从这三个工程杀进去. EOS ...
- EOS开发基础之三:使用cleos命令行客户端操作EOS——关于钱包wallet和账户account
好了,上一节我们已经讲了关于wallet的一些基础操作,基本了解了怎么去创建一个钱包,怎么去查看钱包.上锁和解锁钱包等,这一节咱们就来开始操作账户account吧. 上一节讲到了每一个account都 ...
- EOS开发基础之六:使用cleos命令行客户端操作EOS——智能合约之eosio.msig和eosio.system
上一节我们搞了老半天,也没整明白Exchange这个合约到底干啥用的.就它官方提供的说法,是用于货币的创造和交易.我没整明白,所以去看了下代码,发现代码头文件里面有下面这段话: This contra ...
- EOS开发基础之四:使用cleos命令行客户端操作EOS——智能合约之eosio.bios和eosio.token
现实世界中的合约,简单地说,是一个参与活动的所有人都需要遵循的协议.合约可以是正式的法律合同(例如,金融交易),或者是简单的游戏规则.典型的活动可以是诸如资金转移(在金融合约的情况下)或游戏动作(在游 ...
- eos开发(三)使用cleos命令行客户端操作EOS——关于钱包wallet和账户account
好了,上一节我们已经讲了关于wallet的一些基础操作,基本了解了怎么去创建一个钱包,怎么去查看钱包.上锁和解锁钱包等,这一节咱们就来开始操作账户account吧. 上一节讲到了每一个account都 ...
- Hadoop HDFS的shell(命令行客户端)操作实例
HDFS的shell(命令行客户端)操作实例 3.2 常用命令参数介绍 -help 功能:输出这个命令参数手册 -ls 功能:显示目录信息 示例: hadoop fs ...
- 命令行客户端操作pg数据库常用操作
登录 # su - postgres -c "psql" 或者 $psql -U user_name -d database_name -h serverhost psql (10 ...
- mysql命令行客户端结果分页浏览
转载请注明出处:http://xiezhenye.com/2008/06/mysql%e5%91%bd%e4%bb%a4%e8%a1%8c%e5%ae%a2%e6%88%b7%e7%ab%af%e7% ...
随机推荐
- Redis学习---面试基础知识点总结
[学习参考] https://www.toutiao.com/i6566017785078481422/ https://www.toutiao.com/i6563232898831352323/ 0 ...
- firefox(火狐)和Chrome(google)浏览器清空缓存操作的方法指引
摘要说明: 1.系统做升级更新,更新了css和js 2.系统更新有,因为缓存问题,有客户反馈新增功能不能使用 3.所以要清空缓存,提供火狐和谷歌浏览器清空缓存的操作指引 4.附:代码层面的清空缓存方案 ...
- css常见的概念
padding-top:10px;是指容器内的内容距离容器的顶部有10个像素,是包含在容器内的: margin-top:10px;是指容器本身的顶部距离其他容器有10个像素,不包含在容器内: top: ...
- FZU Monthly-201901 tutorial
FZU Monthly-201901 tutorial 题目(难度递增) easy easy-medium medium medium-hard hard 思维难度 AHG F B CE D 编码难度 ...
- 团队作业——Alpha冲刺 12/12
团队作业--Alpha冲刺 冲刺任务安排 杨光海天 今日任务:自定义保存界面布局以及交互接口函数的实现 明日任务:总结项目中的问题,为什么没能按照预期推进项目 郭剑南 今日任务:继续解决Python编 ...
- BZOJ2095:[POI2010]Bridges(最大流,欧拉图)
Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个小岛可以到另外任意一个小岛.现在YYD想骑单车从小岛1 ...
- P4279 [SHOI2008]小约翰的游戏
嘟嘟嘟 一道博弈论经典题,nim游戏. 只不过要考虑有奇数个石子为1的堆的时候,为Brother赢.剩下就是nim游戏了. 极简代码 #include<cstdio> using name ...
- cpu高占用,线程堆栈,jstack,pstack,jmap, kill -3 pid,java(weblogic,tomcat)
1 ps -mp pid -o THREAD,tid,time 2 printf "%x\n" tid 3 jstack pid |grep tid -A 30
- Matlab警告消息消除
在运行matlab程序时候,有些matlab子函数在高版本将会被舍弃,在使用的时候,matlab编译器就会报出警告信息. The COMBNTNS function will be removed i ...
- Blog Contents
This page is intently left for contents catalog of my articles. |----------------------------------- ...