1. BTC-比特币:¥25955(+6.2%)
  2. ETH-以太坊:¥981.26(+14.69%)
  3. EOS-柚子:¥21.82(+14.31%)
  4. GBI:4255.2
即将开始的项目:21 进行中的项目:52

手把手教你玩eos:使用EOSFactory构建和部署智能合约

来源:EOSWing博客

作者: EOSWing

发稿时间: 2019-01-30

文章由EOS节点EOSWing(柚翼)首发于eoswing.io博客,并向知币(ZHIBI.COM)授权刊载。内容将不定期更新,仅供学习交流之用。


0.引言
0.1教程概况

手把手教你玩eos系列教程,从最基础开始,一步一步教你学会用eos。比如发代币,开发DAPP等等。
本文是第十七篇。本篇教程讲解如何使用EOSFactory执行最简单的开发周期:创建新合约,编辑代码,构建合约,部署合约并与之交互。

0.2 学习内容

1.创建新合约
2.编译和部署合约
3.测试合约
4.修改代码,重新编译部署

0.3 机器环境

●笔记本电脑
●操作系统:Windows 10

1 创建新合约
1.1 进入环境

首先进入WSL中的ubuntu的命令行,然后运行Python CLI。

python3


进入Python shell后,导入EOSFactory库。

from eosfactory.eosf import *
1.2 使用模板创建新合约

从预定义模板创建新合约,第一个参数为合约名称,第二个参数为模板名称。

contract = ContractBuilder(project_from_template("foo_bar", template="01_hello_world"))


查看新建合约所在路径

contract.path()

1.3 编辑源代码

使用你常用的编辑器打开合约路径下的src/foo_bar.cpp。
我使用的是Notepad++编辑器。
这里我们简单修改一下。把权限验证的第16行代码注释掉。

2 编译和部署合约
2.1 编译合约

可以逐个编译生成ABI文件和WAST文件。
也可以用contract.build()一次编译两个文件。
这里我们使用逐个编译。

contract.build_abi()
contract.build_wast()

2.2 部署合约上链

初始化本地testnet

reset()


创建主账户master

create_master_account("master")


使用master主账号创建合约账户host

create_account("host", master)


将账户host和合约绑定。

contract = Contract(host, contract.path())

部署合约。

contract.deploy()

3 测试合约
3.1 创建测试账号
create_account("alice", master)
create_account("carol", master)

3.2 调用合约
contract.push_action("hi", {"user":alice}, permission=alice)
contract.push_action("hi", {"user":alice}, permission=carol)


因为我们注释掉了权限验证代码行。
所以,用alice签名还是用carol签名User为alice,都能顺利通过。

4 修改代码,重新编译部署
4.1 修改代码

打开合约路径下的src/foo_bar.cpp,这次将第16行的权限验证代码取消注释,使之生效。

4.2 重新编译合约
contract.build()
4.3 重新部署合约

contract.deploy()

4.4 测试合约

再次调用合约

contract.push_action("hi", {"user":alice}, permission=alice)
contract.push_action("hi", {"user":alice}, permission=carol)


会发现用alice签名User为alice通过。
而用carol签名User为alice,提示没有权限。
说明权限代码生效。

4.5 清理环境

关闭本地testnet

stop()


退出Python CLI

exit()
5 后记

延伸阅读
在本文的学习中如果遇到问题,欢迎留言或者在如下链接寻找解决方案:
●使用EOSFactory构建和部署智能合约: http://eosfactory.io/build/html/tutorials/03.BuildingAndDeployingEOSContractsInEOSFactory.html

如果觉得这一系列教程有点意思,请投票给柚翼节点(eoswingdotio)。您的投票是本教程持续更新的动力源泉,谢谢。

系列教程回顾:

手把手教你玩eos:教程开篇絮语及目录
手把手教你玩eos:(一)使用docker搭建eos本地运行环境
手把手教你玩eos:(二)钱包和账户的创建与管理
手把手教你玩eos:(三)使用智能合约创建和发放代币
手把手教你玩eos:(四)编写第一个智能合约Hello_eos
手把手教你玩eos:(五)编写智能合约游戏——三连棋
手把手教你玩eos:(六)架设EOS区块浏览器
手把手教你玩eos:(七)卡牌游戏第一课——搭建前后端框架
手把手教你玩eos:(八)卡牌游戏第二课——存储状态和登录
手把手教你玩eos:(九)卡牌游戏第三课——从区块链中读取状态
手把手教你玩eos:(十)卡牌游戏第四课——游戏核心组件
手把手教你玩eos:(十一)卡牌游戏第五课——AI部分
手把手教你玩eos:(十二)卡牌游戏第六课——战斗部分
手把手教你玩eos:(十三)卡牌游戏第七课——完善游戏流程
手把手教你玩eos:(十四)卡牌游戏第八课——优化细节体验
手把手教你玩eos:(十五)配置windows10下的EOSFactory开发测试框架
手把手教你玩eos:(十六)使用EOSFactory与EOS交互

相关推荐