Files
crypto_okx/docs/修复报告-高危-2026-10-07.md
T

56 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 修复报告:期权币本位高危缺陷(2026-10-07)
## 1. 目标
按审计清单修复全部 **Critical / High** 项,本地测试 + 不少于两轮审计后,再通知更新实例。
## 2. 修复对照表
| 原问题 | 修复要点 | 主要文件 |
| --- | --- | --- |
| 买币增量≤0 误用整户余额 | 短重试取增量;仅用订单回执 `coin_bought`;否则回滚 | `options_coin_open_lib.py` |
| IOC 部分成交 / 51008 减半残留币 | `_sell_excess_bridge_coin` 按桥买入量封顶卖掉多余币 | `options_coin_open_lib.py` |
| 卖回扫光无关余额 | `spot_market_sell_coin_to_usdt` 尊重 `coin_amount`;桥卖按 `coin_bought` 封顶 | `options_spot_bridge_lib.py`, `sim/hooks.py` |
| 粉尘桥 `None` 拦开仓 | 用桥记录量判断粉尘;开仓前清桥 + 扫尾;holding 仅在确认无仓时清 | `options_spot_bridge_lib.py`, `options_coin_open_lib.py` |
| 握库拉盘口 | 持仓/历史:先读库再 enrich;中控快照关闭 close_preview | `options_positions_lib.py`, `options_history_lib.py`, `options_hub_lib.py` |
| 条件单嵌套开仓锁库 | `run_cond_orders_tick(get_db)`,开仓前关连接 | `options_cond_order_lib.py`, `options_register.py`, `options_monitor_lib.py` |
| 目标/翻倍握库平仓 | 传 `get_db`,收集任务后无连接再 `close_fn` | `options_target_lib.py`, `options_profit_exit_lib.py`, `options_monitor_lib.py` |
| 开仓等成交握库 | 等成交前 `commit+close`,结束后再开短连接写库 | `options_coin_open_lib.py` |
| 模拟到期卖币静默失败 | 打印 `[sim_expiry_sell]` 日志 | `sim/broker_lib.py` |
| 中控条件单不验上限 | 创建前调用 `option_position_limit_block_msg` | `hub_bridge_register.py` |
| 持仓查询失败误卖 | `None`/异常不卖币,只清粉尘 pending | `options_coin_open_lib.py` |
| 查询失败误关 holding | `positions_ok` 为假时不关 holding | `options_spot_bridge_lib.py` |
| 回滚卖币无封顶 | 回滚按桥 `coin_bought` 封顶 | `options_spot_bridge_lib.py` |
## 3. 测试
新增:`tests/test_spot_dust_and_sell_cap.py`
已跑通:
- `tests.test_spot_dust_and_sell_cap`
- `tests.test_options_partial_close_accum`
- `tests.test_options_profit_exit_recycle`
- `tests.test_options_btc_pnl_usdt`
## 4. 审计轮次
| 轮次 | 结果 |
| --- | --- |
| 修复前 | 多条 Critical/High(见审计报告 §3) |
| 第 1 轮 Bugbot | 2 High → 已修 |
| 第 2 轮 Bugbot + 人工 | 无确认残留 High/Critical |
详见:`docs/审计报告-高危修复-2026-10-07.md`
## 5. 部署建议
1. 推送本仓库后,对**所有实例**(含模拟盘「波段-复利」)远程更新并重启
2. 验证:中控平仓后自动卖回;粉尘不再显示/不拦开仓;模拟盘不再频繁「数据库锁定」
3. 若仍见旧 pending 桥:开仓流程会自动清粉尘;或重启后再试一次开仓
## 6. 未改(有意保留)
- 永续监控 `check_order_monitors` 长连接(Medium,非本次高危范围)
- 粉尘仍会留在交易所账户内,仅程序忽略展示与重试