使用truffle编译部署合约

1. 什么是truffle

truffle是用于编译部署测试solidity合约的一个套件, 方便使用.

 

2. truffle的依赖

truffle是编译部署测试solidity合约用的, 

编写solidity合约可以使用remix-ide(https://remix.ethereum.org/)

编译solidity使用solc-js, truffle会自动安装

部署solidity需要一个ethereum客户端, 可以用ganache-cli,  早期常用的是rpctest

 

3. 安装truffle

npm install -g truffle

3.1 使用其他版本的solc-js

目前新的truffle是5.x版本, 使用的solc版本默认是0.5.x, 编译一些老版本的solidity合约可能会有问题, 指定其他版本的solc编译器

修改truffle-config.js

  compilers: {
    solc: {
      version: "0.4.24",    // Fetch exact version from solc-bin (default: truffle's version)
 

truffle会自动下载指定版本的solc.

 

4. 部署ERC20合约

下面看一个具体的例子吧.

ERC20合约大概是ethereum上最流星的合约了, 我们看看怎么部署自己的ERC20

4.1 openzeppelin-solidity

openzeppelin-solidity提供了一下标准合约的实现, 减少开发的工作量, 推荐使用

 

pragma solidity 0.4.24;

import "openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol";
import "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol";


contract SimpleToken is DetailedERC20, StandardToken {
    string _name = "Simple Token A";
    string _symbol = "STA";
    uint8 _decimals = 18;
    uint256 _amount = 1000;
  constructor()
    DetailedERC20(_name, _symbol, _decimals)
    public
  {
    require(_amount > 0, "amount has to be greater than 0");
    totalSupply_ = _amount.mul(10 ** uint256(_decimals));
    balances[msg.sender] = totalSupply_;
    emit Transfer(address(0), msg.sender, totalSupply_);
  }
}

4.2 初始化truffle工程 

执行命令'truffle init' 来初始化truffle工程, 这会自动创建一些truffle需要的文件,不详细说.

4.3 编译truffle工程

$truffle compile

这个命令会自动查找contracts目录下的文件编译, 子目录下的文件也会编译,无需担心.

4.4 部署truffle工程

$truffle deploy

这个命令会读取migrations目录下的文件, 按照前缀的数字标号顺序执行. 如果需要部署新的合约, 只需要添加或者修改migrations目录下对应的部署文件即可. migrations目录下会自动生成一个名为"1_initial_migration.js"的文件, 顾名思义是部署truffle自己的migration用的.我们不管他, 我们添加一个自己的文件. "2_deploy.js"

$ cat migrations/2_deploy.js 
const Owned = artifacts.require("SimpleToken")

module.exports = async function(deployer){
    await deployer.deploy(SimpleToken)

这个文件负责部署SimpleToken这个合约. 即使合约放在子目录下, truffle也可以找到 不用担心.

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值