🎉 親愛的廣場小夥伴們,福利不停,精彩不斷!目前廣場上這些熱門發帖贏獎活動火熱進行中,發帖越多,獎勵越多,快來 GET 你的專屬好禮吧!🚀
🆘 #Gate 2025年中社区盛典# |廣場十強內容達人評選
決戰時刻到!距離【2025年中社區盛典】廣場達人評選只剩 1 天,你喜愛的達人,就差你這一票衝進 C 位!在廣場發帖、點讚、評論就能攢助力值,幫 Ta 上榜的同時,你自己還能抽大獎!iPhone 16 Pro Max、金牛雕塑、潮流套裝、合約體驗券 等你抱走!
詳情 👉 https://www.gate.com/activities/community-vote
1️⃣ #晒出我的Alpha积分# |曬出 Alpha 積分&收益
Alpha 積分黨集合!帶話題曬出你的 Alpha 積分圖、空投中獎圖,即可瓜分 $200 Alpha 代幣盲盒,積分最高直接抱走 $100!分享攢分祕籍 / 兌換經驗,中獎率直線上升!
詳情 👉 https://www.gate.com/post/status/12763074
2️⃣ #ETH百万矿王争霸赛# |ETH 鏈上挖礦曬收益
礦工集結!帶話題曬出你的 Gate ETH 鏈上挖礦收益圖,瓜分 $400 曬圖獎池,收益榜第一獨享 $200!誰才是真 ETH 礦王?開曬見分曉!
詳情 👉 https://www.gate.com/pos
Sputnik DAO智能合約解析:提案機制詳解
Rust智能合約養成日記(11):Sputnik DAO提案機制解析
Sputnik-DAO作爲NEAR Protocol的基礎設施,正推動NEAR生態向去中心化方向發展。目前該平台已促成多個NEAR項目建立去中心化自治社區,並提供了靈活高效的社區決策治理方案。
Sputnikdaov2是用於Sputnik-DAO社區治理投票的智能合約。本文將介紹該合約的核心概念:提案(Proposal),並在後續文章中圍繞提案介紹相關的DAO社區治理模式(Policy)。
1. 提案發起
Sputnik-DAO中每位成員都可就項目治理管理發表意見或提交提案。持股成員可對提案進行審議投票。成員可通過投票或發起提案來影響項目走向。
在合約層面,DAO成員可調用sputnikdaov2合約的add_proposal()方法發起新提案。提案者需提供提案的詳細信息(ProposalInput):
提案信息將作爲參數傳入add_proposal()方法,經過校驗處理後生成一個完整的提案(Proposal),並與唯一的proposal_id綁定,添加到合約全局維護的Contract.proposals映射中。
完整的提案屬性信息包括:
需要注意的是,Sputnik-DAO存在提案押金(proposal_bond)的概念。合約要求提案者在調用add_proposal()時質押一定數額的NEAR代幣作爲保證金。該押金將在提案正常結束時退還給提案人。
2. 提案狀態
Sputnik-DAO中的提案可能經歷多種狀態,初始狀態爲InProgress。提案狀態變化由act_proposal()方法驅動。
DAO成員可調用act_proposal()對提案執行如下操作:
投票後,程序會調用policy.proposal_status()進行計票。對於滿足投票閾值的提案,狀態將相應變更:
Rejected和Removed狀態的區別在於,Removed狀態的提案將從提案池中移除,並不退還押金。Rejected狀態的提案會保留在池中,並退還押金。
3. 提案執行
若提案狀態爲Approved,act_proposal()將調用internal_execute_proposal()執行提案內容。
Sputnik-DAO支持多種提案類型,本節將介紹兩種典型類型的處理流程:
3.1 合約函數執行提案(FunctionCall)
FunctionCall類型提案在添加時已傳入具體要執行的函數操作(actions)。每個action可指定合約方法名及參數。Sputnik-DAO採用Promise Batch Actions的形式完成此類提案的執行。
3.2 合約資金轉移提案(Transfer)
Transfer類型提案用於將合約帳戶積累的代幣轉移到指定帳戶。internal_execute_proposal()會調用internal_payout()函數,實現對不同類型Fungible Token和接收帳戶的轉帳操作。
4. 總結
本文介紹了Sputnik DAO合約的核心概念——提案(Proposal),說明了如何創建、投票和執行提案,以及提案狀態的變化規則。後續將基於提案對Sputnik-DAO的治理模式(Policy)展開更詳細的描述。