adel-token-contract/scripts/tesDeploy.ts

60 lines
2.1 KiB
TypeScript

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 {};