more logic to lib
This commit is contained in:
parent
cf6b9fa381
commit
25fc4a4c4d
25 changed files with 5838 additions and 3464 deletions
|
|
@ -8,11 +8,11 @@ LOG_DIR="$STATE_DIR/logs"
|
|||
|
||||
ANVIL_PID_FILE="$STATE_DIR/anvil.pid"
|
||||
PONDER_PID_FILE="$STATE_DIR/ponder.pid"
|
||||
LANDING_PID_FILE="$STATE_DIR/landing.pid"
|
||||
WEBAPP_PID_FILE="$STATE_DIR/webapp.pid"
|
||||
|
||||
ANVIL_LOG="$LOG_DIR/anvil.log"
|
||||
PONDER_LOG="$LOG_DIR/ponder.log"
|
||||
LANDING_LOG="$LOG_DIR/landing.log"
|
||||
WEBAPP_LOG="$LOG_DIR/webapp.log"
|
||||
SETUP_LOG="$LOG_DIR/setup.log"
|
||||
|
||||
FORK_URL=${FORK_URL:-"https://sepolia.base.org"}
|
||||
|
|
@ -37,7 +37,7 @@ SKIP_CLEANUP=false
|
|||
COMMAND="start"
|
||||
|
||||
cleanup() {
|
||||
stop_process "Frontend" "$LANDING_PID_FILE"
|
||||
stop_process "Frontend" "$WEBAPP_PID_FILE"
|
||||
stop_process "Ponder" "$PONDER_PID_FILE"
|
||||
stop_process "Anvil" "$ANVIL_PID_FILE"
|
||||
|
||||
|
|
@ -109,6 +109,22 @@ start_directories() {
|
|||
mkdir -p "$LOG_DIR"
|
||||
}
|
||||
|
||||
ensure_dependencies() {
|
||||
if [[ ! -d "$ROOT_DIR/ponder/node_modules" ]]; then
|
||||
log "Installing ponder dependencies"
|
||||
pushd "$ROOT_DIR/ponder" >/dev/null
|
||||
npm install >>"$SETUP_LOG" 2>&1
|
||||
popd >/dev/null
|
||||
fi
|
||||
|
||||
if [[ ! -d "$ROOT_DIR/web-app/node_modules" ]]; then
|
||||
log "Installing web-app dependencies"
|
||||
pushd "$ROOT_DIR/web-app" >/dev/null
|
||||
npm install >>"$SETUP_LOG" 2>&1
|
||||
popd >/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
start_anvil() {
|
||||
if [[ -f "$ANVIL_PID_FILE" ]]; then
|
||||
log "Anvil already running (pid $(cat "$ANVIL_PID_FILE"))"
|
||||
|
|
@ -133,15 +149,17 @@ deploy_protocol() {
|
|||
}
|
||||
|
||||
extract_addresses() {
|
||||
local run_file="$ROOT_DIR/onchain/broadcast/DeployLocal.sol/84532/run-latest.json"
|
||||
if [[ ! -f "$run_file" ]]; then
|
||||
log "Deployment artifact not found: $run_file"
|
||||
local run_file
|
||||
run_file="$(ls -t "$ROOT_DIR/onchain/broadcast/DeployLocal.sol"/*/run-latest.json 2>/dev/null | head -n1)"
|
||||
if [[ -z "$run_file" || ! -f "$run_file" ]]; then
|
||||
log "Deployment artifact not found under onchain/broadcast/DeployLocal.sol"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LIQUIDITY_MANAGER="$(jq -r '.transactions[] | select(.contractName=="LiquidityManager") | .contractAddress' "$run_file" | head -n1)"
|
||||
KRAIKEN="$(jq -r '.transactions[] | select(.contractName=="Kraiken") | .contractAddress' "$run_file" | head -n1)"
|
||||
STAKE="$(jq -r '.transactions[] | select(.contractName=="Stake") | .contractAddress' "$run_file" | head -n1)"
|
||||
log "Using deployment artifact: ${run_file#$ROOT_DIR/}"
|
||||
|
||||
if [[ -z "$LIQUIDITY_MANAGER" || "$LIQUIDITY_MANAGER" == "null" ]]; then
|
||||
log "Failed to extract LiquidityManager address"
|
||||
|
|
@ -151,6 +169,23 @@ extract_addresses() {
|
|||
echo "LIQUIDITY_MANAGER=$LIQUIDITY_MANAGER" >"$STATE_DIR/contracts.env"
|
||||
echo "KRAIKEN=$KRAIKEN" >>"$STATE_DIR/contracts.env"
|
||||
echo "STAKE=$STAKE" >>"$STATE_DIR/contracts.env"
|
||||
|
||||
# Get deployment block number
|
||||
local deploy_block
|
||||
deploy_block="$(jq -r '.receipts[0].blockNumber' "$run_file" | xargs printf "%d")"
|
||||
|
||||
# Create .env.local for Ponder with deployed addresses
|
||||
cat > "$ROOT_DIR/ponder/.env.local" <<EOF
|
||||
# Auto-generated by local_env.sh
|
||||
PONDER_NETWORK=local
|
||||
KRAIKEN_ADDRESS=$KRAIKEN
|
||||
STAKE_ADDRESS=$STAKE
|
||||
START_BLOCK=$deploy_block
|
||||
# Use PostgreSQL connection
|
||||
DATABASE_URL=postgresql://ponder:ponder_local@localhost/ponder_local
|
||||
DATABASE_SCHEMA=ponder_local_${deploy_block}
|
||||
EOF
|
||||
log "Created Ponder .env.local with deployed addresses and block $deploy_block"
|
||||
}
|
||||
|
||||
source_addresses() {
|
||||
|
|
@ -212,16 +247,16 @@ start_ponder() {
|
|||
}
|
||||
|
||||
start_frontend() {
|
||||
if [[ -f "$LANDING_PID_FILE" ]]; then
|
||||
log "Frontend already running (pid $(cat "$LANDING_PID_FILE"))"
|
||||
if [[ -f "$WEBAPP_PID_FILE" ]]; then
|
||||
log "Frontend already running (pid $(cat "$WEBAPP_PID_FILE"))"
|
||||
return
|
||||
fi
|
||||
|
||||
log "Starting frontend (Vite dev server)"
|
||||
pushd "$ROOT_DIR/landing" >/dev/null
|
||||
npm run dev -- --host 0.0.0.0 --port 5173 >"$LANDING_LOG" 2>&1 &
|
||||
pushd "$ROOT_DIR/web-app" >/dev/null
|
||||
npm run dev -- --host 0.0.0.0 --port 5173 >"$WEBAPP_LOG" 2>&1 &
|
||||
popd >/dev/null
|
||||
echo $! >"$LANDING_PID_FILE"
|
||||
echo $! >"$WEBAPP_PID_FILE"
|
||||
|
||||
wait_for_http "$FRONTEND_URL"
|
||||
}
|
||||
|
|
@ -229,12 +264,13 @@ start_frontend() {
|
|||
start_environment() {
|
||||
ensure_tools
|
||||
start_directories
|
||||
ensure_dependencies
|
||||
start_anvil
|
||||
deploy_protocol
|
||||
extract_addresses
|
||||
bootstrap_liquidity_manager
|
||||
prepare_application_state
|
||||
start_ponder
|
||||
start_ponder # Re-enabled with PostgreSQL
|
||||
start_frontend
|
||||
}
|
||||
|
||||
|
|
@ -250,7 +286,7 @@ start_and_wait() {
|
|||
log " Frontend: $FRONTEND_URL"
|
||||
log "Press Ctrl+C to shut everything down"
|
||||
|
||||
wait "$(cat "$ANVIL_PID_FILE")" "$(cat "$PONDER_PID_FILE")" "$(cat "$LANDING_PID_FILE")"
|
||||
wait "$(cat "$ANVIL_PID_FILE")" "$(cat "$PONDER_PID_FILE")" "$(cat "$WEBAPP_PID_FILE")"
|
||||
}
|
||||
|
||||
stop_environment() {
|
||||
|
|
@ -306,7 +342,7 @@ status_environment() {
|
|||
|
||||
service_status "Anvil" "$ANVIL_PID_FILE" "$ANVIL_LOG"
|
||||
service_status "Ponder" "$PONDER_PID_FILE" "$PONDER_LOG"
|
||||
service_status "Frontend" "$LANDING_PID_FILE" "$LANDING_LOG"
|
||||
service_status "Frontend" "$WEBAPP_PID_FILE" "$WEBAPP_LOG"
|
||||
|
||||
if [[ -f "$STATE_DIR/contracts.env" ]]; then
|
||||
printf '\nContracts:\n'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue