В этой статье будет подробно рассмотрена реализация дизайна фабричной модели платформы Sputnik-DAO ( sputnikdao-factory ).
1. Sputnik-DAO фабрика смарт-контрактов
Sputnik-DAO использует паттерн проектирования фабрики для реализации единого создания и управления децентрализованной автономной организацией (DAO) на этой платформе.
Состояние заводского контракта состоит в основном из двух частей:
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
19 Лайков
Награда
19
5
Поделиться
комментарий
0/400
JustHereForAirdrops
· 07-25 18:43
Исследования показывают, что в будущем создание DAO станет таким же простым, как создание веб-сайта.
Анализ контракта фабрики Sputnik DAO: создание, обновление и проектирование безопасности
Rust смарт-контракты养成日记(10-2): Sputnik DAO工厂合约解析
В этой статье будет подробно рассмотрена реализация дизайна фабричной модели платформы Sputnik-DAO ( sputnikdao-factory ).
1. Sputnik-DAO фабрика смарт-контрактов
Sputnik-DAO использует паттерн проектирования фабрики для реализации единого создания и управления децентрализованной автономной организацией (DAO) на этой платформе.
Состояние заводского контракта состоит в основном из двух частей:
руда pub struct SputnikDAOFactory { factory_manager: FactoryManager, daos: НеупорядоченноеМножество, }
!
2. Создание DAO
Создание экземпляра DAO с использованием метода create():
ржавчина #[payable] pub fn create(&mut self, name: AccountId, args: Base64VecU8) { let account_id: AccountId = format!("{}. {}", имя, env::current_account_id()) .parse() .unwrap(); // ... self.factory_manager.создать_contract( self.get_default_code_hash(), account_id, "новый", &args.0, "on_create", &callback_args, ); }
основные шаги метода create_contract():
!
3. Обновление DAO
С помощью метода update() можно обновить смарт-контракты DAO:
ржавчина pub fn update(&self, account_id: AccountId, code_hash: Base58CryptoHash) { let caller_id = env::p redecessor_account_id(); утверждать!( caller_id == self.get_owner() || caller_id == account_id, "Должно быть обновлено владельцем завода или самим DAO" ); // ... self.factory_manager .обновить_контракт(идентификатор_аккаунта, хэш_кода, "обновить"); }
!
4. Анализ безопасности
Фабрика контрактов Sputnik-DAO обеспечивает безопасность контрактов с помощью этих механизмов.
!
!
!
!
!
!
!
!