Установить | Книга пользователя | Документация разработчика | Документы по ящикам
Foundry — это невероятно быстрый, портативный и модульный набор инструментов для разработки приложений Ethereum, написанный на Rust.
Литейный цех состоит из:
Forge : среда тестирования Ethereum (например, Truffle, Hardhat и DappTools).
В ролях : швейцарский армейский нож для взаимодействия со смарт-контрактами EVM, отправки транзакций и получения данных цепочки.
Anvil : локальный узел Ethereum, аналог Ganache, Hardhat Network.
Chisel : быстрый, утилитарный и многословный REPL.
Нужна помощь в начале работы с Foundry? Прочтите? Литейная книга (НЗП)!
См. руководство по установке в книге.
Если при установке у вас возникли проблемы, ознакомьтесь с разделами «Помощь» и «Часто задаваемые вопросы».
Быстрый и гибкий конвейер компиляции
Автоматическое определение и установка версии компилятора Solidity
Инкрементальная компиляция и кэширование : перекомпилируются только измененные файлы.
Параллельная компиляция
Поддержка нестандартных структур каталогов (например, репозиториев Hardhat)
Тесты пишутся на Solidity (как в DappTools).
Быстрое фазз-тестирование с сокращением входных данных и печатью контрпримеров
Режим быстрого удаленного разветвления RPC с использованием асинхронной инфраструктуры Rust, такой как tokio
Гибкое ведение журнала отладки
В стиле DappTools с использованием журналов, созданных DsTest
.
В стиле Hardhat с использованием популярного контракта console.sol
Портативный (5–10 МБ) и простой в установке без необходимости использования Nix или любого другого менеджера пакетов.
Быстрая CI с действием Foundry GitHub.
Forge довольно быстро компилирует (с использованием ethers-solc) и тестирует.
См. тесты ниже. Дополнительные тесты можно найти в объявлении о версии 0.2.0 и в репозитории Convex Shutdown Simulation.
Тестирование тестов
Проект | Кузница | DappИнструменты | Ускорение |
---|---|---|---|
передачи11/сольмат | 2,8 с | 6 минут 34 секунды | 140x |
рефлексер-лаборатории/geb | 0,4 с | 23 с | 57,5x |
Рари-Капитал/хранилища | 0,28 с | 6,5 с | 23x |
Примечание. В приведенных выше тестах компиляция всегда пропускалась.
Тесты компиляции
Вывод: компиляция Forge постоянно происходит быстрее в 1,7–11,3 раза, в зависимости от объема кэширования.
Cast — это швейцарский армейский нож для взаимодействия с приложениями Ethereum из командной строки.
Дополнительную документацию можно найти в пакете cast.
foundry.toml
Foundry спроектирован так, чтобы быть очень настраиваемым. Вы можете настроить Foundry, используя файл foundry.toml
в корне вашего проекта или в любом другом родительском каталоге. См. пакет конфигурации для всех доступных опций.
Конфигурация может иметь произвольное пространство имен по профилям. Профиль по умолчанию называется default
(см. «Профиль по умолчанию»).
Вы можете выбрать другой профиль, используя переменную среды FOUNDRY_PROFILE
. Вы также можете переопределить части своей конфигурации, используя переменные среды с префиксом FOUNDRY_
или DAPP_
, например FOUNDRY_SRC
.
forge init
создает базовый расширяемый файл foundry.toml
.
Чтобы увидеть вашу текущую конфигурацию, запустите forge config
. Чтобы просмотреть только базовые параметры (установленные с помощью forge init
), запустите forge config --basic
. Это можно использовать для создания нового файла foundry.toml
с помощью forge config --basic > foundry.toml
.
По умолчанию forge config
показывает текущий выбранный профиль Foundry и его значения. Он также принимает те же аргументы, что и forge build
.
Вы можете повторно использовать переменные среды .dapprc
, запустив source .dapprc
перед использованием инструмента Foundry.
Дополнительные руководства по настройке и настройке можно найти в Foundry Book:
Настройка VSCode
Автодополнение оболочки
Ознакомьтесь с нашими рекомендациями по участию.
Сначала посмотрите, можно ли найти ответ на ваш вопрос в книге или в соответствующем ящике.
Если ответа нет:
Присоединяйтесь к поддержке Telegram, чтобы получить помощь, или
Откройте обсуждение, задав свой вопрос, или
Откройте проблему с ошибкой
Если вы хотите внести свой вклад или следить за обсуждением участников, вы можете использовать нашу основную телеграмму, чтобы поговорить с нами о развитии Foundry!
Foundry — это переработанная версия среды тестирования DappTools. Ничего из этого не было бы возможным без многолетней работы команды DappHub.
Маттиас Зейтц: Создал ethers-solc, который является основой нашего конвейера компиляции, а также бесчисленное количество вкладов в эфиры, в частности макросы abigen
.
Рохит Наруркар: Создал менеджер версий Rust Solidity svm-rs, который мы используем для автоматического обнаружения и управления несколькими версиями Solidity.
Брок Элмор: За расширение чит-кодов виртуальной машины и реализацию структурированной трассировки вызовов — важнейшей функции для отладки вызовов смарт-контрактов.
Все остальные участники эфиров, репозиториев и чатов Foundry.