const hre = require("hardhat"); async function main() { const accessToken = await hre.ethers.getContractAt( "AccessToken", "0xF352c498cF0857F472dC473E4Dd39551E79B1063" ); const owner = await accessToken.owner(); console.log("Contract owner:", owner); // Создаем админский токен для владельца try { const tx = await accessToken.mintAccessToken(owner, 0); // 0 = ADMIN await tx.wait(); console.log(`Admin token minted for ${owner}`); const role = await accessToken.checkRole(owner); console.log("Owner role:", ["ADMIN", "MODERATOR", "SUPPORT"][role]); } catch (error) { console.log("Admin token minting error:", error.message); } // Создаем тестовый токен модератора const moderatorAddress = "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"; // Тестовый адрес модератора try { const tx = await accessToken.mintAccessToken(moderatorAddress, 1); // 1 = MODERATOR await tx.wait(); console.log(`Moderator token minted for ${moderatorAddress}`); const role = await accessToken.checkRole(moderatorAddress); console.log("Moderator role:", ["ADMIN", "MODERATOR", "SUPPORT"][role]); } catch (error) { console.log("Moderator token minting error:", error.message); } // Проверяем все токены console.log("\nChecking all tokens:"); for (let i = 1; i <= 5; i++) { try { const owner = await accessToken.ownerOf(i); const role = await accessToken.checkRole(owner); console.log(`Token ${i}: Owner ${owner}, Role: ${["ADMIN", "MODERATOR", "SUPPORT"][role]}`); } catch (error) { // Пропускаем несуществующие токены if (!error.message.includes("nonexistent token")) { console.log(`Token ${i} error:`, error.message); } } } } main() .then(() => process.exit(0)) .catch((error) => { console.error(error); process.exit(1); });