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