59 lines
2.0 KiB
JavaScript
59 lines
2.0 KiB
JavaScript
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);
|
|
});
|