Truffle安装
本教程的要求是你要知道它是什么以及如何使用命令行工具,并且你要稍微熟悉 NPM,可查看官网文档。
Truffle
打开命令行窗口,并输入:
npm install -g truffle
如果出现错误,建议你多阅读有关 Truffle 的文档。
【以太坊区块链Truffle框架安装和使用】Truffle使用
truffle 项目的初始化
在终端窗口执行下面命令进行项目初始化:
truffle init
![以太坊区块链Truffle框架安装和使用](https://img.it610.com/image/info8/0641bc75fd2e46debc155e044f0fa114.png)
文章图片
项目初始化后生成上面的目录结构,下面对文件结构作个简要的说明:
Contracts文件夹用来存放合约代码,Migrations.sol框架自带的合约代码,合约方便进行合约部署。合约的代码可以放在此文件下。
Migrations文件夹用来存放合约的部署脚本,默认包含部署Migrations.sol。每一个合约对应一个部署脚本。
Truffle-config.js用来配置网络的情况。可配置多个网络包括:测试网络,正式网络等。
Truffle.js windows在命令行环境,运行命令会默认打开这个文件,在windows环境可删掉。
Truffle框架常用的命令
以官网SimpleStorage.sol合约为例,合约的代码如下,把合约文件放在项目的contracts文件下面:
pragma solidity ^0.4.17;
contract SimpleStorage { uint myVariable;
function set(uint x) public {myVariable = x;
}function get() constant public returns (uint) {return myVariable;
}}
在命令窗口,执行下面命令,编译合约:
truffle compile
项目的根目录下生成builds文件下如下图:
![以太坊区块链Truffle框架安装和使用](https://img.it610.com/image/info8/dad5062336754fa5a13e504cdb5c69ef.jpg)
文章图片
编译完成后,下一步我们需要部署合约了,为了演示方便,部署环境使用Truffle自带的测试环境truffle-config.js不需要调整:
然后,我们需要创建SimpleStorage合约的部署脚本,上文讲过,一个合约对应一个部署的脚本,命名为2_initial_migrations.js(脚本命名规则,如果有N个合约,脚本命名n_ initial_migrations.js),编写脚本的内容如下:
var SimpleStorage =artifacts.require("./SimpleStorage");
module.exports =function(deployer) {deployer.deploy(SimpleStorage);
};
编写完成SimpleStorage合约部署脚本后,运行下面命令,进入控制台
truffle develop
控制台正常启动后,默认初始化10个账户,如下图:
![以太坊区块链Truffle框架安装和使用](https://img.it610.com/image/info8/574169a7d07049f5aa32d513cb80164c.jpg)
文章图片
正常启动控制台,执行下面命令即可部署合约到Truffle自带的测试环境:
migrate
![以太坊区块链Truffle框架安装和使用](https://img.it610.com/image/info8/835701ba984c4d86adf006f87db7decb.jpg)
文章图片
控制台常用命令:
合约修改后,重新部署合约,而不需要退出控制台
migrate –reset
获取合约的实例:
var instance
SimpleStorage.deployed().then(function(i){instance=i;
})
调用合约非交易方法SimpleStorage.get()
instance.get.call()
调用合约交易方法SimpleStorage.set()
instance.set(4)
debug交易,txid为交易的哈希值
debugtxid
启动控制台日志信息
truffle develop --log
推荐阅读
- 推动NFT走出监管困境,BSN推出支持NFT基础设施网络
- 腾讯|SaaS的收入模型有哪些(终于有人讲明白了)
- 就业方向上什么才是最重要的(--- 来自程序猿的迷茫。(C++?Java?or算法?))
- 区块链中加密货币的含义
- 波场万倍潜力币HYL23号21:09分 正式上线JustSwap
- 《瀚兰房地产开发区块链应用及案例分享》BSN培训精华回顾
- 对联盟链而言,跨链协议为什么重要()
- 区块链能够应用在哪些行业
- BSN区块链服务网络中密钥托管模式和公钥上传模式有啥区别()
- 币圈人物传|币圈大佬今何在 唯有一诺正当时