Commit aadea01
fix: v11.26 spec compliance — flat-close guard, fee-neutral risk-reducing, constants
v11.26 change aeyakovenko#2 — Flat-close guard uses Eq_maint_raw_i >= 0:
enforce_one_side_margin now checks account_equity_maint_raw_wide >= 0
for flat exits, not just pnl >= 0. Prevents flat exit with negative
net wealth from fee debt (C + PNL - FeeDebt < 0).
TDD: proof_v1126_flat_close_uses_eq_maint_raw (19s, PASS)
v11.26 change #1 — Fee-neutral risk-reducing exemption:
Buffer comparison now adds fee back: (Eq_maint_raw_post + fee) - MM_req_post.
Also enforces shortfall guard: min(Eq_maint_raw_post + fee, 0) >= min(pre, 0).
Pure fee friction no longer blocks genuine de-risking trades.
TDD: proof_v1126_risk_reducing_fee_neutral (18s, 1/1 cover)
Other fixes:
- MAX_TRADE_SIZE_Q: 200T → MAX_POSITION_ABS_Q (100T) per spec §1.4
- liquidate_at_oracle OI assertion now unconditional per spec §10.6 step 10
- enforce_one_side_margin takes fee parameter for fee-neutral comparison
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 9feedae commit aadea01
2 files changed
Lines changed: 167 additions & 30 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
61 | | - | |
| 61 | + | |
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| |||
2402 | 2402 | | |
2403 | 2403 | | |
2404 | 2404 | | |
2405 | | - | |
| 2405 | + | |
2406 | 2406 | | |
2407 | 2407 | | |
2408 | 2408 | | |
| |||
2486 | 2486 | | |
2487 | 2487 | | |
2488 | 2488 | | |
| 2489 | + | |
2489 | 2490 | | |
2490 | | - | |
2491 | | - | |
| 2491 | + | |
| 2492 | + | |
2492 | 2493 | | |
2493 | 2494 | | |
2494 | 2495 | | |
| |||
2499 | 2500 | | |
2500 | 2501 | | |
2501 | 2502 | | |
| 2503 | + | |
2502 | 2504 | | |
2503 | 2505 | | |
2504 | | - | |
2505 | | - | |
| 2506 | + | |
| 2507 | + | |
| 2508 | + | |
| 2509 | + | |
2506 | 2510 | | |
2507 | 2511 | | |
2508 | 2512 | | |
| |||
2531 | 2535 | | |
2532 | 2536 | | |
2533 | 2537 | | |
2534 | | - | |
2535 | | - | |
2536 | | - | |
2537 | | - | |
2538 | | - | |
2539 | | - | |
2540 | | - | |
2541 | | - | |
| 2538 | + | |
| 2539 | + | |
| 2540 | + | |
| 2541 | + | |
2542 | 2542 | | |
2543 | | - | |
| 2543 | + | |
| 2544 | + | |
| 2545 | + | |
| 2546 | + | |
| 2547 | + | |
| 2548 | + | |
| 2549 | + | |
| 2550 | + | |
| 2551 | + | |
| 2552 | + | |
| 2553 | + | |
| 2554 | + | |
2544 | 2555 | | |
2545 | 2556 | | |
2546 | 2557 | | |
2547 | 2558 | | |
2548 | | - | |
2549 | | - | |
2550 | | - | |
2551 | | - | |
2552 | | - | |
2553 | | - | |
2554 | | - | |
2555 | | - | |
2556 | 2559 | | |
2557 | | - | |
2558 | | - | |
2559 | | - | |
| 2560 | + | |
| 2561 | + | |
| 2562 | + | |
| 2563 | + | |
| 2564 | + | |
| 2565 | + | |
| 2566 | + | |
| 2567 | + | |
| 2568 | + | |
| 2569 | + | |
| 2570 | + | |
| 2571 | + | |
| 2572 | + | |
| 2573 | + | |
2560 | 2574 | | |
2561 | 2575 | | |
2562 | 2576 | | |
| |||
2630 | 2644 | | |
2631 | 2645 | | |
2632 | 2646 | | |
2633 | | - | |
2634 | | - | |
2635 | | - | |
2636 | | - | |
| 2647 | + | |
| 2648 | + | |
| 2649 | + | |
2637 | 2650 | | |
2638 | 2651 | | |
2639 | 2652 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1170 | 1170 | | |
1171 | 1171 | | |
1172 | 1172 | | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
0 commit comments