-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdeploy.sh
executable file
·77 lines (64 loc) · 2.17 KB
/
deploy.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash
# Predefined configurations
CONFIGS=(
"base-sepolia|https://base-sepolia.blockscout.com"
"mantle-sepolia|https://explorer.sepolia.mantle.xyz"
"polygonzkevm-cardona|https://explorer-ui.cardona.zkevm-rpc.com"
)
# Function to display usage
usage() {
echo "Usage: $0 [file-name] [option-number]"
echo "Arguments:"
echo " file-name: (Optional) Name of the script file (default: Deploy)"
echo " option-number: (Optional) Select a configuration from the list below (default: 0):"
echo " 0: Deploy to all chains"
for i in "${!CONFIGS[@]}"; do
RPC_URL=$(echo "${CONFIGS[$i]}" | cut -d'|' -f1)
VERIFIER_URL=$(echo "${CONFIGS[$i]}" | cut -d'|' -f2)
echo " $((i + 1)): RPC_URL=$RPC_URL, VERIFIER_URL=$VERIFIER_URL"
done
exit 1
}
# Set default values
FILE_NAME=${1:-Deploy}
OPTION=${2:-0}
deploy_to_chain() {
local rpc_url=$1
local verifier_url=$2
echo "Deploying to:"
echo " RPC URL: $rpc_url"
echo " Verifier URL: $verifier_url"
rm -rf cache
# Execute the deployment command
forge script script/${FILE_NAME}.s.sol:${FILE_NAME} \
--broadcast \
--rpc-url "$rpc_url" \
--verify \
--verifier blockscout \
--verifier-url "$verifier_url/api/" \
--sender 0x8D0B05b837FB0e28e78b8939dDaD8CE7B91b678D \
--legacy
}
# Validate the option number
if ! [[ "$OPTION" =~ ^[0-9]+$ ]] || [ "$OPTION" -lt 0 ] || [ "$OPTION" -gt "${#CONFIGS[@]}" ]; then
echo "Error: Invalid option number."
usage
fi
# Deploy to all chains if option is 0
if [ "$OPTION" -eq 0 ]; then
for CONFIG in "${CONFIGS[@]}"; do
RPC_URL=$(echo "$CONFIG" | cut -d'|' -f1)
VERIFIER_URL=$(echo "$CONFIG" | cut -d'|' -f2)
deploy_to_chain "$RPC_URL" "$VERIFIER_URL"
done
else
# Deploy to the selected chain
SELECTED_CONFIG="${CONFIGS[$((OPTION - 1))]}"
RPC_URL=$(echo "$SELECTED_CONFIG" | cut -d'|' -f1)
VERIFIER_URL=$(echo "$SELECTED_CONFIG" | cut -d'|' -f2)
deploy_to_chain "$RPC_URL" "$VERIFIER_URL"
fi
# Usage
# All: ./deploy.sh <file-name> 0
# Base Sepolia: ./deploy.sh <file-name> 1
# Mantle Sepolia: ./deploy.sh <file-name> 2