@lido-sdk/providers
v1.5.1
Published
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
Readme
⚠️DEPRECATION WARNING⚠️
This project is being slowly deprecated and may not receive further updates. Check out modern Lido SDK to access latest functionality. It is actively maintained and is built for interacting with Lido Protocol.
Providers
Providers for Lido Finance projects. Part of Lido JS SDK
A Provider is an abstraction of a connection to the Ethereum network, providing a concise, consistent interface to standard Ethereum node functionality. More details in the ethers docs.
Install
yarn add @lido-sdk/providersRPC providers
Each getter returns a cached Provider instance.
getRpcProvider
Returns a JsonRpcProvider instance.
import { CHAINS } from '@lido-sdk/constants';
import { getRpcProvider } from '@lido-sdk/providers';
const provider = getRpcProvider(CHAINS.Mainnet, '/rpc/url');
const hoodiProvider = getRpcProvider(CHAINS.Hoodi, '/rpc/hoodi-url');getRpcBatchProvider
Returns an instance of batch version of JsonRpcProvider.
import { CHAINS } from '@lido-sdk/constants';
import { getRpcBatchProvider } from '@lido-sdk/providers';
const batchProvider = getRpcBatchProvider(CHAINS.Mainnet, '/rpc/url');getStaticRpcProvider
Returns a StaticJsonRpcProvider instance.
import { CHAINS } from '@lido-sdk/constants';
import { getStaticRpcProvider } from '@lido-sdk/providers';
const staticProvider = getStaticRpcProvider(CHAINS.Mainnet, '/rpc/url');getStaticRpcBatchProvider
Returns an instance of batch version of StaticJsonRpcProvider.
import { CHAINS } from '@lido-sdk/constants';
import { getStaticRpcBatchProvider } from '@lido-sdk/providers';
const staticProvider = getStaticRpcBatchProvider(CHAINS.Mainnet, '/rpc/url');Cache
To get another provider instance, getters have a third optional parameter cacheSeed.
Calls without cacheSeed or with the same cacheSeed return the same providers:
const providerFirst = getRpcBatchProvider(CHAINS.Mainnet, '/rpc/url', 1);
const providerSecond = getRpcBatchProvider(CHAINS.Mainnet, '/rpc/url', 1);
providerFirst === providerSecond; // trueCalls with different cacheSeed return different providers:
const providerFirst = getRpcBatchProvider(CHAINS.Mainnet, '/rpc/url', 1);
const providerSecond = getRpcBatchProvider(CHAINS.Mainnet, '/rpc/url', 2);
providerFirst !== providerSecond; // trueOf course, if the cacheSeed is the same, but chainId or url are different the result providers will also be different:
const providerFirst = getRpcBatchProvider(CHAINS.Mainnet, '/rpc/url', 1);
const providerSecond = getRpcBatchProvider(
CHAINS.Mainnet,
'/another/rpc/url',
1,
);
providerFirst !== providerSecond; // true, because the urls are different