💥 Gate廣場活動: #FST创作大赛# 💥
在 Gate廣場 發布 CandyDrop 第71期:CandyDrop x FreeStyle Classic Token (FST) 相關原創內容,即有機會瓜分 3,000 FST 獎勵!
📅 活動時間:2025年8月27日 – 9月2日
📌 參與方式:
發布原創內容,主題需與 FST 或 CandyDrop 活動相關
內容不少於 80 字
帖子添加話題: #FST创作大赛#
附上 CandyDrop 參與截圖
🏆 獎勵設置:
一等獎(1名):1,000 FST
二等獎(3名):500 FST/人
三等獎(5名):200 FST/人
📄 注意事項:
內容必須原創,禁止抄襲或刷量
獲獎者需完成 Gate 廣場身分認證
活動最終解釋權歸 Gate 所有
活動詳情連結: https://www.gate.com/announcements/article/46757
Sputnik DAO提案機制解析:NEAR生態去中心化治理的核心
Rust智能合約養成日記(11) - Sputnik DAO提案機制解析
Sputnik-DAO作爲NEAR Protocol的基礎設施,正推動NEAR生態向去中心化方向發展。目前該平台已促成衆多NEAR項目實現去中心化自治,同時提供了完整靈活且高效的社區決策治理方案。
Sputnikdaov2是用於Sputnik-DAO社區治理投票的智能合約。本文將介紹該合約的核心概念:提案(Proposal),並在後續文章中圍繞提案介紹相關的DAO社區治理模式(Policy)。
1. 提案發起
Sputnik-DAO社區中的每位成員都可以就項目的治理或管理發表意見或提交提案。隨後每個在DAO中持股的社區成員都可以對該提案進行審議和投票。換句話說,Sputnik-DAO中的每個成員都可以通過對其他成員的提案進行投票或自己發起新的管理提案來影響項目未來的走向。
在合約層面,DAO社區成員可調用sputnikdaov2合約提供的add_proposal()方法來發起新提案。提案者需提供提案的詳細信息(ProposalInput),包括:
這些信息將作爲參數傳入add_proposal()方法,該方法會進行相關校驗與處理,並生成一個完整的提案(Proposal)。最終該提案會與唯一的proposal_id綁定,添加到合約全局維護的提案池中。
提案的完整屬性信息包括:
需要注意的是,Sputnik-DAO中存在提案押金(proposal_bond)的概念,該押金將依照具體的社區治理模式進行管理。合約要求提案者在調用add_proposal()方法時質押一定數額的NEAR代幣作爲新提案的保證金。該筆押金將在提案正常結束時退還給提案人。
2. 提案狀態
Sputnik-DAO中的提案可能經歷多種狀態,初始狀態爲InProgress。具體狀態變化由合約的act_proposal()方法驅動。
DAO成員可調用act_proposal()方法對提案執行如下操作:
提案狀態變更後:
Rejected和Removed狀態的區別在於,Removed狀態的提案將直接從提案池中移除,且不退還押金。而Rejected狀態的提案將保留在提案池中,並退還押金。
3. 提案執行
若提案狀態爲Approved,act_proposal()方法內部將調用internal_execute_proposal()函數執行提案內容。
Sputnik-DAO支持多種提案類型,本文重點介紹兩種典型提案的處理流程:
3.1 合約函數執行提案
對於FunctionCall類型的提案,提案者在add_proposal()時已傳入具體要執行的函數操作(actions)。internal_execute_proposal()將採用Promise Batch Actions的形式完成合約函數的執行。
3.2 合約資金轉移提案
對於Transfer類型的提案,internal_execute_proposal()將調用internal_payout()函數,實現對不同類型Fungible Token以及不同類型receiver_id的轉帳操作。
4. 總結
本文介紹了Sputnik DAO合約的核心概念——提案(Proposal),包括提案的創建、投票執行及狀態變化規則。後續文章將基於提案對Sputnik-DAO中治理模式(Policy)的實現與配置展開更詳細的描述。