Analyse du cœur des smart contracts du Sputnik DAO : Détails sur le mécanisme des propositions

robot
Création du résumé en cours

Journal de développement des smart contracts Rust (10-3) Analyse du mécanisme de proposition de Sputnik DAO

Sputnik-DAO en tant qu'infrastructure du NEAR Protocol, pousse l'écosystème NEAR vers une direction de "décentralisation". Actuellement, cette plateforme a facilité de nombreuses communautés autonomes "décentralisées" pour les projets NEAR, tout en offrant des solutions complètes, flexibles et efficaces pour la gouvernance des décisions communautaires.

Le Sputnikdaov2 est un smart contract utilisé pour le vote de gouvernance de la communauté Sputnik-DAO. Cet article présentera les concepts clés de ce contrat : la proposition (Proposal), et dans les articles suivants, nous aborderons les modes de gouvernance de la communauté DAO liés à la "proposition" (Policy).

1. Lancement de la proposition ( Ajouter une proposition )

Les membres de la communauté Sputnik-DAO peuvent exprimer leurs opinions ou soumettre des propositions concernant la gouvernance ou la gestion du projet. Chaque membre de la communauté détenant des actions peut examiner et voter sur les propositions. Les membres de la communauté peuvent influencer l'avenir du projet en votant ou en lançant de nouvelles propositions de gestion.

Au niveau des contrats, les membres de la communauté DAO peuvent appeler la méthode add_proposal() du contrat sputnikdaov2 pour soumettre une nouvelle proposition :

rouille u64

Les proposeurs doivent fournir des détails sur la proposition (ProposalInput):

  • Proposition de description textuelle (Description )
  • Type de proposition(kind)

La méthode add_proposal() effectuera un traitement de validation, générant une proposition complète (Proposal), qui sera liée à un identifiant unique proposal_id et ajoutée au pool de propositions maintenu globalement par le contrat.

Les informations complètes sur les attributs de la proposition comprennent :

  • description(description)
  • type (kind )
  • proposeur ( proposer )
  • état(status)
  • Heure de lancement ( submission_time )
  • État du vote (vote_counts, votes)

Il est important de noter que le Sputnik-DAO exige que les proposeurs déposent un certain montant de jetons NEAR en tant que garantie lors de la soumission d'une proposition. Ce dépôt sera remboursé au proposant à la fin normale de la proposition.

2. Statut de la proposition ( Proposal Status )

Les propositions dans Sputnik-DAO peuvent passer par plusieurs états, l'état initial étant InProgress. Le changement d'état des propositions est piloté par la méthode act_proposal().

Les membres de la communauté peuvent effectuer les opérations suivantes sur les propositions :

  • VoteApprove: signifie approbation
  • VoteReject: indique un refus
  • VoteRemove: pense que cette proposition n'a pas de sens, doit être retirée

Après le vote, le dépouillement aura lieu, et l'état des propositions atteignant le seuil de vote sera modifié en conséquence :

  • Approved: Exécution de la proposition par l'appel à internal_execute_proposal()
  • Rejeté/Retiré : Exécution de l'opération de clôture via l'appel à internal_reject_proposal()

La différence entre l'état Rejected et Removed est que les propositions dans l'état Removed sont directement retirées de la piscine de propositions et le dépôt n'est pas remboursé.

3. Exécution de la proposition (Execute Proposal)

Pour les propositions en statut Approved, la fonction internal_execute_proposal() sera appelée pour exécuter le contenu de la proposition.

Sputnik-DAO prend en charge plusieurs types de propositions, cet article met l'accent sur deux types typiques :

( 3.1 Exécution de la proposition de fonction de contrat )ProposalKind::FunctionCall###

Les propositions de type FunctionCall peuvent exécuter des fonctions de contrat spécifiques. La proposition contient les opérations de fonction à exécuter (actions), et plusieurs objets ActionCall peuvent être spécifiés, chaque objet désignant le nom de la méthode de contrat correspondante et les paramètres.

La fonction du contrat est finalement exécutée sous forme d'actions par lot Promise.

( 3.2 Proposition de transfert de fonds de contrat ) ProposalKind::Transfer ###

Les propositions de type Transfer peuvent transférer les jetons accumulés par le compte de contrat (NEAR ou les jetons conformes à la norme NEP-141 ) vers un compte spécifié.

internal_execute_proposal() appellera la fonction internal_payout() pour réaliser des opérations de transfert de différents types de jetons et de comptes récepteurs.

4. Résumé

Cet article présente le concept central du contrat Sputnik DAO - Proposition (Proposal), y compris la création de propositions, l'exécution des votes et les règles de changement d'état. Les articles suivants fourniront une description plus détaillée du mode de gouvernance de Sputnik-DAO basé sur la proposition (Policy).

ACT0.9%
BATCH4.32%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • 6
  • Partager
Commentaire
0/400
RugResistantvip
· Il y a 10h
hmm trouvé des modèles d'impl sketchy... nécessite un audit approfondi ngl
Voir l'originalRépondre0
WhaleMistakervip
· Il y a 10h
Ce smart contract a l'air super complexe.
Voir l'originalRépondre0
GateUser-ccc36bc5vip
· Il y a 10h
Ce mécanisme de proposition est vraiment trop simple.
Voir l'originalRépondre0
MEVVictimAlliancevip
· Il y a 10h
Il est essentiel de regarder cela pour commencer avec le dao.
Voir l'originalRépondre0
ponzi_poetvip
· Il y a 10h
C'est désespérant, même pour voir un smart contract, il y a un titre en anglais. C'est trop !~
Voir l'originalRépondre0
BankruptcyArtistvip
· Il y a 11h
Encore quelque chose sur le DAO, je ne comprends vraiment pas.
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)