fix: pass LM_ADDRESS and POOL_ADDRESS to ponder env (#4)

bootstrap now discovers the Uniswap pool address from the factory
contract and writes both LM_ADDRESS and POOL_ADDRESS to ponder
.env.local. Without these, ponder watches hardcoded default addresses
that dont exist on the local Anvil fork, causing all protocol stats
except holder count to stay zero.
This commit is contained in:
johba 2026-04-05 17:17:04 +00:00
parent 41a3d52319
commit 446ee9e4ef
2 changed files with 14 additions and 0 deletions

View file

@ -102,6 +102,18 @@ extract_addresses() {
bootstrap_log "LiquidityManager address missing"
exit 1
fi
# Discover Uniswap pool address from factory
detect_swap_router
local factory
factory=$(cast call --rpc-url "$ANVIL_RPC" "$SWAP_ROUTER" "factory()(address)" 2>/dev/null) || factory=""
if [[ -n "$factory" && "$factory" != "0x" ]]; then
POOL_ADDRESS=$(cast call --rpc-url "$ANVIL_RPC" "$factory" "getPool(address,address,uint24)(address)" "$WETH" "$KRAIKEN" 10000 2>/dev/null) || POOL_ADDRESS=""
fi
if [[ -z "$POOL_ADDRESS" || "$POOL_ADDRESS" == "0x0000000000000000000000000000000000000000" ]]; then
bootstrap_log "Warning: could not discover pool address"
POOL_ADDRESS=""
fi
}
write_contracts_env() {