245b85ad27
Co-authored-by: Cursor <cursoragent@cursor.com>
2.8 KiB
2.8 KiB
账户流水(三所统一)
从交易所 API拉取资金账户与交易账户账单,在实例内展示。
不使用程序本地 transfer_logs 作为主数据源。
能力概览
| 项 | 说明 |
|---|---|
| 导航 | 「账户流水」Tab;默认关闭,在 系统设置 → 导航显示 打开 |
| Tab | 资金账户 / 交易账户 |
| 分页 | 每页 10 条,时间倒序 |
| 时间窗 | 跟随顶栏 UTC 预设(与列表 list_window 一致) |
| 同步 | 后台约 120s 拉一次交易所;完成后 SSE 推版本,前端自动刷新 |
| 币种 | USDT;OKX 另含 USDC |
| 三所 | Binance / OKX / Gate 同一套 UI 与路由 |
使用
- 系统设置 → 导航显示 → 勾选「账户流水」→ 保存
- 顶栏选预设时间并点「应用」
- 打开「账户流水」,切换资金/交易 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 说明;安全复查子代理结论:修复后无未关闭的中高危项。