#!/usr/bin/env bash
set -euo pipefail

PROJECT_ROOT="${PROJECT_ROOT:-$(pwd)}"
cd "$PROJECT_ROOT"

POOL="0x5a7b4970b2610aee4776a6944d9f2171ee6060b0"
POOL_NAME="base_CHECK_USDC_2PCT_fresh"

TIME_FROM="${TIME_FROM:-2026-05-01T00:00:00Z}"
TIME_TO="${TIME_TO:-$(date -u +%Y-%m-%dT%H:%M:%SZ)}"

TS="$(date -u +%Y%m%dT%H%M%SZ)"
SAFE_FROM="$(echo "$TIME_FROM" | tr ':' '-' | tr -d 'Z')"
SAFE_TO="$(echo "$TIME_TO" | tr ':' '-' | tr -d 'Z')"

OUT_DIR="DEX_DATA/aerodrome_slipstream/${POOL_NAME}_${SAFE_FROM}_${SAFE_TO}"
TARGET_NPZ="DEX_DATA/fast_npz/base_CHECK_USDC_2PCT_fresh_fee_replay_v2.npz"
TMP_NPZ="DEX_DATA/fast_npz/_tmp/base_CHECK_USDC_2PCT_fresh_fee_replay_v2_${TS}.npz"
LOG_DIR="DEX_REPORTS/paper_live_check_static_85_0p5_336h_v1"

mkdir -p "$OUT_DIR" "$(dirname "$TMP_NPZ")" "$LOG_DIR"

echo "[check_update] pool=${POOL}"
echo "[check_update] window=${TIME_FROM} -> ${TIME_TO}"
echo "[check_update] out_dir=${OUT_DIR}"
echo "[check_update] tmp_npz=${TMP_NPZ}"
echo "[check_update] target_npz=${TARGET_NPZ}"

python3 dex_platform/data_collectors/fetch_aerodrome_slipstream_events_v2.py \
  --pool "$POOL" \
  --time-from "$TIME_FROM" \
  --time-to "$TIME_TO" \
  --out-dir "$OUT_DIR" \
  --rpc-url https://mainnet.base.org \
  --chunk-size 1000 \
  --min-chunk-size 100 \
  --sleep-s 0.5 \
  --attempts 8 \
  --events Swap,Mint,Burn,Collect \
  --no-parquet

EVENTS="$OUT_DIR/events_all.csv"

if [[ ! -s "$EVENTS" ]]; then
  echo "[fatal] events file missing/empty: $EVENTS"
  exit 2
fi

python3 dex_platform/data_collectors/build_cl_fee_replay_npz_v2.py \
  --events "$EVENTS" \
  --out-npz "$TMP_NPZ" \
  --pool-name base_CHECK_USDC_AERODROME_2PCT \
  --token0 USDC \
  --token1 CHECK \
  --dec0 6 \
  --dec1 18 \
  --quote-token token0 \
  --fee-rate 0.002515

if [[ ! -s "$TMP_NPZ" ]]; then
  echo "[fatal] tmp npz missing/empty: $TMP_NPZ"
  exit 3
fi

python3 scripts/check_check_npz_sanity_v1.py "$TMP_NPZ"

cp "$TARGET_NPZ" "${TARGET_NPZ}.bak_${TS}" 2>/dev/null || true
mv "$TMP_NPZ" "$TARGET_NPZ"

stat -c '[updated] %y %s %n' "$TARGET_NPZ"
