# 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-счету.