solidity-以太坊区块链Truffle-webpack开发入门 (六) Deployer的使用

Valora ·
更新时间:2024-11-10
· 527 次阅读

Deployer的使用        原文地址

此对象在migrations目录中的migrate中使用

Deployer包含了很多使用的方法,可以简化migrate操作

可以把deployer看作是一个特别的contract,

Deploy函数

1.可以部署一个合约A

deployer.deploy(A);

2.在部署合约A的时候可以传给合约一些初始化的参数arg2,arg3,......

deployer.deploy(A,arg1,arg2,arg3,….);

3.如果不想重新部署已经部署的合约,可以在第二个参数使用 key=>value的方式

例如告诉deployer不要重新部署: overwrite = false

deployer.deploy(A, {overwrite: false});

限制从某个address发出的操作消耗的最大gas(比特币)

deployer.deploy(A, {gas: 4612388, from: "0x...."});

4.可以同时部署多个合约,并给每个合约传参数

deployer.deploy([
  [A, arg1, arg2, ...],
  B,
  [C, arg1]
]);

ABC都是合约  arg是参数

Link函数

把一个已经部署的库链接到一个和多个合约(注意是已经部署的库)

链接之后在相应的合约中就可以使用这个库中的函数

Demo:

//先部署库LibA

deployer.deploy(LibA);

//链接库LibA和合约B

deployer.link(LibA, B);

//部署合约

deployer.deploy(B);

一次将库连接多个合约

deployer.link(LibA, [B, C, D]);

Then函数

就像es5/6的promise一样,then是一个异步操作

var a, b;
deployer.then(function() {
  // Create a new version of A
  return A.new();
}).then(function(instance) {
  a = instance;
  // Get the deployed instance of B
  return B.deployed();
}).then(function(instance) {
  b = instance;
  // Set the new instance of A's address on B via B's setA() function.
  return b.setA(a.address);
});

作者:大都废



Truffle-webpack solidity 以太坊 webpack

需要 登录 后方可回复, 如果你还没有账号请 注册新账号