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

手把手教你玩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交互

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注