который тратится на каждый опкод. Как люди его считают? Прогоняют метод контракта на evm с заданными параметрами и суммируют цены выполненных операций?
https://web3js.readthedocs.io/en/v1.4.0/web3-eth-contract.html?highlight=%20gas%20Estimate#id40
прогоняют метод, да, но суммируется всё автоматически и юзеру отдаётся конечная сумма, которую лучше увеличить процентов на 10-20, чтобы отправить в транзе, так как посчитанное на текущий момент и посчитанное в момент выполнения транзы - может немного измениться
но это видимо от специфики контракта зависит? то есть, что может измениться между моментом когда посчитали мы и посчитала сеть — это состояние. Предположим, что где-то есть if (state.variable) { млн газа }, который мы не учли перед отправкой. И 10-20% там не помогут. Есть ли анализаторы, которые считают worst case по control flow, или таким не занимаются и это не интересно никому?
да, от специфики зависит, может координально газ измениться, но такие контракты редко встретишь, ну и каждый создатель контракта должен свой фронт писать который учитывает такие ньюансы
Обсуждают сегодня