60 lines
2.1 KiB
TypeScript
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 {};
|