245b85ad27
Co-authored-by: Cursor <cursoragent@cursor.com>
72 lines
2.8 KiB
Markdown
72 lines
2.8 KiB
Markdown
# 账户流水(三所统一)
|
||
|
||
从**交易所 API**拉取资金账户与交易账户账单,在实例内展示。
|
||
不使用程序本地 `transfer_logs` 作为主数据源。
|
||
|
||
## 能力概览
|
||
|
||
| 项 | 说明 |
|
||
|----|------|
|
||
| 导航 | 「账户流水」Tab;默认关闭,在 **系统设置 → 导航显示** 打开 |
|
||
| Tab | **资金账户** / **交易账户** |
|
||
| 分页 | 每页 10 条,时间倒序 |
|
||
| 时间窗 | 跟随顶栏 UTC **预设**(与列表 `list_window` 一致) |
|
||
| 同步 | 后台约 **120s** 拉一次交易所;完成后 **SSE** 推版本,前端自动刷新 |
|
||
| 币种 | USDT;OKX 另含 **USDC** |
|
||
| 三所 | Binance / OKX / Gate 同一套 UI 与路由 |
|
||
|
||
## 使用
|
||
|
||
1. 系统设置 → 导航显示 → 勾选「账户流水」→ 保存
|
||
2. 顶栏选预设时间并点「应用」
|
||
3. 打开「账户流水」,切换资金/交易 Tab;可点「立即同步」
|
||
|
||
## API
|
||
|
||
| 路由 | 说明 |
|
||
|------|------|
|
||
| `GET /api/account_ledger?account=funding\|trading&page=1` | 按当前 session 时间窗分页查询缓存 |
|
||
| `GET /api/account_ledger/stream` | SSE,`event: ledger`,载荷含 `ledger_version` |
|
||
| `POST /api/account_ledger/refresh` | 手动触发同步(有冷却,默认 30s) |
|
||
|
||
均需登录(与实例其他 API 相同)。
|
||
|
||
## 交易所数据源
|
||
|
||
| 所 | 资金账户 | 交易账户 |
|
||
|----|----------|----------|
|
||
| Gate | spot `account_book`(USDT) | USDT 永续 `account_book` |
|
||
| OKX | `asset/bills`(USDT+USDC) | `account/bills` + `bills-archive`(USDT+USDC) |
|
||
| Binance | 充提 + `fetch_transfers`(USDT) | U 本位 `fapi` income(USDT) |
|
||
|
||
后台默认回看 **90 天**(`ACCOUNT_LEDGER_LOOKBACK_DAYS`),写入本地 SQLite 缓存后再按顶栏时间窗过滤展示。
|
||
「全部 / 近 6 月」等超出回看窗口的部分,仅能看到缓存内数据。
|
||
|
||
## 环境变量(可选)
|
||
|
||
| 变量 | 默认 | 说明 |
|
||
|------|------|------|
|
||
| `ACCOUNT_LEDGER_POLL_SEC` | `120` | 后台轮询秒数 |
|
||
| `ACCOUNT_LEDGER_LOOKBACK_DAYS` | `90` | 拉取与手动同步上限天数 |
|
||
| `ACCOUNT_LEDGER_MANUAL_COOLDOWN_SEC` | `30` | 手动同步冷却 |
|
||
| `ACCOUNT_LEDGER_SSE_HEARTBEAT_SEC` | `25` | SSE 心跳 |
|
||
|
||
## 代码位置
|
||
|
||
```
|
||
lib/account_ledger/ # DB / 同步 / SSE / 注册 / 面板
|
||
lib/exchange/*_ledger_lib.py # 三所拉取适配
|
||
lib/common/static/account_ledger.js
|
||
```
|
||
|
||
三所 `app.py` 调用:`install_account_ledger(..., exchange_key=...)`。
|
||
|
||
## 审计摘要(2026-08-10)
|
||
|
||
- 路由均 `@login_required`;SSE 仅推版本号,不含账单正文
|
||
- SQL 参数化;`account` 白名单;币种服务端固定
|
||
- 前端表格字段 `escapeHtml`
|
||
- **已修复**:手动同步强制套用 lookback 上限 + 冷却,避免滥用刷交易所 API
|
||
|
||
详见同目录旁注或 PR 说明;安全复查子代理结论:修复后无未关闭的中高危项。
|