SHA256
75 lines
4.1 KiB
Markdown
75 lines
4.1 KiB
Markdown
# SHiNE DAO
|
|
|
|
## Кратко
|
|
|
|
DAO — управляющий слой Solana-части SHiNE. В текущем коде это не отдельная Anchor-программа в `programs/`, а модель управления через DAO-кошелек, DAO-authority, governance-скрипты и будущую передачу upgrade-authority программ.
|
|
|
|
## Что DAO должно уметь
|
|
|
|
1. Управлять казной.
|
|
- Принимать средства на `dao_wallet`.
|
|
- Выплачивать средства со счета DAO по решениям голосования.
|
|
|
|
2. Управлять настройками `shine_users`.
|
|
- Обновлять регистрационную комиссию.
|
|
- Обновлять цену шага лимита.
|
|
- Обновлять стартовый бонус лимита.
|
|
|
|
3. Управлять настройками `shine_payments`.
|
|
- Обновлять коэффициент выплат.
|
|
- Обновлять лимит очереди.
|
|
- Обновлять награду за вызов `step_payout`.
|
|
|
|
4. Управлять менеджерами.
|
|
- Выдавать менеджеру лимит на добавление тикетов.
|
|
- Отдельно учитывать лимиты Q1 и Q2.
|
|
|
|
5. Управлять правами программ.
|
|
- Принять upgrade-authority `shine_users`.
|
|
- Принять upgrade-authority `shine_payments`.
|
|
- Позже принять upgrade-authority `shine_login_guard`, если это потребуется.
|
|
|
|
6. Управлять ключами DAO.
|
|
- Добавлять управляющие ключи.
|
|
- Отзывать или сжигать управляющие ключи.
|
|
- Делать это через голосование, а не вручную одним админом.
|
|
|
|
7. Фиксировать решения.
|
|
- Делать заявления/решения через governance-механику.
|
|
- Привязывать важные изменения к proposal/vote/execute.
|
|
|
|
## Текущие адреса управления
|
|
|
|
В общем deploy-конфиге сейчас есть два важных адреса:
|
|
|
|
- `DAO_AUTHORITY` — используется `shine_users` для проверки права менять economy-конфиг.
|
|
- `DAO_TREASURY_WALLET` — используется `shine_payments` как `dao_wallet`.
|
|
|
|
Сейчас они могут совпадать. В целевой DAO-модели их лучше рассматривать как разные роли:
|
|
|
|
- authority/governance signer — кто имеет право исполнять управленческие инструкции;
|
|
- treasury wallet — счет, куда приходят деньги DAO.
|
|
|
|
## Передача прав
|
|
|
|
Рекомендуемый порядок:
|
|
|
|
1. Сначала стабилизировать и проверить `shine_users` и `shine_payments`.
|
|
2. Передать DAO право обновлять настройки, если оно еще не передано.
|
|
3. Передать DAO upgrade-authority второй и третьей программ.
|
|
4. Оставить `shine_login_guard` на отдельном ключе до стабилизации словарей и правил логинов.
|
|
5. После стабилизации решить отдельным голосованием, передавать ли первую программу DAO.
|
|
|
|
## Важное разделение
|
|
|
|
Есть два разных типа прав:
|
|
|
|
1. Право вызвать защищенную функцию программы.
|
|
- Например, `update_coef_limit` или `grant_manager_limits`.
|
|
- Проверяется внутри программы по `dao_wallet` или `DAO_AUTHORITY`.
|
|
|
|
2. Право обновить саму программу.
|
|
- Это upgrade-authority Solana ProgramData.
|
|
- Оно передается отдельной Solana-командой/DAO-транзакцией и не равно обычному PDA-счету.
|
|
|