harb/onchain/src
openhands e28e69c98a fix: guard int128 overflow in ThreePositionStrategy mirror tick (#622)
Move overflow guard to the actual vulnerable site:
ThreePositionStrategy._computeFloorTickWithSignal() line 262 where
vwapX96 >> 32 is cast to int128 for _tickAtPriceRatio. Values
exceeding int128.max now skip mirror tick (fallback to scarcity/clamp)
instead of reverting.

Remove incorrect require from Optimizer._buildInputs() which guarded
a non-existent int256 cast path.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 02:46:30 +00:00
..
abstracts fix: guard int128 overflow in ThreePositionStrategy mirror tick (#622) 2026-03-20 02:46:30 +00:00
helpers Add Solidity linting with solhint, Foundry formatter, and pre-commit hooks (#51) 2025-10-04 15:17:09 +02:00
interfaces beautified 2025-07-08 10:33:10 +02:00
libraries feat: OptimizerV3 with direct 2D staking-to-LP parameter mapping 2026-02-13 18:21:18 +00:00
IOptimizer.sol fix: Bear defaults duplicated across Optimizer and LiquidityManager (#646) 2026-03-19 18:22:43 +00:00
Kraiken.sol fix: add symmetric InvalidAddress guard to setLiquidityManager (#935) 2026-03-18 09:45:43 +00:00
LiquidityManager.sol fix: _scrapePositions: unguarded safeTransfer to address(0) when feeDestination unset (#624) 2026-03-20 01:05:05 +00:00
Optimizer.sol fix: guard int128 overflow in ThreePositionStrategy mirror tick (#622) 2026-03-20 02:46:30 +00:00
OptimizerV3.sol fix: OptimizerV3 / OptimizerV3Push3 not explicitly typed against IOptimizer (#661) 2026-03-14 05:08:32 +00:00
OptimizerV3Push3.sol fix: No negative-mantissa guard in OptimizerV3Push3 (#650) (#966) 2026-03-19 11:30:18 +01:00
Stake.sol fix: Stake.sol: exitPosition guard order (owner check before existence) (#307) 2026-02-27 06:33:32 +00:00
VWAPTracker.sol fix: fix: Restore proper VWAP — gas-efficient volume-weighted pricing (revert TWAP) (#603) 2026-03-12 08:50:07 +00:00