fix(discovery): use layout-descriptor offsets for all V1-family engine parsing#185
fix(discovery): use layout-descriptor offsets for all V1-family engine parsing#1850x-SquidSol wants to merge 1 commit intodcccrypto:mainfrom
Conversation
…e parsing parseEngineLight's layout-driven branch was gated on V_ADL-specific constants (engineOff===624 && accountSize===312). V12.1 SBF/HOST, V_SETDEXPOOL, V1M2, V1, V1D, and V1M all fell through to the V1 hardcoded fallback which had wrong offsets (24-byte shift from markPrice onward, and completely wrong for non-V1 layouts). Widened guard to layout !== null (V0/V2 return early before this point). Added >= 0 guards on all 10 engine fields that V12.1 SBF sets to -1 (fundingIndex, lastFundingSlot, totalOi, insurance isolation, LP aggregates, etc.). This makes the branch safe for ANY layout descriptor, including future versions. The V1 hardcoded fallback is replaced with a defensive throw for the unreachable null-layout case. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 51 minutes and 28 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
parseEngineLight's layout-driven branch was gated on V_ADL-specific constants (engineOff===624 && accountSize===312)engineOff=616, accountSize=280), V12.1 HOST, V_SETDEXPOOL, V1M2, V1, V1D, V1M all fell through to the V1 hardcoded fallback with wrong offsets (24-byte shift from markPrice onward, and completely wrong for non-V1 layouts)layout !== nullwould crash on V12.1 SBF slabs (reading atbase + (-1))buildLayout*()helper — no new branch in parseEngineLightTest plan
🤖 Generated with Claude Code