34 KiB
Детальный план задач: Управление 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)
- Предложения - базовая функциональность
- Токены DLE - основные операции
- Кворум - текущие настройки
- Настройки - основные параметры
Средний приоритет
- Казна - базовые операции
- История - лог операций
- Аналитика - ключевые метрики
- Модули - список и управление
Низкий приоритет
- DLE - интеграция с другими DLE
- Расширенная аналитика
- Сложные отчеты
- Встраивание интерфейсов
ОЦЕНКА ВРЕМЕНИ
Общее время разработки: 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 (высокий приоритет)
- Разрабатывать параллельно несколько блоков
- Использовать готовые компоненты где возможно
- Регулярно тестировать интеграцию с контрактами