Web3js - Return 部署后的智能合约地址
Web3js - Return smart contract address immediately after deployment
我有一个智能合约,我正在使用 Web3.js 包进行部署。我有一个名为 deploySmartContract()
的函数,它会执行此操作,我希望此方法将 return 合同地址发送给调用函数。以下是 deploySmartContract()
-
的片段
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
对象的框架。
在这里,我确认这段代码完美地部署了智能合约。
Checkout API new 方法以及如何同步和异步调用它。您已经提供了回调函数,这意味着您 运行 它是异步的。通过删除它,您可以强制它等待结果。
我有一个智能合约,我正在使用 Web3.js 包进行部署。我有一个名为 deploySmartContract()
的函数,它会执行此操作,我希望此方法将 return 合同地址发送给调用函数。以下是 deploySmartContract()
-
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
对象的框架。
在这里,我确认这段代码完美地部署了智能合约。
Checkout API new 方法以及如何同步和异步调用它。您已经提供了回调函数,这意味着您 运行 它是异步的。通过删除它,您可以强制它等待结果。