2026-03-15 22:04:13 +00:00
|
|
|
diff --git a/onchain/src/abstracts/ThreePositionStrategy.sol b/onchain/src/abstracts/ThreePositionStrategy.sol
|
2026-03-16 09:20:41 +00:00
|
|
|
index d3e2c0b..c8b011e 100644
|
2026-03-15 22:04:13 +00:00
|
|
|
--- a/onchain/src/abstracts/ThreePositionStrategy.sol
|
|
|
|
|
+++ b/onchain/src/abstracts/ThreePositionStrategy.sol
|
2026-03-16 09:20:41 +00:00
|
|
|
@@ -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.
|
2026-03-15 22:04:13 +00:00
|
|
|
- uint24 internal constant MAX_ANCHOR_WIDTH = 1233;
|
2026-03-16 09:20:41 +00:00
|
|
|
+ /// @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.
|
fix: feat: evolution-daemon.sh — perpetual evolution loop on DO box (#748)
- Add tools/push3-evolution/evolution-daemon.sh: single-command daemon that
runs git-pull → apply-patch → clean-tmpdirs → evolve.sh → summary →
notify → revert-patch → loop, handling SIGINT/SIGTERM cleanly.
- Add tools/push3-evolution/evolution.conf: config file (EVAL_MODE, BASE_RPC_URL,
POPULATION=20, GENERATIONS=30, MUTATION_RATE=1, ELITES=2, DIVERSE_SEEDS=true,
GAS_LIMIT=500000, ANCHOR_WIDTH_UNBOUNDED=true).
- Add tools/push3-evolution/evolution.patch: overrides CALCULATE_PARAMS_GAS_LIMIT
200k→500k in Optimizer.sol + FitnessEvaluator.t.sol, and removes
MAX_ANCHOR_WIDTH=100 cap in LiquidityManager.sol for unbounded AW exploration.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 17:21:51 +00:00
|
|
|
+ uint24 internal constant MAX_ANCHOR_WIDTH = type(uint24).max;
|
2026-03-16 08:53:33 +00:00
|
|
|
|
|
|
|
|
/// @notice The three liquidity position types
|
|
|
|
|
enum Stage {
|