import hre from "hardhat"; async function main() { const { ethers } = hre; // Ambil signer const [deployer, user1, user2, merchant] = await ethers.getSigners(); console.log("Deploying token with deployer:", deployer.address); // Deploy token AdelToken dengan initialSupply 1.000.000 const initialSupply = 1_000_000; const AdelToken = await ethers.getContractFactory("AdelToken"); const token = await AdelToken.deploy(initialSupply); await token.waitForDeployment(); console.log("✅ Token deployed at:", await token.getAddress()); // Cek saldo awal deployer console.log(`Deployer initial balance: ${(await token.balanceOf(deployer.address)).toString()}`); // Payment test 1: deployer -> user1 const payment1 = 1000; await token.transfer(user1.address, payment1); console.log(`✅ Payment test 1: ${payment1} tokens to user1`); // Payment test 2: deployer -> user2 const payment2 = 500; await token.transfer(user2.address, payment2); console.log(`✅ Payment test 2: ${payment2} tokens to user2`); // Conversion / payment simulation: // user1 pays merchant 300 tokens const conversionAmount = 300; await token.connect(user1).transfer(merchant.address, conversionAmount); console.log(`✅ Conversion/payment: user1 paid ${conversionAmount} tokens to merchant`); // User2 pays merchant 200 tokens const conversionAmount2 = 200; await token.connect(user2).transfer(merchant.address, conversionAmount2); console.log(`✅ Conversion/payment: user2 paid ${conversionAmount2} tokens to merchant`); // Cek saldo akhir semua akun console.log("\n=== Final Balances ==="); console.log(`Deployer: ${(await token.balanceOf(deployer.address)).toString()}`); console.log(`User1: ${(await token.balanceOf(user1.address)).toString()}`); console.log(`User2: ${(await token.balanceOf(user2.address)).toString()}`); console.log(`Merchant: ${(await token.balanceOf(merchant.address)).toString()}`); } // Jalankan main main() .then(() => process.exit(0)) .catch((error) => { console.error(error); process.exit(1); }); export {};