【问题标题】:Web3js - Return smart contract address immediately after deploymentWeb3js - 部署后立即返回智能合约地址
【发布时间】: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 对象的骨架。

在这里,我确认这段代码完美地部署了智能合约。

【问题讨论】:

    标签: javascript blockchain smartcontracts web3js


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-05
      • 2022-12-06
      • 1970-01-01
      • 2021-01-21
      • 2021-11-15
      • 2022-10-16
      • 2018-09-23
      • 2018-12-19
      相关资源
      最近更新 更多