# TRC ICO 工作日志 - 2026-03-20 ## 任务:重构 usePresale.ts 冗余代码 ### 执行时间 2026-03-20 (UTC+8) ### 问题描述 usePresale.ts 文件中存在以下冗余代码: 1. buyWithUSDT 和 buyWithBNB 中各有一段完全相同的 TokensPurchased 事件解析逻辑(约8行×2) 2. 两个购买函数中各有一段完全相同的错误处理逻辑(约3行×2) 3. getUsdtBalance 和 buyWithUSDT 中各有一处重复的 network === "ETH" ? 6 : 18 判断 4. return 块中 calcTokens 重复 key(已在上次任务中修复) ### 解决方案 提取3个公共工具函数,放置在 Hook 函数体外部(文件顶部): | 函数名 | 作用 | 消除的冗余 | |--------|------|-----------| | getUsdtDecimals(network) | 返回 USDT decimals | 3处重复判断 → 1处定义 | | extractPurchasedAmount(receipt, contract, default) | 解析 TokensPurchased 事件 | 2处重复代码块 → 1处定义 | | extractErrorMessage(err) | 提取合约错误信息 | 2处重复代码块 → 1处定义 | ### 修改文件 - /www/wwwroot/nac-presale-test/client/src/hooks/usePresale.ts ### 备份文件 - /www/wwwroot/nac-presale-test/client/src/hooks/usePresale.ts.bak.refactor_20260320 ### 构建结果 - 新 bundle: index-ChZj9Bh8.js (814.46 kB) - 构建时间: 7.27s - 1858 modules transformed ### 部署结果 - PM2 重启: nac-presale-test ✅ - HTTP 验证: 200 OK ✅ - __manus__ 内联: 已清除 ✅ ### Git 提交 - commit: refactor: 重构 usePresale.ts,提取公共函数消除冗余代码 - 推送到: nacadmin/nac-presale master ### 功能影响 - 无功能变化,所有导出接口保持不变 - Vite 构建警告消除 - 代码可维护性提升