Щоденник розвитку смартконтрактів Rust(10-2): Аналіз контракту фабрики Sputnik DAO
Ця стаття детально розгляне реалізацію дизайну фабричної моделі платформи 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: UnorderedSet, }
!
2. Створення DAO
Створення екземпляра DAO за допомогою методу create():
іржа #[payable] pub fn create(&mut self, name: AccountId, args: Base64VecU8) { let account_id: AccountId = format!("{}. {}", name, env::current_account_id()) .parse() .unwrap(); // ... self.factory_manager.створити_contract( self.get_default_code_hash(), account_id, "новий", &арг.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 .update_contract(account_id, code_hash, «оновити»); }
!
4. Аналіз безпеки
Контракт фабрики Sputnik-DAO забезпечує безпеку контракту за допомогою цих механізмів.
!
!
!
!
!
!
!
!