import { ethers } from "hardhat"; async function main() { // Get the deployer's address const [deployer] = await ethers.getSigners(); console.log("Deploying contracts with account:", deployer.address); // Check balance const balance = await ethers.provider.getBalance(deployer.address); console.log("Account balance:", ethers.formatEther(balance), "ETH"); // Deployment parameters // For Sepolia, use your wallet address as the platform treasury const platformTreasury = deployer.address; const defaultTaxRate = 500; // 5% (500 basis points) const defaultWhaleMinBalance = ethers.parseUnits("10000", 18); // 10,000 tokens const defaultNFTRoyalty = 1000; // 10% (1000 basis points) console.log("\nDeployment parameters:"); console.log("- Platform Treasury:", platformTreasury); console.log("- Default Tax Rate:", defaultTaxRate, "basis points (5%)"); console.log("- Default Whale Min Balance:", ethers.formatUnits(defaultWhaleMinBalance, 18), "tokens"); console.log("- Default NFT Royalty:", defaultNFTRoyalty, "basis points (10%)"); // Deploy Factory const Factory = await ethers.getContractFactory("Factory"); const factory = await Factory.deploy( platformTreasury, defaultTaxRate, defaultWhaleMinBalance, defaultNFTRoyalty ); await factory.waitForDeployment(); const factoryAddress = await factory.getAddress(); console.log("\nāœ… Factory deployed to:", factoryAddress); console.log("\nšŸ“ Save this address in your frontend .env.local file as NEXT_PUBLIC_FACTORY_ADDRESS"); // Verify deployment const economyCount = await factory.getEconomyCount(); console.log("\nInitial economy count:", economyCount.toString()); } main() .then(() => process.exit(0)) .catch((error) => { console.error(error); process.exit(1); });