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);
});


浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载