Перейти к содержанию

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 КОМАНДУ

make test-wallet-compatibility

Команда должна: - Запускать 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: Базовая инфраструктура (сейчас)

  1. ✅ Создать задачу в docs/tasks/
  2. ⏳ Создать структуру файлов
  3. ⏳ Добавить make команду

Фаза 2: EIP-6963 детекция

  1. ⏳ Реализовать автоматическую детекцию кошельков
  2. ⏳ Тест подключения для каждого кошелька
  3. ⏳ Performance metrics (время подключения)

Фаза 3: Добавление сети и токена

  1. ⏳ Реализовать запрос добавления Saga Testnet
  2. ⏳ Реализовать запрос добавления USDC токена
  3. ⏳ Автоматическое подтверждение в тестовом окружении

Фаза 4: UI балансы и отчетность

  1. ⏳ Проверка отображения ETH баланса в UI
  2. ⏳ Проверка отображения USDC баланса в UI
  3. ⏳ Генерация markdown отчета
  4. ⏳ Скриншоты для проблемных кейсов

КРИТЕРИИ УСПЕХА

  1. ✅ Система автоматически тестирует 10+ популярных кошельков
  2. ✅ Каждый кошелек проходит 5 категорий проверок
  3. ✅ Генерируется детальный markdown отчет
  4. ✅ Запуск через make test-wallet-compatibility
  5. ✅ 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