Files
explorer-monorepo/scripts/lib/ccip-destinations.sh

44 lines
1.6 KiB
Bash

#!/usr/bin/env bash
# Shared helpers for the canonical CCIP destination matrix.
_ccip_dest_helper_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
EXPLORER_PROJECT_ROOT="${EXPLORER_PROJECT_ROOT:-$(cd "$_ccip_dest_helper_dir/../.." && pwd)}"
CCIP_DESTINATION_MATRIX_FILE="${CCIP_DESTINATION_MATRIX_FILE:-$EXPLORER_PROJECT_ROOT/config/ccip-destination-matrix.json}"
ccip_destination_rows() {
if [ ! -f "$CCIP_DESTINATION_MATRIX_FILE" ]; then
echo "Missing CCIP destination matrix: $CCIP_DESTINATION_MATRIX_FILE" >&2
return 1
fi
if ! command -v jq >/dev/null 2>&1; then
echo "jq is required to read $CCIP_DESTINATION_MATRIX_FILE" >&2
return 1
fi
jq -r '.chains[] | [.name, (.selector | tostring), (.weth9Bridge // ""), (.weth10Bridge // ""), (.rpcUrl // "")] | @tsv' \
"$CCIP_DESTINATION_MATRIX_FILE"
}
ccip_destination_count() {
if [ ! -f "$CCIP_DESTINATION_MATRIX_FILE" ] || ! command -v jq >/dev/null 2>&1; then
return 1
fi
jq '.chains | length' "$CCIP_DESTINATION_MATRIX_FILE"
}
ccip_destination_field_by_name() {
local chain_name="${1:-}"
local field_name="${2:-}"
if [ -z "$chain_name" ] || [ -z "$field_name" ] || [ ! -f "$CCIP_DESTINATION_MATRIX_FILE" ] || ! command -v jq >/dev/null 2>&1; then
return 1
fi
jq -r --arg name "$chain_name" --arg field "$field_name" \
'.chains[] | select(.name == $name) | .[$field] // empty' \
"$CCIP_DESTINATION_MATRIX_FILE"
}
ccip_destination_selector_by_name() {
local chain_name="${1:-}"
ccip_destination_field_by_name "$chain_name" selector
}