ATB DApp:一个 BSC Web3 应用前端的工程复盘

项目状态:已归档。 ATB DApp 的线上服务已经停止,本文不提供可操作的在线演示。请勿向项目历史地址或合约转入任何资产。本文只记录前端工程实现,不构成投资建议。

项目概览

ATB DApp 是一个运行在 BNB Smart Chain(BSC)主网上的 Web3 前端应用。项目围绕钱包连接、USDT 激活、ATB 质押、收益领取和团队数据展示,组成了一套完整的 DApp 用户界面。

目前保留的仓库只有前端代码。链上余额与交易依赖已经部署的智能合约,用户、收益、团队、签名和记录等数据依赖独立后端。因此,在后端停止服务后,仓库仍可用于理解界面和交互架构,但无法独立还原原有业务。

查看 ATB DApp 前端源码

ATB DApp 桌面端质押与收益界面

桌面端质押与收益面板。截图来自项目运行期间的历史版本。

核心用户流程

前端将一次完整交互拆分为几个连续步骤:

  1. 用户通过 RainbowKit 连接浏览器钱包。
  2. 应用校验钱包网络,并读取 USDT、ATB 和资金池余额。
  3. 用户支付指定数量的 USDT 激活服务。
  4. 用户将 ATB 转入后端返回的接收地址,完成质押操作。
  5. 前端从后端获取收益、团队等级和邀请关系等业务数据。
  6. 领取收益时,后端生成签名参数,前端再调用合约的 withdrawPermit 方法提交交易。

这种结构把职责分成了三层:钱包与链上交易由前端和合约完成,业务状态由后端维护,领取操作通过后端签名与合约校验连接起来。

前端技术实现

钱包与网络接入

项目使用 RainbowKit 提供连接界面,并通过 wagmi 和 viem 与链上数据交互。Provider 只注册 BSC 主网,支持 MetaMask、WalletConnect、Trust Wallet、TokenPocket、OKX Wallet 等常见钱包。

前端会读取用户的 USDT、ATB、LP Token 余额以及资金池余额,并监听账户切换后的状态变化。合约地址、ABI 和 Chain ID 集中放在独立配置模块中,避免页面重复声明。

激活与质押

首页的激活流程会先校验用户状态、邀请关系和 USDT 余额,再从后端获取接收地址并发起代币转账。

质押页面采用相似的处理方式:检查 ATB 余额和输入数量,将数量转换为代币精度,然后调用 ATB 合约的 transfer 方法。交易成功后,页面刷新收益数据并给出状态提示。

签名领取

收益领取不是单纯调用一个公开转账接口。前端先向后端请求领取签名,得到领取编号、金额、代币地址、截止时间以及签名的 rsv 参数,再调用领取合约。

这套流程减少了前端自行决定领取金额的空间,同时也意味着完整功能依赖后端签名服务。后端停止后,即使页面仍能打开,也无法完成原有领取流程。

团队数据与邀请关系

个人中心展示上级地址、邀请链接、节点等级、团队业绩和直推数据。邀请信息通过 URL 参数传递,连接钱包后再与当前地址组合成分享链接。

ATB DApp 团队节点与等级页面

团队节点等级、直推条件与业绩数据的桌面端布局。

响应式设计与国际化

桌面端使用多列信息面板承载余额、收益和团队指标;移动端则将内容转换为纵向卡片,并使用折叠菜单减少导航占用空间。

ATB DApp 移动端首页

移动端首页保留钱包入口、核心认购信息和业务说明。

ATB DApp 移动端质押页面

移动端质押、收益统计和领取入口。

仓库保留了多套语言资源,产品界面实际开放中文和英文切换。语言选择保存在浏览器本地,刷新后可以继续使用上次选择。

技术栈

  • Next.js 14、React 18、TypeScript
  • wagmi、viem、RainbowKit
  • Tailwind CSS、daisyUI、Material UI
  • Axios
  • i18next、react-i18next
  • PM2

项目边界

ATB DApp 前端仓库不包含以下部分:

  • 后端服务及数据库
  • 后端签名密钥与签名实现
  • 智能合约源码及部署流程
  • 可继续运营的线上环境

如果今天重新实现

回看这个项目,最值得改进的方向包括:

  • 使用明确的接口类型替代页面中的宽泛 any
  • 全程使用 bigintformatUnitsparseUnits 处理代币精度,避免转换为 JavaScript Number
  • 将后端请求、链上读取和交易状态整理成更清晰的数据层。
  • 统一 loading、成功、失败和钱包未连接状态,避免无数据时出现 NaN
  • 将测试网、主网、合约地址和 API 地址拆分为可验证的环境配置。
  • 为邀请链接、输入校验和签名领取流程补充单元测试与端到端测试。
  • 统一包管理器,并改进环境变量示例和仓库发布规范。

这些问题也是归档旧项目的价值所在:它不仅记录当时完成了什么,也能清楚呈现后续工程能力的成长方向。

总结

ATB DApp 覆盖了 Web3 前端中常见但彼此关联紧密的能力:钱包连接、链上余额、代币转账、后端签名、合约领取、团队数据和响应式界面。

虽然线上服务已经停止,但它仍是一份完整的历史工程案例。相比继续维护一个不可用的 Demo,保留源码、界面截图和技术复盘,更能准确说明项目的实现范围与前端经验。

仓库当前未声明开源许可证,因此这里使用“源码公开”而非“开源项目”。代码仅供阅读和项目回顾,具体授权范围请以仓库后续许可证为准。