Análise dos contratos inteligentes do Sputnik DAO: Detalhes do mecanismo de propostas

robot
Geração de resumo em curso

Diário de Desenvolvimento de Contratos Inteligentes em Rust (11): Análise do Mecanismo de Propostas da DAO Sputnik

Sputnik-DAO, como a infraestrutura do NEAR Protocol, está impulsionando a ecologia NEAR em direção à descentralização. Atualmente, a plataforma já facilitou a criação de várias comunidades autônomas descentralizadas para projetos NEAR e ofereceu soluções de governança de decisões comunitárias flexíveis e eficientes.

Sputnikdaov2 é um contrato inteligente utilizado para a votação de governança da comunidade Sputnik-DAO. Este artigo apresentará os conceitos centrais desse contrato: a proposta (Proposal), e em artigos subsequentes, abordará os modos de governança da comunidade DAO relacionados à proposta (Policy).

1. Início da proposta

Na Sputnik-DAO, cada membro pode expressar opiniões ou submeter propostas sobre a gestão do projeto. Os membros acionistas podem revisar e votar nas propostas. Os membros podem influenciar a direção do projeto através de votos ou iniciando propostas.

No nível do contrato, os membros do DAO podem chamar o método add_proposal() do contrato sputnikdaov2 para iniciar uma nova proposta. O proponente deve fornecer detalhes da proposta (ProposalInput):

  • Descrição do texto da proposta (Description)
  • Tipo de proposta (kind )

As informações da proposta serão passadas como parâmetro para o método add_proposal(), e após verificação e processamento, gerará uma proposta completa (Proposal), que será vinculada a um proposal_id único e adicionada ao mapeamento Contract.proposals mantido globalmente pelo contrato.

Informações completas sobre os atributos da proposta incluem:

  • descrição: descrição da proposta
  • tipo: tipo de proposta
  • proposer: proponente
  • status: estado da proposta, inicialmente em InProgress
  • submission_time: tempo de submissão
  • vote_counts: contagem de votos
  • votes: detalhes da votação

É importante notar que existe o conceito de depósito de proposta (proposal_bond) no Sputnik-DAO. O contrato exige que o proponente de uma proposta deposite uma certa quantia de tokens NEAR como garantia ao chamar add_proposal(). Este depósito será devolvido ao proponente quando a proposta terminar normalmente.

2. Estado da Proposta

As propostas no Sputnik-DAO podem passar por vários estados, sendo o estado inicial InProgress. A mudança de estado da proposta é impulsionada pelo método act_proposal().

Os membros do DAO podem chamar act_proposal() para executar as seguintes operações na proposta:

  • VoteApprove: indica aprovação
  • VoteReject: indica oposição
  • VoteRemove: considera que a proposta não tem sentido e deve ser removida

Após a votação, o programa chamará policy.proposal_status() para contar os votos. Para as propostas que atendem ao limiar de votação, o estado será alterado em conformidade:

  • Aprovado: através do internal_execute_proposal() execução
  • Rejeitado/Removido: execute a operação subsequente através de internal_reject_proposal()

A diferença entre os estados Rejected e Removed é que as propostas no estado Removed serão removidas do pool de propostas e não terão o depósito devolvido. As propostas no estado Rejected permanecerão no pool e terão o depósito devolvido.

3. Execução da proposta

Se o estado da proposta for Aprovado, act_proposal() chamará internal_execute_proposal() para executar o conteúdo da proposta.

Sputnik-DAO suporta vários tipos de propostas, esta seção apresentará os processos de tratamento de dois tipos típicos:

3.1 Proposta de execução da função de contrato (FunctionCall)

Propostas do tipo FunctionCall já foram enviadas com a operação de função específica a ser executada (actions). Cada ação pode especificar o nome do método do contrato e os parâmetros. O Sputnik-DAO utiliza a forma de Promises Batch Actions para completar a execução deste tipo de proposta.

3.2 proposta de transferência de fundos de contratos inteligentes ( Transferir )

As propostas do tipo Transfer são usadas para transferir os tokens acumulados na conta do contrato para a conta especificada. internal_execute_proposal() chamará a função internal_payout(), realizando operações de transferência para diferentes tipos de Fungible Token e contas receptoras.

4. Resumo

Este artigo apresenta o conceito central do contrato Sputnik DAO - Proposta (Proposal), explicando como criar, votar e executar propostas, bem como as regras de mudança de estado das propostas. A seguir, será feita uma descrição mais detalhada do modelo de governança do Sputnik-DAO com base na proposta (Policy).

ACT1.47%
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • 5
  • Republicar
  • Partilhar
Comentar
0/400
DegenRecoveryGroupvip
· 8h atrás
Fazer votação ainda requer contrato, é realmente complicado.
Ver originalResponder0
quiet_lurkervip
· 18h atrás
Não consigo perceber muito bem como esta coisa funciona.
Ver originalResponder0
ForkItAllDayvip
· 18h atrás
near joga bem ama criar
Ver originalResponder0
ApeWithNoFearvip
· 18h atrás
Brincando com o ecossistema near, apoio total!
Ver originalResponder0
GasFeeCrybabyvip
· 18h atrás
na cadeia, a votação é muito cara, não consigo pagar a comida.
Ver originalResponder0
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)