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:
@@ -7,9 +7,12 @@ set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
source "$PROJECT_ROOT/scripts/lib/address-inventory.sh"
|
||||
load_explorer_runtime_env
|
||||
|
||||
# Ethereum Mainnet canonical LINK token address
|
||||
LINK_TOKEN_MAINNET="0x514910771AF9Ca656af840dff83E8264EcF986CA"
|
||||
CCIP_ROUTER="$(resolve_address_value CCIP_ROUTER_ADDRESS CCIP_ROUTER_ADDRESS 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e)"
|
||||
CHAIN_ID=138
|
||||
|
||||
echo "╔══════════════════════════════════════════════════════════════╗"
|
||||
@@ -20,26 +23,16 @@ echo "LINK Token Address: $LINK_TOKEN_MAINNET"
|
||||
echo "Chain ID: $CHAIN_ID"
|
||||
echo ""
|
||||
|
||||
# Step 1: Update .env file
|
||||
echo "=== Step 1: Updating .env file ==="
|
||||
ENV_FILE="$PROJECT_ROOT/.env"
|
||||
if [ -f "$ENV_FILE" ]; then
|
||||
# Update or add LINK_TOKEN
|
||||
if grep -q "^LINK_TOKEN=" "$ENV_FILE"; then
|
||||
sed -i "s|^LINK_TOKEN=.*|LINK_TOKEN=$LINK_TOKEN_MAINNET|" "$ENV_FILE"
|
||||
echo "✓ Updated LINK_TOKEN in .env"
|
||||
else
|
||||
echo "LINK_TOKEN=$LINK_TOKEN_MAINNET" >> "$ENV_FILE"
|
||||
echo "✓ Added LINK_TOKEN to .env"
|
||||
fi
|
||||
|
||||
# Update CCIP fee token if exists
|
||||
if grep -q "^CCIP_CHAIN138_FEE_TOKEN=" "$ENV_FILE"; then
|
||||
sed -i "s|^CCIP_CHAIN138_FEE_TOKEN=.*|CCIP_CHAIN138_FEE_TOKEN=$LINK_TOKEN_MAINNET|" "$ENV_FILE"
|
||||
echo "✓ Updated CCIP_CHAIN138_FEE_TOKEN in .env"
|
||||
fi
|
||||
# Step 1: Update address inventory
|
||||
echo "=== Step 1: Updating address inventory ==="
|
||||
if [ -f "$EXPLORER_ADDRESS_INVENTORY_FILE" ]; then
|
||||
persist_inventory_value "LINK_TOKEN" "$LINK_TOKEN_MAINNET"
|
||||
persist_inventory_value "LINK_TOKEN_138" "$LINK_TOKEN_MAINNET"
|
||||
persist_inventory_value "LINK_TOKEN_MAINNET" "$LINK_TOKEN_MAINNET"
|
||||
persist_inventory_value "CCIP_CHAIN138_FEE_TOKEN" "$LINK_TOKEN_MAINNET"
|
||||
echo "✓ Updated config/address-inventory.json"
|
||||
else
|
||||
echo "⚠ .env file not found at $ENV_FILE"
|
||||
echo "⚠ Address inventory not found at $EXPLORER_ADDRESS_INVENTORY_FILE"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
@@ -105,7 +98,6 @@ echo ""
|
||||
|
||||
# Step 3: Add to database
|
||||
echo "=== Step 3: Adding LINK token to database ==="
|
||||
source "$ENV_FILE" 2>/dev/null || true
|
||||
|
||||
DB_HOST="${DB_HOST:-localhost}"
|
||||
DB_PORT="${DB_PORT:-5432}"
|
||||
@@ -158,7 +150,7 @@ echo ""
|
||||
echo "LINK Token Address: $LINK_TOKEN_MAINNET"
|
||||
echo ""
|
||||
echo "Updated:"
|
||||
echo " ✓ .env file (LINK_TOKEN and CCIP_CHAIN138_FEE_TOKEN)"
|
||||
echo " ✓ Address inventory (LINK_TOKEN and CCIP_CHAIN138_FEE_TOKEN)"
|
||||
echo " ✓ Token list files (dbis-138.tokenlist.json, token-list.json)"
|
||||
echo " ✓ Database tokens table (if accessible)"
|
||||
echo " ✓ CCIP documentation"
|
||||
@@ -168,9 +160,8 @@ echo " 1. Verify LINK token on ChainID 138:"
|
||||
echo " cast code $LINK_TOKEN_MAINNET --rpc-url <RPC_URL>"
|
||||
echo ""
|
||||
echo " 2. Check CCIP Router fee token:"
|
||||
echo " cast call <CCIP_ROUTER> \"getFeeToken()\" --rpc-url <RPC_URL>"
|
||||
echo " cast call $CCIP_ROUTER \"getFeeToken()\" --rpc-url <RPC_URL>"
|
||||
echo ""
|
||||
echo " 3. Fund bridge contracts with LINK if needed:"
|
||||
echo " ./scripts/fund-bridge-contracts.sh 10"
|
||||
echo ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user