EOS开发 第二篇 创建一个currency智能合约实现转账的功能

EOS的测试网络已经具备了上传和运行智能合约的能力,下面我们参照github上的说明一步一步建立一个示例的智能合约。首先进入eosd目录,启动输入命令:./eosd,使能够产生区块。

测试EOS客户端是否可用:

区块运行起来后就可以使用eos的客户端eosc进行一些操作了,比如说查看区块链的信息

先进入eos/build/progrems/eosc目录,执行以下命令,并得到如下的结果,结果中就是区块的信息:./eosc get info

创建一个钱包并导入密钥:

如下命令: ./eosc wallet create

任何智能合约都要与一个账户关联,因此需要先创建一个钱包,执行该条命令会输出一个密码,需要保持下来,该密码是用来解锁钱包的,如图生产的密码为:PW5Jr57KkkuL9upnncrRUVtDVGUnq8o21SYhqsMm21GLjBvfgpL4t

这里仅仅是做的测试网络,inita账户的私钥导入。这个账户在genesis.json有定义,就会有权限发送API命令。该账户的私钥可以在config.ini文件中找到。config.ini文件在上一篇生成的data-dir中。

为currency创建一个账户

运行如下安排:./eosc create key #owner_key

                        ./eosc create key #active_key

先使用以下命令创建两把公私钥对,后续会将这两对密钥分配为owner_key和active_key。

目前仅仅是两个密钥而已,没有跟任何账户关联。注意:这两个密钥要保存下来,后面要用到。

执行如下的命令:

./eosc create account inita currency EOS5rtK7P1oc4NhJ5pK5FExbD8nVKJwiuF99HsCpujcaTN8NqS215 EOS87iB1zUi8dq4zPoSb3sy3B2CX4NjBEGEQ9fhqKrX8BmphxHQfM6

运行结果如下:

使用如下命令检查是否成功:

root@ubuntu:/home/devSoft/eos/build/programs/eosc# ./eosc get account currency

返回:

将active_key导入的钱包,还记得我们产生的两个公私钥对吗?将active_key私钥写到参数里面:

./eosc wallet import 5JT7PUxHN7UV7oFLmSBZPvqty8ixYRdJcu9zXmcxgV9wBRDAD3y


将currency合约上传到区块链

在上传之前先确认一下当前的合约是否已经在区块链上了./eosc get code currency

上面返回结果的是为0000000*,说明合约还未上传到区块链上,上次合约的命令如下:./eosc set contract currency ../../contracts/currency/currency.wast ../../contracts/currency/currency.abi

再次确认合约是否在区块链上:./eosc get code currency

上面返回的结果,说明合约已经在区块链上了,使用命令确认currency合约是否有余额。

命令如下:./eosc get table currency currency account

返回结果如下:

使用currency合约转移资金

任何人都可以在任何时间发送任何消息到任何合约上,但是合约可以拒绝那些没有给出任何权限的消息。消息不能被随意发送,而是需要带有权限等级一个或多个账号来发送。下面的命令说明一个“transfer”的消息是如何发送给currency合约的。

'{"from":"currency","to":"inita","quantity":50}' #从currency到inita账号,金额是50元

使用如下命令进行资金的转移:

./eosc push message currency transfer'{"from":"currency","to":"inita","quantity":50}'--scope currency,inita --permission currency@active

返回:


假如上述命令,你得到了一个错误的返回

An error occurred while submitting the transaction for this command!

The transaction requires permissions that could not be authorized by the wallet.

Missing authrizations:

- currency@active

Please make sure the proper keys are imported into an unlocked wallet and try again!

需要你打开钱包并解锁,解锁时会让你输入密码,就是我们最初产生钱包时的密码。然后重新执行上面的命令。

./eosc wallet open

./eosc wallet unlock

查询两个账户的余额

命令如下:

1》》》./eosc get table inita currency account


2》》》./eosc get table currency currency account

今天的讲解就到这里。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容

  • 1. 账户与钱包1.1 创造并管理钱包1.2 生成EOS Keys并导入1.3 备份您的钱包1.4 创建账户 2....
    cenkai88阅读 3,938评论 1 7
  • 1 EOS智能合约的介绍1.1 所需背景知识1.2 EOS智能合约基础知识1.3 技术局限性 2 智能合约文件2....
    cenkai88阅读 30,488评论 5 28
  • 你不懂我,我不怪你。你不懂我,请不要轻易评判我的人生。――某年某月见于木子的某一篇日记! 木子跟所有女孩一样,有十...
    Eli可乐阅读 332评论 0 0
  • 1.1-一句话精简表达什么是CoreData? CoreData是iOS5之后苹果原生的用于对象化管理数据并且持久...
    uproject阅读 1,147评论 0 1
  • 在自我怀疑和焦虑中前行,现实的残酷赤裸裸地呈现在我面前。在现实目前,有尊严地生存下去好像是件很困难的事情。拿着一手...
    J的诗意人生阅读 466评论 0 50