import { ethers } from "ethers" import * as fs from "fs" import * as path from "path" import { config } from "dotenv" // 环境配置接口 interface EnvConfig { name: string rpcUrl: string chainId: number envFile: string outputDir: string description: string } // 预定义的环境配置 const ENVIRONMENTS: { [key: string]: EnvConfig } = { hardhat: { name: "hardhat", rpcUrl: "http://127.0.0.1:8545", chainId: 31337, envFile: ".env.hardhat", outputDir: "./output/hardhat", description: "Hardhat本地环境" }, bsctest: { name: "bsctest", rpcUrl: "https://data-seed-prebsc-1-s1.binance.org:8545/", chainId: 97, envFile: ".env.bsctest", outputDir: "./output/bsctest", description: "BSC测试网环境" }, bscmainnet: { name: "bscmainnet", rpcUrl: "https://bsc-dataseed1.binance.org/", chainId: 56, envFile: ".env.bscmainnet", outputDir: "./output/bscmainnet", description: "BNB主网环境" } } // 脚本配置接口 interface ScriptConfig { name: string script: string description: string } // 可用的脚本列表 const AVAILABLE_SCRIPTS: ScriptConfig[] = [ { name: "01:deploy", script: "01-deploy-contracts.ts", description: "部署合约" }, { name: "02:distribute", script: "02-distribute-tokens.ts", description: "分发代币" }, { name: "03:init", script: "03-init-sale.ts", description: "初始化销售" }, { name: "04:contribute", script: "04-test-contributions.ts", description: "测试贡献" }, { name: "05:claim", script: "05-test-claiming.ts", description: "测试领取" }, { name: "test", script: "test-env.ts", description: "测试环境配置" } ] function printUsage() { console.log("🚀 多环境脚本执行器") console.log("\n📋 使用方法:") console.log(" npm run env