web3.js getGasPrice devuelve nulo

Reemplazo el web3 de mi MetaMask con web3.js 1.0.0-beta.34, y getGasPrice siempre devuelve nulo en cada red.

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

es decir, de mainnet a Ropsten a mi registro de red privada (ganache-cli) --

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

¿Alguien más tiene la misma experiencia? ¿Qué pudo haber salido mal?

Para otros usuarios, aquí está la solución stackoverflow.com/a/48837262/425648
@MaulikVora, el enlace que propuso sigue la API 0.2 de web3.js, la API web3 1.0 se puede encontrar en web3js.readthedocs.io/en/1.0/web3-eth.html#getgasprice

Respuestas (2)

Resulta que la sintaxis correcta para web3 1.0 debería ser --

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

que registra --

gasPrice = 20000000000

Otra forma asíncrona :

  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);
Si bien es bueno conocer el precio del gas para una transacción, web3.eth.getGasPrice() devuelve el precio promedio del gas sin tener que realizar una transacción. La diferencia es sutil pero importante ya que getGasPrice() se usa comúnmente para medir el precio del gas que se usará para una transacción futura.