ваше сообщение коммита

This commit is contained in:
2025-07-27 03:30:13 +03:00
parent 057fe6254c
commit 1835632be9
141 changed files with 32514 additions and 6661 deletions

View File

@@ -0,0 +1,693 @@
# Детальный план задач: Управление Digital Legal Entity (DLE)
## Общие принципы разработки
### Архитектурные требования
- **Single-Chain Governance**: Голосование происходит только в одной выбранной сети
- **Мультиподпись токен-холдеров**: Все операции требуют кворума подписей
- **Настраиваемые таймлоки**: Инициатор устанавливает задержку для каждого предложения
- **Cross-chain исполнение**: Решения выполняются во всех целевых сетях
- **Без админских ролей**: Только коллективное управление через токен-холдеров
### Технический стек
- **Frontend**: Vue.js 3 + Composition API
- **Web3**: ethers.js или web3.js
- **Контракты**: Solidity + OpenZeppelin + ERC-4337
- **Стили**: Scoped CSS с переменными
---
## 1. БЛОК "ПРЕДЛОЖЕНИЯ" (`/management/proposals`)
### Задача 1.1: Создание предложений
**Описание**: Пользователь создает предложение для выполнения операции в DLE
**Что нужно сделать**:
- [ ] Добавить форму создания предложения с полями:
- Тип операции (управление токенами, казна, модули, настройки)
- Описание операции (текстовое поле)
- Выбор governance-сети (выпадающий список)
- Выбор целевых сетей для исполнения (мультиселект)
- Таймлок задержка в часах (числовое поле)
- [ ] Подключить к контракту метод `createProposal(operation, targetChains, timelockDelay)`
- [ ] Добавить валидацию: только токен-холдеры могут создавать предложения
- [ ] Показывать предварительный расчет газа для создания предложения
**Время**: 8-12 часов
### Задача 1.2: Подписание предложений
**Описание**: Токен-холдеры подписывают предложения для достижения кворума
**Что нужно сделать**:
- [ ] Отображать список активных предложений с прогрессом подписей
- [ ] Показывать для каждого предложения:
- Текущее количество подписей / требуемый кворум
- Список подписавших с их балансами токенов
- Время до истечения таймлока
- [ ] Добавить кнопку "Подписать" для токен-холдеров
- [ ] Подключить к контракту метод `signProposal(proposalId)`
- [ ] Проверять баланс токенов при подписании
- [ ] Обновлять UI в реальном времени при новых подписях
**Время**: 10-14 часов
### Задача 1.3: Исполнение предложений
**Описание**: Выполнение предложений после достижения кворума и истечения таймлока
**Что нужно сделать**:
- [ ] Отображать статус предложений: "Ожидание", "Кворум достигнут", "Готово к исполнению", "Исполнено"
- [ ] Добавить кнопку "Исполнить" для предложений готовых к исполнению
- [ ] Подключить к контракту метод `executeProposal(proposalId)`
- [ ] Показывать прогресс исполнения в целевых сетях
- [ ] Обрабатывать ошибки исполнения и показывать fallback статусы
- [ ] Добавить возможность отмены предложений до истечения таймлока
**Время**: 8-12 часов
### Задача 1.4: История и фильтрация
**Описание**: Просмотр истории предложений с возможностью фильтрации
**Что нужно сделать**:
- [ ] Добавить фильтры по:
- Статусу предложения
- Типу операции
- Governance-сети
- Периоду времени
- [ ] Реализовать поиск по описанию предложения
- [ ] Добавить пагинацию для больших списков
- [ ] Показывать детали каждого предложения в модальном окне
- [ ] Добавить ссылки на блокчейн-эксплореры для транзакций
**Время**: 6-8 часов
---
## 2. БЛОК "ТОКЕНЫ DLE" (`/management/tokens`)
### Задача 2.1: Информация о токенах
**Описание**: Отображение основной информации о токенах DLE
**Что нужно сделать**:
- [ ] Показывать общий supply токенов
- [ ] Отображать баланс текущего пользователя
- [ ] Показывать процент кворума для голосования
- [ ] Отображать текущую рыночную стоимость токена (если доступна)
- [ ] Подключить к контракту методы `totalSupply()`, `balanceOf(address)`
- [ ] Обновлять данные в реальном времени при изменениях
**Время**: 4-6 часов
### Задача 2.2: Передача токенов
**Описание**: Перевод токенов между участниками через кворум
**Что нужно сделать**:
- [ ] Создать форму перевода с полями:
- Адрес получателя
- Количество токенов
- Описание перевода
- [ ] Создавать предложение для перевода токенов
- [ ] Показывать статус предложения перевода
- [ ] Валидировать баланс отправителя
- [ ] Подключать к контракту через систему предложений
**Время**: 6-8 часов
### Задача 2.3: Распределение токенов
**Описание**: Массовое распределение токенов новым участникам
**Что нужно сделать**:
- [ ] Создать форму распределения с возможностью добавления множественных получателей
- [ ] Поля для каждого получателя: адрес, количество токенов
- [ ] Кнопки "Добавить получателя" и "Удалить получателя"
- [ ] Создавать предложение для распределения
- [ ] Показывать общую сумму распределения
- [ ] Валидировать общий supply и права на минтинг
**Время**: 8-10 часов
### Задача 2.4: Список держателей токенов
**Описание**: Отображение всех держателей токенов с их балансами
**Что нужно сделать**:
- [ ] Получать список всех держателей токенов
- [ ] Отображать для каждого держателя:
- Адрес кошелька
- Количество токенов
- Процент от общего supply
- Дата последней активности
- [ ] Добавить сортировку по балансу, активности, адресу
- [ ] Реализовать поиск по адресу
- [ ] Показывать топ-10 держателей отдельно
**Время**: 6-8 часов
---
## 3. БЛОК "КВОРУМ" (`/management/quorum`)
### Задача 3.1: Текущие настройки кворума
**Описание**: Отображение текущих параметров кворума
**Что нужно сделать**:
- [ ] Показывать текущий процент кворума для голосования
- [ ] Отображать минимальную задержку голосования
- [ ] Показывать период голосования
- [ ] Отображать порог для создания предложений
- [ ] Подключать к контракту для получения актуальных значений
- [ ] Показывать когда были изменены последние настройки
**Время**: 4-6 часов
### Задача 3.2: Изменение настроек кворума
**Описание**: Создание предложения для изменения параметров кворума
**Что нужно сделать**:
- [ ] Создать форму изменения настроек с полями:
- Новый процент кворума (1-100%)
- Новая задержка голосования (в часах)
- Новый период голосования (в днях)
- Новый порог для предложений (в токенах)
- Причина изменения
- [ ] Валидировать значения (кворум не менее 51%, разумные периоды)
- [ ] Создавать предложение для изменения настроек
- [ ] Показывать предварительный расчет влияния изменений
- [ ] Добавить подтверждение критических изменений
**Время**: 8-10 часов
### Задача 3.3: История изменений кворума
**Описание**: Просмотр истории изменений параметров кворума
**Что нужно сделать**:
- [ ] Отображать список всех изменений кворума
- [ ] Показывать для каждого изменения:
- Старые и новые значения
- Кто инициировал изменение
- Когда было предложено и когда принято
- Причину изменения
- [ ] Добавить фильтрацию по периоду и типу изменений
- [ ] Показывать статистику изменений (частота, тренды)
**Время**: 6-8 часов
---
## 4. БЛОК "МОДУЛИ DLE" (`/management/modules`)
### Задача 4.1: Список установленных модулей
**Описание**: Отображение всех установленных модулей DLE
**Что нужно сделать**:
- [ ] Получать список всех модулей из контракта
- [ ] Отображать для каждого модуля:
- Название и описание
- Адрес контракта модуля
- Версию модуля
- Статус (активен/неактивен)
- Дата установки
- [ ] Показывать общую статистику модулей
- [ ] Добавить поиск и фильтрацию по модулям
**Время**: 6-8 часов
### Задача 4.2: Установка новых модулей
**Описание**: Добавление новых модулей через голосование
**Что нужно сделать**:
- [ ] Создать форму установки модуля с полями:
- Название модуля
- Адрес контракта модуля
- Описание функциональности
- Параметры инициализации
- Причина установки
- [ ] Валидировать адрес контракта и совместимость
- [ ] Создавать предложение для установки модуля
- [ ] Показывать предварительную проверку модуля
- [ ] Добавить возможность тестирования модуля перед установкой
**Время**: 10-12 часов
### Задача 4.3: Управление модулями
**Описание**: Активация, деактивация и удаление модулей
**Что нужно сделать**:
- [ ] Добавить кнопки управления для каждого модуля:
- Активировать/деактивировать
- Обновить версию
- Удалить модуль
- [ ] Создавать предложения для каждого действия
- [ ] Показывать зависимости между модулями
- [ ] Предупреждать о критических операциях
- [ ] Добавить возможность отката изменений
**Время**: 8-10 часов
### Задача 4.4: Интерфейсы модулей
**Описание**: Встраивание интерфейсов управления модулями
**Что нужно сделать**:
- [ ] Создать систему встраивания интерфейсов модулей
- [ ] Каждый модуль может предоставлять свой UI
- [ ] Безопасное взаимодействие между основным приложением и модулями
- [ ] Единообразный стиль для всех модулей
- [ ] Добавить документацию для разработчиков модулей
**Время**: 12-16 часов
---
## 5. БЛОК "DLE" (Интеграция с другими DLE) (`/management/dle`)
### Задача 5.1: Список подключенных DLE
**Описание**: Отображение DLE, с которыми установлена интеграция
**Что нужно сделать**:
- [ ] Показывать карточки всех подключенных DLE
- [ ] Для каждого DLE отображать:
- Название и описание
- Адрес контракта
- Количество токенов этого DLE в нашем балансе
- Процент голосов, который мы можем использовать
- Статус подключения
- [ ] Добавить возможность удаления DLE из списка
- [ ] Показывать общую статистику интеграций
**Время**: 6-8 часов
### Задача 5.2: Добавление новых DLE
**Описание**: Подключение новых DLE для участия в их голосованиях
**Что нужно сделать**:
- [ ] Создать форму добавления DLE с полями:
- Название DLE
- Адрес контракта DLE
- Описание и назначение
- Причина подключения
- [ ] Валидировать адрес и проверять существование контракта
- [ ] Проверять баланс токенов этого DLE
- [ ] Создавать предложение для добавления DLE
- [ ] Показывать предварительную информацию о DLE
**Время**: 8-10 часов
### Задача 5.3: Участие в голосованиях других DLE
**Описание**: Голосование в предложениях других DLE через наш кворум
**Что нужно сделать**:
- [ ] Отображать активные предложения других DLE
- [ ] Показывать для каждого предложения:
- Описание и тип операции
- Наш возможный вес голоса
- Текущий статус голосования
- Время до истечения
- [ ] Создавать внутренние предложения для голосования в других DLE
- [ ] Собирать кворум подписей для внешнего голосования
- [ ] Отправлять голос в целевое DLE после достижения кворума
**Время**: 12-16 часов
### Задача 5.4: Встраивание интерфейсов управления
**Описание**: Управление другими DLE через встроенные интерфейсы
**Что нужно сделать**:
- [ ] Создать систему встраивания интерфейсов других DLE
- [ ] Безопасное отображение внешних интерфейсов в iframe
- [ ] Передача контекста аутентификации
- [ ] Обработка событий и обновлений
- [ ] Единообразный стиль и навигация
- [ ] Добавить возможность открытия в новой вкладке
**Время**: 16-20 часов
---
## 6. БЛОК "КАЗНА" (`/management/treasury`)
### Задача 6.1: Баланс казны
**Описание**: Отображение всех активов казны DLE
**Что нужно сделать**:
- [ ] Показывать балансы всех токенов в казне:
- Нативные токены (ETH, MATIC, BNB и т.д.)
- ERC-20 токены
- NFT и другие активы
- [ ] Отображать общую стоимость в USD
- [ ] Показывать историю изменений баланса
- [ ] Добавить графики движения средств
- [ ] Подключать к контракту для получения актуальных данных
**Время**: 8-10 часов
### Задача 6.2: Операции с казной
**Описание**: Выполнение финансовых операций через кворум
**Что нужно сделать**:
- [ ] Создать формы для различных операций:
- Отправка средств (нативные токены, ERC-20)
- Получение средств
- Обмен токенов
- Инвестиции в DeFi протоколы
- [ ] Создавать предложения для каждой операции
- [ ] Валидировать балансы и права доступа
- [ ] Показывать предварительный расчет газа и комиссий
- [ ] Добавить подтверждение критических операций
**Время**: 12-16 часов
### Задача 6.3: Распределение дивидендов
**Описание**: Выплата дивидендов токен-холдерам
**Что нужно сделать**:
- [ ] Создать форму распределения дивидендов:
- Выбор токена для выплаты
- Общая сумма дивидендов
- Пропорциональное распределение по балансам
- [ ] Показывать предварительный расчет выплат каждому держателю
- [ ] Создавать предложение для выплаты дивидендов
- [ ] Отслеживать статус выплат
- [ ] Показывать историю дивидендных выплат
**Время**: 10-12 часов
### Задача 6.4: Бюджетирование и отчеты
**Описание**: Планирование и контроль расходов казны
**Что нужно сделать**:
- [ ] Создать систему бюджетирования:
- Установка лимитов расходов
- Категоризация операций
- Планирование расходов
- [ ] Генерировать отчеты:
- Месячные/квартальные отчеты
- Анализ доходов и расходов
- Прогнозы движения средств
- [ ] Добавить уведомления о превышении лимитов
- [ ] Экспорт отчетов в PDF/CSV
**Время**: 12-16 часов
---
## 7. БЛОК "АНАЛИТИКА" (`/management/analytics`)
### Задача 7.1: Ключевые метрики
**Описание**: Отображение основных показателей DLE
**Что нужно сделать**:
- [ ] Показывать ключевые метрики:
- Общая стоимость активов (TVL)
- Количество активных участников
- Количество предложений за период
- Средняя доходность
- [ ] Добавить сравнение с предыдущими периодами
- [ ] Показывать тренды и изменения
- [ ] Подключать реальные данные из контрактов
**Время**: 8-10 часов
### Задача 7.2: Графики и визуализация
**Описание**: Создание интерактивных графиков и диаграмм
**Что нужно сделать**:
- [ ] Интегрировать библиотеку для графиков (Chart.js, D3.js)
- [ ] Создать графики:
- Стоимость токенов во времени
- Активность участников по дням/неделям
- Распределение токенов между держателями
- Движение средств в казне
- [ ] Добавить интерактивность (зум, фильтры, детализация)
- [ ] Реализовать экспорт графиков
**Время**: 12-16 часов
### Задача 7.3: Статистика и отчеты
**Описание**: Детальная аналитика и отчетность
**Что нужно сделать**:
- [ ] Создать разделы статистики:
- Топ держателей токенов
- Самые активные участники
- История предложений и голосований
- Финансовая статистика
- [ ] Добавить фильтры по периодам
- [ ] Создать настраиваемые дашборды
- [ ] Реализовать автоматическую генерацию отчетов
**Время**: 10-14 часов
### Задача 7.4: Прогнозирование и тренды
**Описание**: Анализ трендов и прогнозирование
**Что нужно сделать**:
- [ ] Анализировать исторические данные для выявления трендов
- [ ] Создавать прогнозы:
- Движение стоимости токенов
- Активность участников
- Финансовые показатели
- [ ] Показывать аномалии и важные события
- [ ] Добавить уведомления о значимых изменениях
**Время**: 14-18 часов
---
## 8. БЛОК "ИСТОРИЯ" (`/management/history`)
### Задача 8.1: Лог всех операций
**Описание**: Отображение полной истории операций DLE
**Что нужно сделать**:
- [ ] Собирать и отображать все типы операций:
- Создание и исполнение предложений
- Операции с токенами
- Казначейские операции
- Изменения настроек
- Модульные операции
- [ ] Для каждой операции показывать:
- Тип и описание
- Время выполнения
- Участники
- Статус выполнения
- Ссылки на транзакции
**Время**: 10-12 часов
### Задача 8.2: Фильтрация и поиск
**Описание**: Удобный поиск и фильтрация истории
**Что нужно сделать**:
- [ ] Добавить фильтры по:
- Типу операции
- Периоду времени
- Участникам
- Статусу
- Сетям
- [ ] Реализовать полнотекстовый поиск
- [ ] Добавить сохранение фильтров
- [ ] Создать быстрые фильтры (сегодня, неделя, месяц)
**Время**: 8-10 часов
### Задача 8.3: Детали операций
**Описание**: Подробная информация о каждой операции
**Что нужно сделать**:
- [ ] Создать модальные окна с деталями операций
- [ ] Показывать полную информацию:
- Параметры операции
- Участники и их роли
- Результат выполнения
- Ошибки и предупреждения
- [ ] Добавить ссылки на блокчейн-эксплореры
- [ ] Показывать связанные операции
**Время**: 8-10 часов
### Задача 8.4: Экспорт и отчеты
**Описание**: Экспорт истории в различные форматы
**Что нужно сделать**:
- [ ] Реализовать экспорт в форматы:
- CSV для анализа в Excel
- PDF для отчетов
- JSON для интеграции
- [ ] Добавить настройки экспорта (период, типы операций)
- [ ] Создать шаблоны отчетов
- [ ] Добавить автоматическую отправку отчетов
**Время**: 6-8 часов
---
## 9. БЛОК "НАСТРОЙКИ" (`/management/settings`)
### Задача 9.1: Основные настройки DLE
**Описание**: Управление основной информацией о DLE
**Что нужно сделать**:
- [ ] Создать форму основных настроек:
- Название DLE
- Символ токена
- Описание и назначение
- Местонахождение
- Веб-сайт
- [ ] Подключать к контракту для сохранения изменений
- [ ] Валидировать данные перед сохранением
- [ ] Показывать историю изменений
**Время**: 6-8 часов
### Задача 9.2: Настройки безопасности
**Описание**: Управление параметрами безопасности
**Что нужно сделать**:
- [ ] Создать форму настроек безопасности:
- Минимальный кворум для голосования
- Максимальная длительность предложений
- Порог для экстренных действий
- Задержка таймлока по умолчанию
- Дополнительные настройки (делегирование, KYC)
- [ ] Добавить предупреждения о критических изменениях
- [ ] Создавать предложения для изменения настроек
- [ ] Показывать влияние изменений на безопасность
**Время**: 10-12 часов
### Задача 9.3: Настройки сети
**Описание**: Управление сетевыми параметрами
**Что нужно сделать**:
- [ ] Создать форму настроек сети:
- Выбор поддерживаемых сетей
- Сеть по умолчанию для governance
- RPC endpoints для каждой сети
- Настройки синхронизации
- [ ] Тестировать подключение к сетям
- [ ] Показывать статус каждой сети
- [ ] Добавить возможность добавления новых сетей
**Время**: 8-10 часов
### Задача 9.4: Резервное копирование
**Описание**: Экспорт и импорт настроек
**Что нужно сделать**:
- [ ] Реализовать экспорт всех настроек в JSON
- [ ] Создать импорт настроек из файла
- [ ] Валидировать импортируемые данные
- [ ] Добавить предварительный просмотр изменений
- [ ] Создать автоматическое резервное копирование
**Время**: 6-8 часов
### Задача 9.5: Опасная зона
**Описание**: Критические операции с DLE
**Что нужно сделать**:
- [ ] Создать раздел опасных операций:
- Сброс настроек к значениям по умолчанию
- Полное удаление DLE
- Экстренная остановка операций
- [ ] Добавить множественные подтверждения
- [ ] Показывать последствия каждой операции
- [ ] Создать логирование критических действий
**Время**: 8-10 часов
---
## ОБЩИЕ ЗАДАЧИ ДЛЯ ВСЕХ БЛОКОВ
### Задача 0.1: Подготовка инфраструктуры
**Описание**: Настройка базовой инфраструктуры для всех блоков
**Что нужно сделать**:
- [ ] Настроить web3-провайдеры для всех поддерживаемых сетей
- [ ] Создать абстракции для работы с контрактами
- [ ] Настроить обработку ошибок и уведомления
- [ ] Создать систему кэширования данных
- [ ] Настроить мониторинг состояния сетей
**Время**: 16-20 часов
### Задача 0.2: Интеграция с контрактами
**Описание**: Подключение всех блоков к смарт-контрактам
**Что нужно сделать**:
- [ ] Создать интерфейсы для всех методов контрактов
- [ ] Реализовать обработку событий контрактов
- [ ] Настроить подписки на изменения состояния
- [ ] Добавить обработку ошибок транзакций
- [ ] Реализовать retry механизмы для неудачных транзакций
**Время**: 20-24 часа
### Задача 0.3: Тестирование и отладка
**Описание**: Комплексное тестирование всех функций
**Что нужно сделать**:
- [ ] Создать unit-тесты для всех компонентов
- [ ] Написать e2e тесты для основных сценариев
- [ ] Протестировать работу в разных сетях
- [ ] Провести нагрузочное тестирование
- [ ] Исправить найденные ошибки
**Время**: 24-32 часа
### Задача 0.4: Оптимизация и производительность
**Описание**: Улучшение производительности и пользовательского опыта
**Что нужно сделать**:
- [ ] Оптимизировать загрузку данных
- [ ] Добавить lazy loading для больших списков
- [ ] Реализовать кэширование на клиенте
- [ ] Оптимизировать размер бандла
- [ ] Добавить прогресс-индикаторы для длительных операций
**Время**: 16-20 часов
---
## ПРИОРИТЕТЫ РАЗРАБОТКИ
### Высокий приоритет (MVP)
1. Предложения - базовая функциональность
2. Токены DLE - основные операции
3. Кворум - текущие настройки
4. Настройки - основные параметры
### Средний приоритет
1. Казна - базовые операции
2. История - лог операций
3. Аналитика - ключевые метрики
4. Модули - список и управление
### Низкий приоритет
1. DLE - интеграция с другими DLE
2. Расширенная аналитика
3. Сложные отчеты
4. Встраивание интерфейсов
---
## ОЦЕНКА ВРЕМЕНИ
### Общее время разработки: 280-380 часов
**Разбивка по блокам:**
- Предложения: 32-46 часов
- Токены DLE: 24-32 часа
- Кворум: 18-24 часа
- Модули DLE: 36-46 часов
- DLE (интеграция): 42-54 часа
- Казна: 42-54 часа
- Аналитика: 44-58 часа
- История: 32-40 часов
- Настройки: 38-48 часов
- Общие задачи: 76-96 часов
**Рекомендации:**
- Начать с MVP (высокий приоритет)
- Разрабатывать параллельно несколько блоков
- Использовать готовые компоненты где возможно
- Регулярно тестировать интеграцию с контрактами