web3-testing
Тестирование смарт-контрактов с Hardhat
Написание комплексных тестов для смарт-контрактов является сложной и трудоемкой задачей. Этот навык предоставляет готовые к использованию паттерны для модульных тестов, интеграционных тестов, фаззинга, оптимизации газа и форкинга mainnet с использованием Hardhat и Foundry.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «web3-testing». Напишите модульный тест Hardhat для контракта токена ERC20
Ожидаемый результат:
- Тест развертывания: Проверяет назначение владельца и общий объем
- Тест перевода: Подтверждает переводы токенов между счетами
- Тест событий: Проверяет испускание событий Transfer и Approval
- Тест баланса: Валидирует изменения баланса после переводов
- Тест времени: Тестирует функциональность выпуска токенов с временной блокировкой
Использование «web3-testing». Создайте тест Foundry для переводов токенов с фаззингом
Ожидаемый результат:
- Фаззинг-тест: Тестирует переводы со случайными суммами в допустимом диапазоне
- Граничный тест: Обрабатывает нулевые и максимальные суммы переводов
- Prank-тест: Симулирует разные адреса отправителей
- Тест событий: Проверяет испускаемые события Transfer с правильными параметрами
Аудит безопасности
БезопасноDocumentation-only skill containing code examples and best practices for smart contract testing. Static findings are false positives triggered by blockchain testing terminology (prank, fork, deal), environment variable references demonstrating secure secret handling patterns, and markdown code block syntax. The skill teaches recommended security practices and has no executable code, network calls, or file access capabilities.
Факторы риска
🔑 Переменные окружения (1)
Оценка качества
Что вы можете построить
Настройка тестовых наборов
Создание комплексных тестовых наборов для контрактов Solidity с использованием паттернов Hardhat и Foundry.
Валидация интеграций DeFi
Тестирование смарт-контрактов против форков mainnet существующих DeFi протоколов, таких как Uniswap.
Фаззинг логики контрактов
Использование фаззинга Foundry для обнаружения граничных случаев и потенциальных уязвимостей в смарт-контрактах.
Попробуйте эти промпты
Напишите модульный тест Hardhat для контракта токена ERC20, который тестирует развертывание, переводы и события одобрения.
Создайте интеграционный тест для контракта стейкинга, который тестирует потоки депозита, запроса вознаграждений и вывода средств с использованием Hardhat.
Напишите тест, который форкает Ethereum mainnet и тестирует функциональность свопа Uniswap V2 с форком токена DAI.
Создайте тест сравнения газа между двумя различными реализациями одной и той же функции смарт-контракта с использованием gas reporter Hardhat.
Лучшие практики
- Используйте фикстуры для избежания дублирования кода в нескольких тестовых случаях
- Стремитесь к покрытию не менее 90% для критических функций контрактов
- Тестируйте граничные случаи, такие как нулевые адреса, максимальные значения и сценарии повторного входа
Избегать
- Избегайте тестирования нескольких несвязанных сценариев в одной тестовой функции
- Не используйте форкинг mainnet во всех тестах - резервируйте для интеграционных сценариев
- Избегайте жестко закодированных приватных ключей или секретов в тестовых файлах
Часто задаваемые вопросы
Какие тестовые фреймворки поддерживаются?
Какое максимальное покрытие тестов рекомендуется?
Может ли этот навык взаимодействовать с mainnet напрямую?
Безопасны ли мои приватные ключи?
Почему мои тесты падают с ошибками таймаута?
Чем Foundry отличается от Hardhat?
Сведения для разработчиков
Автор
wshobsonЛицензия
MIT
Репозиторий
https://github.com/wshobson/agents/tree/main/plugins/blockchain-web3/skills/web3-testingСсылка
main
Структура файлов
📄 SKILL.md