Sputnik DAO智能合約解析:提案機制詳解與執行流程

robot
摘要生成中

Rust智能合約養成日記(11):Sputnik DAO提案機制解析

Sputnik-DAO 作爲 NEAR Protocol 的基礎設施,正推動NEAR生態向去中心化方向發展。目前該平台已促成多個NEAR項目建立去中心化自治社區,並提供了完整靈活的社區治理解決方案。

sputnikdaov2 是 Sputnik-DAO 社區治理投票的智能合約。本文將介紹該合約的核心概念:提案(Proposal),後續文章將圍繞提案介紹相關的DAO社區治理模式(Policy)。

1. 提案發起

Sputnik-DAO 中的每位成員都可以就項目治理管理發表意見或提交提案。每個持股的社區成員都可以對提案進行審議和投票,從而影響項目未來方向。

在合約層面,DAO成員可調用 sputnikdaov2 合約的 add_proposal() 方法發起新提案:

rust pub fn add_proposal(&mut self, proposal: ProposalInput) -> u64

提案者需提供提案的詳細信息(ProposalInput):

  • 提案的文字描述(Description)
  • 提案的類型(kind)

這些信息將作爲參數傳入 add_proposal() 方法,該方法會進行校驗處理,生成一個完整的提案(Proposal),並與唯一的 proposal_id 綁定,添加到合約全局維護的提案池中。

提案的完整屬性信息包括:

  • description: 描述
  • kind: 類型
  • proposer: 提案人
  • status: 狀態
  • submission_time: 提交時間
  • vote_counts: 投票計數
  • votes: 投票記錄

需要注意的是,Sputnik-DAO 中存在提案押金(proposal_bond)的概念,提案者在調用 add_proposal() 時需質押一定數額的 NEAR 代幣作爲保證金。該押金將在提案正常結束時退還。

2. 提案狀態

Sputnik-DAO 中的提案可能經歷多種狀態:

  • InProgress: 進行中
  • Approved: 已批準
  • Rejected: 已拒絕
  • Removed: 已移除

提案狀態變化由 act_proposal() 方法驅動。DAO成員可調用該方法對提案執行以下操作:

  • VoteApprove: 贊成
  • VoteReject: 反對
  • VoteRemove: 移除

投票後會調用 policy.proposal_status() 進行計票。滿足條件的提案狀態將變更爲 Approved、Rejected 或 Removed。

Approved 狀態的提案將被執行,Rejected 和 Removed 狀態則執行收尾操作。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)實現與配置進行更詳細的描述。

ACT-7.4%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 3
  • 分享
留言
0/400
APY追逐者vip
· 15小時前
执行力杠杠的
回復0
幽灵地址挖掘机vip
· 07-28 00:13
划重点 重点在押金
回復0
RugResistantvip
· 07-28 00:12
提案制度很科学
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)