📢 #Gate广场征文活动第三期# 正式启动!
🎮 本期聚焦:Yooldo Games (ESPORTS)
✍️ 分享独特见解 + 参与互动推广,若同步参与 Gate 第 286 期 Launchpool、CandyDrop 或 Alpha 活动,即可获得任意奖励资格!
💡 内容创作 + 空投参与 = 双重加分,大奖候选人就是你!
💰总奖池:4,464 枚 $ESPORTS
🏆 一等奖(1名):964 枚
🥈 二等奖(5名):每人 400 枚
🥉 三等奖(10名):每人 150 枚
🚀 参与方式:
在 Gate广场发布不少于 300 字的原创文章
添加标签: #Gate广场征文活动第三期#
每篇文章需 ≥3 个互动(点赞 / 评论 / 转发)
发布参与 Launchpool / CandyDrop / Alpha 任一活动的截图,作为获奖资格凭证
同步转发至 X(推特)可增加获奖概率,标签:#GateSquare 👉 https://www.gate.com/questionnaire/6907
🎯 双倍奖励机会:参与第 286 期 Launchpool!
质押 BTC 或 ESPORTS,瓜分 803,571 枚 $ESPORTS,每小时发放
时间:7 月 21 日 20:00 – 7 月 25 日 20:00(UTC+8)
🧠 写作方向建议:
Yooldo
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创建和管理。