📢 #Gate广场征文活动第二期# 正式啓動!
分享你對 $ERA 項目的獨特觀點,推廣ERA上線活動, 700 $ERA 等你來贏!
💰 獎勵:
一等獎(1名): 100枚 $ERA
二等獎(5名): 每人 60 枚 $ERA
三等獎(10名): 每人 30 枚 $ERA
👉 參與方式:
1.在 Gate廣場發布你對 ERA 項目的獨到見解貼文
2.在貼文中添加標籤: #Gate广场征文活动第二期# ,貼文字數不低於300字
3.將你的文章或觀點同步到X,加上標籤:Gate Square 和 ERA
4.徵文內容涵蓋但不限於以下創作方向:
ERA 項目亮點:作爲區塊鏈基礎設施公司,ERA 擁有哪些核心優勢?
ERA 代幣經濟模型:如何保障代幣的長期價值及生態可持續發展?
參與並推廣 Gate x Caldera (ERA) 生態周活動。點擊查看活動詳情:https://www.gate.com/announcements/article/46169。
歡迎圍繞上述主題,或從其他獨特視角提出您的見解與建議。
⚠️ 活動要求:
原創內容,至少 300 字, 重復或抄襲內容將被淘汰。
不得使用 #Gate广场征文活动第二期# 和 #ERA# 以外的任何標籤。
每篇文章必須獲得 至少3個互動,否則無法獲得獎勵
鼓勵圖文並茂、深度分析,觀點獨到。
⏰ 活動時間:2025年7月20日 17
Sputnik DAO工廠合約詳解:創建與管理DAO的核心機制
Rust智能合約養成日記(10-2):解讀Sputnik DAO工廠合約
本文將深入解讀Sputnik DAO平台的工廠合約代碼,介紹其如何實現DAO的創建與管理。
1. Sputnik-DAO 工廠合約概述
Sputnik-DAO採用工廠模式統一管理平台上的DAO創建。工廠合約部署在sputnik-dao.near帳戶下,所有DAO實例合約被部署爲其子帳戶,如test-dao.sputnik-dao.near。
2. 合約狀態結構
工廠合約的主要狀態包括:
rust pub struct SputnikDAOFactory { factory_manager: FactoryManager, daos: UnorderedSet, }
3. 創建DAO
通過調用create()方法創建新DAO:
rust
#[payable] pub fn create(&mut self, name: AccountId, args: Base64VecU8) { // 構造DAO子帳戶地址
let account_id = format!("{}.{}", name, env::current_account_id());
}
create_contract函數的主要步驟:
創建成功後,新DAO帳戶會被記錄到daos集合中。
4. 更新DAO
通過update()方法可升級DAO合約:
rust pub fn update(&self, account_id: AccountId, code_hash: Base58CryptoHash) { let caller_id = env::predecessor_account_id(); assert!( caller_id == self.get_owner() || caller_id == account_id, "Must be updated by the factory owner or the DAO itself" ); assert!( self.daos.contains(&account_id), "Must be contract created by factory" ); self.factory_manager .update_contract(account_id, code_hash, "update"); }
只有工廠合約所有者或DAO本身可以調用此方法。
5. 安全性考慮
Sputnik DAO通過合理的設計實現了安全可靠的DAO創建和管理。