Как MetaMask работает с газом?

У меня есть веб-приложение на основе Ethereum. Вот как я вызываю некоторую функцию из контракта:

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

Этот код работает. Но у меня есть несколько вопросов:

1) Могу ли я изменить GASPRICE для этой транзакции в МетаМаске?

2) Как MetaMask узнает, какой GASLIMIT установить ?

3) Если в коде транзакции не указана GASPRICE, как MetaMask узнает, как установить GASPRICE?

Ответы (2)

Согласно следующему коду метамаска генерирует различные оценки газа:

  • Получите подробную информацию о 5 самых последних блоках.
  • Получите базовую плату за последний блок.
  • Настройте базовую плату в соответствии с высоким, средним или низким приоритетом пользователя.
  • С каждого блока взимайте комиссию за приоритет для транзакций в 10-м, 20-м и 30-м процентилях.
  • Отсортируйте сборы за приоритет в соответствии с процентилем и получите медианы каждого из отсортированного списка сборов за приоритет.
  • Отрегулируйте медианы в соответствии с высоким, средним или низким приоритетом пользователя.
  • Получите газовые оценки вашей транзакции.
  • Рассчитайте комиссию по следующей формуле:
    комиссия = (оценка газа) * (скорректированная базовая комиссия + скорректированная медианная комиссия PriorityFee)

В этой статье от chainstack объясняется процесс оценки газа в метамаске, а также представлена ​​реализация процесса оценки газа на Python: https://chainstack.com/a-developers-guide-to-the-transactions-in-mempool-code-edition/

Metamask оценивает необходимое количество газа (лимит газа). Я бы предположил, что это добавляет некоторый запас «безопасности» вдобавок к этому. Кроме того, оценки содержания газа иногда бывают очень неточными и/или невозможными по различным причинам.

Цена на газ по умолчанию, вероятно, взята из системы прогнозирования цен на газ, такой как https://ethgasstation.info/ .

При необходимости вы можете настроить оба параметра: https://metamask.zendesk.com/hc/en-us/articles/360015488771-How-to-Adjust-Gas-Price-and-Gas-Limit-