feat(scripts): resolve CCIP/LINK addresses via config inventory

- Add scripts/lib/address-inventory.sh (jq + JSON inventory fallback)
- Wire deployment helper scripts to load_explorer_runtime_env + resolve_address_value
- Persist new LINK to address-inventory.json via persist_inventory_value
- Document config/*.json in config/README.md

Made-with: Cursor
This commit is contained in:
defiQUG
2026-03-27 22:09:32 -07:00
parent ca24d6127c
commit ed0af8aaa0
12 changed files with 170 additions and 97 deletions

View File

@@ -4,12 +4,15 @@
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR/.."
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
source "$PROJECT_ROOT/scripts/lib/address-inventory.sh"
cd "$PROJECT_ROOT"
source .env 2>/dev/null || true
load_explorer_runtime_env
RPC_URL="${RPC_URL_138:-http://192.168.11.250:8545}"
ACCOUNT=$(cast wallet address "$PRIVATE_KEY" 2>/dev/null || echo "")
FOUND_LINK=""
if [ -z "$ACCOUNT" ]; then
echo "Error: PRIVATE_KEY not set or invalid"
@@ -43,7 +46,7 @@ echo ""
# Check CCIP Router for fee token
echo "=== Checking CCIP Router for Fee Token ==="
CCIP_ROUTER="0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e"
CCIP_ROUTER="$(resolve_address_value CCIP_ROUTER_ADDRESS CCIP_ROUTER_ADDRESS 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e)"
ROUTER_CODE=$(cast code "$CCIP_ROUTER" --rpc-url "$RPC_URL" 2>/dev/null || echo "")
if [ -n "$ROUTER_CODE" ] && [ "$ROUTER_CODE" != "0x" ]; then
echo "✓ CCIP Router exists"
@@ -65,6 +68,7 @@ echo ""
# Check if LINK token exists at any known address
echo "=== Checking Known LINK Addresses ==="
KNOWN_LINKS=(
"$(resolve_address_value LINK_TOKEN LINK_TOKEN 0x514910771AF9Ca656af840dff83E8264EcF986CA)"
"0x0cb0192C056aa425C557BdeAD8E56C7eEabf7acF"
"0x07dE1f489E1bfCE2c326066a9DFc10e731CBA0CB"
"0x514910771AF9Ca656af840dff83E8264EcF986CA"
@@ -92,8 +96,9 @@ echo ""
if [ -n "$FOUND_LINK" ]; then
echo "=== Using Existing LINK Token ==="
echo "LINK Token: $FOUND_LINK"
sed -i "s|^LINK_TOKEN=.*|LINK_TOKEN=$FOUND_LINK|" .env 2>/dev/null || echo "LINK_TOKEN=$FOUND_LINK" >> .env
echo "✓ Updated .env"
persist_inventory_value "LINK_TOKEN" "$FOUND_LINK" || true
persist_inventory_value "CCIP_CHAIN138_FEE_TOKEN" "$FOUND_LINK" || true
echo "✓ Updated address inventory"
# Check balance
BALANCE=$(cast call "$FOUND_LINK" "balanceOf(address)" "$ACCOUNT" --rpc-url "$RPC_URL" 2>/dev/null || echo "0")
@@ -246,9 +251,10 @@ if [ -n "$NEW_LINK" ] && [ ${#NEW_LINK} -eq 42 ]; then
echo "$NEW_LINK" > /tmp/link_address.txt
# Update .env
cd "$SCRIPT_DIR/.."
sed -i "s|^LINK_TOKEN=.*|LINK_TOKEN=$NEW_LINK|" .env 2>/dev/null || echo "LINK_TOKEN=$NEW_LINK" >> .env
echo "✓ Updated .env"
cd "$PROJECT_ROOT"
persist_inventory_value "LINK_TOKEN" "$NEW_LINK" || true
persist_inventory_value "CCIP_CHAIN138_FEE_TOKEN" "$NEW_LINK" || true
echo "✓ Updated address inventory"
# Wait and verify
echo ""
@@ -294,4 +300,3 @@ fi
# Cleanup
rm -rf "$TEMP_DIR"