Один нюанс про библиотеки
На основе ветки в Твиттере от philogy.
До недавнего времени я был уверен, что в библиотеках могут быть только internal функции, но в одном из конкурсных аудитов было огромное количество библиотек с внешними функциями. Хоть напрямую пользователю их использовать нельзя (только контракты), они несут в себе некоторые неудобства по газу.
Функции в библиотеки используются через delegatecall в других контрактах, что стоит минимум 100 газа за каждый вызов. Более того единоразово к вызову внешней функции добавляется еще 2500 газа.
Таким образом, вызывающий заплатит не менее 2600 газа при вызове external функции из библиотеки.
Это одна из причин, почему в библиотеках рекомендуют использовать только internal функции.
#library #gas
Post #721
435
- ❤ 2