Skip to content

jhcdx9999/vault_sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📋 项目概述

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包管理器)

安装步骤

1. 克隆仓库

git clone <repository-url>
cd cele-web

2. 后端设置

# 进入后端目录
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

3. 前端设置

# 进入前端目录
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

📊 核心功能

1. 数据可视化

NAV图表

  • 显示基金每份额净值(NAV per Share)
  • 数据来源:fund_nav.csv
  • 支持时间范围选择:30/60/90天或全部

TVL图表

  • 显示总锁仓价值(Total Value Locked)
  • 数据来源:fund_nav.csv
  • 动态Y轴范围(±15%)

Leverage图表

  • 显示杠杆倍数变化
  • 数据来源:fund_nav.csv
  • 独立标签页显示

产品性能图表(Chart2)

  • 显示三个策略的累计收益率
    • Aave Strategy
    • GMX Strategy
    • Curve Strategy
  • 数据来源:product_performance.csv
  • Y轴动态范围(±30%)

交易所NAV图表(Chart3)

  • 显示5个交易所的NAV数据
    • Jupiter(靛蓝色)
    • Drift(翠绿色)
    • Binance(琥珀色)
    • Bybit(红色)
    • Kamino(紫色)
  • 数据来源:exchange_nav.csv
  • 支持点击图例切换显示

2. 多链钱包支持

支持的链

  • Solana: 通过 Solana Wallet Adapter
  • Ethereum: 通过 Rainbow Kit
  • BSC: 通过 Rainbow Kit

钱包功能

  • 连接/断开钱包
  • 显示余额(原生代币 + USDC)
  • 自动刷新余额
  • 切换链

3. 资产管理

Deposit(存款)

  • 输入USDC金额
  • 自动检测钱包余额
  • Gas费检查(Solana)
  • 交易确认监控
  • 记录到用户CSV文件
  • 显示"Added Assets"(当日累计存款)

Withdraw(提现)

  • 仅周三(UTC+8)可用
  • 输入份额数量
  • 自动验证可用份额
  • 支持并发提现(文件锁机制)
  • 自动备份:创建 users-sum-{日期}.json
  • 份额自动扣减
  • 显示提现历史记录

4. 邀请码系统

  • Session验证
  • 白名单地址检查
  • 邀请码管理API
  • 自动session过期处理

5. 邮件通知

  • 交易确认邮件
  • SMTP服务集成
  • 异步邮件发送

About

simple sample for a custom Vault

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •