From f5fdd329c4e0c5524e8c591a1065cc0d43b893e8 Mon Sep 17 00:00:00 2001 From: openhands Date: Sun, 15 Mar 2026 08:20:13 +0000 Subject: [PATCH 1/3] fix: ThreePositionStrategy class comment still advertises 1-100% anchor width (#786) Remove the misleading "(1-100% width)" range claim from the ANCHOR NatSpec. Anchor width enforcement lives in LiquidityManager, not this abstract, so the comment is replaced with a note pointing to where enforcement actually occurs. Co-Authored-By: Claude Sonnet 4.6 --- onchain/src/abstracts/ThreePositionStrategy.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/onchain/src/abstracts/ThreePositionStrategy.sol b/onchain/src/abstracts/ThreePositionStrategy.sol index 049d69b..46e0a6a 100644 --- a/onchain/src/abstracts/ThreePositionStrategy.sol +++ b/onchain/src/abstracts/ThreePositionStrategy.sol @@ -14,7 +14,7 @@ import "@uniswap-v3-core/interfaces/IUniswapV3Pool.sol"; * @dev Provides the core logic for anti-arbitrage asymmetric slippage profile * * Three-Position Strategy: - * - ANCHOR: Near current price, fast price discovery (1-100% width) + * - ANCHOR: Near current price, fast price discovery (width enforced by LiquidityManager) * - DISCOVERY: Borders anchor, captures fees (11000 tick spacing) * - FLOOR: Deep liquidity at VWAP-adjusted prices * From 6dd246cb55a6af45735473aa91a62a221cfc0494 Mon Sep 17 00:00:00 2001 From: openhands Date: Sun, 15 Mar 2026 08:20:22 +0000 Subject: [PATCH 2/3] fix: ThreePositionStrategy class comment still advertises 1-100% anchor width (#786) --- STATE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/STATE.md b/STATE.md index 37a1db7..238b5a9 100644 --- a/STATE.md +++ b/STATE.md @@ -47,3 +47,4 @@ - [2026-03-15] red-team.sh and export-attacks.py use Base Sepolia addresses labeled as mainnet (#794): replace Sepolia SWAP_ROUTER and V3_FACTORY with correct Base mainnet addresses; add Basescan source-link comments - [2026-03-15] evo_run007_champion.push3 always returns fixed params regardless of staking (#791) - [2026-03-15] evo_run007_champion.push3 note has same CI/DD inversion (#790) +- [2026-03-15] ThreePositionStrategy class comment still advertises 1-100% anchor width (#786) From d3917c551f251e05bb13ecde25ca0160dc467cc1 Mon Sep 17 00:00:00 2001 From: openhands Date: Sun, 15 Mar 2026 08:51:12 +0000 Subject: [PATCH 3/3] fix: ThreePositionStrategy class comment still advertises 1-100% anchor width (#786) - Fix class-level NatSpec: use accurate wording (width computed from anchorWidth param provided by Optimizer) instead of imprecise LiquidityManager attribution - Fix inline comment in _setAnchorPosition (same stale 1-100% claim) - Update PRODUCT-TRUTH.md and ARCHITECTURE.md which had the same incorrect 1-100% range claim Co-Authored-By: Claude Sonnet 4.6 --- docs/ARCHITECTURE.md | 2 +- docs/PRODUCT-TRUTH.md | 2 +- onchain/src/abstracts/ThreePositionStrategy.sol | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index a7beb84..ef4ff95 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -45,7 +45,7 @@ All managed by LiquidityManager via ThreePositionStrategy abstract: | Position | Purpose | Behavior | |----------|---------|----------| | **Floor** | Safety net | Deep liquidity at VWAP-adjusted prices | -| **Anchor** | Price discovery | Near current price, 1-100% width | +| **Anchor** | Price discovery | Near current price, width set by Optimizer | | **Discovery** | Fee capture | Borders anchor, ~3x price range (11000 tick spacing) | **Recenter** = atomic repositioning of all three positions. Triggered by anyone, automated by txnBot. diff --git a/docs/PRODUCT-TRUTH.md b/docs/PRODUCT-TRUTH.md index cdffa8e..a84362c 100644 --- a/docs/PRODUCT-TRUTH.md +++ b/docs/PRODUCT-TRUTH.md @@ -79,7 +79,7 @@ The three-position structure creates **asymmetric slippage** — buys push the p ✅ **Can say:** - Three positions: Floor, Anchor, Discovery - Floor: deep liquidity at VWAP-adjusted prices (safety net) -- Anchor: near current price, fast price discovery (1-100% width) +- Anchor: near current price, fast price discovery (width set by Optimizer) - Discovery: borders anchor, wide range (~3x current price) - The optimizer adjusts position parameters based on sentiment - "Recenter" = atomic repositioning of all liquidity in one transaction diff --git a/onchain/src/abstracts/ThreePositionStrategy.sol b/onchain/src/abstracts/ThreePositionStrategy.sol index 46e0a6a..7bab68a 100644 --- a/onchain/src/abstracts/ThreePositionStrategy.sol +++ b/onchain/src/abstracts/ThreePositionStrategy.sol @@ -14,7 +14,7 @@ import "@uniswap-v3-core/interfaces/IUniswapV3Pool.sol"; * @dev Provides the core logic for anti-arbitrage asymmetric slippage profile * * Three-Position Strategy: - * - ANCHOR: Near current price, fast price discovery (width enforced by LiquidityManager) + * - ANCHOR: Near current price, fast price discovery (width computed from anchorWidth param provided by Optimizer) * - DISCOVERY: Borders anchor, captures fees (11000 tick spacing) * - FLOOR: Deep liquidity at VWAP-adjusted prices * @@ -104,7 +104,7 @@ abstract contract ThreePositionStrategy is UniswapMath, VWAPTracker { internal returns (uint256 pulledKraiken, uint128 anchorLiquidity) { - // Enforce anchor range of 1% to 100% of the price + // Compute anchor spacing from anchorWidth param (range enforcement is the Optimizer's responsibility) int24 anchorSpacing = TICK_SPACING + (34 * int24(params.anchorWidth) * TICK_SPACING / 100); int24 tickLower = _clampToTickSpacing(currentTick - anchorSpacing, TICK_SPACING);