import { JsonRpcBatchProvider, StaticJsonRpcProvider } from '@ethersproject/providers'; import networks from '../networks.json'; const providers = {}; export default function getProvider(network: string, type = 'archive') { let url: any = networks[network].rpc[0]; if (type === 'light' && networks[network].light?.length) url = networks[network].light[0]; const connectionInfo = typeof url === 'object' ? { ...url, timeout: 25000 } : { url, timeout: 25000 }; if (!providers[network] || !providers[network][type]) { providers[network] = { ...providers[network] }; providers[network][type] = new StaticJsonRpcProvider(connectionInfo); } return providers[network][type]; } export function getBatchedProvider(network: string, type = 'archive') { let url: any = networks[network].rpc[0]; if (type === 'light' && networks[network].light?.length) url = networks[network].light[0]; const connectionInfo = typeof url === 'object' ? { ...url, timeout: 25000 } : { url, timeout: 25000 }; if (!providers[network] || !providers[network][type]) { providers[network] = { ...providers[network] }; providers[network][type] = new JsonRpcBatchProvider(connectionInfo); } return providers[network][type]; }