replaced subgraph with ponder
This commit is contained in:
parent
5e6e21878c
commit
ba64e725dc
45 changed files with 386 additions and 7275 deletions
|
|
@ -9,15 +9,19 @@ LOG_DIR="$STATE_DIR/logs"
|
|||
ANVIL_PID_FILE="$STATE_DIR/anvil.pid"
|
||||
PONDER_PID_FILE="$STATE_DIR/ponder.pid"
|
||||
WEBAPP_PID_FILE="$STATE_DIR/webapp.pid"
|
||||
TXNBOT_PID_FILE="$STATE_DIR/txnBot.pid"
|
||||
|
||||
ANVIL_LOG="$LOG_DIR/anvil.log"
|
||||
PONDER_LOG="$LOG_DIR/ponder.log"
|
||||
WEBAPP_LOG="$LOG_DIR/webapp.log"
|
||||
TXNBOT_LOG="$LOG_DIR/txnBot.log"
|
||||
SETUP_LOG="$LOG_DIR/setup.log"
|
||||
TXNBOT_ENV_FILE="$STATE_DIR/txnBot.env"
|
||||
|
||||
FORK_URL=${FORK_URL:-"https://sepolia.base.org"}
|
||||
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"
|
||||
|
||||
FOUNDRY_BIN=${FOUNDRY_BIN:-"$HOME/.foundry/bin"}
|
||||
|
|
@ -31,6 +35,13 @@ FEE_DEST="0xf6a3eef9088A255c32b6aD2025f83E57291D9011"
|
|||
WETH="0x4200000000000000000000000000000000000006"
|
||||
SWAP_ROUTER="0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4"
|
||||
|
||||
DEFAULT_TXNBOT_PRIVATE_KEY="0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d"
|
||||
DEFAULT_TXNBOT_ADDRESS="0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
|
||||
|
||||
TXNBOT_PRIVATE_KEY=${TXNBOT_PRIVATE_KEY:-$DEFAULT_TXNBOT_PRIVATE_KEY}
|
||||
TXNBOT_ADDRESS=${TXNBOT_ADDRESS:-$DEFAULT_TXNBOT_ADDRESS}
|
||||
TXNBOT_FUND_VALUE=${TXNBOT_FUND_VALUE:-1ether}
|
||||
|
||||
MAX_UINT="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
||||
|
||||
SKIP_CLEANUP=false
|
||||
|
|
@ -39,6 +50,7 @@ COMMAND="start"
|
|||
cleanup() {
|
||||
stop_process "Frontend" "$WEBAPP_PID_FILE"
|
||||
stop_process "Ponder" "$PONDER_PID_FILE"
|
||||
stop_process "TxnBot" "$TXNBOT_PID_FILE"
|
||||
stop_process "Anvil" "$ANVIL_PID_FILE"
|
||||
|
||||
if [[ "$SKIP_CLEANUP" == true ]]; then
|
||||
|
|
@ -123,6 +135,13 @@ ensure_dependencies() {
|
|||
npm install >>"$SETUP_LOG" 2>&1
|
||||
popd >/dev/null
|
||||
fi
|
||||
|
||||
if [[ ! -d "$ROOT_DIR/services/txnBot/node_modules" ]]; then
|
||||
log "Installing txnBot dependencies"
|
||||
pushd "$ROOT_DIR/services/txnBot" >/dev/null
|
||||
npm install >>"$SETUP_LOG" 2>&1
|
||||
popd >/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
start_anvil() {
|
||||
|
|
@ -177,7 +196,7 @@ extract_addresses() {
|
|||
# Create .env.local for Ponder with deployed addresses
|
||||
cat > "$ROOT_DIR/ponder/.env.local" <<EOF
|
||||
# Auto-generated by local_env.sh
|
||||
PONDER_NETWORK=local
|
||||
PONDER_NETWORK=BASE_SEPOLIA_LOCAL_FORK
|
||||
KRAIKEN_ADDRESS=$KRAIKEN
|
||||
STAKE_ADDRESS=$STAKE
|
||||
START_BLOCK=$deploy_block
|
||||
|
|
@ -231,6 +250,59 @@ prepare_application_state() {
|
|||
"($WETH,$KRAIKEN,10000,$DEPLOYER_ADDR,10000000000000000,0,0)" >>"$SETUP_LOG" 2>&1
|
||||
}
|
||||
|
||||
prime_chain_for_indexing() {
|
||||
log "Pre-mining blocks for indexer stability"
|
||||
for _ in {1..1200}; do
|
||||
"$CAST" rpc --rpc-url "$ANVIL_RPC" evm_mine > /dev/null 2>&1 || true
|
||||
done
|
||||
}
|
||||
|
||||
write_txnbot_env() {
|
||||
source_addresses || { log "Contract addresses not found"; exit 1; }
|
||||
|
||||
cat > "$TXNBOT_ENV_FILE" <<EOF
|
||||
ENVIRONMENT=BASE_SEPOLIA_LOCAL_FORK
|
||||
PROVIDER_URL=$ANVIL_RPC
|
||||
PRIVATE_KEY=$TXNBOT_PRIVATE_KEY
|
||||
LM_CONTRACT_ADDRESS=$LIQUIDITY_MANAGER
|
||||
STAKE_CONTRACT_ADDRESS=$STAKE
|
||||
GRAPHQL_ENDPOINT=$GRAPHQL_ENDPOINT
|
||||
WALLET_ADDRESS=$TXNBOT_ADDRESS
|
||||
# Expose a non-conflicting status port for local dev
|
||||
PORT=43069
|
||||
EOF
|
||||
}
|
||||
|
||||
fund_txnbot_wallet() {
|
||||
source_addresses || { log "Contract addresses not found"; exit 1; }
|
||||
|
||||
if [[ -z "$TXNBOT_ADDRESS" ]]; then
|
||||
log "TxnBot wallet address not provided; skipping funding"
|
||||
return
|
||||
fi
|
||||
|
||||
log "Funding txnBot wallet $TXNBOT_ADDRESS with $TXNBOT_FUND_VALUE"
|
||||
"$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)"
|
||||
}
|
||||
|
||||
start_txnbot() {
|
||||
if [[ -f "$TXNBOT_PID_FILE" ]]; then
|
||||
log "txnBot already running (pid $(cat \"$TXNBOT_PID_FILE\"))"
|
||||
return
|
||||
fi
|
||||
|
||||
write_txnbot_env
|
||||
fund_txnbot_wallet
|
||||
|
||||
log "Starting txnBot automation"
|
||||
pushd "$ROOT_DIR/services/txnBot" >/dev/null
|
||||
TXN_BOT_ENV_FILE="$TXNBOT_ENV_FILE" node service.js >"$TXNBOT_LOG" 2>&1 &
|
||||
popd >/dev/null
|
||||
echo $! >"$TXNBOT_PID_FILE"
|
||||
}
|
||||
|
||||
start_ponder() {
|
||||
if [[ -f "$PONDER_PID_FILE" ]]; then
|
||||
log "Ponder already running (pid $(cat "$PONDER_PID_FILE"))"
|
||||
|
|
@ -239,7 +311,7 @@ start_ponder() {
|
|||
|
||||
log "Starting Ponder indexer"
|
||||
pushd "$ROOT_DIR/ponder" >/dev/null
|
||||
PONDER_NETWORK=local npm run dev >"$PONDER_LOG" 2>&1 &
|
||||
PONDER_NETWORK=BASE_SEPOLIA_LOCAL_FORK npm run dev >"$PONDER_LOG" 2>&1 &
|
||||
popd >/dev/null
|
||||
echo $! >"$PONDER_PID_FILE"
|
||||
|
||||
|
|
@ -270,7 +342,9 @@ start_environment() {
|
|||
extract_addresses
|
||||
bootstrap_liquidity_manager
|
||||
prepare_application_state
|
||||
prime_chain_for_indexing
|
||||
start_ponder # Re-enabled with PostgreSQL
|
||||
start_txnbot
|
||||
start_frontend
|
||||
}
|
||||
|
||||
|
|
@ -286,7 +360,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 "$WEBAPP_PID_FILE")"
|
||||
wait "$(cat "$ANVIL_PID_FILE")" "$(cat "$PONDER_PID_FILE")" "$(cat "$WEBAPP_PID_FILE")" "$(cat "$TXNBOT_PID_FILE")"
|
||||
}
|
||||
|
||||
stop_environment() {
|
||||
|
|
@ -343,6 +417,7 @@ status_environment() {
|
|||
service_status "Anvil" "$ANVIL_PID_FILE" "$ANVIL_LOG"
|
||||
service_status "Ponder" "$PONDER_PID_FILE" "$PONDER_LOG"
|
||||
service_status "Frontend" "$WEBAPP_PID_FILE" "$WEBAPP_LOG"
|
||||
service_status "TxnBot" "$TXNBOT_PID_FILE" "$TXNBOT_LOG"
|
||||
|
||||
if [[ -f "$STATE_DIR/contracts.env" ]]; then
|
||||
printf '\nContracts:\n'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue