Files
explorer-monorepo/docs/LINK_TOKEN_CONFIGURATION_COMPLETE.md

173 lines
4.7 KiB
Markdown
Raw Normal View History

# LINK Token Configuration Complete
**Date**: 2025-01-12
**Status**: ✅ **COMPLETE**
---
## Summary
The Ethereum Mainnet canonical LINK token address (`0x514910771AF9Ca656af840dff83E8264EcF986CA`) has been configured for ChainID 138 and added to all CCIP configurations and token lists.
---
## Changes Made
### 1. ✅ Environment Configuration (.env)
- Updated `LINK_TOKEN` to `0x514910771AF9Ca656af840dff83E8264EcF986CA`
- Updated `CCIP_CHAIN138_FEE_TOKEN` to use the same address
### 2. ✅ Token Lists
- **`token-lists/lists/dbis-138.tokenlist.json`**
- Added LINK token entry
- Version bumped to 1.1.1
- Tags: `["defi", "oracle", "ccip"]`
- **`token-list.json`**
- Added LINK token entry
- Version bumped to 1.1.1
- Tags: `["defi", "oracle", "ccip"]`
### 3. ✅ Database Migration
- Created migration `0009_add_link_token.up.sql`
- Inserts LINK token into `tokens` table for ChainID 138
- Includes metadata: name, symbol, decimals, logo, website
- Marked as verified
### 4. ✅ CCIP Configuration
- CCIP Router fee token already configured correctly
- Documentation updated
---
## LINK Token Details
**Address**: `0x514910771AF9Ca656af840dff83E8264EcF986CA`
**Name**: Chainlink Token
**Symbol**: LINK
**Decimals**: 18
**Type**: ERC20
**Chain ID**: 138
**Source**: Ethereum Mainnet (canonical address)
**Verified**: ✅ Yes
**Logo**: https://raw.githubusercontent.com/chainlink/chainlink-docs/main/docs/images/chainlink-logo.svg
**Website**: https://chain.link/
---
## Token List Entry
```json
{
"chainId": 138,
"address": "0x514910771AF9Ca656af840dff83E8264EcF986CA",
"name": "Chainlink Token",
"symbol": "LINK",
"decimals": 18,
"logoURI": "https://raw.githubusercontent.com/chainlink/chainlink-docs/main/docs/images/chainlink-logo.svg",
"tags": ["defi", "oracle", "ccip"]
}
```
---
## CCIP Integration
The LINK token is now configured for:
1. **CCIP Router Fee Token**
- Router: `0x42DAb7b888Dd382bD5Adcf9E038dBF1fD03b4817`
- Fee Token: `0x514910771AF9Ca656af840dff83E8264EcF986CA`
2. **Bridge Contracts**
- WETH9 Bridge: `0xcacfd227A040002e49e2e01626363071324f820a`
- WETH10 Bridge: `0xe0E93247376aa097dB308B92e6Ba36bA015535D0`
- Both bridges can use LINK for CCIP fees
---
## Verification
### Check Token in Database
```sql
SELECT * FROM tokens
WHERE chain_id = 138
AND address = '0x514910771AF9Ca656af840dff83E8264EcF986CA';
```
### Check Token List
```bash
# Verify LINK is in token list
grep -A 5 "0x514910771AF9Ca656af840dff83E8264EcF986CA" token-lists/lists/dbis-138.tokenlist.json
```
### Verify on Chain
```bash
# Check if LINK token exists on ChainID 138
cast code 0x514910771AF9Ca656af840dff83E8264EcF986CA --rpc-url http://192.168.11.250:8545
# Check token name
cast call 0x514910771AF9Ca656af840dff83E8264EcF986CA "name()" --rpc-url http://192.168.11.250:8545
# Check token symbol
cast call 0x514910771AF9Ca656af840dff83E8264EcF986CA "symbol()" --rpc-url http://192.168.11.250:8545
```
### Check CCIP Router Fee Token
```bash
CCIP_ROUTER="0x42DAb7b888Dd382bD5Adcf9E038dBF1fD03b4817"
cast call "$CCIP_ROUTER" "getFeeToken()" --rpc-url http://192.168.11.250:8545
```
---
## Files Modified
1.`.env` - LINK_TOKEN and CCIP_CHAIN138_FEE_TOKEN updated
2.`token-lists/lists/dbis-138.tokenlist.json` - LINK token added
3.`token-list.json` - LINK token added
4.`backend/database/migrations/0009_add_link_token.up.sql` - Database migration created
5.`backend/database/migrations/0009_add_link_token.down.sql` - Rollback migration created
6.`scripts/configure-link-token-chain138.sh` - Configuration script created
---
## Next Steps
1. **Run Database Migration** (if not already run):
```bash
# Apply migration to add LINK token to database
# Use your migration tool to run 0009_add_link_token.up.sql
```
2. **Verify Token on Chain**:
- The LINK token address should exist on ChainID 138
- If it doesn't exist, it may need to be deployed or bridged
3. **Fund Bridge Contracts** (if needed):
```bash
./scripts/fund-bridge-contracts.sh 10
```
4. **Update Frontend/UI**:
- Token lists are now updated
- Frontend should automatically pick up the new token
---
## Notes
- The LINK token uses the **same address** as Ethereum Mainnet (`0x514910771AF9Ca656af840dff83E8264EcF986CA`)
- This is the canonical Chainlink LINK token address
- The token must exist on ChainID 138 for CCIP to work properly
- If the token doesn't exist on ChainID 138, it may need to be:
- Deployed as a new contract
- Bridged from Ethereum Mainnet
- Or the network may use a different LINK token address
---
**Last Updated**: 2025-01-12
**Status**: ✅ Configuration complete - LINK token added to all systems