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

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

Щоденник розвитку смартконтрактів Rust (11) Аналіз механізму пропозицій Sputnik DAO

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

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

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

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

На рівні контракту учасники DAO можуть викликати метод add_proposal() контракту sputnikdaov2 для ініціювання нової пропозиції:

іржа Паб Fn add_proposal(&mut self, пропозиція: ProposalInput) -> U64

Автор пропозиції повинен надати детальну інформацію про пропозицію (ProposalInput):

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

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

Пропозиція містить наступну повну інформацію про атрибути:

  • description: Опис пропозиції
  • kind: тип пропозиції
  • proposer: пропонент
  • статус: статус пропозиції
  • submission_time: час подання
  • vote_counts: підрахунок голосів
  • votes: деталі голосування

Слід зазначити, що Sputnik-DAO існує концепція депозиту пропозиції (proposal_bond), що управляється конкретною моделлю управління спільнотою (Policy). Пропонентам потрібно закласти певну кількість токенів NEAR у якості гарантії під час виклику add_proposal(). Цей депозит буде повернуто після нормального завершення пропозиції.

!

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

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

  • InProgress: початковий стан, голосування триває
  • Approved: Голосування пройшло
  • Відхилено: голосування не пройшло
  • Видалено: 被移除
  • Expired: Прострочено
  • Moved: Переміщено
  • Не вдалось: виконався неуспішно

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

  • VoteApprove: схвалити
  • VoteReject: Проти
  • VoteRemove: видалити

Після голосування буде викликано policy.proposal_status() для підрахунку голосів, при виконанні умов оновити статус пропозиції.

!

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

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

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

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

Пропозиція типу FunctionCall дозволяє виконувати вказану функцію контракту. Пропозиція містить операцію функції (actions), можна вказати кілька послідовних function_call.

Sputnik-DAO використовує форму Promise Batch Actions для виконання функцій смартконтрактів.

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

Пропозиція типу Transfer використовується для передачі токенів, накопичених на контракті, на вказаний рахунок.

internal_execute_proposal() буде викликати функцію internal_payout(), реалізуючи операції переказу для різних типів Fungible Token та рахунків отримувачів.

!

4. Підсумок

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

!

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити