Files
proxmox/scripts/xdc-zero/set-fragment-addresses.sh
defiQUG dbd517b279 Sync workspace: config, docs, scripts, CI, operator rules, and submodule pointers.
- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains
- Omit embedded publish git dirs and empty placeholders from index

Made-with: Cursor
2026-04-12 06:12:20 -07:00

65 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Patch XDC Zero fragment JSON files with deployed addresses (no merge into endpointconfig yet).
#
# Required env:
# ENDPOINT_ON_138 — Zero Endpoint on Chain 138
# CSC_PARENT_ON_138 — CSC on 138 storing parent block roots
# ENDPOINT_ON_PARENT — Zero Endpoint on XDC parent (Apothem/mainnet)
# CSC_138_ON_PARENT — CSC on parent storing Chain 138 roots
# Optional:
# XDC_PARENT_CHAIN_ID=50 — chain id for parent as seen from Chain 138 register entry
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
DIR="$PROJECT_ROOT/config/xdc-zero"
OUTD="$DIR/deployed"
mkdir -p "$OUTD"
CHAIN138_ONLY=false
for a in "$@"; do
[[ "$a" == "--chain138-only" ]] && CHAIN138_ONLY=true
done
: "${ENDPOINT_ON_138:?}"
if ! $CHAIN138_ONLY; then
: "${CSC_PARENT_ON_138:?}"
: "${ENDPOINT_ON_PARENT:?}"
: "${CSC_138_ON_PARENT:?}"
fi
PEER_CID="${XDC_PARENT_CHAIN_ID:-50}"
command -v jq >/dev/null 2>&1 || {
echo "ERROR: jq required" >&2
exit 1
}
F1_OUT="${OUTD}/endpointconfig.fragment.chain138.json"
F2_OUT="${OUTD}/xdcparentnet-register-chain138.fragment.json"
jq --argjson cid "$PEER_CID" \
--arg csc "${CSC_PARENT_ON_138:-0x0000000000000000000000000000000000000000}" \
--arg ep "${ENDPOINT_ON_PARENT:-0x0000000000000000000000000000000000000000}" \
--arg e138 "$ENDPOINT_ON_138" \
'.chain138.endpoint = $e138
| .chain138.registers[0].chainId = $cid
| .chain138.registers[0].csc = $csc
| .chain138.registers[0].endpoint = $ep' \
"$DIR/endpointconfig.fragment.chain138.example.json" >"$F1_OUT"
jq --arg csc "${CSC_138_ON_PARENT:-0x0000000000000000000000000000000000000000}" --arg ep "$ENDPOINT_ON_138" \
'.[0].csc = $csc | .[0].endpoint = $ep | .[0].chainId = 138' \
"$DIR/xdcparentnet-register-chain138.fragment.json" >"$F2_OUT"
echo "Wrote (gitignored dir):"
echo " $F1_OUT"
echo " $F2_OUT"
if $CHAIN138_ONLY; then
echo "Mode: chain138-only"
echo " note: parent-side CSC/Endpoint addresses are still zero placeholders."
fi
echo "Merge with:"
echo " XDC_ZERO_CHAIN138_FRAG=$F1_OUT XDC_ZERO_REG_FRAG=$F2_OUT \\"
echo " bash scripts/xdc-zero/merge-endpointconfig-chain138.sh --dry-run /path/to/XDC-Zero/endpoint/endpointconfig.json"