UNPKG

@knine-sdk/fetch

Version:
32 lines (29 loc) 1.07 kB
import { CHAINS } from '@knine-sdk/constants'; import invariant from 'tiny-invariant'; const getInfuraRPCUrl = (chainId, apiKey) => { invariant(apiKey && typeof apiKey === 'string', 'API key should be a string'); switch (chainId) { case CHAINS.Mainnet: return `https://mainnet.infura.io/v3/${apiKey}`; default: invariant(false, 'Chain is not supported'); } }; const getAlchemyRPCUrl = (chainId, apiKey) => { invariant(apiKey && typeof apiKey === 'string', 'API key should be a string'); switch (chainId) { case CHAINS.Mainnet: return `https://eth-mainnet.alchemyapi.io/v2/${apiKey}`; default: invariant(false, 'Chain is not supported'); } }; const getRPCUrls = (chainId, keys) => { const urls = []; if (keys.alchemy) urls.push(getAlchemyRPCUrl(chainId, keys.alchemy)); if (keys.infura) urls.push(getInfuraRPCUrl(chainId, keys.infura)); return urls; }; export { getAlchemyRPCUrl, getInfuraRPCUrl, getRPCUrls };