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