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()方法來發起新提案。提案者需提供提案的詳細信息(ProposalInput):

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

add_proposal()方法會對提案信息進行校驗和處理,生成一個完整的提案(Proposal),並與唯一的proposal_id綁定,添加到合約全局維護的提案池中。

提案包含的完整屬性信息有:

  • description: 描述
  • kind: 類型
  • proposer: 提案者
  • status: 狀態
  • submission_time: 提交時間
  • vote_counts: 投票統計
  • votes: 投票詳情

Sputnik-DAO要求提案者在發起提案時質押一定數額的NEAR代幣作爲保證金。該押金將在提案正常結束時退還給提案者。

2. 提案狀態

Sputnik-DAO中的標準提案可能經歷以下狀態:

  • InProgress: 進行中
  • Approved: 已批準
  • Rejected: 已拒絕
  • Removed: 已移除
  • Expired: 已過期
  • Moved: 已轉移

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

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

投票後,合約會調用policy.proposal_status()進行計票。滿足投票閾值的提案狀態會相應變更:

  • Approved: 通過internal_execute_proposal()執行
  • Rejected/Removed: 通過internal_reject_proposal()執行後續操作

Removed狀態的提案會從提案池中移除,不退還押金。Rejected狀態的提案會保留在池中,並退還押金。

3. 提案執行

對於Approved狀態的提案,act_proposal()會調用internal_execute_proposal()執行提案內容。

Sputnik-DAO支持多種提案類型,如ChangeConfig、ChangePolicy、FunctionCall、Transfer等。

以下介紹兩種典型提案類型的執行流程:

3.1 合約函數執行提案(FunctionCall)

FunctionCall類型提案在創建時會傳入具體要執行的函數操作(actions)。每個action可指定合約方法名和參數。

Sputnik-DAO採用Promise Batch Actions的形式完成合約函數執行類型提案的執行。

3.2 合約資金轉移提案(Transfer)

Transfer類型提案可將合約帳戶積累的代幣(NEAR或NEP-141標準代幣)轉移到指定帳戶。

internal_execute_proposal()會調用internal_payout()函數,實現對不同類型代幣和接收帳戶的轉帳操作。

4. 總結

本文介紹了Sputnik DAO合約的核心概念 - 提案(Proposal),說明了如何創建新提案並投票執行,以及提案狀態的變化規則。後續將基於提案進一步介紹Sputnik-DAO的治理模式(Policy)實現與配置。

ACT6.42%
BATCH-0.52%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 轉發
  • 分享
留言
0/400
quietly_stakingvip
· 08-08 17:11
灵魂投票罢了
回復0
提案投票侦探vip
· 08-06 17:22
显然投错人了吧
回復0
GasGasGasBrovip
· 08-06 06:18
合约关我p事 我只认钱
回復0
农场跳跃者vip
· 08-06 06:15
dao嘛 还在用投票吗?
回復0
PriceOracleFairyvip
· 08-06 06:12
老兄,near的dao游戏有点火了,不骗你。
查看原文回復0
链上小透明ervip
· 08-06 06:12
我是Rust生态的围观者
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)