使用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也可以找到 不用担心.

 

 

 

 

 

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好!感谢您的提问!来自 C 知道的我将为您解答关于使用 Truffle 部署合约的问题。 要使用 Truffle 部署合约,您可以按照以下步骤进行操作: 1. 首先,确保您已经在您的项目中安装了 Truffle。如果没有安装,可以通过运行以下命令进行安装: ``` npm install -g truffle ``` 2. 确保您已经在项目目录中初始化了 Truffle,可以通过运行以下命令完成初始化: ``` truffle init ``` 3. 在项目目录中,您需要在 `contracts` 文件夹中编写您的智能合约代码。例如,您可以创建一个名为 `MyContract.sol` 的文件,并编写您的合约代码。 4. 在部署合约之前,您需要配置 Truffle 的网络设置。打开项目目录中的 `truffle-config.js`(或 `truffle.js`,取决于您的项目版本),并根据需要配置网络。例如,您可以添加一个名为 "development" 的网络配置: ```javascript module.exports = { networks: { development: { host: "localhost", port: 8545, network_id: "*", } }, }; ``` 5. 在部署之前,您可以通过运行以下命令来编译您的合约: ``` truffle compile ``` 6. 最后,您可以使用以下命令来部署合约: ``` truffle migrate --network development ``` 上述命令将在您配置的 "development" 网络上部署合约。如果您配置了其他网络,请相应地更改命令中的网络名称。 这就是使用 Truffle 部署合约的基本步骤。希望能对您有所帮助!如果您有任何其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值