Web3js - 部署后立即返回智能合约地址
Posted
技术标签:
【中文标题】Web3js - 部署后立即返回智能合约地址【英文标题】:Web3js - Return smart contract address immediately after deployment 【发布时间】:2019-03-22 16:11:18 【问题描述】:我有一个使用 Web3.js 包部署的智能合约。我有一个名为deploySmartContract()
的函数,它可以执行此操作,并且我希望此方法将合约地址返回给调用函数。以下是deploySmartContract()
的 sn-p -
function deploySmartContract(shareName, symbol, maxSupply)
var _shareName = shareName;
var _symbol = symbol;
var _maxSupply = maxSupply;
var contractAddr = '';
var sharesregistry = contractObj.new(
_shareName,
_symbol,
_maxSupply,
from: primaryAccount,
data: byteCode,
gas: '5000000'
, function (e, contract)
console.log(e, contract);
if (typeof contract.address !== 'undefined')
console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
);
console.log(sharesregistry.address);
return sharesregistry;
除非整个交易完成并在合约被挖掘时执行 return,否则我如何才能让我的 return 语句等待?否则我在调用函数中得到的只是shareregistry
对象的骨架。
在这里,我确认这段代码完美地部署了智能合约。
【问题讨论】:
【参考方案1】:Checkout API new 方法以及如何同步和异步调用它。您提供了回调函数,这意味着您可以异步运行它。通过删除它,您会强制它等待结果。
【讨论】:
以上是关于Web3js - 部署后立即返回智能合约地址的主要内容,如果未能解决你的问题,请参考以下文章
使用 web3js 和 galanche 调用具有价值的以太坊智能合约