truffle 学习笔记(一)基本命令和配置

本文档详细介绍了Truffle的基本使用,包括部署命令、部署文件的命名规则,以及1.基本配置中的artifacts.require()和module.exports的用法。还探讨了Initial migration的作用,2.部署器(Deployer)的功能,3.网络配置的灵活性,4.选择账户的方法,以及5.Deployer.API的各种方法如deployer.deploy和deployer.link。同时,提到了solc编译器配置和钱包的使用。
摘要由CSDN通过智能技术生成

部署命令

初次部署: truffle migrate

重新部署:truffle migrate --reset

部署文件

​ 先修改./migrations/2_initial_migration.js

​ 注意,文件名的前缀是数字,后缀是描述。为了记录迁移是否成功运行,需要有编号的前缀。后缀是纯粹为了人类的可读性和理解力。

1.基本配置

artifacts.require()

​ 在迁移开始时,我们通过artifacts.require()方法告诉Truffle我们想与哪些合同进行交互。 这个方法类似于Node的要求,但在我们的例子中,它特别返回了我们可以在其余部署脚本中使用的抽象合约。 指定的名称应与该源文件中的合同定义的名称匹配。 不传递源文件的名称,因为文件可以包含多个合同。举例:

// fileName: ./contracts/Contracts.sol
contract ContractOne { // ... }

contract ContractTwo { // ... }

如果只用合约中的ContractTwo你的artifacts.require()这样写:

var ContractTwo = artifacts.require("ContractTwo");

如果两者都要用:

var ContractOne = artifacts.require("ContractOne");
var ContractTwo = artifacts.require("ContractTwo");
module.exports

​ 所有迁移都必须通过module.exports语法导出函数。 每次迁移导出的函数都应接受部署者对象作为其第一个参数。 此对象通过为部署智能合约提供清晰的语法以及执行某些部署更普通的职责(例如保存已部署的工件以供以后使用)来帮助部署。 部署者对象是用于暂存部署任务的主要界面,其API在本页底部描述。

Initial migration

​ Truffle 框架中必须保留 contracts/Migrations.solmigrations/1_initial_migration.js这两个文件,

部署的时候,将先部署这个合约。

2.部署器(Deployer)

​ 您的部署文件将使用部署器来完成部署任务。 因此,您可以同步编写部署任务,它们将以正确的顺序执行:

// 先部署A再部署B,两者直接无直接联系
deployer.deploy(A);
deployer.deploy(B);
// 部署A后把A的地址作为参数再部署B
deployer.deploy(A).then(function() {
  return deployer.deploy(B, A.address);
});

后面有详细的API文档说明

3.网络配置

可以根据部署到的网络有条件地运行部署步骤。 这是一项高级功能,因此请在继续之前先查看“Networks”部分。

要有条件地暂存部署步骤,请编写迁移,以便它们接受第二个参数,称为Network。 例:

module.exports = function(deployer, network) {
   
  if (network == "live") {
   
    // Do something specific to the network named "live".
  } else {
   
    // Perform a different step otherwise.
  }
}

4.选择账户

​ 迁移还传递了Ethereum客户端和web3提供商提供给您的帐户列表,供您在部署期间使用。这是从web3.eth.getAccounts()返回的相同的帐户列表。

module.exports = function(deployer, network
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值