better backend comms

This commit is contained in:
johba 2025-09-24 09:41:28 +02:00
parent d0e8623cf9
commit 02a057622c
17 changed files with 1054 additions and 134 deletions

View file

@ -24,6 +24,7 @@ ANVIL_RPC="http://127.0.0.1:8545"
GRAPHQL_HEALTH="http://127.0.0.1:42069/health"
GRAPHQL_ENDPOINT="http://127.0.0.1:42069/graphql"
FRONTEND_URL="http://127.0.0.1:5173"
LOCAL_TXNBOT_URL="http://127.0.0.1:43069"
FOUNDRY_BIN=${FOUNDRY_BIN:-"$HOME/.foundry/bin"}
FORGE="$FOUNDRY_BIN/forge"
@ -172,8 +173,15 @@ ensure_dependencies() {
start_anvil() {
if [[ -f "$ANVIL_PID_FILE" ]]; then
log "Anvil already running (pid $(cat "$ANVIL_PID_FILE"))"
return
local existing_pid
existing_pid="$(cat "$ANVIL_PID_FILE")"
if kill -0 "$existing_pid" 2>/dev/null; then
log "Anvil already running (pid $existing_pid)"
return
fi
log "Found stale Anvil pid file (pid $existing_pid); restarting Anvil"
rm -f "$ANVIL_PID_FILE"
fi
log "Starting Anvil (forking $FORK_URL)"
@ -266,6 +274,16 @@ bootstrap_liquidity_manager() {
log "Calling recenter()"
"$CAST" send --rpc-url "$ANVIL_RPC" --private-key "$DEPLOYER_PK" \
"$LIQUIDITY_MANAGER" "recenter()" >>"$SETUP_LOG" 2>&1
if [[ -n "$TXNBOT_ADDRESS" ]]; then
log "Transferring recenter access to txnBot $TXNBOT_ADDRESS"
"$CAST" rpc --rpc-url "$ANVIL_RPC" anvil_impersonateAccount "$FEE_DEST" >/dev/null
"$CAST" send --rpc-url "$ANVIL_RPC" --from "$FEE_DEST" --unlocked \
"$LIQUIDITY_MANAGER" "setRecenterAccess(address)" "$TXNBOT_ADDRESS" >>"$SETUP_LOG" 2>&1
"$CAST" rpc --rpc-url "$ANVIL_RPC" anvil_stopImpersonatingAccount "$FEE_DEST" >/dev/null
else
log "TXNBOT_ADDRESS not set; recenter access left with deployer"
fi
}
prepare_application_state() {
@ -320,6 +338,14 @@ fund_txnbot_wallet() {
"$CAST" send --rpc-url "$ANVIL_RPC" --private-key "$DEPLOYER_PK" \
"$TXNBOT_ADDRESS" --value "$TXNBOT_FUND_VALUE" >>"$SETUP_LOG" 2>&1 || \
log "Funding txnBot wallet failed (see setup log)"
# Ensure local fork balance reflects the funding even if the upstream state is zero
local fund_value_wei
fund_value_wei="$("$CAST" --to-unit "$TXNBOT_FUND_VALUE" wei)"
local fund_value_hex
fund_value_hex="$("$CAST" --to-hex "$fund_value_wei")"
"$CAST" rpc --rpc-url "$ANVIL_RPC" anvil_setBalance "$TXNBOT_ADDRESS" "$fund_value_hex" \
>>"$SETUP_LOG" 2>&1
}
start_txnbot() {
@ -355,13 +381,26 @@ start_ponder() {
start_frontend() {
if [[ -f "$WEBAPP_PID_FILE" ]]; then
log "Frontend already running (pid $(cat "$WEBAPP_PID_FILE"))"
log "Frontend already running (pid $(cat \"$WEBAPP_PID_FILE\"))"
return
fi
source_addresses || { log "Contract addresses not found"; exit 1; }
local vite_env=(
"VITE_DEFAULT_CHAIN_ID=31337"
"VITE_LOCAL_RPC_URL=/rpc/anvil"
"VITE_LOCAL_RPC_PROXY_TARGET=$ANVIL_RPC"
"VITE_KRAIKEN_ADDRESS=$KRAIKEN"
"VITE_STAKE_ADDRESS=$STAKE"
"VITE_SWAP_ROUTER=$SWAP_ROUTER"
"VITE_PONDER_BASE_SEPOLIA_LOCAL_FORK=$GRAPHQL_ENDPOINT"
"VITE_TXNBOT_BASE_SEPOLIA_LOCAL_FORK=$LOCAL_TXNBOT_URL"
)
log "Starting frontend (Vite dev server)"
pushd "$ROOT_DIR/web-app" >/dev/null
npm run dev -- --host 0.0.0.0 --port 5173 >"$WEBAPP_LOG" 2>&1 &
env "${vite_env[@]}" npm run dev -- --host 0.0.0.0 --port 5173 >"$WEBAPP_LOG" 2>&1 &
popd >/dev/null
echo $! >"$WEBAPP_PID_FILE"