43 lines
1.8 KiB
Bash
43 lines
1.8 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Deploy a single contract to Chain 138 (dry-run by default).
|
||
|
|
# Usage: ./scripts/deployment/deploy-one-contract.sh <script_path> [--broadcast]
|
||
|
|
# Example: ./scripts/deployment/deploy-one-contract.sh script/DeployMulticall.s.sol:DeployMulticall --broadcast
|
||
|
|
# Requires: smom-dbis-138/.env with PRIVATE_KEY, RPC_URL_138 (Chain 138 Core)
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||
|
|
SMOM="${SMOM_DIR:-${PROJECT_ROOT}/smom-dbis-138}"
|
||
|
|
|
||
|
|
[[ -f "${PROJECT_ROOT}/scripts/lib/load-project-env.sh" ]] && source "${PROJECT_ROOT}/scripts/lib/load-project-env.sh" 2>/dev/null || true
|
||
|
|
[[ -f "${SMOM}/.env" ]] && source "${SMOM}/.env" 2>/dev/null || true
|
||
|
|
|
||
|
|
GAS_PRICE="${GAS_PRICE:-1000000000}"
|
||
|
|
RPC_URL="${RPC_URL_138:-http://192.168.11.211:8545}"
|
||
|
|
SCRIPT_SPEC="${1:-}"
|
||
|
|
|
||
|
|
if [[ -z "$SCRIPT_SPEC" ]]; then
|
||
|
|
echo "Usage: $0 <script_path> [--broadcast]"
|
||
|
|
echo "Example: $0 script/DeployMulticall.s.sol:DeployMulticall --broadcast"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
BROADCAST=""
|
||
|
|
[[ "${2:-}" = "--broadcast" ]] && BROADCAST="--broadcast --private-key ${PRIVATE_KEY:?PRIVATE_KEY required for broadcast}"
|
||
|
|
|
||
|
|
cd "$SMOM"
|
||
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
|
|
echo "Deploy one contract: $SCRIPT_SPEC"
|
||
|
|
echo "RPC: $RPC_URL | Gas price: $GAS_PRICE"
|
||
|
|
[[ -n "$BROADCAST" ]] && echo "Mode: BROADCAST (on-chain)" || echo "Mode: DRY RUN (no tx)"
|
||
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
|
|
|
||
|
|
forge script "$SCRIPT_SPEC" \
|
||
|
|
--rpc-url "$RPC_URL" \
|
||
|
|
--with-gas-price "$GAS_PRICE" \
|
||
|
|
$BROADCAST
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "Done. If you used --broadcast, note the deployed address(es) and run verification next."
|