¿Cómo funciona MetaMask con gas?

Tengo alguna aplicación web basada en Ethereum. Así es como llamo a alguna función de un contrato:

contract.doSomething.sendTransaction(data, {gasPrice: web3.toWei(10, 'Gwei')}, callback...);

Este código funciona. Pero tengo algunas preguntas:

1) ¿Puedo cambiar GASPRICE para esta transacción en MetaMask?

2) ¿Cómo sabe MetaMask qué GASLIMIT establecer ?

3) Si no se especifica GASPRICE en el código de transacción, ¿cómo sabe MetaMask cómo configurar GASPRICE?

Respuestas (2)

De acuerdo con el siguiente código , así es como metamask genera diferentes estimaciones de gas:

  • Obtenga los detalles de los 5 bloques más recientes.
  • Obtenga la tarifa base del último bloque.
  • Ajuste la tarifa base según la prioridad alta, media o baja del usuario.
  • De cada bloque, recopile la tarifa de prioridad para transacciones en los percentiles 10, 20 y 30.
  • Ordene las tarifas de prioridad según el percentil y obtenga las medianas de cada una de la lista ordenada de tarifas de prioridad.
  • Ajuste las medianas según la prioridad de usuario alta, media o baja.
  • Obtenga las estimaciones de gas de su transacción.
  • Calcule la tarifa usando la siguiente fórmula,
    tarifa = (estimaciones de gas) * (tarifa base ajustada + tarifa de prioridad ajustadamediana)

Este artículo de Chainstack explica el proceso de estimación de gas metamask y también proporciona una implementación de Python del proceso de estimación de gas: https://chainstack.com/a-developers-guide-to-the-transactions-in-mempool-code-edition/

Metamask realiza estimaciones sobre cuánto gas se necesita (límite de gas). Supongo que agrega un margen de "seguridad" además de eso. Además, las estimaciones de gas a veces son muy inexactas y/o imposibles de realizar debido a varias razones.

El precio predeterminado de la gasolina probablemente se toma de un sistema de predicción de precios de la gasolina como https://ethgasstation.info/ .

Puede ajustar ambos si es necesario: https://metamask.zendesk.com/hc/en-us/articles/360015488771-How-to-Adjust-Gas-Price-and-Gas-Limit-