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...."

});

这个函数将已部署的库链接到一个或多个合约。目标可以是单个合约,也可以是合约数组。如果目标中有合约不依赖于被链接的库,则该合约将被忽略。

示例

// 部署库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); });

下一章:Truffle 与合约交互

  自己编写原始请求,与以太坊网络中的智能合约进行交互,是一件相当繁琐的工作。 Truffle简化了这个工作,利用Truffle提供的功能,我们可以方便地与合约进行交互。  读写数据 ...