Rust смартконтракти养成日记(11): Аналіз механізму пропозицій DAO Sputnik
Sputnik-DAO як інфраструктура NEAR Protocol, сприяє розвитку екосистеми NEAR у напрямку децентралізації. Наразі ця платформа вже сприяла створенню кількох децентралізованих автономних спільнот NEAR і пропонує повні та гнучкі рішення для управління спільнотою.
sputnikdaov2 є смартконтрактом для голосування з управління спільнотою Sputnik-DAO. У цій статті буде представлено основні концепції цього контракту: пропозиція (Proposal), подальші статті будуть зосереджені на відповідних моделях управління спільнотою DAO (Policy).
1. Ініціювання пропозиції
Кожен член Sputnik-DAO може висловити свою думку або подати пропозицію щодо управління проектом. Кожен член спільноти з акціями може розглядати та голосувати за пропозиції, впливаючи на майбутній напрямок проекту.
На рівні контракту, члени DAO можуть викликати метод add_proposal() контракту sputnikdaov2 для ініціювання нової пропозиції:
Автор пропозиції повинен надати детальну інформацію про пропозицію (ProposalInput):
Текстовий опис пропозиції (Description)
Тип пропозиції ( kind )
Ця інформація буде передана як параметри до методу add_proposal(), який проведе перевірку, створить повну пропозицію (Proposal) і прив'яже її до унікального proposal_id, додавши до пулу пропозицій, який глобально підтримується смартконтрактом.
Повна інформація про атрибути пропозиції включає:
опис: Опис
kind: тип
proposer: ініціатор
статус: статус
submission_time: час подання
vote_counts: підрахунок голосів
votes: записи голосування
Потрібно звернути увагу на те, що в Sputnik-DAO існує концепція депозиту за пропозицію (proposal_bond), що пропонувальник повинен внести певну кількість токенів NEAR як заставу, викликаючи add_proposal(). Цей депозит буде повернутий після нормального завершення пропозиції.
!
2. Стан пропозиції
Пропозиції в Sputnik-DAO можуть проходити через кілька станів:
InProgress: В процесі
Approved: Схвалено
Rejected: Відхилено
Видалено: 已移除
Зміна статусу пропозиції керується методом act_proposal(). Члени DAO можуть викликати цей метод для виконання наступних дій з пропозицією:
VoteApprove: схвалити
VoteReject: Проти
VoteRemove: видалити
Після голосування буде викликано policy.proposal_status() для підрахунку голосів. Статус пропозиції, що відповідає критеріям, буде змінено на Approved, Rejected або Removed.
Прийняті пропозиції будуть виконані, в той час як відхилені та видалені пропозиції підлягають завершальним діям. Пропозиції у стані видалення будуть вилучені з пулу пропозицій і депозит не буде повернутий.
!
3. Виконання пропозиції
Для пропозицій у стані Approved, act_proposal() викликає internal_execute_proposal() для виконання змісту пропозиції.
Sputnik-DAO підтримує кілька типів пропозицій, які в основному стосуються оновлення конфігураційних моделей управління DAO. У цій статті основну увагу приділено двом типовим процесам обробки пропозицій:
3.1 виконання функцій контракту пропозиції (FunctionCall)
Тип пропозиції FunctionCall передає функціональні операції (actions) під час створення. internal_execute_proposal() буде виконувати ці виклики функцій у формі Promise Batch Actions.
3.2 Пропозиція про передачу коштів за смартконтрактом(Переведення)
Пропозиція типу Transfer використовується для передачі токенів, накопичених на рахунку контракту, на вказаний рахунок. internal_execute_proposal() викликатиме функцію internal_payout(), реалізуючи операції з переказу для різних типів токенів та рахунків отримувачів.
!
4. Підсумок
Ця стаття представляє основні концепції контракту Sputnik DAO — пропозицію (Proposal), включаючи створення пропозиції, зміни статусу та процес виконання. У наступних статтях буде більш детально описано механізм пропозицій та реалізацію і налаштування моделі управління Sputnik-DAO (Policy).
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Аналіз смартконтрактів Sputnik DAO: докладний опис механізму пропозицій та процесу виконання
Rust смартконтракти养成日记(11): Аналіз механізму пропозицій DAO Sputnik
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):
Ця інформація буде передана як параметри до методу add_proposal(), який проведе перевірку, створить повну пропозицію (Proposal) і прив'яже її до унікального proposal_id, додавши до пулу пропозицій, який глобально підтримується смартконтрактом.
Повна інформація про атрибути пропозиції включає:
Потрібно звернути увагу на те, що в Sputnik-DAO існує концепція депозиту за пропозицію (proposal_bond), що пропонувальник повинен внести певну кількість токенів NEAR як заставу, викликаючи add_proposal(). Цей депозит буде повернутий після нормального завершення пропозиції.
!
2. Стан пропозиції
Пропозиції в Sputnik-DAO можуть проходити через кілька станів:
Зміна статусу пропозиції керується методом act_proposal(). Члени DAO можуть викликати цей метод для виконання наступних дій з пропозицією:
Після голосування буде викликано policy.proposal_status() для підрахунку голосів. Статус пропозиції, що відповідає критеріям, буде змінено на Approved, Rejected або Removed.
Прийняті пропозиції будуть виконані, в той час як відхилені та видалені пропозиції підлягають завершальним діям. Пропозиції у стані видалення будуть вилучені з пулу пропозицій і депозит не буде повернутий.
!
3. Виконання пропозиції
Для пропозицій у стані Approved, act_proposal() викликає internal_execute_proposal() для виконання змісту пропозиції.
Sputnik-DAO підтримує кілька типів пропозицій, які в основному стосуються оновлення конфігураційних моделей управління DAO. У цій статті основну увагу приділено двом типовим процесам обробки пропозицій:
3.1 виконання функцій контракту пропозиції (FunctionCall)
Тип пропозиції FunctionCall передає функціональні операції (actions) під час створення. internal_execute_proposal() буде виконувати ці виклики функцій у формі Promise Batch Actions.
3.2 Пропозиція про передачу коштів за смартконтрактом(Переведення)
Пропозиція типу Transfer використовується для передачі токенів, накопичених на рахунку контракту, на вказаний рахунок. internal_execute_proposal() викликатиме функцію internal_payout(), реалізуючи операції з переказу для різних типів токенів та рахунків отримувачів.
!
4. Підсумок
Ця стаття представляє основні концепції контракту Sputnik DAO — пропозицію (Proposal), включаючи створення пропозиції, зміни статусу та процес виконання. У наступних статтях буде більш детально описано механізм пропозицій та реалізацію і налаштування моделі управління Sputnik-DAO (Policy).
!