返回介绍

deploy - 部署合约

发布于 2020-01-19 11:52:17 字数 2126 浏览 1592 评论 0 收藏 0

调用合约的deploy()方法将其部署到区块链上。其返回的Promise对象 将在成功部署后解析为新的合约实例。

调用:

myContract.deploy(options)

参数:

options - Object: 用于部署的配置选项,包含以下字段:

  • data - String: 合约的字节码
  • arguments - Array : 可选,在部署时将传入合约的构造函数

返回值:

Object: 交易对象,包含以下字段:

  • arguments: Array - 之前传入方法的参数,可修改
  • send: Function - 用来部署合约,其返回的promise对象将解析为新的合约实例,而非交易收据!
  • estimateGas: Function - 用来估算用于部署的gas用量
  • encodeABI: Function - 用来编码部署的ABI数据,即合约数据 + 构造函数参数

示例代码:

myContract.deploy({
    data: '0x12345...',
    arguments: [123, 'My String']
})
.send({
    from: '0x1234567890123456789012345678901234567891',
    gas: 1500000,
    gasPrice: '30000000000000'
}, function(error, transactionHash){ ... })
.on('error', function(error){ ... })
.on('transactionHash', function(transactionHash){ ... })
.on('receipt', function(receipt){
   console.log(receipt.contractAddress) // 收据中包含了新的合约地址
})
.on('confirmation', function(confirmationNumber, receipt){ ... })
.then(function(newContractInstance){
    console.log(newContractInstance.options.address) // 新地址的合约实例
});


// data是合约自身的一个可选配置项
myContract.options.data = '0x12345...';

myContract.deploy({
    arguments: [123, 'My String']
})
.send({
    from: '0x1234567890123456789012345678901234567891',
    gas: 1500000,
    gasPrice: '30000000000000'
})
.then(function(newContractInstance){
    console.log(newContractInstance.options.address) // instance with the new contract address
});


// 编码
myContract.deploy({
    data: '0x12345...',
    arguments: [123, 'My String']
})
.encodeABI();
> '0x12345...0000012345678765432'


// 估算gas
myContract.deploy({
    data: '0x12345...',
    arguments: [123, 'My String']
})
.estimateGas(function(err, gas){
    console.log(gas);
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文