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, добавив его в пул предложений, поддерживаемый смарт-контрактом.
Полная информация о свойствах предложения включает в себя:
description: Описание
kind: тип
proposer: Предложитель
статус: 状态
submission_time: время подачи
vote_counts: количество голосов
votes: Записи голосования
Важно отметить, что в Sputnik-DAO существует концепция депозитов предложений (proposal_bond), при этом инициатору предложения необходимо внести определенную сумму токенов NEAR в качестве залога при вызове add_proposal(). Этот депозит будет возвращен по окончании предложения.
!
2. Статус предложения
Предложения в Sputnik-DAO могут проходить через несколько состояний:
InProgress: В процессе
Approved: Одобрено
Отклонено: 已拒绝
Удалено: 已移除
Изменение статуса предложения осуществляется с помощью метода 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 )
Тип предложения 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 для запуска нового предложения:
ржавчина pub 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 )
Тип предложения Transfer используется для передачи токенов, накопленных на контрактном счете, на указанный счет. internal_execute_proposal() вызовет функцию internal_payout() для выполнения операций перевода для различных типов токенов и получающих счетов.
!
4. Резюме
В этой статье рассматриваются основные концепции контракта Sputnik DAO — предложение (Proposal), включая создание предложения, изменения статуса и процесс исполнения. В последующих статьях будет более подробно описан механизм предложений и реализация и настройка модели управления Sputnik-DAO (Policy).
!