What is @ethersproject/providers?
@ethersproject/providers is a module from the ethers.js library that provides a way to interact with Ethereum nodes. It allows developers to connect to Ethereum networks, query blockchain data, and send transactions.
What are @ethersproject/providers's main functionalities?
Connecting to a Provider
This feature allows you to connect to an Ethereum node using a JSON-RPC provider. In this example, we use Infura as the provider.
const { ethers } = require('ethers');
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
Querying Blockchain Data
This feature allows you to query blockchain data. In this example, we fetch the current block number from the Ethereum network.
const { ethers } = require('ethers');
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
async function getBlockNumber() {
const blockNumber = await provider.getBlockNumber();
console.log('Current block number:', blockNumber);
}
getBlockNumber();
Sending Transactions
This feature allows you to send transactions on the Ethereum network. In this example, we create a wallet instance and send a transaction to a recipient address.
const { ethers } = require('ethers');
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
const wallet = new ethers.Wallet('YOUR_PRIVATE_KEY', provider);
async function sendTransaction() {
const tx = {
to: '0xRecipientAddress',
value: ethers.utils.parseEther('0.01')
};
const transaction = await wallet.sendTransaction(tx);
console.log('Transaction hash:', transaction.hash);
}
sendTransaction();
Other packages similar to @ethersproject/providers
web3
web3.js is a popular library for interacting with the Ethereum blockchain. It provides similar functionalities to @ethersproject/providers, such as connecting to Ethereum nodes, querying blockchain data, and sending transactions. However, web3.js has a larger community and more extensive documentation.
ethjs
ethjs is a lightweight JavaScript library for interacting with the Ethereum blockchain. It provides basic functionalities similar to @ethersproject/providers, such as sending transactions and querying blockchain data. However, it is less feature-rich and has a smaller community compared to ethers.js.
Ethereum Providers
This sub-module is part of the ethers project.
It contains common Provider classes, utility functions for dealing with providers
and re-exports many of the classes and types needed to implement a custom Provider.
For more information, see the documentation.
Importing
Most users will prefer to use the umbrella package,
but for those with more specific needs, individual components can be imported.
const {
Provider,
BaseProvider,
JsonRpcProvider,
StaticJsonRpcProvider,
UrlJsonRpcProvider,
FallbackProvider,
AlchemyProvider,
CloudflareProvider,
EtherscanProvider,
InfuraProvider,
NodesmithProvider,
IpcProvider,
Web3Provider,
WebSocketProvider,
JsonRpcSigner,
getDefaultProvider,
getNetwork,
Formatter,
TransactionReceipt,
TransactionRequest,
TransactionResponse,
Listener,
ExternalProvider,
Block,
BlockTag,
EventType,
Filter,
Log,
JsonRpcFetchFunc,
Network,
Networkish
} = require("@ethersproject/providers");
License
MIT License