其他依赖
node.js、
由于是利用npm进行,所以先设置国内镜像源。去网上搜
1.安装truffle
npm install truffle -g
truffle --version
安装完其他项目依赖,能够产生一下效果
2.项目创建
创建test文件夹
mkdir test
进入test
cd test
初始化项目
truffle init
contracts: 编写以及存放智能合约的文件夹
migrations:使用solidity编写智能合约的文件夹,编写文件解释truffle 如何部署智能合约,用的是node.js
test: 用来写测试文件,大多数使用的是node.js,也有一些使用的是Solidity
truffle-config.js: 配置文件用来定义智能合约部署的网络
3.编辑合约
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <=0.9.0; //请注意solidity的版本问题,如果合约指定的版本和当前Solidity不兼容的话,这将会在编译的时候出错
contract Test {
uint data;
function updateData(uint _data) external {
data = _data;
}
function readData() external view returns (uint) {
return data;
}
}
4.编译合约
5.部署合约
ganache可以独立安装,但是当安装了truffle时,也会自动安装ganache,编写、测试好的智能合约可以部署到私有链或以太坊测试网络。
1. 编写test_deploy.js 迁移文件
const Test = artifacts.require("Test");
module.exports = function (deployer) {
deployer.deploy(Test);
};
2. 编辑truffle-config.js文件
这个对应Ganache的配置。
3. 部署合约
truffle migrate
6.合约测试
会重新编译和部署
const Test = artifacts.require('Test');
contract('Test', () => {
it('Should update data', async () => {
const newTest = await Test.new();
await newTest.updateData(10);
const data = await newTest.readData();
assert(data.toString() === '10',"failed!");
});
});