|
|
1 semana atrás | |
|---|---|---|
| data | 2 semanas atrás | |
| public | 2 semanas atrás | |
| src | 1 semana atrás | |
| .dockerignore | 2 semanas atrás | |
| .env.example | 2 semanas atrás | |
| .gitignore | 2 semanas atrás | |
| .pnpm-approve-builds.json | 2 semanas atrás | |
| .prettierignore | 2 semanas atrás | |
| .prettierrc | 2 semanas atrás | |
| AGENTS.md | 1 semana atrás | |
| Dockerfile | 1 semana atrás | |
| README.md | 1 semana atrás | |
| components.json | 1 semana atrás | |
| docker-compose.esaypanel.yml | 1 semana atrás | |
| docker-compose.yml | 1 semana atrás | |
| docker-entrypoint.sh | 1 semana atrás | |
| eslint.config.mjs | 2 semanas atrás | |
| next.config.ts | 2 semanas atrás | |
| package.json | 1 semana atrás | |
| pnpm-lock.yaml | 1 semana atrás | |
| pnpm-workspace.yaml | 2 semanas atrás | |
| postcss.config.mjs | 2 semanas atrás | |
| tsconfig.json | 2 semanas atrás |
Solana 链上 byreal.io DEX CLMM(集中流动性)跟单系统。监控目标钱包的流动性操作,自动复制开仓、加仓、减仓、关仓,并支持可配置的倍率和金额上限。
| 层级 | 技术 |
|---|---|
| 前端 | Next.js 16 + React 19 + Tailwind CSS 4 + shadcn/ui + SWR |
| 后端 | Next.js API Routes |
| 数据库 | SQLite (better-sqlite3) |
| 区块链 | Solana Web3.js + Anchor 0.31 + Byreal CLMM SDK |
| 换币 | Jupiter Ultra API |
| UI 组件 | shadcn/ui (New York style) + Radix UI |
| 主题 | next-themes(明暗切换) |
src/
├── app/
│ ├── page.tsx # Dashboard(状态、余额、活跃仓位、最近操作)
│ ├── addresses/page.tsx # 监控地址管理
│ ├── positions/page.tsx # 仓位映射表
│ ├── history/page.tsx # 跟单历史
│ ├── settings/page.tsx # 全局参数设置
│ └── api/
│ ├── monitor/ # 监控启停与状态
│ ├── addresses/route.ts # 地址 CRUD
│ ├── positions/route.ts # 仓位查询与手动关仓
│ ├── history/route.ts # 操作历史
│ ├── settings/route.ts # 设置读写
│ ├── sync/route.ts # Byreal API 数据同步
│ └── wallet/balance/route.ts # 钱包余额
├── lib/
│ ├── monitor/ # TX 监听与解析
│ │ ├── index.ts # MonitorService(WebSocket + 轮询)
│ │ ├── parser.ts # TX 解析(IDL 判别符 + 日志匹配 + 事件解码)
│ │ └── types.ts # ParsedOperation 类型
│ ├── copier/ # 跟单引擎
│ │ ├── index.ts # CopyEngine(四种操作调度,USDC+USDT 余额检查)
│ │ ├── price.ts # 代币价格获取
│ │ ├── ratio.ts # 金额缩放
│ │ └── swap.ts # Jupiter Ultra swap(ExactIn / ExactOut / USDC↔USDT)
│ ├── db/ # SQLite 数据层
│ ├── solana/ # RPC 连接 & 钱包
│ ├── byreal-sync.ts # Byreal API 仓位同步(PNL/APR/Fee/Bonus)
│ ├── pool-info.ts # 池子信息缓存(byreal API)
│ ├── config.ts # 环境变量加载
│ └── clmm-sdk/ # Byreal CLMM SDK
├── components/
│ ├── ui/ # shadcn/ui 组件(Button, Table, Card, Badge 等)
│ ├── layout/ # 侧边栏 & 顶部导航
│ ├── providers.tsx # ThemeProvider 包装
│ └── theme-toggle.tsx # 明暗主题切换按钮
└── lib/utils.ts # cn() 工具函数
pnpm install
cp .env.example .env.local
编辑 .env.local:
SOL_ENDPOINT=https://api.mainnet-beta.solana.com # Solana RPC(建议用付费节点)
SOL_SECRET_KEY= # Base58 私钥
JUPITER_API_KEY= # Jupiter API Key
COPY_MULTIPLIER=1.0 # 跟单倍率(1.0=等额,0.5=半仓)
COPY_MAX_USD=1000 # 单次跟单最大 USD
COPY_SLIPPAGE=0.02 # 默认滑点 2%
MONITOR_POLL_INTERVAL=5000 # 轮询间隔(ms)
pnpm dev
访问 http://localhost:3000。
| 目标操作 | 跟单行为 |
|---|---|
| Open Position | 同池、同 tick 区间,按倍率缩放金额开仓,附带 referer memo |
| Add Liquidity | 通过 NFT 映射找到我方仓位,按倍率加仓 |
| Decrease Liquidity | 按目标减少量与我方流动性取较小值减仓 |
| Close Position | 全额减仓并关闭仓位,可选 swap 回 USDC |
我方USD = min(目标USD * 倍率, 最大USD)缩放比例 = 我方USD / 目标USDhttps://api2.byreal.io/byreal/api/dex/v2/position/liststatus=0),通过 nftMintAddress 匹配本地仓位(earnedUsd / totalDeposit / ageDays) * 365 * 100SQLite 存储于 data/copytrade.db,包含四张表:
| 参数 | 默认值 | 说明 |
|---|---|---|
| 跟单倍率 | 1.0 | 相对目标的金额倍数 |
| 最大 USD | 1000 | 单次操作上限 |
| 滑点 | 2% | 开仓/加仓 swap 滑点 |
| 轮询间隔 | 5000ms | 链上数据拉取频率 |
| 关仓换回 | 开启 | 关仓后是否 swap 回 USDC |
| Discord Webhook | 空 | Discord 通知 URL |
每个监控地址可单独覆盖倍率和最大 USD 设置。
docker build -t byreal-copy .
docker run -d --env-file .env.local -p 3000:3000 byreal-copy
注意:Dockerfile 不使用
pnpm-lock.yaml,避免依赖公司内网 registry 地址。
Private