web3.js getGasPrice возвращает ноль

Я заменяю web3 моего MetaMask на web3.js 1.0.0-beta.34, и getGasPrice всегда возвращает null в каждой сети --

window.web3 = new Web3(web3.currentProvider);
console.log('web3.version = ' + web3.version);
web3.eth.getGasPrice(gasPrice => {
    console.log('gasPrice = ' + gasPrice);
});

то есть из основной сети в Ropsten в журнал моей частной сети ( ganache-cli ) --

web3.version = 1.0.0-beta.34
gasPrice = null

Есть ли у кого-нибудь еще такой же опыт? Что могло пойти не так?

Для других пользователей вот решение stackoverflow.com/a/48837262/425648
@MaulikVora предложенная вами ссылка следует за API web3.js 0.2, API web3 1.0 можно найти по адресу web3js.readthedocs.io/en/1.0/web3-eth.html#getgasprice .

Ответы (2)

Оказывается, правильный синтаксис для web3 1.0 должен быть --

web3.eth.getGasPrice().then(gasPrice => {
   console.log('gasPrice = ' + gasPrice);
});

какие журналы --

gasPrice = 20000000000

Другой асинхронный способ:

  let transaction = await any_function;
  let gasUsed = transaction.receipt.gasUsed;
  let txInfo = await web3.eth.getTransaction(transaction.tx);
  let gasPrice = txInfo.gasPrice;
  console.log(gasPrice);
Хотя полезно узнать о gasPrice для транзакции, web3.eth.getGasPrice() возвращает среднюю цену на газ без необходимости проведения транзакции. Разница тонкая, но важная, так как getGasPrice() обычно используется для оценки цены на газ, которая будет использоваться для будущей транзакции.