From f475ea0894cb6bba10f5a5ca469e3e19b0bc9e24 Mon Sep 17 00:00:00 2001 From: tim Date: Mon, 27 Oct 2025 17:10:18 -0400 Subject: [PATCH] fix for anvil 1.4.x --- bin/mock | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/bin/mock b/bin/mock index 77ef259..d11384b 100755 --- a/bin/mock +++ b/bin/mock @@ -4,25 +4,29 @@ # Dev account #4 PRIVATE_KEY=0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a +set -euo pipefail + # Function to cleanup processes cleanup() { - kill $ANVIL_PID 2>/dev/null + if [[ -n "${ANVIL_PID:-}" ]] && kill -0 "$ANVIL_PID" 2>/dev/null; then + kill "$ANVIL_PID" 2>/dev/null || true + sleep 0.2 + kill -9 "$ANVIL_PID" 2>/dev/null || true + fi } -err() { - cleanup - exit $1 -} - -# Set up trap to handle script exit +# Ensure cleanup on any exit trap cleanup EXIT +# On Ctrl-C or TERM: exit immediately (will trigger EXIT trap -> cleanup) +trap 'exit 130' INT +trap 'exit 143' TERM # Create log directory if it doesn't exist mkdir -p log # Run anvil in background and redirect output to log file # shellcheck disable=SC2086 -anvil | tee log/anvil.txt & +anvil --disable-block-gas-limit | tee log/anvil.txt & ANVIL_PID=$! # Function to check if string exists in file @@ -43,14 +47,13 @@ while ! check_string "Listening on" "log/anvil.txt"; do fi done -forge script --private-key ${PRIVATE_KEY} DeployMock --fork-url http://localhost:8545 --broadcast "$@" || err 1 +forge script --private-key ${PRIVATE_KEY} DeployMock --fork-url http://localhost:8545 --broadcast "$@" || exit 1 -if [ "$1" = "slow" ]; then +if [ "${1:-}" = "slow" ]; then echo "SLOW MODE: Setting mining mode to 12-second intervals." cast rpc evm_setIntervalMining 12 fi echo "Press Ctrl+C to exit..." -while true; do - sleep 1 -done +# Wait for the anvil process; Ctrl-C will interrupt 'wait' and trigger cleanup via traps +wait "$ANVIL_PID"