Rust смарт-контракты养成日记(11) Анализ механизма предложений Sputnik DAO
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, добавив в глобально поддерживаемую контрактом мапу Contract.proposals.
Предложение содержит следующую полную информацию о свойствах:
описание: Описание предложения
kind: тип предложения
proposer: предлагающий
статус: статус предложения
submission_time: время подачи
vote_counts: количество голосов
голоса: Подробности голосования
Важно отметить, что в Sputnik-DAO существует концепция депозитов за предложения (proposal_bond), управляемая конкретной моделью управления сообществом (Policy). Предложитель должен заложить определенное количество токенов NEAR в качестве залога при вызове add_proposal(). Этот депозит будет возвращен по окончании предложения.
!
2. Статус предложения
Предложения в Sputnik-DAO могут проходить через несколько состояний:
В процессе: начальное состояние, голосование продолжается
Одобрено: Голосование прошло
Отклонено: голосование не прошло
Удалено: 被移除
Expired: Истек
Moved: Перемещено
Не удалось: выполнение завершилось неудачей
Изменение статуса предложения управляется методом act_proposal(). Члены DAO могут вызывать этот метод для голосования по предложению и других действий:
VoteApprove: Одобрить
VoteReject: Против
VoteRemove: Удалить
После голосования будет вызван policy.proposal_status() для подсчета голосов, и статус предложения будет обновлен при выполнении условий.
!
3. Исполнение предложений
Утвержденное предложение ( с состоянием Approved вызовет функцию internal_execute_proposal)( для выполнения содержания решения.
Sputnik-DAO поддерживает множество типов предложений, в основном касающихся обновления конфигурации моделей управления DAO. Здесь представлены два типичных типа предложений:
) 3.1 Предложение по выполнению функции контракта
Предложение типа FunctionCall позволяет выполнять указанные функции контракта. В предложении содержатся операции функции ###actions(, можно указать несколько последовательных function_call.
Sputnik-DAO использует формат Promise Batch Actions для выполнения функций смарт-контрактов.
) 3.2 Предложение о переводе средств по смарт-контракту
Предложение типа Transfer используется для перевода токенов, накопленных на контрактном счете, на указанный счет.
internal_execute_proposal###( будет вызывать функцию internal_payout)( для выполнения операций перевода между различными типами Fungible Token и получающими счетами.
В этой статье представлены основные концепции смарт-контрактов Sputnik DAO - предложение )Proposal(, включая создание предложений, голосование, изменения статуса и процесс выполнения. В дальнейшем будет представлено более детальное описание модели управления Sputnik-DAO на основе механизма предложений )Policy(.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Анализ смарт-контрактов Sputnik DAO: проектирование и реализация механизма предложений
Rust смарт-контракты养成日记(11) Анализ механизма предложений Sputnik DAO
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, добавив в глобально поддерживаемую контрактом мапу Contract.proposals.
Предложение содержит следующую полную информацию о свойствах:
Важно отметить, что в Sputnik-DAO существует концепция депозитов за предложения (proposal_bond), управляемая конкретной моделью управления сообществом (Policy). Предложитель должен заложить определенное количество токенов NEAR в качестве залога при вызове add_proposal(). Этот депозит будет возвращен по окончании предложения.
!
2. Статус предложения
Предложения в Sputnik-DAO могут проходить через несколько состояний:
Изменение статуса предложения управляется методом act_proposal(). Члены DAO могут вызывать этот метод для голосования по предложению и других действий:
После голосования будет вызван policy.proposal_status() для подсчета голосов, и статус предложения будет обновлен при выполнении условий.
!
3. Исполнение предложений
Утвержденное предложение ( с состоянием Approved вызовет функцию internal_execute_proposal)( для выполнения содержания решения.
Sputnik-DAO поддерживает множество типов предложений, в основном касающихся обновления конфигурации моделей управления DAO. Здесь представлены два типичных типа предложений:
) 3.1 Предложение по выполнению функции контракта
Предложение типа FunctionCall позволяет выполнять указанные функции контракта. В предложении содержатся операции функции ###actions(, можно указать несколько последовательных function_call.
Sputnik-DAO использует формат Promise Batch Actions для выполнения функций смарт-контрактов.
) 3.2 Предложение о переводе средств по смарт-контракту
Предложение типа Transfer используется для перевода токенов, накопленных на контрактном счете, на указанный счет.
internal_execute_proposal###( будет вызывать функцию internal_payout)( для выполнения операций перевода между различными типами Fungible Token и получающими счетами.
! [])https://img-cdn.gateio.im/webp-social/moments-ef0b959c42e1f5fc6263cd4a86fd078e.webp(
4. Резюме
В этой статье представлены основные концепции смарт-контрактов Sputnik DAO - предложение )Proposal(, включая создание предложений, голосование, изменения статуса и процесс выполнения. В дальнейшем будет представлено более детальное описание модели управления Sputnik-DAO на основе механизма предложений )Policy(.
! [])https://img-cdn.gateio.im/webp-social/moments-eb73d5e15f6161f0a4b442cd4b99a91e.webp(