#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" PYTHON="${PYTHON:-python3}" PORTAL_RAW="${REPO_ROOT}/data/raw_arbitrum_portal_projects.json" PORTAL_URL="https://portal-data.arbitrum.io/api/projects" SKIP_PORTAL_FETCH="${SKIP_PORTAL_FETCH:-0}" pull_portal_catalogue() { local tmp_file tmp_file="$(mktemp "${PORTAL_RAW}.XXXXXX")" echo "Pulling Arbitrum Portal catalogue..." if ! curl -fLs "${PORTAL_URL}" -o "${tmp_file}"; then rm -f "${tmp_file}" echo "Failed to download Portal data from ${PORTAL_URL}" >&2 exit 1 fi mv "${tmp_file}" "${PORTAL_RAW}" } if [[ "${SKIP_PORTAL_FETCH}" != "1" ]]; then mkdir -p "$(dirname "${PORTAL_RAW}")" pull_portal_catalogue elif [[ ! -f "${PORTAL_RAW}" ]]; then echo "SKIP_PORTAL_FETCH=1 set but ${PORTAL_RAW} missing; cannot proceed." >&2 exit 1 else echo "Skipping Portal catalogue download (SKIP_PORTAL_FETCH=1)." fi echo "Pulling DeFiLlama exchange snapshot..." "${PYTHON}" "${REPO_ROOT}/docs/5_development/mev_research/datasets/pull_llama_exchange_snapshot.py" echo "Refreshing exchange datasets..." "${PYTHON}" "${REPO_ROOT}/docs/5_development/mev_research/datasets/update_exchange_datasets.py" echo "Refreshing lending and bridge datasets..." "${PYTHON}" "${REPO_ROOT}/docs/5_development/mev_research/datasets/update_market_datasets.py" echo "MEV research datasets refreshed successfully."