Truffle
一、安装truffle
这里我就以nodejs的16版本为例,开始安装Truffle
确定环境准备完成后,执行下面这条命令安装Truffle
npm install -g truffle
安装vscode 插件,下载完成会多一个这个标志,然后点进去,检测让你下载几个东西,按照提示下载即可。
二、安装本地Ganache
打开之后点击新建
记住端口号,后面连接会用到。
三、部署
1、新建一个目录,打开终端输入 truffle init
在操作完成之后,就有这样的一个目录结构:
contracts/
:智能合约的存放目录migrations/
:部署脚本文件目录test/
:测试脚本目录truffle-config.js
:Truffle配置文件
四、创建 Truffle 项目工程
1、为 Truffle 项目创建新目录
mkdir MetaCoin
cd MetaCoin
2、下载 (”unbox“)MetaCoin box
truffle unbox metacoin
这里是下载官方提供的一个合约工程,我们如果要创建没有合约的空工程可以直接运行truffle init
这里如果下载失败了就直接运行此命令,下载的样例代码都是一样的
git clone https://github.com/truffle-box/metacoin-box.git
五、项目结构
1、contracts/MetaCoin.sol
:这是一个用 Solidity 编写的 MetaCoin 代币 智能合约。注意他还引用了目录下的另外一个合约文件contracts/ConvertLib.sol
。
2、contracts/Migrations.sol
: 这是一个单独的 Solidity 文件,用来管理和升级智能合约,每一个工程都有这样的一个文件,并且通常不需要编辑它。
3、migrations/1_initial_migration.js
:这是一个部署脚本,用来部署Migrations
合约,对应Migrations.sol
文件。
4、migrations/2_deploy_contracts.js
:这是一个部署脚本,用来部署MetaCoin
合约(部署脚本的运行是有顺序的,以2开头的脚本通常在以1开头的脚本之后运行)。
5、test/TestMetacoin.sol
:这是一个用 Solidity 编写的测试用例文件,用来检查合约是否像预期一样工作。
6、test/metacoin.js
:这是一个用 JavaScript 编写的测试用例脚本,用途和上面一样。
7、truffle-config.js
:Truffle 配置文件,用来设置网络信息,和其他项目相关的设置。当我们使用内建的默认的Truffle命令时,这个文件留空也是可以的。
六、连接测试
1、创建新连接,连接本地Ganache
2、创建一个新连接,选第一个,输入我们上文本地创建的Ganache端口号,点击回车
3、出现这个表明成功
4、修改truffle-config.js
配置,下面的port对应也是本地Ganche
七、测试合约
1、使用本地Ganache
测试
正常的流程为:truffle develop(启用测试网络)=> compile(编译合约)=> migrate(部署合约)=> test(测试合约)
由于我们是本地Ganache测试,省略掉启用测试网络的步骤。
在终端输入truffle compile
接着输入,truffle migrate
,控制台出现下面,本地ganache出现日志代表部署成功。
执行truffle test
,证明测试成功。
2、使用truffle develop
进行测试
我们安装truffle之后,有一个内置的的个人模拟区块链,不需要连接本地Ganache。区别与上文编辑连接配置,直接控制台输入truffle develop
,会进入truffle控制台。
在truffle控制台执行truffle compile
,truffle migrate
,truffle test
命令会跟上文有同样的效果。