47 lines
2.9 KiB
JavaScript
47 lines
2.9 KiB
JavaScript
/**
|
|
* Multi-chain token list (Chain 138 + Ethereum Mainnet + ALL Mainnet).
|
|
* Use with wallet_watchAsset and for displaying tokens in dApps.
|
|
*/
|
|
|
|
/** Inline token list for Chain 138, Mainnet, and ALL Mainnet. Matches DUAL_CHAIN_TOKEN_LIST.tokenlist.json */
|
|
export const TOKEN_LIST = [
|
|
// Chain 138
|
|
{ chainId: 138, address: '0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6', name: 'ETH/USD Price Feed', symbol: 'ETH-USD', decimals: 8, tags: ['oracle', 'price-feed'] },
|
|
{ chainId: 138, address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', name: 'Wrapped Ether', symbol: 'WETH', decimals: 18, tags: ['defi', 'wrapped'] },
|
|
{ chainId: 138, address: '0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f', name: 'Wrapped Ether v10', symbol: 'WETH', decimals: 18, tags: ['defi', 'wrapped'] },
|
|
{ chainId: 138, address: '0x93E66202A11B1772E55407B32B44e5Cd8eda7f22', name: 'Compliant Tether USD', symbol: 'cUSDT', decimals: 6, tags: ['stablecoin', 'defi', 'compliant'] },
|
|
{ chainId: 138, address: '0xf22258f57794CC8E06237084b353Ab30fFfa640b', name: 'Compliant USD Coin', symbol: 'cUSDC', decimals: 6, tags: ['stablecoin', 'defi', 'compliant'] },
|
|
// Ethereum Mainnet
|
|
{ chainId: 1, address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', name: 'Wrapped Ether', symbol: 'WETH', decimals: 18, tags: ['defi', 'wrapped'] },
|
|
{ chainId: 1, address: '0xdAC17F958D2ee523a2206206994597C13D831ec7', name: 'Tether USD', symbol: 'USDT', decimals: 6, tags: ['stablecoin', 'defi'] },
|
|
{ chainId: 1, address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', name: 'USD Coin', symbol: 'USDC', decimals: 6, tags: ['stablecoin', 'defi'] },
|
|
{ chainId: 1, address: '0x6B175474E89094C44Da98b954EedeAC495271d0F', name: 'Dai Stablecoin', symbol: 'DAI', decimals: 18, tags: ['stablecoin', 'defi'] },
|
|
{ chainId: 1, address: '0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419', name: 'ETH/USD Price Feed', symbol: 'ETH-USD', decimals: 8, tags: ['oracle', 'price-feed'] },
|
|
// ALL Mainnet (651940)
|
|
{ chainId: 651940, address: '0xa95EeD79f84E6A0151eaEb9d441F9Ffd50e8e881', name: 'USD Coin', symbol: 'USDC', decimals: 6, tags: ['stablecoin', 'defi'] },
|
|
]
|
|
|
|
/**
|
|
* @param {number} chainId - 138, 1, or 651940
|
|
* @returns {Array<{ chainId: number, address: string, name: string, symbol: string, decimals: number, tags?: string[] }>}
|
|
*/
|
|
export function getTokensByChain(chainId) {
|
|
return TOKEN_LIST.filter((t) => t.chainId === chainId)
|
|
}
|
|
|
|
/**
|
|
* @param {number} chainId
|
|
* @param {string} address - token contract address (checksummed or lowercase)
|
|
* @returns {typeof TOKEN_LIST[0] | undefined}
|
|
*/
|
|
export function getToken(chainId, address) {
|
|
const addr = address.toLowerCase()
|
|
return TOKEN_LIST.find((t) => t.chainId === chainId && t.address.toLowerCase() === addr)
|
|
}
|
|
|
|
/**
|
|
* URL to the combined token list JSON (hosted by the explorer API).
|
|
* Override in your app if you host the list elsewhere.
|
|
*/
|
|
export const TOKEN_LIST_URL = 'https://explorer.d-bis.org/api/config/token-list'
|