nac-presale/CHANGELOG_20260320_buy_btn_...

94 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TRC ICO 购买按钮修复工作日志
## 修复时间
2026-03-20
## 问题描述
trc-ico.newassetchain.io 购买区域缺少购买按钮,用户无法完成购买操作。
## 根本原因分析
### 问题代码位置
文件: `client/src/pages/Home.tsx` 第 498 行
### 问题代码
```tsx
{!wallet.isConnected ? (
// 显示连接钱包提示
<WalletSelector ... />
) : isWrongNetwork ? null : ( // ← 问题所在
// 显示购买按钮
<button onClick={handleBuy}>Buy XIC</button>
)}
```
### 问题原因
当用户钱包已连接但网络不对(`isWrongNetwork === true`)时,代码返回 `null`
导致购买按钮完全不渲染,用户看到的是空白区域。
虽然页面上方有 Wrong Network 警告 Banner但购买按钮区域是空的
用户不知道切换网络后会出现购买按钮,体验极差。
## 修复方案
### 修复代码
```tsx
{!wallet.isConnected ? (
// 显示连接钱包提示
<WalletSelector ... />
) : isWrongNetwork ? ( // ← 修复后
// 显示切换网络按钮
<button onClick={() => wallet.switchNetwork(targetChainId)} ...>
切换到 {CONTRACTS[network].chainName} 后即可购买
</button>
) : (
// 显示购买按钮
<button onClick={handleBuy}>Buy XIC</button>
)}
```
## 合约配置确认
| 合约 | 地址 | 链 |
|------|------|----|
| BSC Presale | 0x5953c025dA734e710886916F2d739A3A78f8bbc4 | BSC (56) |
| ETH Presale | 0x85AB2F2d9f7ca7ecB272b5E8726c70f3fd45D1E3 | ETH (1) |
| BSC Token (XIC) | 0x59ff34dd59680a7125782b1f6df2a86ed46f5a24 | BSC (56) |
| Claim | 0x9d8ea8223c8d7d977744f2f7cfc076341355a419 | BSC (56) |
| TRON 收款 | TWc2ugYBFN5aSoimAh4qGt9oMyket6NYZp | TRON |
## 构建信息
- 构建时间: 2026-03-20
- 新 bundle: index-CTII5lfh.js (814,584 bytes)
- 旧 bundle 备份: dist/public.bak.20260320_*
## 备份文件
- Home.tsx 备份: client/src/pages/Home.tsx.bak.buy_btn_fix_20260320
## 部署步骤
1. 修改 client/src/pages/Home.tsx 第 498 行
2. 执行 pnpm run build 重新构建
3. 删除 dist/public/__manus__ 目录(中国用户无法访问)
4. PM2 重启: pm2 restart nac-presale-test
5. 验证: HTTP 200 响应
## 其他发现的问题(待后续处理)
### P1: usePresale.ts 重复键警告
文件 `client/src/hooks/usePresale.ts` 第 298 行有重复 key `calcTokens`
构建时有警告但不影响功能。
### P1: 链上数据加载失败
页面显示 "Loading on-chain data..." 和 "$0 Raised"
原因是 contracts.ts 中的 ABI 缺少部分查询函数,导致链上统计数据无法读取。
### P2: BSC Presale 合约地址不匹配
- contracts.ts 中配置: 0x5953c025dA734e710886916F2d739A3A78f8bbc4
- 用户提供的实际合约: 0xc65e7a2738ed884db8d26a6eb2fecf7daca2e90c
- 需要确认哪个是正确的 presale 合约
## Git 提交
- 提交 hash: 08be117
- 提交信息: fix: 修复购买按钮缺失问题
- 推送到: git.newassetchain.io/nacadmin/nac-presale.git