в контракт можно посчитать какой Gas limit нужно выставить при определенных параметрах транзакции. Это умеет делать например web3.
Есть админ контракта, у меня нет ключа от его кошелька. И есть функция контракта, которую может вызвать только админ. Могу ли я посчитать его газ лимит на исполнение этой транзакции? Потому что пытаясь сделать это стандартным способом, я конечно получаю revert, так как вообще не имею прав на исполнение данной функции. Возможно ли это?
Какой смысл вычислять лимит по газу на функцию, которую все равно не можешь вызвать? :)
Всегда находится человек, который спрашивает "какой смысл" 🤔 Ну вообще админ контракта и попросил. Но ключ не даст конечно. Короче задача есть, а решения нет.
Самый простой способ это сьэмитировать контракт в тестовой сети - понятный будут стоимость вызова по газу
Код контракта есть? Тогда задеплоить в тестовую сеть от себя Второй вариант - если админ эту функцию уже вызывал. Тогда просто по истории транзакций найти нужную и посмотреть расход газа
Вот тут самое непонятное! Я написал контракт который имеет ТОЛЬКО эту функцию. Вот только оно требует в remix ide 14к газа, а если админ смотрит газ лимит от реального контракта, через метамаск - там стоит 28к газа. И я честно говоря вообще не понимаю откуда этот разброс, функция то такая же, должна вызывать те же опкоды и ту же стоимость. Но спасибо, наверное буду пробовать дальше через тестнеты играться.
у метамаска есть коэф. который он добавляет к тому, что ему врнул eth_estimateGas для вызываемого метода. В большинстве случаев, реальное количество потраченного газа будет меньше, чем то, которое предлагает MM. Перестраховывается.
Уже 10 раз обсуждали, решает общий стейт сети.
Впервые слышу. Спасибо, буду иметь ввиду. Всегда считал что это фиксированная величина в любой момент времени. Как то такая относительность дурно пахнет 🤔 Тогда через тестнет я ничего не протестирую раз это плавающее значение.
Тоже так думал раньше
Обсуждают сегодня