Hope Fund 是一个全栈 Web3 应用,提供:
- 📊 实时基金数据展示和图表分析
- 💼 多链钱包集成(Solana、Ethereum、BSC)
- 💰 资产存取款功能
- 🔐 邀请码和白名单系统
- 📈 交易所和策略性能追踪
- 📅 周三定时提现功能
- 框架: Next.js 14 (App Router)
- 语言: TypeScript
- 样式: Tailwind CSS
- UI 组件: shadcn/ui
- 图表: Recharts
- Web3:
- Rainbow Kit (Ethereum/BSC)
- Solana Wallet Adapter
- 状态管理: Zustand
- 数据请求: TanStack Query (React Query)
- 框架: FastAPI (Python)
- 数据处理: Pandas
- 日志: Loguru
- CORS: 完全支持跨域请求
- API 文档: 自动生成的 OpenAPI/Swagger
- CSV 文件存储(基金数据、用户交易记录)
- JSON 配置文件(用户份额、邀请码)
cele-web/
├── data/ # 数据目录
│ ├── fund/ # 基金数据
│ │ ├── nav/
│ │ │ └── fund_nav.csv # 基金NAV、TVL、杠杆等数据
│ │ └── products/
│ │ ├── product_performance.csv # 产品性能数据
│ │ └── exchange_nav.csv # 交易所NAV数据
│ ├── users/ # 用户交易记录
│ │ └── {address}.csv # 每个用户的交易历史
│ ├── users-sum.json # 用户份额汇总
│ └── vault-config.json # Vault配置信息
├── src/
│ ├── backend/ # Python后端
│ │ ├── main.py # FastAPI主应用
│ │ ├── email_router.py # 邮件服务路由
│ │ ├── email_service.py # 邮件发送服务
│ │ ├── invite_codes.py # 邀请码管理
│ │ ├── requirements.txt # Python依赖
│ │ └── data/
│ │ └── invite_codes.json # 邀请码数据
│ └── frontend/ # Next.js前端
│ ├── src/
│ │ ├── app/ # Next.js App Router
│ │ │ ├── page.tsx # 首页
│ │ │ ├── overview/ # 概览页面
│ │ │ └── api/ # Next.js API路由
│ │ ├── components/ # React组件
│ │ │ ├── overview/ # 概览页面组件
│ │ │ │ ├── NavChart.tsx
│ │ │ │ ├── TvlChart.tsx
│ │ │ │ ├── LeverageChart.tsx
│ │ │ │ ├── chart2.tsx
│ │ │ │ ├── chart3.tsx
│ │ │ │ └── DepositWithdraw.tsx
│ │ │ ├── LinesChart.tsx # 通用图表组件
│ │ │ └── MultiChainWallet.tsx
│ │ ├── hooks/ # React Hooks
│ │ ├── lib/ # 工具函数
│ │ ├── stores/ # Zustand状态管理
│ │ └── types/ # TypeScript类型定义
│ ├── package.json
│ └── next.config.ts
└── README.md
- Node.js 18+ 或 Bun
- Python 3.8+
- pip (Python包管理器)
git clone <repository-url>
cd cele-web# 进入后端目录
cd src/backend
# 创建虚拟环境(推荐)
python -m venv .venv
# 激活虚拟环境
# Windows:
.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 启动后端服务器
python main.py后端服务将运行在 http://localhost:10011
# 进入前端目录
cd src/frontend
# 安装依赖
npm install
# 或使用 bun
bun install
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入必要的配置
# 启动开发服务器
npm run dev
# 或使用 bun
bun run dev前端应用将运行在 http://localhost:3000
在 src/frontend/.env 中配置:
# API基础URL
NEXT_PUBLIC_API_BASE_URL=http://localhost:10011
# RPC端点
NEXT_PUBLIC_SOLANA_RPC_URL=your_solana_rpc_url
NEXT_PUBLIC_ETH_RPC_URL=your_eth_rpc_url
NEXT_PUBLIC_BSC_RPC_URL=your_bsc_rpc_url
# Vault地址
NEXT_PUBLIC_RECEIVE_VAULT=your_vault_address
# WalletConnect项目ID
NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID=your_project_id- 显示基金每份额净值(NAV per Share)
- 数据来源:
fund_nav.csv - 支持时间范围选择:30/60/90天或全部
- 显示总锁仓价值(Total Value Locked)
- 数据来源:
fund_nav.csv - 动态Y轴范围(±15%)
- 显示杠杆倍数变化
- 数据来源:
fund_nav.csv - 独立标签页显示
- 显示三个策略的累计收益率
- Aave Strategy
- GMX Strategy
- Curve Strategy
- 数据来源:
product_performance.csv - Y轴动态范围(±30%)
- 显示5个交易所的NAV数据
- Jupiter(靛蓝色)
- Drift(翠绿色)
- Binance(琥珀色)
- Bybit(红色)
- Kamino(紫色)
- 数据来源:
exchange_nav.csv - 支持点击图例切换显示
- Solana: 通过 Solana Wallet Adapter
- Ethereum: 通过 Rainbow Kit
- BSC: 通过 Rainbow Kit
- 连接/断开钱包
- 显示余额(原生代币 + USDC)
- 自动刷新余额
- 切换链
- 输入USDC金额
- 自动检测钱包余额
- Gas费检查(Solana)
- 交易确认监控
- 记录到用户CSV文件
- 显示"Added Assets"(当日累计存款)
- 仅周三(UTC+8)可用
- 输入份额数量
- 自动验证可用份额
- 支持并发提现(文件锁机制)
- 自动备份:创建
users-sum-{日期}.json - 份额自动扣减
- 显示提现历史记录
- Session验证
- 白名单地址检查
- 邀请码管理API
- 自动session过期处理
- 交易确认邮件
- SMTP服务集成
- 异步邮件发送