Web3js - вернуть адрес смарт-контракта сразу после развертывания - PullRequest
0 голосов
/ 18 октября 2018

У меня есть умный контракт, который я развертываю с помощью пакета 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 голосов
/ 24 октября 2018

Оформление заказа API новый метод и как вызывать его синхронно и асинхронно.Вы предоставили функции обратного вызова, что означает, что вы запускаете его асинхронно.Удаляя его, вы заставляете его ждать результата.

...