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

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

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

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

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

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

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

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

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

Ініціатор повинен надати такі деталі:

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

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

Повні атрибути пропозиції включають: автора пропозиції, статус, час ініціації, стан голосування тощо.

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

!

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

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

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

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

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

  • Пропозиції зі статусом Approved будуть виконані
  • Пропозиції зі статусом Rejected або Removed будуть виконувати остаточні дії

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

!

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

Затверджені пропозиції викликатимуть функцію internal_execute_proposal() для виконання змісту рішення.

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

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

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

Кожна дія може вказувати назву методу контракту та параметри. Sputnik-DAO виконує функції у формі Promise Batch Actions.

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

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

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

!

4. Підсумок

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

!

ACT3.12%
BATCH1.14%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 2
  • Репост
  • Поділіться
Прокоментувати
0/400
OnchainUndercovervip
· 7год тому
near є новими невдахи, BTC не турбувати
Переглянути оригіналвідповісти на0
OnChainArchaeologistvip
· 7год тому
near все ще в грі啊
Переглянути оригіналвідповісти на0
  • Закріпити