Баг в компиляторе Solidity
В начале февраля был пост о том, что команда Dedaub обнаружила баг в компиляторе, который задел огромное количество задеплоеных контрактов.
Подробнее об этом можно прочитать в этой ветке в Твиттере и в данном посте на GitHub, но я кратно опишу, в чем была суть.
Если вы использовали функции из подключенной библиотеки в конструкторе своего контракта, то они должны были быть использованы только в initcode. Однако созданный из них байткод включался также и в runtime. Это приводило к тому, что размер контракта увеличивался, как и стоимость его разворачивания. В некоторых случаях, такой "не нужный код" мог занимать до трети от размера контракта!
По словам комментаторов, этот баг актуален для всех версий Solidity ниже 0.18, т.е. самой последней.
#solidity #solc
Post #740
511
- 🔥 3