harb/onchain/script/backtesting
openhands 297442083d fix: AttackRunner review findings — TVL accuracy, recenter capture, discovery ethValue
- **Bug**: `_positionEthValue` now sums both the ETH component and the KRK component
  (converted to ETH via `FullMath.mulDiv` at current sqrtPriceX96) so `lm_eth_total`
  correctly reflects LM TVL for all price ranges (below/in/above range).

- **Bug**: `recenter()` return value (`bool isUp` — price direction) is now captured in
  `_lastRecenterIsUp` state variable and emitted as `"recenter_is_up"` in every snapshot.
  Note: `recenter()` reverts on failure; `false` means price moved *down*, not a no-op.

- **Bug**: Discovery position now emits `"ethValue"` in its snapshot JSON object,
  matching the floor and anchor fields for symmetric automated parsing.

- **Warning**: `IStake.snatch` interface parameter renamed `taxRateIndex` → `taxRate` to
  match the actual `Stake.sol` signature (the value is a raw rate, not a lookup index).

- **Warning**: Unknown op codes in the JSONL file now emit a `console.log` warning
  instead of silently skipping, catching typos in attack sequences.

- **Nit**: `_setup()` now wraps 9 000 ETH (up from 1 000) to cover heavy buy sequences
  that would otherwise exhaust the adversary's WETH.

- **Nit**: `_computeVwapTick` documents the int128 overflow guard and its tick=0 sentinel
  meaning so callers can distinguish "VWAP unavailable" from tick zero.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 17:14:34 +00:00
..
attacks fix: Backtesting: replay red-team attack sequences against optimizer candidates (#536) 2026-03-11 02:08:06 +00:00
reports fix: Backtesting #6: Baseline strategies (HODL, full-range, fixed-width) + reporting (#320) 2026-02-27 13:08:53 +00:00
.gitignore fix: address review feedback on fetch-events.ts (#315) 2026-02-26 22:45:40 +00:00
AttackRunner.s.sol fix: AttackRunner review findings — TVL accuracy, recenter capture, discovery ethValue 2026-03-11 17:14:34 +00:00
BacktestKraiken.sol fix: Backtesting #4: Deploy KrAIken contracts + recenter execution loop (#318) 2026-02-27 09:00:22 +00:00
BacktestRunner.s.sol fix: address review feedback on BaselineStrategies and Reporter 2026-02-27 13:43:49 +00:00
BaselineStrategies.sol fix: address review feedback on BaselineStrategies and Reporter 2026-02-27 13:43:49 +00:00
EventReplayer.sol fix: No allowance set before \token0.transfer\ in swap callback (#339) 2026-02-28 12:14:20 +00:00
fetch-events.ts fix: address review feedback on fetch-events.ts (#315) 2026-02-26 22:45:40 +00:00
FormatLib.sol fix: address review feedback on PositionTracker and StrategyExecutor 2026-02-27 12:02:29 +00:00
KrAIkenDeployer.sol fix: Backtesting #5: Position tracking + P&L metrics (#319) 2026-02-27 11:23:18 +00:00
MockToken.sol fix: Backtesting #2: Foundry script skeleton + Uniswap V3 shadow pool deployment (#316) 2026-02-27 05:08:27 +00:00
package.json fix: Backtesting #1: Event fetcher (Infura → JSON Lines cache) (#315) 2026-02-26 22:04:43 +00:00
PositionTracker.sol fix: Backtesting #6: Baseline strategies (HODL, full-range, fixed-width) + reporting (#320) 2026-02-27 13:08:53 +00:00
Reporter.sol fix: address review feedback on BaselineStrategies and Reporter 2026-02-27 13:43:49 +00:00
ShadowPoolDeployer.sol fix: Backtesting #5: Position tracking + P&L metrics (#319) 2026-02-27 11:23:18 +00:00
StrategyExecutor.sol fix: address review feedback on PositionTracker and StrategyExecutor 2026-02-27 12:02:29 +00:00
tsconfig.json fix: Backtesting #1: Event fetcher (Infura → JSON Lines cache) (#315) 2026-02-26 22:04:43 +00:00