Аналіз смартконтрактів Sputnik DAO: проєктування та реалізація механізму пропозицій

robot
Генерація анотацій у процесі

Rust смартконтракти养成日记(10-3):解析 механізму пропозицій DAO Sputnik

Sputnik-DAO як інфраструктура NEAR Protocol, сприяє розвитку екосистеми NEAR у напрямку децентралізації. Наразі ця платформа вже сприяла створенню кількох децентралізованих автономних спільнот NEAR і надає повноцінні гнучкі рішення для управління спільнотою.

Sputnikdaov2 є смартконтрактом для голосування з управління спільнотою Sputnik-DAO. У цій статті буде представлено основні концепції цього контракту: пропозиція (Proposal), а наступні статті будуть присвячені відповідним моделям управління спільнотою DAO (Policy).

!

1. Ініціювання пропозиції

Члени спільноти Sputnik-DAO можуть висловлювати свої думки або подавати пропозиції щодо управління проектом. Кожен акціонер спільноти може розглядати пропозиції та голосувати, впливаючи на майбутнє проекту.

На рівні контракту, члени DAO можуть викликати метод add_proposal() контракту sputnikdaov2 для ініціювання нової пропозиції. При виклику необхідно надати детальну інформацію про пропозицію(ProposalInput), включаючи:

  • Текстовий опис пропозиції ( Опис )
  • Тип пропозиції ( kind )

метод add_proposal() буде виконувати перевірку та обробку, створюючи повну пропозицію (Proposal), і буде прив'язаний до унікального proposal_id, додавши його до пулу пропозицій, що підтримується смартконтрактами.

Повна інформація про атрибути пропозиції включає: ініціатора пропозиції, статус, час ініціювання, статус голосування тощо. Статус нової пропозиції за замовчуванням - InProgress.

Sputnik-DAO вимагає від пропозиціонера заблокувати певну кількість токенів NEAR як депозит. Цей депозит буде повернуто пропозиціонеру після нормального завершення пропозиції.

!

2. Стан пропозиції

Пропозиції в Sputnik-DAO можуть проходити через кілька станів: InProgress, Approved, Rejected, Removed тощо.

Зміна статусу пропозиції здійснюється за допомогою методу act_proposal(). Члени DAO можуть викликати цей метод для проведення голосування та інших дій щодо пропозиції:

  • VoteApprove:Затвердити
  • VoteReject: Проти
  • VoteRemove: вважає, що пропозиція не має сенсу, потрібно видалити

Внутрішній виклик policy.proposal_status() для підрахунку голосів. Для пропозицій, які відповідають порогу голосування, статус буде відповідно змінено:

  • Approved: виклик internal_execute_proposal() виконати пропозицію
  • Відхилено/Видалено: виклик internal_reject_proposal() виконати завершальні дії

Пропозиції у стані Removed будуть безпосередньо видалені з пулу пропозицій і депозит не буде повернено. Пропозиції у стані Rejected залишаться в пулі пропозицій і депозит буде повернено.

!

3. Виконання пропозиції

Якщо статус пропозиції Approved, внутрішній виклик буде виконано internal_execute_proposal() для виконання змісту пропозиції.

Sputnik-DAO підтримує кілька типів пропозицій, більшість з яких стосуються оновлення конфігурацій моделі управління DAO. Нижче наведено два типових процеси обробки пропозицій:

3.1 Виконання функцій смартконтрактів пропозиція

Для пропозицій типу FunctionCall внутрішньо буде виконано виклики методів контракту, зазначені в пропозиції, у формі Promise Batch Actions.

3.2 Пропозиція щодо переказу коштів за смартконтрактом

Для пропозицій типу Transfer внутрішньо буде викликано функцію internal_payout(), що реалізує операцію переказу різних типів токенів на вказаний рахунок.

Ця стаття представляє основні концепції контракту Sputnik DAO — пропозиція (Proposal), включаючи створення пропозицій, голосування та процес виконання. Далі буде представлено реалізацію та налаштування моделі управління в Sputnik-DAO (Policy).

!

ACT-0.95%
BATCH3.53%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 3
  • Репост
  • Поділіться
Прокоментувати
0/400
GameFiCriticvip
· 13год тому
План управління все ще недостатньо децентралізований, розподіл ваги голосування потрібно ще більш збалансувати.
Переглянути оригіналвідповісти на0
OnchainHolmesvip
· 13год тому
Немає слів, знову проект DAO
Переглянути оригіналвідповісти на0
NeverVoteOnDAOvip
· 13год тому
Ги-ги, просто послухай, що тут кажуть, на що голосувати?
Переглянути оригіналвідповісти на0
  • Закріпити