Вышел мажорный выпуск foundry — 1.8.0

3 мин

Сегодня, 27 августа 2026 года официально стал доступен свежий мажорный выпуск foundry, дополненный одной новой утилитой. В этом релизе добавили символьные вычисления с использованием локального Z3 SMT-решателя, улучшили фаззинг-тестирование, в первый раз не опубликовали релиз через npm и многое другое, что делает данный релиз одним из самых важных релизов за последние год или даже два. Далее главные изменения в релизе и почему у вас могли перестать проходить тесты при обновлении.

Фаззинг и тестирование

Основные изменения релиза сосредоточены именно в этой области, так были добавлены:

  1. Символьные вычисления с использованием локального решателя (по умолчанию Z3 SMT). Конечно, базовая формальная верификация с использованием того же Z3 SMT уже есть в самом компиляторе solc, тем не менее там она сводится к поиску доказательств невозможности упасть с assert при указанных requires, что не делает её весьма практичной и поэтому она в таком виде не стала стандартом в индустрии. foundry привносит намного более мощные символьные вычисления, которые к тому же не требуют изменения основных умных контрактов проекта, что делает данный подход намного более практичным и приближает эпоху повсеместно распространённой формальной верификации. Для запуска необходимо использовать опцию ‑-symbolic, например, forge test --symbolic;

  2. Mutation‑тестирование теперь доступно через опцию --mutation. Теперь можно проверить не только то, что каждая строка вашего кода покрыта тестами, но и быть уверенным в том, что asserts в тестах действительно отлавливают модификация поведения. Использование доступно через forge test --mutation;

  3. Добавлена возможность тестирования с загрязнённой памятью (storage и transient области памяти теперь могут быть дозаполнены рандомными значениями перед запуском ваших тестов). Использовать через forge test --brutalize;

  4. Оптимизировано фаззинг‑ и invariant‑ тестирование, а также добавлены новые команды forge fuzz.

Линтер безопасности

forge lint был расширен большим количеством детекторов безопасности, корректности, газа и многого другого. Раньше для всего этого я бы предпочёл инструмент eth-wake от Ackee Blockchain Security и всем бы его рекомендовал, но начиная с версии 1.8.0 forge может вполне конкурировать с ним в этой сфере, так что имеет смысл рассмотреть его использование в проектах на foundry.

Распространение

Начиная с релиза 1.8.0 foundry больше не распространяется через npm.

Нарушение обратной совместимости

Первым делом после выхода новой версии я обновился и прогнал тесты на проекте, которые сразу же показали больше падений, чем обычно. Сначала я подумал, что это из‑за улучшений фаззинг‑ и invariant‑тестирования, что было заметно, однако не только в этом было дело. Основное изменение релиза в том, что теперь все тесты запускаются по умолчанию в режиме изоляции. Из‑за этого чаще происходят обращения к непрогретому storage, что изменяет потребление газа. К тому же теперь в рамках каждого теста обнуляется содержимое transient‑переменных между вызовами (именно это и поломало мне сегодня все тесты). В целом модификация чрезвычайно полезное и приближает тестовые сетапы к реальной среде исполнения, но тесты придётся адаптировать.

Другим важным изменением, нарушающим обратную совместимость, является динамическая линковка, которая теперь включена по умолчанию, что ощутимо ускоряет рабочий worflow.

Читают сейчас

Prusa представила PrusaSlicer 3.0 с новым интерфейсом и поддержкой плагинов

5 часов назад

Prusa представила PrusaSlicer 3.0 с новым интерфейсом и поддержкой плагинов

Команда Prusa Research выпустила первую публичную альфа‑версию слайсера PrusaSlicer 3.0. Авторы переписали интерфейс, переработали систему профилей, добавили поддержку полноценной работы с несколькими

Anthropic обновила Claude – вышли Fable 5.1 и Mythos 5.1

6 часов назад

Anthropic обновила Claude – вышли Fable 5.1 и Mythos 5.1

Anthropic выпустила апдейт своих топовых моделей – Claude Fable 5.1 и Claude Mythos 5.1. Это одна и та же модель под капотом, различающаяся уровнем защитных ограничений: Fable 5.1 доступна всем в цело

Creality представила 3D‑принтер SPARKX i8 с поддержкой многоцветной печати и быстрой сменой филамента

6 часов назад

Creality представила 3D‑принтер SPARKX i8 с поддержкой многоцветной печати и быстрой сменой филамента

Creality представила 3D‑принтер SPARKX i8 с поддержкой четырёхцветной печати. Его главная особенность заключается в системе QuarTeks, в которой прутки филамента подведены практически к самому соплу, б

Базовая релиз MacBook Neo аномально быстро расходует источник SSD из‑за всего 8 ГБ оперативной памяти

6 часов назад

Базовая релиз MacBook Neo аномально быстро расходует источник SSD из‑за всего 8 ГБ оперативной памяти

Автор YouTube‑канала UFD Tech рассказал, что MacBook Neo необычно быстро расходует источник SSD‑накопителя. Всё дело в небольшом объёме оперативной памяти, из‑за которой устройство активно записывает

Anthropic предупредила пользователей Claude об утечке их данных для входа из‑за вредоносного ПО

6 часов назад

Anthropic предупредила пользователей Claude об утечке их данных для входа из‑за вредоносного ПО

Организация Anthropic предупредила, что инфостилеры перехватывают сеансы Claude и открывают злоумышленникам доступ к учётным записям пользователей. Читать далее