# Детальный план задач: Управление Digital Legal Entity (DLE) ## Общие принципы разработки ### Архитектурные требования - **Single-Chain Governance**: Голосование происходит только в одной выбранной сети - **Кворум голосов токен‑холдеров**: Все операции требуют достижения кворума голосующей силы по снапшотам - **Настраиваемые таймлоки**: Инициатор устанавливает задержку для каждого предложения - **Cross-chain исполнение**: Решения выполняются во всех целевых сетях - **Без админских ролей**: Только коллективное управление через токен-холдеров ### Технический стек - **Frontend**: Vue.js 3 + Composition API - **Web3**: ethers.js или web3.js - **Контракты**: Solidity + OpenZeppelin (ERC‑4337 опционально для кошельков/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 (высокий приоритет) - Разрабатывать параллельно несколько блоков - Использовать готовые компоненты где возможно - Регулярно тестировать интеграцию с контрактами