174 lines
4.7 KiB
Markdown
174 lines
4.7 KiB
Markdown
# 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: `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e`
|
|
- Fee Token: `0x514910771AF9Ca656af840dff83E8264EcF986CA`
|
|
|
|
2. **Bridge Contracts**
|
|
- WETH9 Bridge: `0x89dd12025bfCD38A168455A44B400e913ED33BE2`
|
|
- 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="0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e"
|
|
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
|
|
|