Files
proxmox/scripts/deployment/deploy-one-contract.sh
defiQUG bea1903ac9
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Sync all local changes: docs, config, scripts, submodule refs, verification evidence
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 15:46:06 -08:00

43 lines
1.8 KiB
Bash
Executable File

#!/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."