Files
DLE/backend/scripts/utils/read-dle-info.js

107 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Copyright (c) 2024-2025 Тарабанов Александр Викторович
* 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/HB3-ACCELERATOR
*/
// Скрипт для чтения данных DLE из блокчейна
const { ethers } = require("hardhat");
async function main() {
// Адрес DLE контракта (замените на ваш адрес)
const dleAddress = process.env.DLE_ADDRESS || "0x219f9665e713476B0B080bd73b8465B39dAB1E41";
console.log(`Читаем данные DLE из блокчейна по адресу: ${dleAddress}`);
// Получаем RPC URL из переменных окружения или используем дефолтный для Sepolia
const rpcUrl = process.env.RPC_URL || 'https://eth-sepolia.nodereal.io/v1/YOUR_NODEREAL_KEY';
// Создаем провайдер
const provider = new ethers.JsonRpcProvider(rpcUrl);
try {
// Получаем ABI контракта DLE
const DLE = await ethers.getContractFactory("DLE");
const dle = DLE.attach(dleAddress).connect(provider);
// Читаем данные DLE из блокчейна
console.log("\n📋 Чтение данных DLE из блокчейна...");
const dleInfo = await dle.getDLEInfo();
console.log("\n✅ Данные DLE из блокчейна:");
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
console.log(`🏢 Название: ${dleInfo.name}`);
console.log(`💎 Символ: ${dleInfo.symbol}`);
console.log(`📍 Местонахождение: ${dleInfo.location}`);
console.log(`🌍 Координаты: ${dleInfo.coordinates}`);
console.log(`🏛️ Юрисдикция: ${dleInfo.jurisdiction}`);
console.log(`📊 ОКТМО: ${dleInfo.oktmo}`);
console.log(`🏭 Коды ОКВЭД: ${dleInfo.okvedCodes.join(', ')}`);
console.log(`🏢 КПП: ${dleInfo.kpp}`);
console.log(`📅 Дата создания: ${new Date(Number(dleInfo.creationTimestamp) * 1000).toISOString()}`);
console.log(`✅ Активен: ${dleInfo.isActive}`);
console.log("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
// Дополнительная информация
console.log("\n📊 Дополнительная информация:");
const quorumPercentage = await dle.quorumPercentage();
const currentChainId = await dle.getCurrentChainId();
const totalSupply = await dle.totalSupply();
console.log(`🗳️ Кворум: ${quorumPercentage}%`);
console.log(`🔗 Текущая сеть: ${currentChainId}`);
console.log(`💰 Общий запас токенов: ${ethers.formatUnits(totalSupply, 18)}`);
// Проверяем информацию о токенах
console.log("\n👥 Информация о токенах:");
try {
const totalSupply = await dle.totalSupply();
console.log(`💰 Общий запас: ${ethers.formatUnits(totalSupply, 18)} токенов`);
// Проверим баланс создателя контракта (адрес, который деплоил контракт)
const deployer = "0xF45aa4917b3775bA37f48Aeb3dc1a943561e9e0B"; // Адрес из логов
const deployerBalance = await dle.balanceOf(deployer);
if (deployerBalance > 0) {
console.log(`👤 Создатель (${deployer}): ${ethers.formatUnits(deployerBalance, 18)} токенов`);
} else {
console.log(`👤 Создатель (${deployer}): 0 токенов`);
}
// Проверим, есть ли другие держатели токенов
console.log("\n🔍 Проверка распределения токенов:");
console.log("💡 Партнеры не сохраняются в блокчейне как отдельные данные.");
console.log("💡 Они используются только для первоначального распределения токенов.");
console.log("💡 Информация о партнерах хранится в локальных файлах JSON.");
} catch (error) {
console.log("⚠️ Не удалось прочитать информацию о токенах:", error.message);
}
console.log("\n🌐 Ссылка на Etherscan:");
console.log(`https://sepolia.etherscan.io/address/${dleAddress}#readContract`);
console.log("\n💡 На Etherscan перейдите в раздел 'Contract' -> 'Read Contract'");
console.log(" и вызовите функцию 'getDLEInfo' чтобы увидеть эти данные!");
} catch (error) {
console.error("❌ Ошибка при чтении данных DLE:", error);
throw error;
}
}
// Запускаем скрипт
main()
.then(() => {
console.log("\n✅ Скрипт завершен успешно");
process.exit(0);
})
.catch((error) => {
console.error("\n❌ Скрипт завершен с ошибкой:", error);
process.exit(1);
});