UNPKG

@lido-sdk/providers

Version:

This project is being slowly deprecated and may not receive further updates. Check out [modern Lido SDK](https://github.com/lidofinance/lido-ethereum-sdk/pulls) to access latest functionality. It is actively maintained and is built for interacting with Li

33 lines (28 loc) 1.35 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var providers = require('@ethersproject/providers'); var staticJsonRpcBatchProvider = require('./staticJsonRpcBatchProvider.js'); // function factory for creating a provider getter const createProviderGetter = (Provider) => { const cache = new Map(); return (chainId, url, cacheSeed = 0, pollingInterval = null) => { const cacheKey = `${chainId}-${cacheSeed}-${url}`; let provider = cache.get(cacheKey); if (!provider) { provider = new Provider(url, chainId); cache.set(cacheKey, provider); } if (pollingInterval) { provider.pollingInterval = pollingInterval; } return provider; }; }; const getRpcProvider = createProviderGetter(providers.JsonRpcProvider); const getRpcBatchProvider = createProviderGetter(providers.JsonRpcBatchProvider); const getStaticRpcProvider = createProviderGetter(providers.StaticJsonRpcProvider); const getStaticRpcBatchProvider = createProviderGetter(staticJsonRpcBatchProvider.StaticJsonRpcBatchProvider); exports.getRpcBatchProvider = getRpcBatchProvider; exports.getRpcProvider = getRpcProvider; exports.getStaticRpcBatchProvider = getStaticRpcBatchProvider; exports.getStaticRpcProvider = getStaticRpcProvider;