ContentMint / contracts /scripts /deployFactory.ts
truegleai
Initial commit: only-bands (cleaned)
181b38f
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);
});