237 lines
13 KiB
Markdown
237 lines
13 KiB
Markdown
# NAC XIC Token Presale - TODO
|
||
|
||
## 已完成
|
||
- [x] 基础预售页面(Hero、倒计时、进度条、购买区域)
|
||
- [x] 导航栏右上角连接钱包按钮
|
||
- [x] 去除最低购买量限制(No Minimum)
|
||
- [x] FAQ常见问题区域(8个问题)
|
||
- [x] 实时购买记录Live Feed
|
||
- [x] 右下角聊天支持浮动按钮
|
||
- [x] SSL证书域名化HTTPS部署(pre-sale.newassetchain.io)
|
||
- [x] 升级为全栈项目(tRPC + 数据库)
|
||
- [x] 接入BSC/ETH真实链上数据(totalRaised/tokensSold)
|
||
- [x] TRC20监听后端服务(每30秒轮询TRON地址)
|
||
- [x] 中英文双语支持(导航栏语言切换)
|
||
- [x] 零Manus内联生产构建
|
||
|
||
## 待完成
|
||
- [x] 新增购买教程区域(详细分步说明:MetaMask钉包安装/地址查找、BSC购买流程、ETH购买流程、TRC20购买流程含EVM地址备注说明)
|
||
- [x] TRC20购买流程增加备注EVM地址功能(用户付款时提交EVM地址)
|
||
- [x] 开发管理员后台(登录验证+TRC20购买记录+标记发放状态)
|
||
- [x] 切换专用RPC节点提高BSC/ETH数据稳定性(使用公共RPC)
|
||
- [x] 重新构建并部署到备份服务器
|
||
|
||
## 钱包连接修复与测试(v4)
|
||
- [x] 修复BSC/ETH钱包连接:连接后自动识别EVM地址,无需手动输入
|
||
- [x] 修复Approve USDT + Buy XIC两步购买流程(合约交互)
|
||
- [x] 确保MetaMask/Trust Wallet等主流EVM钱包可正常连接
|
||
- [x] 修复presaleEndDate无限循环bug(Maximum update depth exceeded)
|
||
- [x] 浏览器测试验证完整购买流程(BSC/ETH/TRON三网络)
|
||
- [x] 测试管理员后台(TRC20购买记录、EVM地址意图、分发工作流)
|
||
- [x] 测试教程页面(多钱包、多网络、中英文切换)
|
||
- [x] 部署到备份服务器并同步代码库(https://git.newassetchain.io/nacadmin/xic-presale)
|
||
|
||
## v5 功能升级
|
||
- [x] 配置专用高可用RPC节点池(BSC + ETH多节点故障转移)
|
||
- [x] 添加TRC20购买Telegram通知(新购买确认时自动推送)
|
||
- [x] 管理员后台添加内容编辑功能(预售参数动态配置)
|
||
- [ ] 完整域名浏览器购买测试(pre-sale.newassetchain.io)
|
||
- [ ] 部署到备份服务器并同步代码库
|
||
|
||
## v5 备份服务器部署
|
||
- [x] 修复TRON面板EVM地址自动识别(已连接钱包地址预填入)
|
||
- [ ] 构建生产版本(移除Manus内联)
|
||
- [ ] 打包并上传到备份服务器 103.96.148.7
|
||
- [ ] 备份服务器环境配置(Node.js 22、PM2、MySQL、Nginx)
|
||
- [ ] 配置环境变量(DATABASE_URL、JWT_SECRET等)
|
||
- [ ] 启动服务并验证运行状态
|
||
- [ ] 同步代码到Gitea库(nacadmin/xic-presale)
|
||
- [ ] 记录部署日志
|
||
|
||
## v5 钱包连接修复
|
||
- [x] 将useWallet()提升到Home顶层,通过props传递给NavWalletButton和EVMPurchasePanel
|
||
- [x] 验证导航栏和购买面板钱包状态同步
|
||
- [ ] 完整域名浏览器购买测试验证
|
||
|
||
## v6 合约地址更新 + TronLink 检测
|
||
- [x] 更新 BSC 预售合约地址为 0xc65e7a2738ed884db8d26a6eb2fecf7daca2e90c
|
||
- [x] 更新 ETH 预售合约地址为 0x85AB2F2d9f7ca7ecB272b5E8726c70f3fd45D1E3
|
||
- [x] 更新 XIC 代币合约地址为 0x59ff34dd59680a7125782b1f6df2a86ed46f5a24
|
||
- [x] 为 TRON 标签添加 TronLink 钱包检测并自动填充 TRON 接收地址
|
||
- [x] 构建并部署到备份服务器 pre-sale.newassetchain.io
|
||
- [x] 后台 Site Settings 添加“一键开启/关闭预售活动”功能(数据库字段 + 后端 API + 前端开关 UI + 首页状态联动)
|
||
|
||
## v7 钉包连接全面修复
|
||
- [x] 全面修复所有 EVM 钉包(MetaMask、Trust Wallet、OKX、Coinbase等)无法自动填写 EVM 地址的问题
|
||
- [x] 重写 useWallet hook 支持所有主流 EVM 钉包自动识别
|
||
- [x] 将页面所有“EVM 地址”文案改为“XIC 接收地址”(中文)/ "XIC Receiving Address"(英文)
|
||
- [x] 构建并部署到备份服务器并验证
|
||
|
||
## v7 钱包列表选择器
|
||
- [x] 创建 WalletSelector 组件(MetaMask、Trust Wallet、OKX、Coinbase、TokenPocket 检测+连接+安装引导)
|
||
- [x] 集成 WalletSelector 到 TRON 标签 XIC 接收地址区域- [x] 集成 WalletSelector 到 BSC/ETH 购买面板替换原 Connect Wallet 按鈕钮
|
||
- [x] 构建并部署到备份服务器
|
||
|
||
## v8 UI设计错误修复
|
||
- [ ] 修复图1:钱包选择器弹窗同时显示"已安装"和"未安装"钱包,界面混乱 → 有已安装钱包时隐藏未安装列表
|
||
- [ ] 修复图2:点击钱包后选择器面板折叠缩小 → 连接中状态应保持面板展开,显示loading状态
|
||
- [ ] 修复图3:"添加XIC到钱包"按钮在未连接钱包时显示并报错 → 未连接时隐藏该按钮
|
||
- [ ] 构建并部署到备份服务器
|
||
- [ ] 同步到Gitea代码库
|
||
|
||
## v9 跨链桥 /bridge 页面
|
||
- [x] 安装 @lifi/sdk 依赖(使用SDK替代Widget,避免@mysten/sui冲突)
|
||
- [x] 创建 Bridge.tsx 页面组件(深色主题,与预售网站风格一致)
|
||
- [x] 集成 Li.Fi API,锁定目标链 BSC + 目标代币 XIC
|
||
- [x] 在 App.tsx 注册 /bridge 路由
|
||
- [x] 导航栏添加 Bridge 入口链接(⚡ Bridge 黄色高亮按钮)
|
||
- [x] 后端添加跨链订单记录(bridge_orders 表)
|
||
- [x] 浏览器测试 /bridge 页面(UI渲染、链切换、金额输入正常)
|
||
- [ ] 去除 MANUS 内联,构建并部署到 AI 服务器
|
||
- [ ] 记录部署日志并交付
|
||
|
||
## v10 Bridge完善 + 钱包选择器修复
|
||
|
||
### Bridge Li.Fi 交易执行逻辑
|
||
- [x] 实现完整的 Li.Fi 跨链交易执行(USDT Approve + executeLiFiRoute)
|
||
- [x] 连接钱包后自动获取报价(已有,验证可用)
|
||
- [x] 执行交易:先 Approve USDT,再发送跨链交易
|
||
- [x] 交易状态轮询(pending → success/failed)
|
||
- [x] 成功后记录订单到数据库
|
||
|
||
### Bridge 交易历史记录模块
|
||
- [x] Bridge 页面底部增加"我的交易记录"区域
|
||
- [x] 按钱包地址查询历史订单(trpc.bridge.myOrders)
|
||
- [x] 显示:时间、来源链、USDT金额、XIC金额、状态、TxHash链接
|
||
|
||
### v8 钱包选择器 UI 修复
|
||
- [ ] 修复图1:有已安装钱包时隐藏未安装列表(已在代码中但需验证)
|
||
- [ ] 修复图2:连接中状态保持面板展开,显示loading,不折叠
|
||
- [ ] 修复图3:未连接钱包时隐藏"添加XIC到钱包"按钮(已有条件判断,需验证)
|
||
|
||
### 部署
|
||
- [ ] 构建并部署到 AI 服务器
|
||
- [ ] 浏览器测试验证所有功能
|
||
- [ ] 记录部署日志并交付
|
||
|
||
### Bridge 钱包连接修复(来自截图反馈)
|
||
- [ ] Bridge 页面"连接钱包"按钮改为使用 WalletSelector 组件(与主页一致),而非直接调用 window.ethereum
|
||
- [x] 连接钱包后自动获取报价,不再显示 WalletSelector
|
||
|
||
### 视频反馈修复(来自 WhatsApp 视频)
|
||
- [ ] Bridge 页面"连接钱包"按钮改为内嵌 WalletSelector 组件(展开显示钱包列表,不弹浏览器原生弹窗)
|
||
- [ ] 错误提示"Wallet connection cancelled"改为中英文双语
|
||
- [ ] Bridge 页面添加中英文语言切换支持(与主页同步)
|
||
- [ ] 信息卡片"5岁以上"应为"5条以上"(支持链数量)
|
||
|
||
## v11 Bridge增强功能
|
||
|
||
- [ ] Gas费估算显示:在"YOU RECEIVE"区域下方显示预估Gas费(源链原生代币)和预计到账时间
|
||
- [ ] Gas费说明文案:说明Gas用源链原生代币支付(BSC用BNB,ETH用ETH,Polygon用MATIC等)
|
||
- [ ] 交易历史"复制交易哈希"快捷按钮
|
||
- [ ] 交易历史"在区块浏览器中查看"快捷按钮
|
||
- [ ] 交易成功弹窗提示(附查看交易详情链接)
|
||
- [ ] 浏览器全流程测试
|
||
- [ ] 构建并部署到AI服务器
|
||
- [ ] 记录部署日志
|
||
|
||
## v11 钱包连接卡死修复(来自用户反馈)
|
||
|
||
- [ ] 修复WalletSelector连接卡死:连接超时30s自动重置状态
|
||
- [ ] 修复用户取消钱包弹窗后状态不重置(error code 4001/4100处理)
|
||
- [ ] 修复连接成功后回调不触发(accounts事件监听改为直接返回值处理)
|
||
- [ ] 确保每次点击钱包按钮都能重新触发钱包弹窗
|
||
|
||
## v12 Bridge跨链桥完善 + 钱包连接深度修复
|
||
|
||
- [x] WalletSelector v5:ErrorHelpPanel组件(分类错误处理+MetaMask权限重置5步指南)
|
||
- [x] WalletSelector v5:连接中状态改为"等待钱包授权"提示
|
||
- [x] WalletSelector v5:错误后显示"重试"按钮和其他可用钱包
|
||
- [x] Bridge页面:确认所有链(BSC/ETH/Polygon/Arbitrum/Avalanche)USDT→XIC路由逻辑
|
||
- [x] Bridge页面:Gas费说明(每条链原生代币:BNB/ETH/MATIC/ETH/AVAX)
|
||
- [x] 构建v12并部署到AI服务器(43.224.155.27)
|
||
- [x] 同步代码到备份Git库(git.newassetchain.io)
|
||
- [x] 记录部署日志
|
||
|
||
## v13 自研跨链桥(完全移除Li.Fi)
|
||
|
||
- [x] 数据库:新增 bridge_deposits 表(多链USDT转入记录)
|
||
- [x] 后端:多链USDT收款地址配置(BSC/ETH/Polygon/Arbitrum/Avalanche)
|
||
- [x] 后端:链上USDT转入监听(每30秒轮询各链收款地址)
|
||
- [x] 后端:tRPC接口:提交转账意图(walletAddress + fromChain + usdtAmount + xicReceiveAddress)
|
||
- [x] 后端:tRPC接口:查询订单状态(by walletAddress)
|
||
- [x] 前端:完全移除Li.Fi依赖和代码
|
||
- [x] 前端:选链 → 显示对应链USDT收款地址 → 用户转账 → 实时状态跟踪
|
||
- [x] 前端:连接钱包后自动填写XIC接收地址
|
||
- [x] 前端:中英文双语支持
|
||
- [x] 构建并部署到AI服务器
|
||
- [x] 浏览器完整测试
|
||
- [x] 同步到备份Git库
|
||
- [x] 记录部署日志
|
||
|
||
## v13 收款地址更新(官方地址)
|
||
|
||
- [x] Bridge.tsx:更新BSC收款地址为 0x43DAb577f3279e11D311E7d628C6201d893A9Aa3
|
||
- [x] Bridge.tsx:ETH/Polygon/Arbitrum 使用同一EVM地址 0x43DAb577f3279e11D311E7d628C6201d893A9Aa3
|
||
- [x] bridgeMonitor.ts:更新所有链收款地址
|
||
- [x] Home.tsx:更新TRC20收款地址为 TWc2ugYBFN5aSoimAh4qGt9oMyket6NYZp
|
||
- [x] contracts.ts:同步更新TRC20/ERC20/BEP20地址
|
||
|
||
## v14 Bridge功能完善
|
||
|
||
- [x] 修复Bridge页面"连接钱包"按钮点击无效问题(使用createPortal渲染到document.body,z-index:9999)
|
||
- [x] My Transactions列表增加USDT数量和XIC数量显示(已在v13中完成)
|
||
- [x] Confirm按钮点击后增加加载动画(已有Loader2 animate-spin)
|
||
- [x] 管理员后台添加Bridge订单管理页面(Bridge Intents + Bridge Orders表格,状态过滤,手动标记分发)
|
||
- [ ] 构建部署到AI服务器并测试
|
||
- [ ] 同步到备份Git库
|
||
|
||
## v15 Web3.js集成完成记录
|
||
|
||
- [x] ethers.js v6 已集成(已有依赖)
|
||
- [x] 创建 useBridgeWeb3 hook:USDT余额查询、链上转账签名(client/src/hooks/useBridgeWeb3.ts)
|
||
- [x] Bridge页面:连接钱包后在Step 4区域显示USDT余额(右上角余额+刷新按钮)
|
||
- [x] Bridge页面:新增"Send via Wallet"按钮,调用ethers.js发起真实USDT transfer()
|
||
- [x] Bridge页面:转账成功后自动调用bridge.recordOrder记录到后端数据库
|
||
- [x] 转账中显示加载动画和TX Hash前缀
|
||
- [x] 转账失败显示错误信息(用户取消/余额不足/其他错误)
|
||
- [x] 链不匹配时自动触发switchNetwork
|
||
- [ ] 构建部署到AI服务器并测试
|
||
- [ ] 同步到备份Git库
|
||
|
||
## v16 代币购买无缝体验(按文档方案)
|
||
|
||
- [ ] 购买成功后自动调用 wallet_watchAsset 将 XIC 代币添加到 EVM 钱包(EIP-1193标准)
|
||
- [ ] 添加 TRON 链到 CHAINS 数组(chainId 728126428,TRC20 USDT 6位小数)
|
||
- [ ] Bridge 页面:TRON 链选中时显示 TronLink 连接按钮(showTron=true)
|
||
- [ ] 创建 useTronBridge hook:TronLink 连接 + TRC20 USDT 余额查询 + 一键转账
|
||
- [ ] Bridge 页面:TRON 链一键转账成功后调用 tronLink wallet_addAsset
|
||
- [ ] 添加订单状态轮询(注册成功后每 5 秒自动刷新订单列表)
|
||
- [ ] 修复钱包连接被拒绝后无法重试(error 4001 状态重置)
|
||
- [ ] 部署到 AI 服务器(43.224.155.27)并同步 Git 库
|
||
|
||
## v16 wallet_watchAsset 修复(按文档方案)
|
||
|
||
- [ ] 修复 addTokenToWallet.ts:TRON 改用 tronWeb.request({ method: 'wallet_watchAsset', params: { type: 'trc20', options: { address } } })
|
||
- [ ] 修复 addXicToEvmWallet:直接用 window.ethereum.request 而非通过 provider.send 包装
|
||
- [ ] 去除 const.ts 中的 manus.im 硬编码(改为纯环境变量,无 fallback)
|
||
- [ ] 构建生产版本并验证无 manus.im 内联
|
||
- [ ] 部署到 AI 服务器 43.224.155.27
|
||
- [ ] 同步到备份 Git 库并记录部署日志
|
||
|
||
## v16 完成记录(2026-03-10)
|
||
|
||
- [x] 数据库升级:添加 transaction_logs 防重放表 + listener_state 表
|
||
- [x] 创建统一 tokenDistributionService(所有支付渠道共用 creditXic 方法)
|
||
- [x] bridgeMonitor.ts 集成 tokenDistributionService
|
||
- [x] trc20Monitor.ts 集成 tokenDistributionService
|
||
- [x] routers.ts recordOrder 路由集成 tokenDistributionService
|
||
- [x] addTokenToWallet.ts 按文档规范重写(EVM: window.ethereum,TRON: tronWeb.request wallet_watchAsset)
|
||
- [x] Bridge.tsx 添加 TRON 链(chainId: 728126428)
|
||
- [x] Bridge.tsx 集成 useTronBridge(TronLink 连接 + TRC20 转账)
|
||
- [x] Bridge.tsx 订单状态轮询(注册后每 5 秒刷新)
|
||
- [x] Bridge.tsx wallet_watchAsset 购买成功后自动添加 XIC 代币
|
||
- [x] 去除前端 bundle 中的 manus.im 内联
|
||
- [x] 全部 18 个 vitest 测试通过
|
||
- [x] 浏览器测试:Bridge 页面、主页、语言切换、Connect Wallet 模态框、TRX 链切换 — 全部通过
|