Экономим газ дважды
Часто в отчетах, в разделе по экономии газа, я встречал, что вместо модификаторов можно использовать функции, а вместо текстовых ошибок, как мы пишем в require(1>2, "Ohh no!") лучше использовать кастомные ошибки.
Поэтому вместо
modifier onlyOwner() {
require(msg.sender == owner, "Not an owner");
}
можно использовать:
function _onlyOwner() internal {
if(msg.sender != owner) revert Error();
}
что позволит вам дважды, хоть и немного, но сэкономить газ.
UPD. Тесты показали, что модификатор также может быть дешевле функции. Вероятнее всего, нужно проверять использование газа для каждого конкретного случая. Пример, когда лучше использовать функцию тут.
#gas
Post #637
299
- 👍 5