Sputnik DAO реалізував єдине створення та управління DAO на платформі за допомогою патерну проектування «фабрика». У цій статті буде детально представлено реалізацію патерну фабрики на платформі Sputnik DAO.
1. Огляд функцій DAPP
На платформі Sputnik DAO вже створено кілька DAO. Станом на березень 2022 року, найбільш активним DAO є news.sputnik-dao.near, вже подано 3051 пропозицію.
Усі контракти DAO, створені на базі Sputnik DAO, розгорнуті на підрахунках підрахунків sputnik-dao.near, наприклад:
pcp.sputnik-dao.near
test-dao-bro.sputnik-dao.near
blaqkstereo.sputnik-dao.near
Користувачі можуть створювати нові екземпляри DAO, викликавши метод create() контракту sputnikdao-factory.
!
2. Інтерпретація коду контракту заводу
2.1 створення DAO
стан контракту sputnikdao-factory в основному містить:
factory_manager: надає методи для створення/видалення/оновлення екземплярів DAO
daos: записує адреси рахунків усіх створених екземплярів DAO
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
24 лайків
Нагородити
24
7
Репост
Поділіться
Прокоментувати
0/400
GasFeeTears
· 08-06 00:58
О, ще одна фабрична модель обдурювання людей, як лохів
Переглянути оригіналвідповісти на0
0xSoulless
· 08-05 17:59
Ще один інструмент dao для обдурювання людей, як лохів
Переглянути оригіналвідповісти на0
MetaverseMigrant
· 08-05 06:24
Цей завод справді вражає.
Переглянути оригіналвідповісти на0
gas_fee_therapist
· 08-03 07:53
Гарно! Ще один заводський пес прийшов
Переглянути оригіналвідповісти на0
retroactive_airdrop
· 08-03 07:46
Знову патерн проектування фабрики, вже застарілий, чи не так?
Переглянути оригіналвідповісти на0
SolidityStruggler
· 08-03 07:31
Знову фабричний контракт. Коли ж його можна буде зрозуміти?
Переглянути оригіналвідповісти на0
OnchainDetective
· 08-03 07:31
Зрозумів, зрозумів. Цей контракт виглядає досить привабливо.
Контракт фабрики Sputnik DAO: уніфіковане створення та управління дизайном DAO.
Аналіз контракту фабрики Sputnik DAO
Sputnik DAO реалізував єдине створення та управління DAO на платформі за допомогою патерну проектування «фабрика». У цій статті буде детально представлено реалізацію патерну фабрики на платформі Sputnik DAO.
1. Огляд функцій DAPP
На платформі Sputnik DAO вже створено кілька DAO. Станом на березень 2022 року, найбільш активним DAO є news.sputnik-dao.near, вже подано 3051 пропозицію.
Усі контракти DAO, створені на базі Sputnik DAO, розгорнуті на підрахунках підрахунків sputnik-dao.near, наприклад:
Користувачі можуть створювати нові екземпляри DAO, викликавши метод create() контракту sputnikdao-factory.
!
2. Інтерпретація коду контракту заводу
2.1 створення DAO
стан контракту sputnikdao-factory в основному містить:
створити() визначення методу:
іржа #[payable] pub fn create(&mut self, name: AccountId, args: Base64VecU8) { let account_id: AccountId = format!('{}. {}', ім'я, env::current_account_id()) .parse() .unwrap(); let callback_args = serde_json::to_vec(&json!({ 'account_id: account_id, 'attached_deposit': U128(env::attached_deposit()), 'predecessor_account_id': env::p redecessor_account_id() })) .очікування('Не вдалося серіалізувати'); self.factory_manager.створити_contract( self.get_default_code_hash(), account_id, 'новий', &арг.0, 'on_create', &callback_args, ); }
метод create_contract() реалізує:
!
on_create() реалізація функції:
іржа #[private] Паб ФН on_create( і mut self, account_id: Ідентифікатор облікового запису, attached_deposit: U128, predecessor_account_id: Ідентифікатор облікового запису, ) -> bool { if near_sdk::is_promise_success() { self.daos.insert(&account_id); Справжній } else { Обіцянка::new(predecessor_account_id).transfer019283746574839201attached_deposit.0(; хибний } }
! [])https://img-cdn.gateio.im/webp-social/moments-db234efe334b609e12be80398e4e6fa5.webp(
) 2.2 оновлення 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.daos.contains(&account_id(, 'Потрібно, щоб контракт був створений фабрикою' ); self.factory_manager .update_contract)account_id, code_hash, 'оновлення'(; }
! [])https://img-cdn.gateio.im/webp-social/moments-373080ddb66a4cb83e0722b387056be0.webp(
3. Аналіз безпеки
Безпека контракту Sputnik DAO Factory в основному проявляється в:
Контроль доступу
Обробка помилок
Перевірка білого списку
За замовчуванням безпечна конфігурація
В цілому, контракт Sputnik DAO Factory реалізував досить досконалі механізми безпеки, але все ще потребує постійної уваги та вдосконалення.
! [])https://img-cdn.gateio.im/webp-social/moments-8b462e3ac0fd55e990921d21d66e3d42.webp(