Files
DLE/docs/DLE_MANAGEMENT_TASKS.md

717 lines
36 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
Copyright (c) 2024-2025 Тарабанов Александр Викторович
All rights reserved.
This software is proprietary and confidential.
Unauthorized copying, modification, or distribution is prohibited.
For licensing inquiries: info@hb3-accelerator.com
Website: https://hb3-accelerator.com
GitHub: https://github.com/HB3-ACCELERATOR
-->
# Детальный план задач: Управление Digital Legal Entity (DLE)
## Общие принципы разработки
### Архитектурные требования
- **Single-Chain Governance**: Голосование происходит только в одной выбранной сети
- **Кворум голосов токен‑холдеров**: Все операции требуют достижения кворума голосующей силы по снапшотам
- **Настраиваемые таймлоки**: Инициатор устанавливает задержку для каждого предложения
- **Cross-chain исполнение**: Решения выполняются во всех целевых сетях
- **Без админских ролей**: Только коллективное управление через токен-холдеров
### Технический стек
- **Frontend**: Vue.js 3 + Composition API
- **Web3**: ethers.js или web3.js
- **Контракты**: Solidity + OpenZeppelin (ERC4337 опционально для кошельков/UX)
- **Стили**: Scoped CSS с переменными
---
## Обновления (DLE v2)
- Деплой:
- Мультисетевой деплой одной кнопкой: backend вызывает `deploy-multichain.js`.
- Предсказанные адреса DLE отображаются автоматически (endpoint `/api/dle-v2/predict-addresses`).
- INIT_CODE_HASH вычисляется автоматически на backend, не вводится вручную.
- Предложения (UI):
- Порядок секций: Базовая информация → Timelock → Governanceсеть → Целевые сети → Тип операции и параметры → Предпросмотр.
- Поля: `timelockHours`, `targetChains`, `governanceChainId`.
- Аналитика:
- Использовать новые viewфункции: `getProposalSummary`, `getProposalState`, `getProposalVotes`, `getQuorumAt`, `getVotingPowerAt`, `listSupportedChains`, `getGovernanceParams`.
## 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 (высокий приоритет)
- Разрабатывать параллельно несколько блоков
- Использовать готовые компоненты где возможно
- Регулярно тестировать интеграцию с контрактами