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:
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user