- 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
123 lines
3.7 KiB
Bash
123 lines
3.7 KiB
Bash
#!/usr/bin/env bash
|
|
# Execute or dry-run the GRU V2 Wave 1 Chain 138 deployment plan.
|
|
#
|
|
# Usage:
|
|
# bash scripts/deployment/run-gru-v2-wave1-chain138.sh
|
|
# bash scripts/deployment/run-gru-v2-wave1-chain138.sh --code=EUR
|
|
# bash scripts/deployment/run-gru-v2-wave1-chain138.sh --apply
|
|
#
|
|
# Default mode is dry-run. Use --apply to broadcast.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
PLAN_JSON="${PROJECT_ROOT}/config/gru-v2-chain138-wave1-v2-plan.json"
|
|
DEPLOY_SCRIPT="${PROJECT_ROOT}/scripts/deployment/deploy-gru-v2-generic-chain138.sh"
|
|
METADATA_MANIFEST="${PROJECT_ROOT}/config/gru-v2-metadata/chain138/ipfs-manifest.latest.json"
|
|
|
|
FILTER_CODE=""
|
|
APPLY=0
|
|
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--code=*) FILTER_CODE="${arg#--code=}" ;;
|
|
--apply) APPLY=1 ;;
|
|
*)
|
|
echo "Unknown argument: $arg" >&2
|
|
exit 2
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if ! command -v jq >/dev/null 2>&1; then
|
|
echo "jq is required" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f "$PLAN_JSON" ]]; then
|
|
echo "Missing plan JSON: $PLAN_JSON" >&2
|
|
exit 1
|
|
fi
|
|
|
|
RUN_TS="$(date -u +%Y%m%dT%H%M%SZ)"
|
|
LOG_DIR="${PROJECT_ROOT}/.codex-artifacts/gru-v2-wave1"
|
|
mkdir -p "$LOG_DIR"
|
|
|
|
echo "=== GRU V2 Wave 1 Chain 138 runner ==="
|
|
echo "Plan: $PLAN_JSON"
|
|
if [[ -n "$FILTER_CODE" ]]; then
|
|
echo "Filter: $FILTER_CODE"
|
|
fi
|
|
if [[ "$APPLY" == "1" ]]; then
|
|
echo "Mode: APPLY"
|
|
: "${PRIVATE_KEY:?PRIVATE_KEY is required for --apply}"
|
|
echo "Logs: $LOG_DIR/$RUN_TS-*.log"
|
|
else
|
|
echo "Mode: DRY_RUN"
|
|
fi
|
|
echo ""
|
|
|
|
jq -c --arg filter "$FILTER_CODE" '
|
|
.assets[]
|
|
| select(($filter == "") or (.code == $filter))
|
|
| . as $asset
|
|
| .deployments[]
|
|
| {
|
|
code: $asset.code,
|
|
tokenName,
|
|
tokenSymbol,
|
|
currencyCode,
|
|
metadataKey,
|
|
registryName,
|
|
registrySymbol
|
|
}
|
|
' "$PLAN_JSON" | while IFS= read -r row; do
|
|
code="$(jq -r '.code' <<<"$row")"
|
|
token_name="$(jq -r '.tokenName' <<<"$row")"
|
|
token_symbol="$(jq -r '.tokenSymbol' <<<"$row")"
|
|
currency_code="$(jq -r '.currencyCode' <<<"$row")"
|
|
metadata_key="$(jq -r '.metadataKey' <<<"$row")"
|
|
registry_name="$(jq -r '.registryName' <<<"$row")"
|
|
registry_symbol="$(jq -r '.registrySymbol' <<<"$row")"
|
|
token_uri=""
|
|
disclosure_uri=""
|
|
reporting_uri=""
|
|
|
|
if [[ -f "$METADATA_MANIFEST" ]]; then
|
|
token_uri="$(jq -r --arg symbol "$token_symbol" '.assets[$symbol].tokenURI // empty' "$METADATA_MANIFEST")"
|
|
disclosure_uri="$(jq -r --arg symbol "$token_symbol" '.assets[$symbol].regulatoryDisclosureURI // empty' "$METADATA_MANIFEST")"
|
|
reporting_uri="$(jq -r --arg symbol "$token_symbol" '.assets[$symbol].reportingURI // empty' "$METADATA_MANIFEST")"
|
|
fi
|
|
|
|
echo "--- ${code} :: ${token_symbol} ---"
|
|
if [[ -n "$token_uri" ]]; then
|
|
echo "metadata: ${metadata_key} -> ${token_uri}"
|
|
else
|
|
echo "metadata: ${metadata_key} -> no IPFS manifest entry found; deploying without token/disclosure/reporting URIs"
|
|
fi
|
|
if [[ "$APPLY" == "1" ]]; then
|
|
TOKEN_NAME="$token_name" \
|
|
TOKEN_SYMBOL="$token_symbol" \
|
|
CURRENCY_CODE="$currency_code" \
|
|
REGISTRY_NAME="$registry_name" \
|
|
REGISTRY_SYMBOL="$registry_symbol" \
|
|
TOKEN_URI="$token_uri" \
|
|
REGULATORY_DISCLOSURE_URI="$disclosure_uri" \
|
|
REPORTING_URI="$reporting_uri" \
|
|
bash "$DEPLOY_SCRIPT" | tee "$LOG_DIR/${RUN_TS}-${token_symbol}.log"
|
|
else
|
|
TOKEN_NAME="$token_name" \
|
|
TOKEN_SYMBOL="$token_symbol" \
|
|
CURRENCY_CODE="$currency_code" \
|
|
REGISTRY_NAME="$registry_name" \
|
|
REGISTRY_SYMBOL="$registry_symbol" \
|
|
TOKEN_URI="$token_uri" \
|
|
REGULATORY_DISCLOSURE_URI="$disclosure_uri" \
|
|
REPORTING_URI="$reporting_uri" \
|
|
PRIVATE_KEY="${PRIVATE_KEY:-0x1111111111111111111111111111111111111111111111111111111111111111}" \
|
|
bash "$DEPLOY_SCRIPT" --dry-run
|
|
fi
|
|
echo ""
|
|
done
|