Добро пожаловать в репозиторий Telegram Бота для Аудита Смарт-Контрактов! Этот бот помогает Вам проверять безопасность ваших смарт-контрактов на Solidity, предоставляя подробные аудиты прямо в Telegram. 🚀
- ✨ Особенности
- 🛠️ Установка
- 🔧 Использование
- 📜 Команды
- 🔍 Процесс Аудита
- 🧰 Используемые Технологии
- 🤝 Вклад
- 📄 Лицензия
- Асинхронная Обработка: обеспечивает высокую производительность и отзывчивость с использованием
asyncioиaiogram. ⚡ - Безопасность Данных: безопасное хранение данных в PostgreSQL с использованием SQLAlchemy и управление очередями и кэшированием через Redis. 🔒
- Гибкая Система Аудитов: предоставляет бесплатные аудиты и позволяет покупать дополнительные аудиты через простые команды. 💳
- Автоматизированный Аудит: орабатывает запросы на аудит в фоновом режиме, генерирует HTML-отчеты и автоматически уведомляет пользователей. 🕒
- Расширяемость: легко добавлять новые критерии аудита и интегрировать дополнительные инструменты анализа. 📈
- Информативные Отчеты: предоставляет детализированные HTML-отчеты с рекомендациями и выявленными уязвимостями. 📑
- Удобный Интерфейс: интуитивно понятный интерфейс Telegram с кнопками и inline-клавиатурами для удобного взаимодействия. 🎨
- Логирование и Мониторинг: встроенная система логирования для отслеживания действий и быстрого выявления ошибок. 📝
- Управление Очередью: эффективно обрабатывает запросы на аудит с помощью Redis, обеспечивая последовательную обработку. 🛣️
- Автоматическая Очистка: удаляет временные файлы после аудита для поддержания эффективности сервера. 🧹
-
Клонируйте Репозиторий:
git clone https://github.com/elstrm2/CMAt-Bot.git cd CMAt-Bot -
Создайте Виртуальное Окружение:
python3 -m venv venv source venv/bin/activate -
Установите Зависимости:
pip install -r requirements.txt
-
Настройте Переменные Окружения:
- Создайте файл
.envв корневом каталоге. - Добавьте следующие переменные:
TOKEN=ваш_токен_бота DB_USER=ваш_пользователь_бд DB_PASSWORD=ваш_пароль_бд DB_HOST=ваш_хост_бд DB_PORT=ваш_порт_бд DB_NAME=ваше_имя_бд DB_POOL_SIZE=10 DB_MAX_OVERFLOW=20 REDIS_HOST=ваш_хост_redis REDIS_PORT=6379 REDIS_PASSWORD=ваш_пароль_redis REDIS_DB=0 DEBUG_LEVEL=INFO
- Создайте файл
-
Запустите Бот:
python main.py
Начните взаимодействие с ботом, отправляя команды в Telegram. Бот проведет Вас через процесс аудита, управляет вашими кредитами на аудит и предоставит подробные отчеты.
-
/start 🎉
Инициализирует взаимодействие с ботом и регистрирует Вас в системе. -
/about ℹ️
Предоставляет информацию о возможностях бота и доступных командах. -
/free 🎁
Предоставляет 2 бесплатных аудита (доступны новым пользователям). -
/buy {кол-во} 💳
Покупка дополнительных кредитов на аудит.
Пример:/buy 5 -
/status 📈
Проверка доступных кредитов на аудит и получение рекомендаций. -
/audit 🛡️
Отправьте ваш смарт-контракт на Solidity (.sol) для аудита.
Пример: Отправьте/auditс прикрепленным файлом.sol.
Когда Вы запрашиваете аудит, бот выполняет следующие основные шаги для тщательной оценки вашего смарт-контракта:
-
Инициация 👋
Вы начинаете, отправляя команду/auditвместе с вашим файлом.sol. Бот проверяет формат файла и наличие доступных кредитов на аудит. -
Очередь 🕒
Ваш запрос на аудит добавляется в очередь Redis, обеспечивая упорядоченную обработку. Вы получаете информацию о вашей позиции в очереди и подтверждение. -
Обработка 🔄
Фоновый процесс извлекает ваш запрос из очереди и начинает аудит:- Reentrancy 🔁: проверяет наличие повторных вызовов функций, которые могут вывести средства.
- Integer Overflow/Underflow ➕➖: убедитесь, что арифметические операции безопасны от переполнения или опустошения.
- Access Control 🔐: проверяет корректность ограничений доступа к чувствительным функциям.
- Unhandled Exceptions ❌: убеждается, что все исключения корректно обрабатываются, предотвращая непредвиденное поведение.
- Denial of Service (DoS) 🚫: проверяет уязвимости, которые могут заблокировать функционал контракта.
- Unprotected Self-Destruct 💥: убеждается, что контракт не может быть злонамеренно уничтожен.
- Front-Running ⏩: защищает от атак, связанных с порядком транзакций.
- Uninitialized Storage Pointers 📌: убеждается, что все указатели хранения корректно инициализированы.
- Gas Limit and Loops ⛽: проверяет проблемы с потреблением газа в циклах.
- Timestamp Dependence ⏲️: убеждается, что логика контракта не зависит некорректно от временных меток.
-
Генерация Отчета 📑
После аудита создается HTML-отчет с подробными результатами и рекомендациями. -
Доставка 📤
Бот отправляет Вам HTML-отчет и уведомляет о завершении аудита. -
Очистка 🧹
Временные файлы автоматически удаляются для поддержания эффективности сервера.
- Python 🐍: основной язык программирования.
- Aiogram 🤖: фреймворк для Telegram ботов, поддерживающий асинхронные операции.
- SQLAlchemy 🗄️: ORM для взаимодействия с базой данных PostgreSQL.
- PostgreSQL 🐘: база данных для хранения данных пользователей и аудитов.
- Redis 🔄: хранилище данных в памяти для управления очередями аудитов и кэширования.
- Asyncio ⚡: библиотека Python для написания конкурентного кода с использованием синтаксиса async/await.
- Slither, MythX, Oyente 🛠️: инструменты для статического анализа и обнаружения уязвимостей в смарт-контрактах.
- UUID 🔑: для генерации уникальных идентификаторов покупок и запросов на аудит.
- Logging 📝: модуль логирования Python для отслеживания действий бота и ошибок.
Мы приветствуем ваши вклады! Чтобы внести вклад, выполните следующие шаги:
- Форкните Репозиторий 🍴
- Создайте Новую Ветку 🌿
git checkout -b feature/YourFeature
- Закоммитьте Изменения ✍️
git commit -m "Добавить новую функцию" - Запушьте Ветку 🚀
git push origin feature/YourFeature
- Откройте Pull Request 🔀
Пожалуйста, убедитесь, что ваш код соответствует стандартам проекта и включает соответствующие тесты.
Этот проект лицензирован под MIT License. Вы можете использовать и изменять его в соответствии с условиями лицензии. 📜
😊 Спасибо за использование Telegram Бота для Аудита Смарт-Контрактов! Если у Вас есть вопросы или предложения, не стесняйтесь открыть issue или связаться с нами напрямую. Давайте обеспечим максимальную безопасность ваших блокчейн-проектов! 🛡️🚀