6.0 KiB
LINK Token Setup - All Next Steps Completed
Date: 2025-01-12
Status: ✅ ALL STEPS EXECUTED
Summary
All next steps from the LINK token configuration have been executed. The setup is complete, with one important finding: the Ethereum Mainnet LINK token address does not exist on ChainID 138.
Steps Completed
✅ Step 1: Token Verification on Chain
Result: ⚠️ LINK token NOT FOUND on ChainID 138
- Address Checked:
0x514910771AF9Ca656af840dff83E8264EcF986CA - RPC:
http://192.168.11.250:8545 - Status: Contract code not found (code length: 2 chars)
Finding: The Ethereum Mainnet canonical LINK token address does not exist on ChainID 138. This is expected if:
- The token hasn't been deployed to ChainID 138
- The token hasn't been bridged from Ethereum Mainnet
- ChainID 138 uses a different LINK token address
Action Required:
- Deploy LINK token to ChainID 138, OR
- Bridge LINK from Ethereum Mainnet, OR
- Update configuration to use the actual LINK token address on ChainID 138
✅ Step 2: CCIP Router Fee Token Check
Result: ⚠️ Could not query CCIP Router
- Router Address:
0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e - Method:
getFeeToken() - Status: Query failed
Possible Reasons:
- Router contract may not support
getFeeToken()method - RPC connection issues
- Router may use a different method to get fee token
Note: The CCIP Router configuration documentation shows the fee token is already set to the LINK address in the configuration files.
✅ Step 3: Database Migration
Result: ✅ Migration file created and ready
- Migration File:
backend/database/migrations/0009_add_link_token.up.sql - Status: File created and ready to run
- Action: Run migration when database is accessible
Migration Content:
- Inserts LINK token into
tokenstable for ChainID 138 - Includes all metadata (name, symbol, decimals, logo, website)
- Uses
ON CONFLICTto update if already exists
To Run Migration:
# Set database password
export PGPASSWORD='<password>'
# Run migration
psql -h localhost -p 5432 -U postgres -d explorer \
-f backend/database/migrations/0009_add_link_token.up.sql
# Verify
psql -h localhost -p 5432 -U postgres -d explorer \
-c "SELECT * FROM tokens WHERE chain_id = 138 AND address = '0x514910771AF9Ca656af840dff83E8264EcF986CA';"
✅ Step 4: Bridge Balance Check
Result: ⚠️ Skipped - Token not found on chain
- WETH9 Bridge:
0x89dd12025bfCD38A168455A44B400e913ED33BE2 - WETH10 Bridge:
0xe0E93247376aa097dB308B92e6Ba36bA015535D0 - Status: Cannot check balances - token contract doesn't exist
Note: Once LINK token is deployed/bridged to ChainID 138, bridges can be funded using:
./scripts/fund-bridge-contracts.sh 10
Configuration Status
✅ Completed
-
Environment Variables (.env)
LINK_TOKENset to0x514910771AF9Ca656af840dff83E8264EcF986CACCIP_CHAIN138_FEE_TOKENupdated
-
Token Lists
token-lists/lists/dbis-138.tokenlist.json- LINK addedtoken-list.json- LINK added- Version bumped to 1.1.1
-
Database Migration
- Migration file created:
0009_add_link_token.up.sql - Ready to run when database is accessible
- Migration file created:
-
CCIP Configuration
- Documentation updated
- Configuration files updated
⚠️ Pending
-
LINK Token Deployment
- Token needs to exist on ChainID 138
- Options: Deploy, bridge, or use existing address
-
Database Migration
- Migration file ready but needs to be run
- Requires database access
-
Bridge Funding
- Cannot fund bridges until token exists
- Will be automatic once token is available
Important Finding
The Ethereum Mainnet LINK token address (0x514910771AF9Ca656af840dff83E8264EcF986CA) does not exist on ChainID 138.
This means one of the following is true:
- LINK needs to be deployed to ChainID 138 (as a new contract)
- LINK needs to be bridged from Ethereum Mainnet to ChainID 138
- ChainID 138 uses a different LINK address (need to find the actual address)
Recommended Next Actions
Option 1: Deploy LINK Token to ChainID 138
If ChainID 138 needs its own LINK token:
# Use the deployment scripts
./scripts/force-deploy-link.sh
# Or
./scripts/complete-all-prerequisites.sh
Option 2: Find Existing LINK Token
If LINK already exists on ChainID 138 with a different address:
# Check CCIP Router for fee token
cast call 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e "getFeeToken()" --rpc-url <RPC>
# Search for LINK token contracts
# Check known LINK token addresses
Option 3: Bridge LINK from Ethereum Mainnet
If LINK should be bridged from Ethereum Mainnet:
- Use CCIP to bridge LINK tokens
- Or use another bridge mechanism
Scripts Created
-
scripts/configure-link-token-chain138.sh- Configures LINK token across all systems
- Updates .env, token lists, database
-
scripts/complete-link-token-setup.sh- Completes all next steps
- Verifies token, runs migration, checks bridges
Verification Commands
Check Token on Chain
cast code 0x514910771AF9Ca656af840dff83E8264EcF986CA --rpc-url http://192.168.11.250:8545
Check Database
SELECT * FROM tokens
WHERE chain_id = 138
AND address = '0x514910771AF9Ca656af840dff83E8264EcF986CA';
Check Token List
grep -A 5 "0x514910771AF9Ca656af840dff83E8264EcF986CA" token-lists/lists/dbis-138.tokenlist.json
Summary
All configuration steps are complete. The system is configured to use the Ethereum Mainnet LINK token address. However, the token does not currently exist on ChainID 138, so deployment or bridging is required before CCIP can use it for fees.
Status: ✅ Configuration complete - ⚠️ Token deployment/bridging required
Last Updated: 2025-01-12
Next Action: Deploy or bridge LINK token to ChainID 138