版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33781658/article/details/87929541
Truffle
Truffle框架
以太坊框架
把compile,deploy都封装起来了
我们直接调用接口就行了
安装
npm -install truffle -g
创建空项目
truffle init
再说一个linux给权限的命令
sudo chown abc:abc * -R
然后会生成一些源代码
truffle-config.js之类的
然后我们打开看看
文件夹
contracts 放合约
migrations 放部署脚本
test 放测试文件
truffle-config.js 配置文件
truffle常用命令
1.编写合约
2.编译合约
3.部署合约
4.调用
注意:
合约版本一定要和编译器版本匹配
我们写一个简单的SimpleStorage
编译后
生成build文件夹
我们看见,生成了Migrations.json和SimpleStorage.json
我们看见里面有
bytecode
networks
1.编写合约
在contracts文件夹中创建合约文件
2.编译合约
命令truffle compile
此时会生成build文件夹,json文件
json文件包含abi,interface,address
3.部署合约
先启动ganache-cli -m "助记词"
编写部署脚本
在migrations里面添加部署脚本
2_simplestorage.js
然后修改truffle.config
ganacheNet network_id:"*"
然后执行部署
truffle migrate --network ganacheNet
可以
sudo truffle migrate --network ganacheNet
现在合约已经编译部署好了
然后说一下合约交互
如果用web3
1.得到abi,address
2.创建合约实例
3.调用
现在用truffle
truffle提供了一个库
专门用来调用合约truffle-contract
1.truffle有控制台,可以与合约进行交互
2.代码,需要先安装truffle-contract
控制台
我们进入控制台
sudo truffle develop
详细说一下这个truffle develop
这个其实就会自动启动一个虚拟环境
所以我们其实没必要启动ganache了
我们直接truffle develop
就帮我们创建了一个虚拟环境
然后直接用就好了
现在我们可以直接在控制台操作了
let instance = await SimpleStorage.deployed()
instance.setValue(100)
然后我们直接
let res = await instance.getValue.call()
然后
res.toNumber()
就可以看到我们设置的值