包含 webapp(Next.js 用户端)、webapp-back(Go 后端)、 antdesign(管理后台)、landingpage(营销落地页)、 数据库 SQL 和配置文件。
151 lines
5.5 KiB
Markdown
151 lines
5.5 KiB
Markdown
# AssetX Webapp 项目记忆文件
|
|
|
|
## 项目概述
|
|
AssetX 是一个 DeFi 资产管理平台前端,基于 Next.js 15 + React 19 + TypeScript 构建。
|
|
|
|
## 技术栈
|
|
- **框架**: Next.js 15 (App Router)
|
|
- **UI库**: React 19, HeroUI, Tailwind CSS
|
|
- **Web3**: wagmi, viem, Reown AppKit, MetaMask SDK, Coinbase Wallet SDK, WalletConnect
|
|
- **图表**: ECharts
|
|
- **动画**: Framer Motion
|
|
- **通知**: Sonner
|
|
- **包管理**: npm/bun
|
|
|
|
## 目录结构
|
|
|
|
```
|
|
webapp/
|
|
├── app/ # Next.js App Router 页面
|
|
│ ├── layout.tsx # 根布局
|
|
│ ├── page.tsx # 首页
|
|
│ ├── alp/ # ALP (资产流动性池) 模块
|
|
│ ├── ecosystem/ # 生态系统页面
|
|
│ ├── lending/ # 借贷模块
|
|
│ ├── market/ # 市场模块
|
|
│ ├── points/ # 积分模块
|
|
│ ├── product/ # 产品详情页
|
|
│ ├── swap/ # 交易兑换模块
|
|
│ └── transparency/ # 透明度页面
|
|
│
|
|
├── components/ # React 组件
|
|
│ ├── alp/ # ALP 相关组件
|
|
│ ├── common/ # 通用组件
|
|
│ ├── fundmarket/ # 基金市场组件
|
|
│ ├── icons/ # 图标组件
|
|
│ ├── layout/ # 布局组件 (Sidebar, TopBar等)
|
|
│ ├── lending/ # 借贷相关组件
|
|
│ ├── modals/ # 弹窗组件
|
|
│ ├── points/ # 积分相关组件
|
|
│ ├── product/ # 产品相关组件
|
|
│ ├── transparency/ # 透明度组件
|
|
│ ├── wallet/ # 钱包组件
|
|
│ ├── Providers.tsx # 全局 Provider 包装器
|
|
│ └── ResourcePreload.tsx # 资源预加载
|
|
│
|
|
├── hooks/ # 自定义 React Hooks
|
|
│ ├── useBalance.ts # 余额查询
|
|
│ ├── useCollateral.ts # 抵押品操作
|
|
│ ├── useContractRegistry.ts # 合约注册表
|
|
│ ├── useDeposit.ts # 存款操作
|
|
│ ├── useHealthFactor.ts # 健康因子
|
|
│ ├── useLendingCollateral.ts # 借贷抵押
|
|
│ ├── useLendingSupply.ts # 借贷供应
|
|
│ ├── useLendingWithdraw.ts # 借贷提取
|
|
│ ├── usePoolDeposit.ts # 池存款
|
|
│ ├── usePoolWithdraw.ts # 池提取
|
|
│ ├── useSwap.ts # 交换操作
|
|
│ ├── useTokenBySymbol.ts # 按符号获取代币
|
|
│ ├── useTokenDecimals.ts # 代币精度
|
|
│ ├── useTokenList.ts # 代币列表
|
|
│ ├── useWalletStatus.ts # 钱包状态
|
|
│ └── useWithdraw.ts # 提款操作
|
|
│
|
|
├── lib/ # 工具库
|
|
│ ├── api/ # API 接口
|
|
│ │ ├── contracts.ts # 合约 API
|
|
│ │ ├── fundmarket.ts # 基金市场 API
|
|
│ │ ├── lending.ts # 借贷 API
|
|
│ │ ├── points.ts # 积分 API
|
|
│ │ └── tokens.ts # 代币 API
|
|
│ ├── contracts/ # 合约相关
|
|
│ │ ├── abis/ # 合约 ABI 文件
|
|
│ │ │ ├── lendingProxy.json
|
|
│ │ │ ├── USDY.json
|
|
│ │ │ ├── YT-Token.json
|
|
│ │ │ ├── YTAssetFactory.json
|
|
│ │ │ ├── YTLPToken.json
|
|
│ │ │ ├── YTPoolManager.json
|
|
│ │ │ ├── YTPriceFeed.json
|
|
│ │ │ ├── YTRewardRouter.json
|
|
│ │ │ └── YTVault.json
|
|
│ │ ├── index.ts
|
|
│ │ └── registry.ts # 动态合约地址注册表
|
|
│ ├── wagmi.ts # Wagmi 配置
|
|
│ └── buttonStyles.ts # 按钮样式
|
|
│
|
|
├── contexts/ # React Context
|
|
│ └── AppContext.tsx # 全局应用状态
|
|
│
|
|
├── locales/ # 国际化
|
|
│ ├── en.json # 英文
|
|
│ └── zh.json # 中文
|
|
│
|
|
├── public/ # 静态资源
|
|
├── scripts/ # 脚本工具
|
|
└── logs/ # 日志目录
|
|
```
|
|
|
|
## 支持的区块链网络
|
|
- Ethereum Mainnet
|
|
- Sepolia (测试网)
|
|
- Arbitrum
|
|
- Base
|
|
- BSC (Binance Smart Chain)
|
|
- Arbitrum Sepolia (测试网)
|
|
- BSC Testnet
|
|
|
|
## 核心功能模块
|
|
1. **Product** - 产品详情展示 (APY, TVL, 资产概述等)
|
|
2. **ALP** - 资产流动性池
|
|
3. **Swap** - 代币交换
|
|
4. **Lending** - 借贷系统
|
|
5. **Transparency** - 透明度/验证
|
|
6. **Points** - 积分系统
|
|
7. **Ecosystem** - 生态系统
|
|
8. **Market** - 市场模块
|
|
|
|
## 常用命令
|
|
```bash
|
|
npm run dev # 开发模式 (端口 3010)
|
|
npm run build # 构建生产版本
|
|
npm start # 启动生产服务器
|
|
npm run lint # 代码检查
|
|
```
|
|
|
|
## 钱包支持
|
|
- MetaMask
|
|
- OKX Wallet
|
|
- Trust Wallet
|
|
- Coinbase Wallet
|
|
- Backpack Wallet
|
|
- WalletConnect
|
|
|
|
## 合约 ABI 文件
|
|
项目包含以下智能合约 ABI:
|
|
- `YTVault` - 金库合约
|
|
- `YTPoolManager` - 池管理合约
|
|
- `YTLPToken` - LP 代币合约
|
|
- `YT-Token` - YT 代币合约
|
|
- `YTAssetFactory` - 资产工厂合约
|
|
- `YTPriceFeed` - 价格预言机合约
|
|
- `YTRewardRouter` - 奖励路由合约
|
|
- `USDY` - USDY 代币合约
|
|
- `lendingProxy` - 借贷代理合约
|
|
|
|
## 开发注意事项
|
|
- 使用 App Router (Next.js 15)
|
|
- 全局状态通过 `AppContext.tsx` 管理
|
|
- Web3 配置在 `lib/wagmi.ts`
|
|
- 合约地址支持动态注册 (`lib/contracts/registry.ts`)
|
|
- 支持中英文国际化 (`locales/`) |