📢 Gate廣場 #NERO发帖挑战# 秀觀點贏大獎活動火熱開啓!
Gate NERO生態周來襲!發帖秀出NERO項目洞察和活動實用攻略,瓜分30,000NERO!
💰️ 15位優質發帖用戶 * 2,000枚NERO每人
如何參與:
1️⃣ 調研NERO項目
對NERO的基本面、社區治理、發展目標、代幣經濟模型等方面進行研究,分享你對項目的深度研究。
2️⃣ 參與並分享真實體驗
參與NERO生態周相關活動,並曬出你的參與截圖、收益圖或實用教程。可以是收益展示、簡明易懂的新手攻略、小竅門,也可以是行情點位分析,內容詳實優先。
3️⃣ 鼓勵帶新互動
如果你的帖子吸引到他人參與活動,或者有好友評論“已參與/已交易”,將大幅提升你的獲獎概率!
NERO熱門活動(帖文需附以下活動連結):
NERO Chain (NERO) 生態周:Gate 已上線 NERO 現貨交易,爲回饋平台用戶,HODLer Airdrop、Launchpool、CandyDrop、餘幣寶已上線 NERO,邀您體驗。參與攻略見公告:https://www.gate.com/announcements/article/46284
高質量帖子Tips:
教程越詳細、圖片越直觀、互動量越高,獲獎幾率越大!
市場見解獨到、真實參與經歷、有帶新互動者,評選將優先考慮。
帖子需原創,字數不少於250字,且需獲得至少3條有效互動
Sputnik DAO智能合約核心:提案機制深度解析
Rust智能合約養成日記(11) Sputnik DAO::提案機制解析
Sputnik-DAO 是 NEAR Protocol 提供的基礎設施,推動 NEAR 生態向去中心化方向發展。目前該平台已促成多個 NEAR 項目建立去中心化自治社區,提供完整靈活的社區決策治理方案。
Sputnikdaov2 是用於 Sputnik-DAO 社區治理投票的智能合約。本文將介紹該合約的核心概念:提案(Proposal),後續文章將圍繞提案介紹相關的 DAO 社區治理模式(Policy)。
1. 提案發起
Sputnik-DAO 社區成員可以發表意見或提交提案,其他持股成員可以對提案進行審議和投票。成員可以通過投票或發起新提案來影響項目未來走向。
在合約層面,成員可調用 sputnikdaov2 合約的 add_proposal() 方法發起新提案:
rust pub fn add_proposal(&mut self, proposal: ProposalInput) -> u64
提案者需提供提案的詳細信息(ProposalInput):
提案信息作爲參數傳入 add_proposal() 方法,經過校驗處理後生成完整的提案(Proposal),並與唯一的 proposal_id 綁定,添加到合約全局維護的提案池中。
提案的完整屬性信息包括:
Sputnik-DAO 中存在提案押金(proposal_bond)的概念,提案者需在調用 add_proposal() 時質押一定數額的 NEAR 代幣作爲保證金。該押金在提案正常結束時會退還給提案者。
2. 提案狀態
Sputnik-DAO 中的提案可能經歷多種狀態,初始狀態爲 InProgress。狀態變化由 act_proposal() 方法驅動。
成員可調用 act_proposal() 對提案執行以下操作:
投票後,程序會調用 policy.proposal_status() 進行計票。滿足投票閾值的提案狀態將相應變更:
Removed 狀態的提案會從提案池中移除且不退還押金,Rejected 狀態的提案會保留並退還押金。
3. 提案執行
Approved 狀態的提案會調用 internal_execute_proposal() 執行決策內容。Sputnik-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)實現。