Web3js-部署后立即返回智能合约地址

时间:2018-10-17 21:42:52

标签: javascript blockchain smartcontracts web3js

我有一个智能合约,正在使用Web3.js包进行部署。我有一个名为deploySmartContract()的函数,我希望此方法将合同地址返回给调用函数。以下是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;
}

我如何让我的退货声明一直等待,直到整个交易都完成,并且在挖掘合同时执行退货?否则,在调用函数中我只会得到shareregistry对象的骨架。

在这里,我确认此代码可以完美地部署智能合约。

1 个答案:

答案 0 :(得分:0)

Checkout API new方法以及如何同步和异步调用它。您提供了回调函数,这意味着您可以异步运行它。通过删除它,您迫使它等待结果。