From 44381dff303de97e129f7bb54fea18dc0d61dca1 Mon Sep 17 00:00:00 2001 From: shrinathprabhu Date: Tue, 2 Apr 2024 15:26:53 +0530 Subject: [PATCH] Add linea to sendit prod --- src/constants/chainList.ts | 78 ++++++++++++++++++++++++++++++++---- src/services/ankr.service.ts | 24 +++++++++++ src/use/switchChain.ts | 1 + 3 files changed, 96 insertions(+), 7 deletions(-) diff --git a/src/constants/chainList.ts b/src/constants/chainList.ts index 71c148e2..b44c3ca2 100644 --- a/src/constants/chainList.ts +++ b/src/constants/chainList.ts @@ -2,50 +2,62 @@ const chains = { 1: { name: "Ethereum", chain_id: 1, - rpc_url: "https://rpc.ankr.com/eth", + rpc_url: + "https://eth-mainnet.blastapi.io/7c12fa10-4e46-4810-bf66-6b3148119501", blockchain: "eth", currency: "ETH", explorer: "https://etherscan.io", + icon_url: "https://icons.llamao.fi/icons/chains/rsz_ethereum.jpg", }, 137: { name: "Polygon", chain_id: 137, - rpc_url: "https://rpc.ankr.com/polygon", + rpc_url: + "https://polygon-mainnet.blastapi.io/7c12fa10-4e46-4810-bf66-6b3148119501", blockchain: "polygon", currency: "MATIC", explorer: "https://polygonscan.com", + icon_url: "https://icons.llamao.fi/icons/chains/rsz_polygon.jpg", }, 80001: { name: "Polygon Mumbai", chain_id: 80001, - rpc_url: "https://rpc.ankr.com/polygon_mumbai", + rpc_url: + "https://polygon-testnet.blastapi.io/7c12fa10-4e46-4810-bf66-6b3148119501", blockchain: "polygon_mumbai", currency: "MATIC", explorer: "https://mumbai.polygonscan.com", + icon_url: "https://icons.llamao.fi/icons/chains/rsz_polygon.jpg", }, 42161: { name: "Arbitrum One", blockchain: "arbitrum", chain_id: 42161, - rpc_url: "https://rpc.ankr.com/arbitrum", + rpc_url: + "https://arbitrum-one.blastapi.io/7c12fa10-4e46-4810-bf66-6b3148119501", currency: "ETH", explorer: "https://arbiscan.io", + icon_url: "https://icons.llamao.fi/icons/chains/rsz_arbitrum.jpg", }, 56: { name: "BNB Smart Chain", blockchain: "bsc", chain_id: 56, - rpc_url: "https://rpc.ankr.com/bsc", + rpc_url: + "https://bsc-mainnet.blastapi.io/7c12fa10-4e46-4810-bf66-6b3148119501", currency: "BNB", explorer: "https://bscscan.com", + icon_url: "https://icons.llamao.fi/icons/chains/rsz_binance.jpg", }, 97: { name: "BNB Smart Chain Testnet", blockchain: "bsc_testnet_chapel", chain_id: 97, - rpc_url: "https://rpc.ankr.com/bsc_testnet_chapel", - currency: "tBNB", + rpc_url: + "https://bsc-testnet.blastapi.io/7c12fa10-4e46-4810-bf66-6b3148119501", + currency: "BNB", explorer: "https://testnet.bscscan.com", + icon_url: "https://icons.llamao.fi/icons/chains/rsz_binance.jpg", }, 204: { name: "opBNB Mainnet", @@ -54,6 +66,27 @@ const chains = { rpc_url: "https://1rpc.io/opbnb", currency: "BNB", explorer: "https://opbnbscan.com/", + icon_url: "https://icons.llamao.fi/icons/chains/rsz_binance.jpg", + }, + 59144: { + name: "Linea", + chain_id: 59144, + rpc_url: + "https://linea-mainnet.blastapi.io/7c12fa10-4e46-4810-bf66-6b3148119501", + blockchain: "linea", + currency: "ETH", + explorer: "https://lineascan.build", + icon_url: "https://icons.llamao.fi/icons/chains/rsz_linea.jpg", + }, + 59140: { + name: "Linea Goerli", + chain_id: 59140, + rpc_url: + "https://linea-goerli.blastapi.io/7c12fa10-4e46-4810-bf66-6b3148119501", + blockchain: "linea_testnet", + currency: "ETH", + explorer: "https://goerli.lineascan.build", + icon_url: "https://icons.llamao.fi/icons/chains/rsz_linea.jpg", }, }; @@ -64,4 +97,35 @@ export const testnetChainFaucets = { 80001: "https://mumbaifaucet.com", }; +export const gaslessChains = [137]; + +export enum ChainNames { + "eth" = "Ethereum", + "polygon" = "Polygon PoS", + "polygon_mumbai" = "Polygon Mumbai", + "arbitrum" = "Arbitrum One", + "bsc" = "BNB Smart Chain", + "bsc_testnet_chapel" = "BNB Smart Chain Testnet", + "opbnb" = "opBNB Mainnet", + "linea" = "Linea", + "linea_testnet" = "Linea Goerli", +} + +export enum ChainIds { + "eth" = 1, + "polygon" = 137, + "polygon_mumbai" = 80001, + "arbitrum" = 42161, + "bsc" = 56, + "bsc_testnet_chapel" = 97, + "opbnb" = 204, + "linea" = 59144, + "linea_testnet" = 59140, +} + +export const SupportedChainIdsForAccounts = { + eoa: [1, 137, 80001, 42161, 56, 97, 204], + scw: [137, 80001], +}; + export default chains; diff --git a/src/services/ankr.service.ts b/src/services/ankr.service.ts index af3cd7f2..18436054 100644 --- a/src/services/ankr.service.ts +++ b/src/services/ankr.service.ts @@ -75,6 +75,8 @@ async function getNativeTokenBalances(walletAddress: string) { axios.post(chains[56].rpc_url, payload), axios.post(chains[97].rpc_url, payload), axios.post(chains[204].rpc_url, payload), + axios.post(chains[59144].rpc_url, payload), + axios.post(chains[59140].rpc_url, payload), ]; const [ eth, @@ -84,6 +86,8 @@ async function getNativeTokenBalances(walletAddress: string) { bsc, bsc_testnet_chapel, opbnb_mainnet, + linea, + linea_goerli, ] = await Promise.all(ankrPromises); return [ { @@ -142,6 +146,26 @@ async function getNativeTokenBalances(walletAddress: string) { .mul(Decimal.pow(10, -18)) .toString(), }, + { + tokenType: "NATIVE", + tokenSymbol: "ETH", + blockchain: "linea", + balance: linea.data.result + ? new Decimal(linea.data.result).mul(Decimal.pow(10, -18)).toString() + : 0, + thumbnail: chains[59144].icon_url, + }, + { + tokenType: "NATIVE", + tokenSymbol: "ETH", + blockchain: "linea_testnet", + balance: linea_goerli.data.result + ? new Decimal(linea_goerli.data.result) + .mul(Decimal.pow(10, -18)) + .toString() + : 0, + thumbnail: chains[59140].icon_url, + }, ]; } diff --git a/src/use/switchChain.ts b/src/use/switchChain.ts index 2e1f2a66..7bd7538b 100644 --- a/src/use/switchChain.ts +++ b/src/use/switchChain.ts @@ -26,6 +26,7 @@ export async function switchChain(chainId) { }, rpcUrls: [chainDetails.rpc_url], blockExplorerUrls: [chainDetails.explorer], + iconUrls: [chainDetails.icon_url], }, ], });