🎉 #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 聯合推廣任務上線!
本次活動總獎池:1,250 枚 ES
任務目標:推廣 Eclipse($ES)Launchpool 和 Alpha 第11期 $ES 專場
📄 詳情參考:
Launchpool 公告:https://www.gate.com/zh/announcements/article/46134
Alpha 第11期公告:https://www.gate.com/zh/announcements/article/46137
🧩【任務內容】
請圍繞 Launchpool 和 Alpha 第11期 活動進行內容創作,並曬出參與截圖。
📸【參與方式】
1️⃣ 帶上Tag #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 發帖
2️⃣ 曬出以下任一截圖:
Launchpool 質押截圖(BTC / ETH / ES)
Alpha 交易頁面截圖(交易 ES)
3️⃣ 發布圖文內容,可參考以下方向(≥60字):
簡介 ES/Eclipse 項目亮點、代幣機制等基本信息
分享你對 ES 項目的觀點、前景判斷、挖礦體驗等
分析 Launchpool 挖礦 或 Alpha 積分玩法的策略和收益對比
🎁【獎勵說明】
評選內容質量最優的 10 位 Launchpool/Gate
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創建和管理。