Automated Wallet Compatibility Test System¶
Дата создания: 13.10.2025 Приоритет: HIGH
ЦЕЛЬ¶
Создать автоматизированную систему тестирования совместимости популярных Web3 кошельков с платформой Saga для обеспечения максимальной доступности для пользователей.
КОНТЕКСТ¶
После отката миграции на Reown AppKit (которая вызывала undefined JavaScript ошибки в E2E тестах), проект вернулся к чистому Wagmi с нативными коннекторами:
- injected() - для browser extensions и mobile in-app browsers
- metaMask() - для MetaMask-специфичных функций
Архитектурное решение: Clean Wagmi БЕЗ WalletConnect cloud dependencies обеспечивает: - ✅ Совместимость с Next.js SSR - ✅ Работу в Trust Wallet/MetaMask Mobile in-app browsers (window.ethereum injection) - ✅ EIP-6963 поддержку для множественных browser extensions - ❌ Отсутствие WalletConnect → нет QR code подключений из внешних браузеров
ТРЕБОВАНИЯ К ТЕСТОВОЙ СИСТЕМЕ¶
1. ПОЛНЫЙ СПИСОК КОШЕЛЬКОВ ДЛЯ ТЕСТИРОВАНИЯ¶
Desktop browser extensions: - MetaMask - Trust Wallet (browser extension) - Coinbase Wallet - Brave Wallet - Rainbow Wallet - Zerion - Frame - Binance Wallet (добавлено) - Bybit Wallet (добавлено) - Rabby Wallet (добавлено)
Mobile in-app browsers: - MetaMask Mobile - Trust Wallet Mobile - Coinbase Wallet Mobile
2. ФУНКЦИОНАЛЬНОСТЬ ДЛЯ ТЕСТИРОВАНИЯ¶
Каждый кошелек должен пройти следующие проверки:
A. Подключение кошелька¶
- ✅ Детекция кошелька через EIP-6963
- ✅ Успешное подключение через
injected()connector - ✅ Получение wallet address
- ✅ Время подключения (performance metric)
B. Добавление сети Saga Testnet¶
- ✅ Запрос добавления кастомной сети (chainId 1337)
- ✅ Параметры сети: RPC, chain name, currency
- ✅ Успешное подтверждение пользователем (в тесте автоматически)
- ✅ Переключение на добавленную сеть
C. Добавление USDC токена¶
- ✅ Запрос добавления ERC20 токена (USDC contract)
- ✅ Параметры токена: symbol, decimals, icon
- ✅ Успешное добавление в список токенов кошелька
D. Подгрузка балансов в интерфейсе¶
- ✅ Отображение ETH баланса в UI
- ✅ Отображение USDC баланса в UI
- ✅ Корректность значений (сравнение с blockchain)
- ✅ Время загрузки балансов (performance metric)
3. ЗАПУСК ЧЕРЕЗ MAKE КОМАНДУ¶
Команда должна: - Запускать Playwright тесты с headless: false для визуальной проверки - Генерировать markdown отчет о совместимости - Сохранять скриншоты проблемных кейсов - Возвращать exit code 0 только если ВСЕ кошельки прошли ВСЕ проверки
4. ОТЧЕТНОСТЬ¶
Система должна генерировать markdown отчет:
# Wallet Compatibility Report
**Дата:** 13.10.2025 20:30
## Summary
- ✅ Полностью совместимы: 8/10
- ⚠️ Частично совместимы: 2/10
- ❌ Несовместимы: 0/10
## Детальные результаты
### MetaMask Desktop
- ✅ Подключение: 1.2s
- ✅ Добавление сети: успешно
- ✅ Добавление USDC: успешно
- ✅ ETH баланс UI: 100 ETH (корректно)
- ✅ USDC баланс UI: 1000 USDC (корректно)
### Binance Wallet
- ✅ Подключение: 1.5s
- ⚠️ Добавление сети: требует ручное подтверждение
- ✅ Добавление USDC: успешно
- ✅ ETH баланс UI: 100 ETH (корректно)
- ✅ USDC баланс UI: 1000 USDC (корректно)
СТРУКТУРА ФАЙЛОВ¶
frontend/e2e/
├── tests/wallet-compatibility/
│ ├── wallet-compatibility.spec.ts # Основной тест
│ ├── wallet-detection.spec.ts # EIP-6963 детекция
│ ├── network-addition.spec.ts # Добавление Saga Testnet
│ └── token-addition.spec.ts # Добавление USDC
├── fixtures/
│ ├── wallet-configs.ts # Конфигурации кошельков
│ └── saga-network-config.ts # Параметры Saga Testnet
└── utils/
├── wallet-helpers.ts # Утилиты для работы с кошельками
└── balance-checker.ts # Проверка балансов
makefiles/testing.mk:
+ test-wallet-compatibility target
docs/wallet-compatibility-report.md # Генерируемый отчет
ПЛАН РЕАЛИЗАЦИИ¶
Фаза 1: Базовая инфраструктура (сейчас)¶
- ✅ Создать задачу в docs/tasks/
- ⏳ Создать структуру файлов
- ⏳ Добавить make команду
Фаза 2: EIP-6963 детекция¶
- ⏳ Реализовать автоматическую детекцию кошельков
- ⏳ Тест подключения для каждого кошелька
- ⏳ Performance metrics (время подключения)
Фаза 3: Добавление сети и токена¶
- ⏳ Реализовать запрос добавления Saga Testnet
- ⏳ Реализовать запрос добавления USDC токена
- ⏳ Автоматическое подтверждение в тестовом окружении
Фаза 4: UI балансы и отчетность¶
- ⏳ Проверка отображения ETH баланса в UI
- ⏳ Проверка отображения USDC баланса в UI
- ⏳ Генерация markdown отчета
- ⏳ Скриншоты для проблемных кейсов
КРИТЕРИИ УСПЕХА¶
- ✅ Система автоматически тестирует 10+ популярных кошельков
- ✅ Каждый кошелек проходит 5 категорий проверок
- ✅ Генерируется детальный markdown отчет
- ✅ Запуск через
make test-wallet-compatibility - ✅ Exit code validation: 0 = все тесты прошли
ОЖИДАЕМЫЕ РЕЗУЛЬТАТЫ¶
Для пользователей: - Уверенность что их кошелек поддерживается - Документированные шаги подключения - Список fully compatible кошельков
Для разработчиков: - Автоматическая детекция breaking changes - Периодическая проверка совместимости - Данные для принятия решений о wallet support
РИСКИ И MITIGATION¶
Риск 1: EIP-6963 может не поддерживаться старыми версиями кошельков
Mitigation: Fallback на window.ethereum проверку
Риск 2: Автоматическое подтверждение может не работать в CI Mitigation: Headless: false режим + manual run через make
Риск 3: Множественные кошельки могут конфликтовать в одном браузере Mitigation: Изоляция тестов, отдельные browser contexts
ПРИМЕЧАНИЯ¶
- Система НЕ требует WalletConnect cloud dependencies
- Тесты запускаются локально через
make test-wallet-compatibility - Для mobile кошельков требуется manual тестирование (в рамках этой задачи документация)
- GitHub Actions интеграция НЕ требуется (по явному запросу пользователя)
СВЯЗАННЫЕ ДОКУМЕНТЫ¶
/docs/architecture/frontend-architecture.md- Clean Wagmi архитектураCLAUDE.mdраздел "DEVELOPMENT СТАДИЯ И BLOCKCHAIN АРХИТЕКТУРА"/frontend/shared/config/web3-config.ts- Текущая wallet конфигурация
📋 Метаданные¶
Версия: 2.4.82
Обновлено: 2025-10-21
Статус: Published