ваше сообщение коммита
This commit is contained in:
@@ -10,6 +10,18 @@
|
||||
GitHub: https://github.com/HB3-ACCELERATOR
|
||||
-->
|
||||
|
||||
# DLE v2 — краткие обновления
|
||||
|
||||
- Single‑Chain Governance: голосование фиксируется в одной сети, исполнение в целевых сетях по EIP‑712 подписям без внешних мостов.
|
||||
- Снапшоты голосующей силы: `ERC20Votes` (`getPastVotes`, `getPastTotalSupply`) исключают перелив голосов.
|
||||
- Делегирование «только на себя»: 1 токен = 1 голос, запрет делегирования третьим лицам.
|
||||
- Модульность: казна, таймлок, деактивация, коммуникации выделены в отдельные модули, операции выполняются через ядро DLE.
|
||||
- «100% или ничего»: много-сетевые операции исполняются только при готовности всех целевых сетей.
|
||||
- Детерминированный деплой: `FactoryDeployer` + CREATE2 для одинаковых адресов во всех выбранных сетях; INIT_CODE_HASH рассчитывается автоматически из актуального initCode.
|
||||
- Аналитика: добавлены view‑функции для сводок, пагинации и агрегирования по предложениям.
|
||||
|
||||
---
|
||||
|
||||
# DLE - Единый Смарт-Контракт с Модульной Архитектурой
|
||||
|
||||
## 🎯 ПОЛНОЕ ПОНИМАНИЕ ЗАДАЧИ DLE
|
||||
@@ -51,12 +63,12 @@ DLE (Digital Legal Entity) = Универсальная цифровая юри
|
||||
|
||||
### **3. СИСТЕМА УПРАВЛЕНИЯ:**
|
||||
|
||||
#### **Голосование и мультиподпись:**
|
||||
#### **Голосование токен‑холдеров:**
|
||||
```
|
||||
- Только токен-холдеры участвуют в управлении
|
||||
- Каждый токен = одна голосующая сила
|
||||
- Кворум настраиваемый (например, 60% от общего количества токенов)
|
||||
- Мультиподпись через токен-холдеров (проверка баланса при каждой операции)
|
||||
- Коллективное голосование токен‑холдеров (ERC20Votes снапшоты)
|
||||
```
|
||||
|
||||
#### **Создание предложений:**
|
||||
@@ -101,7 +113,6 @@ DLE (Digital Legal Entity) = Универсальная цифровая юри
|
||||
```
|
||||
- ERC-20 токены
|
||||
- Система голосования
|
||||
- Мультиподпись
|
||||
- Мультичейн синхронизация
|
||||
- Управление модулями
|
||||
- DLEInfo (юридическая информация)
|
||||
@@ -141,7 +152,7 @@ DLE (Digital Legal Entity) = Универсальная цифровая юри
|
||||
```
|
||||
- Только токен-холдеры управляют
|
||||
- Проверка баланса при каждой операции
|
||||
- Кворум мультиподписей
|
||||
- Кворум голосов - все решения через коллективное голосование
|
||||
- Синхронизация между цепочками
|
||||
```
|
||||
|
||||
@@ -174,7 +185,7 @@ DLE.sol (Основной контракт) + Модули (добавляемы
|
||||
1. **Один основной контракт** - управление токенами, голосованием, мультиподписью
|
||||
2. **Модули** - специализированные функции (казначейство, иерархическое голосование, коммуникации)
|
||||
3. **Только токен-холдеры** - никаких админских ролей
|
||||
4. **Кворум мультиподписей** - все решения через коллективное голосование
|
||||
4. **Кворум голосов** - все решения через коллективное голосование
|
||||
5. **Проверка баланса** - при каждой операции
|
||||
|
||||
---
|
||||
@@ -190,7 +201,7 @@ DLE.sol
|
||||
├── Выбор цепочки для кворума (governanceChainId)
|
||||
├── Синхронизация голосов между цепочками
|
||||
├── Поддержка множественных цепочек
|
||||
├── Мультиподпись (через токен-холдеров)
|
||||
├── Голосование токен‑холдеров
|
||||
├── Мультичейн синхронизация
|
||||
└── Система модулей (добавление/управление)
|
||||
```
|
||||
@@ -216,7 +227,7 @@ DLE.sol
|
||||
- **Выбор цепочки для кворума** - токен-холдер может выбрать любую поддерживаемую цепочку
|
||||
- **Синхронизация голосов** - после голосования результаты синхронизируются между цепочками
|
||||
- **Поддержка множественных цепочек** - Ethereum, Polygon, BSC и др.
|
||||
- **Мультиподпись** - через токен-холдеров с проверкой баланса
|
||||
- **Голосование** - через токен‑холдеров с проверкой баланса
|
||||
- **Мультичейн синхронизация** - одинаковый адрес во всех цепочках
|
||||
- **Управление модулями** - добавление/удаление через голосование
|
||||
|
||||
@@ -241,14 +252,14 @@ DLE.sol
|
||||
### 5. ExternalDLEModule.sol ✅
|
||||
- **Меж-DLE взаимодействие** - управление DLE B через приложение DLE A
|
||||
- **Встраивание интерфейсов** - безопасное управление
|
||||
- **Проверка прав** - через мультиподпись
|
||||
- **Проверка прав** - через голосование токен‑холдеров
|
||||
- **Аудит действий** - отслеживание операций
|
||||
|
||||
### 6. Мульти-чейн архитектура ✅
|
||||
- **CREATE2 деплой** - одинаковый адрес во всех цепочках
|
||||
- **Синхронизация состояния** - токены, предложения, голосования
|
||||
- **Создание предложений** - в любой цепочке
|
||||
- **Голосование** - в любой цепочке с синхронизацией
|
||||
- **Голосование** - через токен‑холдеров с проверкой баланса
|
||||
|
||||
---
|
||||
|
||||
@@ -257,7 +268,7 @@ DLE.sol
|
||||
### Основные принципы безопасности:
|
||||
1. **Только токен-холдеры** - никаких админских ролей
|
||||
2. **Проверка баланса** - при каждой операции
|
||||
3. **Кворум мультиподписей** - все решения коллективные
|
||||
3. **Кворум голосов** - все решения коллективные
|
||||
4. **Простая логика** - минимум уязвимостей
|
||||
|
||||
### Защита от атак:
|
||||
@@ -503,13 +514,10 @@ function createProposal(
|
||||
uint256 _governanceChainId
|
||||
) external returns (uint256);
|
||||
|
||||
// Синхронизация голосов между цепочками
|
||||
function syncVoteFromChain(
|
||||
uint256 _proposalId,
|
||||
uint256 _fromChainId,
|
||||
uint256 _forVotes,
|
||||
uint256 _againstVotes,
|
||||
bytes memory _proof
|
||||
// Исполнение в целевых сетях по EIP-712 подписям (без мостов)
|
||||
function executeProposalBySignatures(
|
||||
uint256 proposalId,
|
||||
bytes[] calldata signatures
|
||||
) external;
|
||||
|
||||
// Проверка поддерживаемых цепочек
|
||||
@@ -517,29 +525,8 @@ function isChainSupported(uint256 _chainId) external view returns (bool);
|
||||
```
|
||||
|
||||
### Синхронизация между цепочками
|
||||
```solidity
|
||||
// Синхронизация токенов
|
||||
function syncTokenBalance(
|
||||
address holder,
|
||||
uint256 balance,
|
||||
uint256 fromChainId
|
||||
) external;
|
||||
|
||||
// Синхронизация предложений
|
||||
function syncProposal(
|
||||
uint256 proposalId,
|
||||
Proposal memory proposal,
|
||||
uint256 fromChainId
|
||||
) external;
|
||||
|
||||
// Синхронизация голосов
|
||||
function syncVote(
|
||||
uint256 proposalId,
|
||||
address voter,
|
||||
bool support,
|
||||
uint256 fromChainId
|
||||
) external;
|
||||
```
|
||||
- Результаты голосования фиксируются снапшотами ERC20Votes в governance‑сети.
|
||||
- Целевые сети принимают исполнение при верификации EIP‑712 подписей холдеров и кворума на зафиксированном timepoint.
|
||||
|
||||
---
|
||||
|
||||
@@ -940,7 +927,7 @@ contract DLE is ERC20, ReentrancyGuard {
|
||||
|
||||
### ✅ Безопасность
|
||||
- Никаких админских ролей
|
||||
- Простая логика мультиподписи
|
||||
- Простая логика коллективного голосования
|
||||
- Защита от основных атак
|
||||
- Прозрачность всех операций
|
||||
|
||||
@@ -962,7 +949,7 @@ contract DLE is ERC20, ReentrancyGuard {
|
||||
|
||||
**DLE - это единый смарт-контракт с модульной архитектурой, который:**
|
||||
|
||||
1. **Управляется только токен-холдерами** через кворум мультиподписей
|
||||
1. **Управляется только токен‑холдерами** через кворум голосов
|
||||
2. **Проверяет баланс токенов** при каждой операции
|
||||
3. **Использует модули** для специализированных функций
|
||||
4. **Синхронизируется между цепочками** с одинаковым адресом
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
### Архитектурные требования
|
||||
- **Single-Chain Governance**: Голосование происходит только в одной выбранной сети
|
||||
- **Мультиподпись токен-холдеров**: Все операции требуют кворума подписей
|
||||
- **Кворум голосов токен‑холдеров**: Все операции требуют достижения кворума голосующей силы по снапшотам
|
||||
- **Настраиваемые таймлоки**: Инициатор устанавливает задержку для каждого предложения
|
||||
- **Cross-chain исполнение**: Решения выполняются во всех целевых сетях
|
||||
- **Без админских ролей**: Только коллективное управление через токен-холдеров
|
||||
@@ -24,11 +24,23 @@
|
||||
### Технический стек
|
||||
- **Frontend**: Vue.js 3 + Composition API
|
||||
- **Web3**: ethers.js или web3.js
|
||||
- **Контракты**: Solidity + OpenZeppelin + ERC-4337
|
||||
- **Контракты**: 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: Создание предложений
|
||||
|
||||
@@ -105,4 +105,19 @@ contract GovernanceModule {
|
||||
- Проверяйте права доступа
|
||||
- Тестируйте граничные случаи
|
||||
- Валидируйте входные параметры
|
||||
- Проверяйте обработку ошибок
|
||||
- Проверяйте обработку ошибок
|
||||
|
||||
# Модульная архитектура (обновление для DLE v2)
|
||||
|
||||
- Модули выносятся в отдельные контракты: `TreasuryModule`, `TimelockModule`, `DeactivationModule`, `CommunicationModule`.
|
||||
- Подключение/отключение модулей — строго через предложения DLE (`ModuleAdded`/`ModuleRemoved`).
|
||||
- Исполнение модульных операций инициируется основным DLE через `_executeOperation` по безопасному `operationCalldata`.
|
||||
- Денежные переводы из ядра исключены: все токено‑операции внутри `TreasuryModule`.
|
||||
- Таймлок применяется на уровне предложения: `timelockHours` хранится в `Proposal` и проверяется при исполнении.
|
||||
- Для оффчейн действий ядро эмитит событие `OffchainAction`, которое подписывает и обрабатывает бекенд/клиент.
|
||||
|
||||
Последовательность для казначейской операции:
|
||||
1) Создание предложения с типом операции и параметрами, указание `governanceChainId`, `targetChains`, `timelockHours`.
|
||||
2) Сбор голосов в выбранной сети (снапшоты ERC20Votes).
|
||||
3) По наступлению timelock — `executeProposalBySignatures` в целевых сетях с проверкой EIP‑712 подписей и «100% или ничего».
|
||||
4) Ядро вызывает `TreasuryModule` по `abi.encodeWithSelector(...)`.
|
||||
@@ -14,8 +14,64 @@
|
||||
|
||||
## Основной смарт контракт DLE
|
||||
|
||||
### DLE v2: ключевые изменения и API (актуально)
|
||||
- Безопасность: удалены уязвимые Merkle‑механизмы cross‑chain; нет внешних мостов/оракулов.
|
||||
- Голосующая сила: OpenZeppelin `ERC20Votes` (снимки `getPastVotes`, `getPastTotalSupply`).
|
||||
- Делегирование: жестко ограничено «только на себя»; третьим лицам делегировать нельзя (1 токен = 1 голос).
|
||||
- Single‑Chain Governance: голосование происходит в одной выбранной сети (`governanceChainId`), время снапшота фиксируется на создании предложения и используется во всех сетях.
|
||||
- Multi‑Chain исполнение: выполнение в целевых сетях по EIP‑712 подписям холдеров, проверяется суммарная голосующая сила на зафиксированном `timepoint` (без доверия к мостам).
|
||||
- «100% или ничего»: операции считаются успешными только при готовности/успешности всех целевых сетей.
|
||||
- Модули вынесены отдельно: `Treasury`, `Timelock`, `Deactivation`, `Communication` и др. Управление только через предложения.
|
||||
- Детерминированные адреса: фабрика `FactoryDeployer` + CREATE2. Единый адрес DLE и модулей во всех выбранных сетях. INIT_CODE_HASH автоподставляется из актуального initCode.
|
||||
- Аналитика: добавлены view‑функции для агрегирования и пагинации.
|
||||
|
||||
Пример основных функций DLE v2 (интерфейс):
|
||||
```solidity
|
||||
// Создание предложения с фиксацией сети голосования, целевых сетей и таймлока
|
||||
function createProposal(
|
||||
string calldata description,
|
||||
uint256 governanceChainId,
|
||||
uint256[] calldata targetChains,
|
||||
uint64 timelockHours,
|
||||
bytes calldata operationCalldata
|
||||
) external returns (uint256 proposalId);
|
||||
|
||||
// Голосование с использованием снапшотов ERC20Votes (учет силы на момент создания)
|
||||
function vote(uint256 proposalId, bool support) external;
|
||||
|
||||
// Отмена инициатором при наличии достаточной голосующей силы (мягкая отмена)
|
||||
function cancelProposal(uint256 proposalId) external;
|
||||
|
||||
// Исполнение в целевой сети по EIP-712 подписям холдеров (без мостов)
|
||||
function executeProposalBySignatures(
|
||||
uint256 proposalId,
|
||||
bytes[] calldata signatures
|
||||
) external;
|
||||
|
||||
// Просмотровые функции (аналитика)
|
||||
function getProposalState(uint256 proposalId) external view returns (uint8);
|
||||
function getProposalVotes(uint256 proposalId) external view returns (uint256 forVotes, uint256 againstVotes);
|
||||
function getQuorumAt(uint256 timepoint) external view returns (uint256);
|
||||
function getVotingPowerAt(address account, uint256 timepoint) external view returns (uint256);
|
||||
function getProposalSummary(uint256 proposalId) external view returns (/* агрегированные поля */);
|
||||
function getGovernanceParams() external view returns (/* кворум, снапшоты, chainIds */);
|
||||
function listSupportedChains() external view returns (uint256[] memory);
|
||||
```
|
||||
|
||||
События (ключевые):
|
||||
- `ProposalCreated`, `ProposalCancelled`, `ProposalExecuted`
|
||||
- `OffchainAction` (триггер оффчейн‑действий через события)
|
||||
- `ModuleAdded`, `ModuleRemoved`
|
||||
|
||||
Замечания по безопасности:
|
||||
- Снапшоты голосующей силы через `ERC20Votes` исключают перелив голосов.
|
||||
- Верификация EIP‑712 подписей исключает зависимость от внешних мостов.
|
||||
- Отсутствуют админ‑роли: все изменения только предложением и кворумом.
|
||||
- Защита от повторов: `nonces` и EIP‑712 схемы подписи используются по стандарту OZ.
|
||||
```
|
||||
|
||||
### Концепция
|
||||
**Один смарт-контракт** с ERC-20 токенами, настраиваемым кворумом, мультиподписью и модулями. Адрес контракта одновременно выполняет функции банковского счета и контактных данных.
|
||||
**Один смарт-контракт** с ERC-20 токенами, настраиваемым кворумом и модулями. Адрес контракта одновременно выполняет функции банковского счета и контактных данных.
|
||||
|
||||
### Архитектура
|
||||
```
|
||||
@@ -23,7 +79,7 @@ DLE.sol (Один контракт)
|
||||
├── ERC-20 токены (голосующая сила)
|
||||
├── Настраиваемый кворум (% от общего количества токенов)
|
||||
├── Система голосования (проверка баланса токенов)
|
||||
├── Мультиподпись (через токен-холдеров)
|
||||
├── Голосование токен‑холдеров
|
||||
├── Модули (добавляемые через голосование)
|
||||
├── Мультичейн синхронизация
|
||||
└── Полное управление данными DLE через кворум
|
||||
@@ -70,13 +126,12 @@ DLE.sol (Один контракт)
|
||||
- **Изменение процента кворума** через кворум
|
||||
- **Изменение текущей цепочки** через кворум
|
||||
|
||||
#### 5. Мультиподпись через токен-холдеров
|
||||
- **Описание**: Система подписей для критических операций
|
||||
#### 5. Голосование токен‑холдеров
|
||||
- **Описание**: Критические операции подтверждаются голосованием держателей токенов
|
||||
- **Функции**:
|
||||
- Подписание операций токен-холдерами
|
||||
- Проверка баланса токенов при подписи
|
||||
- Сбор подписей до достижения кворума
|
||||
- Выполнение операций после сбора подписей
|
||||
- Подача голосов за/против с учетом голосующей силы
|
||||
- Подсчет голосов по снапшотам `ERC20Votes`
|
||||
- Исполнение операций после достижения кворума
|
||||
|
||||
#### 6. Казначейские функции
|
||||
- **Описание**: Управление финансами DLE через голосование
|
||||
@@ -110,7 +165,7 @@ DLE может владеть токенами других DLE и участв
|
||||
#### Механизм работы
|
||||
1. **DLE A** владеет токенами **DLE B**
|
||||
2. **Голос DLE A** в **DLE B** прямо пропорционален количеству токенов **DLE B** на балансе **DLE A**
|
||||
3. Для участия в голосовании **DLE B** холдеры **DLE A** должны собрать **кворум мультиподписей** внутри **DLE A**
|
||||
3. Для участия в голосовании **DLE B** холдеры **DLE A** должны собрать **кворум голосов** внутри **DLE A**
|
||||
4. После достижения кворума подписей **DLE A** может голосовать в **DLE B** как единое целое
|
||||
|
||||
### Новые возможности изменения данных DLE ✅
|
||||
@@ -165,7 +220,7 @@ event CurrentChainIdUpdated(uint256 oldChainId, uint256 newChainId);
|
||||
|
||||
#### 4. Синхронизация
|
||||
- Изменения синхронизируются во все поддерживаемые цепочки
|
||||
- Merkle proofs обеспечивают безопасность cross-chain операций
|
||||
- EIP‑712 подписи холдеров обеспечивают безопасность cross-chain исполнения (без мостов)
|
||||
|
||||
### Примеры использования
|
||||
|
||||
@@ -203,7 +258,7 @@ event CurrentChainIdUpdated(uint256 oldChainId, uint256 newChainId);
|
||||
#### Защита от злоупотреблений
|
||||
- Все изменения только через кворум
|
||||
- Проверка баланса токенов при голосовании
|
||||
- Merkle proofs для cross-chain безопасности
|
||||
- EIP‑712 подписи и проверка снапшотов для cross-chain безопасности
|
||||
|
||||
#### Аудит изменений
|
||||
- Все изменения логируются в событиях
|
||||
@@ -218,7 +273,7 @@ DLE может владеть токенами других DLE и участв
|
||||
#### Механизм работы
|
||||
1. **DLE A** владеет токенами **DLE B**
|
||||
2. **Голос DLE A** в **DLE B** прямо пропорционален количеству токенов **DLE B** на балансе **DLE A**
|
||||
3. Для участия в голосовании **DLE B** холдеры **DLE A** должны собрать **кворум мультиподписей** внутри **DLE A**
|
||||
3. Для участия в голосовании **DLE B** холдеры **DLE A** должны собрать **кворум голосов** внутри **DLE A**
|
||||
4. После достижения кворума подписей **DLE A** может голосовать в **DLE B** как единое целое
|
||||
|
||||
#### Пример
|
||||
@@ -228,8 +283,8 @@ DLE может владеть токенами других DLE и участв
|
||||
- **DLE B** получает от **DLE A** подпись на **10% голосов**
|
||||
|
||||
#### Технические требования
|
||||
- Система сбора мультиподписей внутри DLE для внешнего голосования
|
||||
- Проверка кворума подписей перед активацией голоса DLE
|
||||
- Система сбора голосов внутри DLE для внешнего голосования
|
||||
- Проверка прав через голосование
|
||||
- Прямо пропорциональный подсчет голосов по количеству токенов
|
||||
- Интерфейсы для взаимодействия между DLE
|
||||
|
||||
@@ -272,11 +327,11 @@ function DLEBManagementInterface({ dleBAddress }) {
|
||||
- URL: `http://localhost:5173/dle-management`
|
||||
- Встраивание компонентов управления DLE B
|
||||
- Безопасное подписание транзакций для DLE B
|
||||
- Проверка прав через мультиподпись
|
||||
- Проверка прав через голосование
|
||||
|
||||
### Технические требования
|
||||
- Один адрес = универсальная точка входа
|
||||
- Безопасность мультиподписи через токен-холдеров
|
||||
- Безопасность коллективного голосования токен‑холдеров по снапшотам
|
||||
- Масштабируемость через модули
|
||||
- Поддержка аудио/видео коммуникации
|
||||
- Совместимость с существующими стандартами (ERC-20, ERC-721)
|
||||
@@ -299,12 +354,12 @@ DLE должен функционировать в нескольких блок
|
||||
#### 2. Синхронные токены управления
|
||||
- Одинаковое количество токенов для каждого партнера во всех сетях
|
||||
- Синхронизация операций с токенами между всеми развернутыми сетями
|
||||
- Все операции с токенами только через мультиподпись и кворум
|
||||
- Все операции с токенами только через кворум голосов
|
||||
- Защита от double-spending и рассинхронизации
|
||||
|
||||
#### 3. Single-Chain Governance система
|
||||
- Инициатор предложения выбирает ОДНУ сеть для голосования
|
||||
- Все токен-холдеры участвуют в мультиподписи только в выбранной сети
|
||||
- Все токен-холдеры участвуют в голосовании только в выбранной сети
|
||||
- Инициатор устанавливает таймлок для предложения
|
||||
- Проверка балансов токен-холдеров при подписании
|
||||
- Исполнение решения происходит во всех целевых сетях
|
||||
@@ -408,7 +463,7 @@ contract DLE_SingleChainGovernance {
|
||||
ERC-4337 предоставляет стандартную инфраструктуру для смарт-контракт кошельков с универсальностью (один адрес во всех цепочках) и готовыми решениями для оптимизации газа.
|
||||
|
||||
#### Компоненты ERC-4337
|
||||
- **Smart Contract Wallets** - встроенная мультиподпись
|
||||
- **Smart Contract Wallets** — инфраструктура аккаунтов (опционально для UX)
|
||||
- **Bundlers** - оптимизация газа через агрегацию транзакций
|
||||
- **Paymasters** - гибкая оплата транзакций
|
||||
- **Account Abstraction** - универсальность и стандартизация
|
||||
@@ -449,7 +504,7 @@ ERC-4337 распространяется под лицензией **CC0** (Pub
|
||||
- ✅ **ERC-20** - токены управления
|
||||
- ✅ **Governance** - система голосования
|
||||
- ✅ **Access Control** - роли и разрешения
|
||||
- ✅ **Multisig** - мультиподпись
|
||||
(устарело) Multisig — используем голосование токен‑холдеров (ERC20Votes)
|
||||
- ✅ **Timelock** - задержки выполнения
|
||||
|
||||
### 2. **ERC-4337** (аудит: Trail of Bits)
|
||||
@@ -475,7 +530,7 @@ contract DLE is ERC20, Governor, TimelockController {
|
||||
|
||||
### **Компоненты для интеграции:**
|
||||
- **ERC-20** - токен управления DLE
|
||||
- **Governor** - система голосования с мультиподписью
|
||||
- **Governor** - система голосования
|
||||
- **TimelockController** - настраиваемые таймлоки
|
||||
- **Account Abstraction** - универсальность адреса
|
||||
|
||||
@@ -493,10 +548,13 @@ contract DLE is ERC20, Governor, TimelockController {
|
||||
|
||||
### ✅ **Надежность**
|
||||
- Временем проверенные решения
|
||||
- Простая логика мультиподписи токен-холдеров
|
||||
- Простая логика коллективного голосования токен‑холдеров
|
||||
- Понятные механизмы таймлоков
|
||||
|
||||
### ✅ **Совместимость**
|
||||
- Стандартные интерфейсы Ethereum
|
||||
- Совместимость с существующими кошельками
|
||||
- Легкая интеграция с DeFi протоколами
|
||||
- Легкая интеграция с DeFi протоколами
|
||||
|
||||
### Примечание про ERC-4337 (опционально)
|
||||
- Может использоваться в кошельках/окружении для UX (userOps), но не является частью ядра DLE v2.
|
||||
Reference in New Issue
Block a user