@keplr-ewallet/ewallet-sdk-eth
Version:
140 lines • 4.46 kB
JavaScript
import { defineChain } from "viem";
import { arbitrum, arbitrumSepolia, avalanche, avalancheFuji, base, baseSepolia, berachain, blast, blastSepolia, forma, mainnet, optimism, optimismSepolia, polygon, polygonAmoy, sepolia, unichain, unichainSepolia, story, } from "viem/chains";
const bnbSmartChain = defineChain({
id: 56,
name: "BNB Smart Chain",
nativeCurrency: {
name: "BNB",
symbol: "BNB",
decimals: 18,
},
rpcUrls: {
default: { http: ["https://evm-56.keplr.app"] },
},
blockExplorers: {
default: {
name: "BSCScan",
url: "https://bscscan.com",
apiUrl: "https://api.bscscan.com/api",
},
},
});
export const DEFAULT_CHAIN_ID = 1;
export const SUPPORTED_CHAINS = [
Object.assign(Object.assign({}, mainnet), { rpcUrls: {
default: {
http: ["https://evm-1.keplr.app"],
},
} }),
Object.assign(Object.assign({}, base), { rpcUrls: {
default: {
http: ["https://evm-8453.keplr.app"],
},
} }),
Object.assign(Object.assign({}, optimism), { name: "Optimism", rpcUrls: {
default: {
http: ["https://evm-10.keplr.app"],
},
} }),
Object.assign(Object.assign({}, arbitrum), { name: "Arbitrum", rpcUrls: {
default: {
http: ["https://evm-42161.keplr.app"],
},
} }),
bnbSmartChain,
Object.assign(Object.assign({}, blast), { rpcUrls: {
default: {
http: ["https://evm-81457.keplr.app"],
},
} }),
Object.assign(Object.assign({}, avalanche), { rpcUrls: {
default: {
http: ["https://evm-43114.keplr.app"],
},
} }),
Object.assign(Object.assign({}, unichain), { rpcUrls: {
default: {
http: ["https://evm-130.keplr.app"],
},
} }),
Object.assign(Object.assign({}, polygon), { rpcUrls: {
default: {
http: ["https://evm-137.keplr.app"],
},
} }),
Object.assign(Object.assign({}, forma), { rpcUrls: {
default: {
http: ["https://evm-984122.keplr.app"],
},
} }),
Object.assign(Object.assign({}, berachain), { rpcUrls: {
default: {
http: ["https://evm-80094.keplr.app"],
},
} }),
Object.assign(Object.assign({}, story), { rpcUrls: {
default: {
http: ["https://evm-1514.keplr.app"],
},
} }),
];
export const TESTNET_CHAINS = [
sepolia,
baseSepolia,
optimismSepolia,
avalancheFuji,
unichainSepolia,
polygonAmoy,
blastSepolia,
arbitrumSepolia,
];
export const OP_STACK_CHAIN_IDS = [
base.id,
optimism.id,
unichain.id,
blast.id,
baseSepolia.id,
optimismSepolia.id,
unichainSepolia.id,
blastSepolia.id,
];
export function parseChainId(chainId) {
if (typeof chainId === "string") {
const [chainNamespace, chainIdStr] = chainId.split(":");
if (chainNamespace === "eip155") {
return parseInt(chainIdStr, 10);
}
else {
return parseInt(chainId, 10);
}
}
else {
return chainId;
}
}
export function getChainIconUrl(chainId) {
const chainIdNumber = parseChainId(chainId);
return `https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:${chainIdNumber}/chain.png`;
}
export function getTokenLogoURI(chainId, tokenAddress) {
const chainIdNumber = parseChainId(chainId);
const baseUrl = `https://raw.githubusercontent.com/chainapsis/keplr-chain-registry/main/images/eip155:${chainIdNumber}`;
if (tokenAddress) {
return `${baseUrl}/erc20/${tokenAddress.toLowerCase()}.png`;
}
switch (chainIdNumber) {
case 56:
return `${baseUrl}/binance-native.png`;
case 984122:
return `${baseUrl}/utia.png`;
case 11155111:
return `${baseUrl}/ethereum-sepolia-native.png`;
default:
const chain = SUPPORTED_CHAINS.find((chain) => chain.id === chainIdNumber);
if (chain) {
return `${baseUrl}/${chain.name.toLowerCase()}-native.png`;
}
return "";
}
}
//# sourceMappingURL=chains.js.map