/** * Copyright (c) 2024-2026 Тарабанов Александр Викторович * All rights reserved. * * This software is proprietary and confidential. * Unauthorized copying, modification, or distribution is prohibited. * * For licensing inquiries: info@hb3-accelerator.com * Website: https://hb3-accelerator.com * GitHub: https://github.com/VC-HB3-Accelerator */ const { ethers } = require('ethers'); async function checkModules() { try { // Адрес DLE контракта const dleAddress = '0xCaa85e96a6929F0373442e31FD9888d985869EcE'; // RPC URL для Sepolia // Получаем RPC URL из базы данных const rpcService = require('../services/rpcProviderService'); const rpcUrl = await rpcService.getRpcUrlByChainId(11155111); const provider = new ethers.JsonRpcProvider(await rpcService.getRpcUrlByChainId(11155111)); // ABI для DLE контракта const dleAbi = [ "function initializer() external view returns (address)", "function isModuleActive(bytes32 _moduleId) external view returns (bool)", "function getModuleAddress(bytes32 _moduleId) external view returns (address)" ]; const dle = new ethers.Contract(dleAddress, dleAbi, provider); // Модули теперь инициализируются только через governance console.log('Модули инициализируются только через governance предложения'); // Получаем initializer адрес const initializer = await dle.initializer(); console.log('Initializer адрес:', initializer); // Проверяем модули const moduleIds = { treasury: ethers.keccak256(ethers.toUtf8Bytes("TREASURY")), timelock: ethers.keccak256(ethers.toUtf8Bytes("TIMELOCK")), reader: ethers.keccak256(ethers.toUtf8Bytes("READER")) }; console.log('\nПроверка модулей:'); for (const [name, moduleId] of Object.entries(moduleIds)) { try { const isActive = await dle.isModuleActive(moduleId); const address = await dle.getModuleAddress(moduleId); console.log(`${name}: активен=${isActive}, адрес=${address}`); } catch (error) { console.log(`${name}: ошибка - ${error.message}`); } } } catch (error) { console.error('Ошибка:', error); } } checkModules();