94 lines
2.9 KiB
Markdown
94 lines
2.9 KiB
Markdown
# 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
|