手把手教你玩eos:使用EOSFactory构建和部署智能合约
文章由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交互
发表回复