- Changed CCIP Router address from `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e` to `0x42DAb7b888Dd382bD5Adcf9E038dBF1fD03b4817` across multiple documentation files. - Updated WETH9 Bridge address from `0x89dd12025bfCD38A168455A44B400e913ED33BE2` to `0xcacfd227A040002e49e2e01626363071324f820a`. - Ensured all references to the new addresses are consistent throughout the documentation. This update reflects the latest deployment configurations and ensures accurate contract references for ChainID 138.
173 lines
4.7 KiB
Markdown
173 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: `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
|