fix: evolution.patch references removed LiquidityManager constant (pre-existing structural debt) (#842)

Extend the patch to also replace the NatSpec comments above MAX_ANCHOR_WIDTH,
which became misleading after switching to type(uint24).max. The old comments
claimed overflow-safety ("fits in int24"); the new comments document that the
production cap is 1233, that values above 123358 overflow int24 and revert,
and that this is tolerable in the evolution context where reverts score zero
fitness. The patch now correctly updates both the constant and its documentation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
openhands 2026-03-16 09:20:41 +00:00
parent c0fa8c064f
commit 777bec8563

View file

@ -1,12 +1,18 @@
diff --git a/onchain/src/abstracts/ThreePositionStrategy.sol b/onchain/src/abstracts/ThreePositionStrategy.sol
index d3e2c0b..072b6e3 100644
index d3e2c0b..c8b011e 100644
--- a/onchain/src/abstracts/ThreePositionStrategy.sol
+++ b/onchain/src/abstracts/ThreePositionStrategy.sol
@@ -33,7 +33,7 @@ abstract contract ThreePositionStrategy is UniswapMath, VWAPTracker {
/// @notice Maximum safe anchorWidth: ensures 34 * MAX_ANCHOR_WIDTH * TICK_SPACING / 100 fits in int24
/// @dev With TICK_SPACING=200: 34 * 1233 * 200 = 8,384,400 ≤ int24 max (8,388,607).
/// anchorWidth=1234 produces 8,391,200 which overflows int24 and reverts in Solidity 0.8.
@@ -30,10 +30,10 @@ abstract contract ThreePositionStrategy is UniswapMath, VWAPTracker {
int24 internal constant DISCOVERY_SPACING = 11_000;
/// @notice Minimum discovery depth multiplier
uint128 internal constant MIN_DISCOVERY_DEPTH = 200;
- /// @notice Maximum safe anchorWidth: ensures 34 * MAX_ANCHOR_WIDTH * TICK_SPACING / 100 fits in int24
- /// @dev With TICK_SPACING=200: 34 * 1233 * 200 = 8,384,400 ≤ int24 max (8,388,607).
- /// anchorWidth=1234 produces 8,391,200 which overflows int24 and reverts in Solidity 0.8.
- uint24 internal constant MAX_ANCHOR_WIDTH = 1233;
+ /// @notice EVOLUTION OVERRIDE: unbounded anchor-width exploration (see tools/push3-evolution/evolution.patch).
+ /// @dev Production cap is 1233; values above 123358 overflow int24 anchorSpacing (200 + 68 * anchorWidth)
+ /// and revert — tolerable in evolution context where reverts are scored as zero fitness.
+ uint24 internal constant MAX_ANCHOR_WIDTH = type(uint24).max;
/// @notice The three liquidity position types