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

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

Rust смартконтракти养成日记(10-3)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 та додана до пулу пропозицій, що підтримується глобально в смартконтрактах.

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

  • Опишіть (description)
  • тип (kind )
  • Ініціатор (proposer)
  • стан(status)
  • Час ініціації ( час подання )
  • стан голосування ( vote_counts, голоси )

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

!

2. Статус пропозиції ( Proposal Status )

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

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

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

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

  • Approved: Виконано пропозицію за допомогою виклику internal_execute_proposal()
  • Відхилено/Вилучено: Виконання завершальних дій шляхом виклику internal_reject_proposal()

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

!

3. Виконання пропозиції ( Виконати пропозицію )

Для пропозицій у стані Approved буде викликано функцію internal_execute_proposal() для виконання змісту пропозиції.

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

3.1 Виконання контрактних функцій пропозиція (ProposalKind::FunctionCall)

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

В кінцевому підсумку виконання функцій контракту завершується у формі Promise Batch Actions.

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

Пропозиції типу Transfer можуть переміщувати токени, накопичені на контракті рахунку (NEAR або токени стандарту NEP-141 ), на вказаний рахунок.

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

!

4. Підсумок

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

!

ACT2.27%
BATCH4.38%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 6
  • Поділіться
Прокоментувати
0/400
RugResistantvip
· 6год тому
хмм знайшов деякі підозрілі імплементаційні патерни... потребує ретельного аудиту, не буду приховувати
Переглянути оригіналвідповісти на0
WhaleMistakervip
· 6год тому
Цей смартконтракт виглядає дуже складно.
Переглянути оригіналвідповісти на0
GateUser-ccc36bc5vip
· 6год тому
Цей механізм пропозицій надто простий.
Переглянути оригіналвідповісти на0
MEVVictimAlliancevip
· 6год тому
обов'язково подивіться на dao
Переглянути оригіналвідповісти на0
ponzi_poetvip
· 6год тому
卷是在无奈啊 看个 смартконтракти 都整英语标题 润了润了~
Переглянути оригіналвідповісти на0
BankruptcyArtistvip
· 6год тому
Знову щось з DAO, справді не можу зрозуміти.
Переглянути оригіналвідповісти на0
  • Закріпити