Sputnik DAO智能合約解析:從提案機制看NEAR生態的去中心化治理

robot
摘要生成中

Rust智能合約養成日記:深入解析Sputnik DAO提案機制

Sputnik DAO作爲NEAR生態的基礎設施,正在推動NEAR項目走向去中心化自治。本文將深入解析Sputnik DAO智能合約中的核心概念 - 提案(Proposal)機制。

1. 提案發起

Sputnik DAO中的每個成員都可以發起提案,表達對項目治理的意見。從合約層面看,成員可以調用sputnikdaov2合約的add_proposal()方法來發起新提案:

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

提案者需要提供提案的詳細信息,包括:

  • 提案描述
  • 提案類型(如FunctionCall、Transfer等)

合約會進一步處理這些信息,生成一個完整的Proposal對象,並分配唯一的proposal_id。

值得注意的是,提案發起需要質押一定數量的NEAR代幣作爲保證金。這筆保證金在提案正常結束後會退還給提案人。

2. 提案狀態

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

  • InProgress:初始狀態,正在投票中
  • Approved:投票通過
  • Rejected:投票未通過
  • Removed:被移除

提案狀態的變化由act_proposal()方法驅動。DAO成員可以調用該方法對提案進行投票:

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

投票結束後,根據投票結果更新提案狀態。

3. 提案執行

當提案狀態變爲Approved時,合約會調用internal_execute_proposal()函數執行提案內容。

Sputnik DAO支持多種類型的提案,本文重點介紹兩種典型提案:

3.1 合約函數執行提案

對於FunctionCall類型的提案,合約會執行提案中指定的函數調用。提案可以包含多個ActionCall對象,每個對象指定要調用的合約方法及參數。

3.2 合約資金轉移提案

Transfer類型的提案用於將合約帳戶中的代幣轉移到指定帳戶。合約會根據代幣類型和接收帳戶類型執行相應的轉帳操作。

4. 總結

本文介紹了Sputnik DAO合約中提案機制的核心概念,包括提案的創建、狀態變化和執行流程。這一機制爲NEAR項目提供了靈活高效的去中心化治理方案。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 7
  • 分享
留言
0/400
SelfSovereignStevevip
· 9小時前
这提案咋听着比 eth 的复杂
回復0
TxFailedvip
· 10小時前
实际上又一个将因选民冷漠而失败的DAO……我经历过这个。
查看原文回復0
All_InAlicevip
· 10小時前
治理也讲究机制设计咯
回復0
mev_me_maybevip
· 10小時前
有钱才是硬道理
回復0
GasFeeCryingvip
· 10小時前
near又机制调整? 该付油费了
回復0
区块链流浪诗人vip
· 10小時前
投票真的有用么?
回復0
智能合约打工人vip
· 10小時前
near好料
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)