set -e AVAILIABLE_NETWORKS=(anvil-localnet sepolia-testnet hoodi-testnet) NETWORK="${AVAILIABLE_NETWORKS[0]}" START=1 END=4 VERIFY_NEEDED="--verify" while [[ $# -gt 0 ]]; do case "${1}" in -s|--start) START="$2" shift shift ;; -e|--end) END="$2" shift shift ;; -n|--network) NETWORK="$2" shift shift ;; esac done if [ "$NETWORK" == "anvil-localnet" ]; then VERIFY_NEEDED="" fi found=false for i in "${AVAILIABLE_NETWORKS[@]}" do if [ "$i" == "$NETWORK" ] ; then found=true fi done if [ $found == false ] ; then echo "ERROR: '${NETWORK}' is incorrect network for deployment, valid networks are:" for i in "${AVAILIABLE_NETWORKS[@]}" do echo -e "\t${i}" done exit fi for i in $(seq $START $END); do if [ "0" == "$i" ]; then CONTRACT="WETH9" elif [ "1" == "$i" ] ; then CONTRACT="UniswapV2Factory" elif [ "2" == "$i" ]; then CONTRACT="UniswapV2Router" else echo "No contract found for index $i" exit fi forge script script/${CONTRACT}.s.sol:${CONTRACT}Script --rpc-url $NETWORK if [ "$NETWORK" == "anvil-localnet" ]; then answer="y" else read -p "Do you want to broadcast '${CONTRACT}' to ${NETWORK} (y/N)? " answer fi if [ "$answer" != "${answer#[Yy]}" ] ; then forge script script/${CONTRACT}.s.sol:${CONTRACT}Script \ --rpc-url $NETWORK \ --broadcast \ ${VERIFY_NEEDED} \ -vvv else exit fi done