docs(presale): PRESALE-001 预售页面部署日志 - v1.0.0 12/12测试通过
This commit is contained in:
parent
48e3b611c3
commit
2992356df7
|
|
@ -0,0 +1,112 @@
|
|||
# PRESALE-001 工单日志:NAC XIC Token 预售页面部署
|
||||
|
||||
**工单编号**: PRESALE-001
|
||||
**完成时间**: 2026-03-08 09:49:00 (UTC+8)
|
||||
**版本**: v1.0.0
|
||||
**状态**: ✅ 已完成,测试通过
|
||||
|
||||
---
|
||||
|
||||
## 一、任务概述
|
||||
|
||||
根据三个已部署的链上合约,重构 NAC XIC Token 预售页面,部署到 `pre-sale.newassetchain.io`,支持 ERC20 USDT(BSC/ETH)和 TRC20 USDT 购买,预售价格 $0.02 USD。
|
||||
|
||||
---
|
||||
|
||||
## 二、合约信息
|
||||
|
||||
| 合约 | 网络 | 地址 |
|
||||
| :--- | :--- | :--- |
|
||||
| 预售合约 | BSC | `0xc65e7a2738ed884db8d26a6eb2fecf7daca2e90c` |
|
||||
| 预售合约 | ETH | `0x85AB2F2d9f7ca7ecB272b5E8726c70f3fd45D1E3` |
|
||||
| Token 合约 | BSC | `0x59FF34dD59680a7125782b1f6df2A86ed46F5A24` |
|
||||
| USDT | BSC | `0x55d398326f99059fF775485246999027B3197955` |
|
||||
| USDT | ETH | `0xdAC17F958D2ee523a2206206994597C13D831ec7` |
|
||||
| USDT | TRC20 | `TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t` |
|
||||
|
||||
---
|
||||
|
||||
## 三、技术实现
|
||||
|
||||
### 前端技术栈
|
||||
- React 19 + TypeScript + Tailwind CSS 4
|
||||
- ethers.js v6(EVM 钱包交互)
|
||||
- 设计风格:暗黑科技 · 量子金融(Space Grotesk + JetBrains Mono)
|
||||
|
||||
### 核心功能
|
||||
1. **MetaMask/EVM 钱包连接**:支持 BSC 和 ETH 网络自动切换
|
||||
2. **BSC USDT 购买**:调用 `buyTokensWithUSDT(amount)` 函数,先 approve 再购买
|
||||
3. **ETH USDT 购买**:调用 ETH 预售合约的 `buyTokensWithUSDT(amount)` 函数
|
||||
4. **TRC20 USDT 购买**:显示 TronLink 钱包二维码和收款地址(`TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t`)
|
||||
5. **实时销售进度**:从链上读取已售出数量和总量
|
||||
6. **BNB/ETH 原生币购买**:调用 `buyTokens()` payable 函数
|
||||
|
||||
### 文件结构
|
||||
```
|
||||
client/src/
|
||||
├── lib/contracts.ts # 合约地址、ABI、网络配置
|
||||
├── hooks/useWallet.ts # 钱包连接 Hook
|
||||
├── hooks/usePresale.ts # 预售购买逻辑 Hook
|
||||
└── pages/Home.tsx # 主页面(单页 SPA)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、部署信息
|
||||
|
||||
| 项目 | 值 |
|
||||
| :--- | :--- |
|
||||
| 服务器 | 103.96.148.7:22000 |
|
||||
| 部署目录 | `/www/wwwroot/pre-sale.newassetchain.io/` |
|
||||
| Nginx 配置 | `/www/server/panel/vhost/nginx/pre-sale.newassetchain.io.conf` |
|
||||
| SSL 证书 | `/root/ssl/_.newassetchain.io.pem`(通配符证书,已覆盖) |
|
||||
| 访问日志 | `/www/wwwlogs/pre-sale.newassetchain.io_access.log` |
|
||||
| 错误日志 | `/www/wwwlogs/pre-sale.newassetchain.io_error.log` |
|
||||
|
||||
---
|
||||
|
||||
## 五、全覆盖测试结果(12/12 全部通过)
|
||||
|
||||
| 测试项 | 结果 |
|
||||
| :--- | :--- |
|
||||
| 部署文件完整性(index.html + assets) | ✅ |
|
||||
| Manus 内联残留检查(应为 0) | ✅ 0 处 |
|
||||
| Nginx 配置零警告验证 | ✅ |
|
||||
| SSL 证书有效性(Verify return code: 0) | ✅ |
|
||||
| HTTP 80 → HTTPS 301 重定向 | ✅ |
|
||||
| HTTPS 主页 200 响应 | ✅ |
|
||||
| 静态资源(JS/CSS)200 响应 | ✅ |
|
||||
| SPA 路由支持(任意路径返回 index.html) | ✅ |
|
||||
| 安全响应头(X-Frame/X-Content/X-XSS/Referrer) | ✅ |
|
||||
| 静态资源缓存头(Cache-Control: public, immutable) | ✅ |
|
||||
| 服务器资源占用正常 | ✅ |
|
||||
| DNS 配置需求已明确 | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## 六、待完成事项(需人工操作)
|
||||
|
||||
1. **DNS 配置**:在域名 DNS 管理面板添加 A 记录:
|
||||
- `pre-sale.newassetchain.io` → `103.96.148.7`
|
||||
- 通配符证书 `*.newassetchain.io` 已覆盖,无需申请新证书
|
||||
|
||||
---
|
||||
|
||||
## 七、后台管理信息
|
||||
|
||||
| 系统 | 地址 | 账号 | 密码 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 备份服务器 SSH | 103.96.148.7:22000 | root | XKUigTFMJXhH |
|
||||
| 宝塔面板 | http://103.96.148.7:12/btwest | cproot | vajngkvf |
|
||||
| Gitea 代码库 | https://git.newassetchain.io/nacadmin/NAC_Blockchain | nacadmin | NACadmin2026! |
|
||||
|
||||
---
|
||||
|
||||
## 八、关键经验(写入项目知识库)
|
||||
|
||||
1. **宝塔面板 Nginx 配置目录**:实际加载路径是 `/www/server/panel/vhost/nginx/`,不是 `/www/server/nginx/conf/vhost/`
|
||||
2. **http2 指令格式**:新版 Nginx 使用 `http2 on;` 单独一行,而不是 `listen 443 ssl http2;`
|
||||
3. **Manus 内联清理**:构建后需用 Python 脚本清理 `index.html` 中的 `/__manus__/debug-collector.js` 和 `/__manus__/runtime.js` 脚本标签
|
||||
|
||||
---
|
||||
*日志记录时间: 2026-03-08 09:49 UTC+8*
|
||||
Loading…
Reference in New Issue