# BSC Testnet 部署和 PancakeSwap 集成指南 本指南将帮助你部署ERC20代币到BSC Testnet并与PancakeSwap V2集成。 ## 📋 前置要求 1. **BSC Testnet BNB**: 从 [BSC Testnet Faucet](https://testnet.binance.org/faucet-smart) 获取测试BNB 2. **环境配置**: 配置私钥或助记词 3. **BSCScan API Key**: 用于合约验证(可选) ## 🔧 环境配置 1. 复制环境变量示例文件: ```bash cp .env.example .env ``` 2. 编辑 `.env` 文件,添加你的配置: ```env # 账户私钥或助记词 (选择其中一个) PRIVATE_KEY=your_private_key_here # MNEMONIC=your_mnemonic_phrase_here # BSCScan API Key (可选,用于合约验证) BSCSCAN_API_KEY=your_bscscan_api_key_here ``` ## 🚀 部署步骤 ### 1. 部署合约到BSC Testnet ```bash npm run deploy:bsc-testnet ``` 这个脚本会: - 部署 MockUSDT 合约 - 部署 ControlledERC20 合约 - 验证合约(如果提供了BSCScan API Key) - 保存部署信息到 `deployment-bsc-testnet.json` ### 2. 添加PancakeSwap流动性 ```bash npm run add-liquidity ``` 这个脚本会: - 检查或创建交易对 - 授权Router使用代币 - 添加流动性(使用余额的一半) - 保存流动性信息到 `liquidity-info.json` ### 3. 查询价格和流动性信息 ```bash npm run info ``` 这个脚本会显示: - 当前流动性储备 - 代币价格 - 价格影响分析 - 用户余额和LP代币信息 ### 4. 执行代币交换 ```bash # 用mUSDT交换CTRL npm run swap mUSDT 1000 # 用CTRL交换mUSDT npm run swap CTRL 100 # 指定滑点(可选,默认1%) npm run swap mUSDT 1000 2 ``` ## 📊 PancakeSwap V2 地址 (BSC Testnet) - **Router**: `0xD99D1c33F9fC3444f8101754aBC46c52416550D1` - **Factory**: `0x6725F303b657a9451d8BA641348b6761A6CC7a17` - **WBNB**: `0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd` ## 🔗 有用的链接 - **BSC Testnet Explorer**: https://testnet.bscscan.com/ - **PancakeSwap Testnet**: https://testnet.pancakeswap.finance/ - **BSC Testnet Faucet**: https://testnet.binance.org/faucet-smart ## 📁 生成的文件 部署和操作后会生成以下文件: - `deployment-bsc-testnet.json` - 部署信息 - `liquidity-info.json` - 流动性信息 - `swap-info.json` - 交易信息 - `pancakeswap-info.json` - 价格和流动性信息 ## 🛠️ 故障排除 ### 常见问题 1. **余额不足** - 确保账户有足够的BNB支付gas费 - 确保有足够的代币进行交易 2. **交易失败** - 检查滑点设置 - 确保流动性充足 - 检查代币授权 3. **合约验证失败** - 检查BSCScan API Key是否正确 - 确保合约代码与部署时一致 ### 调试命令 ```bash # 检查网络连接 npx hardhat console --network bscTestnet # 查看账户余额 npx hardhat run scripts/check-balance.ts --network bscTestnet ``` ## 🔒 安全注意事项 1. **私钥安全**: 永远不要在代码中硬编码私钥 2. **测试网络**: 这些脚本仅用于测试网络 3. **合约验证**: 建议验证所有部署的合约 4. **流动性管理**: 谨慎管理流动性,避免价格操纵 ## 📈 高级功能 ### 批量操作 你可以修改脚本来支持批量操作: ```typescript // 批量添加流动性 const batchLiquidity = async (amounts: bigint[]) => { // 实现批量添加逻辑 }; // 批量交易 const batchSwap = async (trades: SwapTrade[]) => { // 实现批量交易逻辑 }; ``` ### 价格监控 ```typescript // 监控价格变化 const monitorPrice = async () => { setInterval(async () => { const price = await getCurrentPrice(); console.log(`当前价格: ${price}`); }, 30000); // 每30秒检查一次 }; ``` ## 🤝 贡献 如果你发现任何问题或有改进建议,请提交Issue或Pull Request。 ## �� 许可证 本项目采用MIT许可证。