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

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

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

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 та додана до відображення Contract.proposals, яке підтримується глобально в контракті.

Повна інформація про властивості пропозиції включає:

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

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

!

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

Пропозиції в Sputnik-DAO можуть проходити через різні стани, початковий стан - InProgress. Зміна стану пропозиції керується методом act_proposal().

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

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

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

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

Різниця між станами Rejected і Removed полягає в тому, що пропозиції в стані Removed будуть видалені з пулу пропозицій і депозит не повертається. Пропозиції в стані Rejected залишаться в пулі і депозит повертається.

!

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

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

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

3.1 Виконання функції контракту Пропозиція (FunctionCall)

Пропозиція типу FunctionCall при додаванні вже передала конкретну функцію операції (actions). Кожна дія може вказувати назву методу контракту та параметри. Sputnik-DAO реалізує виконання таких пропозицій у формі Promise Batch Actions.

3.2 пропозиція про переведення коштів за смартконтрактом (Transfer )

Пропозиції типу Transfer використовуються для переміщення токенів, накопичених на рахунку контракту, на вказаний рахунок. internal_execute_proposal() викликає функцію internal_payout(), що реалізує операції з переказу різних типів Fungible Token та рахунку отримувача.

!

4. Підсумок

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

!

ACT1.55%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 5
  • Репост
  • Поділіться
Прокоментувати
0/400
DegenRecoveryGroupvip
· 6год тому
Голосування потрібно проводити за допомогою контракту, це справді велика проблема.
Переглянути оригіналвідповісти на0
quiet_lurkervip
· 16год тому
Трохи не розумію, як ця річ працює.
Переглянути оригіналвідповісти на0
ForkItAllDayvip
· 16год тому
near грати на вищому рівні любить створювати
Переглянути оригіналвідповісти на0
ApeWithNoFearvip
· 16год тому
Граємо з екосистемою near. Підтримайте!
Переглянути оригіналвідповісти на0
GasFeeCrybabyvip
· 16год тому
у блокчейні голосування дуже дороге, не можу дозволити собі поїсти
Переглянути оригіналвідповісти на0
  • Закріпити