Truffle教程

Truffle Deployer API

部署器Deployer提供了很多有用的API。

deployer.deploy(contract, args…, options)

这个函数部署指定合约,可以传入合约构造函数的参数。
contract 要部署的合约 args… 合约构造函数参数 options 部署选项
部署后将覆盖以前的合约地址(即 Contract.address将等于新部署的地址)。
示例
// 部署单个合约,不传入构造函数参数
deployer.deploy(A);
// 使用构造函数参数部署单个合约
deployer.deploy(A, arg1, arg2, ...);
// 如果已经部署了此合约,则不要部署它
deployer.deploy(A, {overwrite: false});
// 设置部署的gas量上限,及“from”地址
deployer.deploy(A, {gas: 4612388, from: "0x...."});

deployer.link(library, destinations)

这个函数将已部署的库链接到一个或多个合约。目标可以是单个合约,也可以是合约数组。如果目标中有合约不依赖于被链接的库,则该合约将被忽略。
示例
// 部署库LibA,然后将LibA链接到contract B,然后部署B。
deployer.deploy(LibA);
deployer.link(LibA, B);
deployer.deploy(B);
// 将LibA 链接到多个合同
deployer.link(LibA, [B, C, D]);

deployer.then(function() {…})

类似 promise一样,这是 deployer的同步机制。
示例
var a, b;
deployer.then(function() {
  // 创建a的新版本
  return A.new();
}).then(function(instance) {
  a = instance;
  // 获取B的已部署实例
  return B.deployed();
}).then(function(instance) {
  b = instance;
  // 通过B的setA()函数在B上设置A的address新实例。
  return b.setA(a.address);
});
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4