1.0.7 • Published 1 year ago
@magnusmage/gasmate v1.0.7
Gas Mate
Gas Mate is designed to provide real-time gas prices to ensure that your transactions get included in a block. It provides an asynchronous function getGasFeeEstimates that estimates gas fees across different blockchain networks.
Features
- Gas Fee Estimation: Calculate low, medium, and high gas fee estimates for transactions.
- Network Support: The function handles modern, legacy, and custom networks like Ethereum, Binance Smart Chain, Polygon, Avalanche, and others.
- Custom Gas Fee Scaling: Dynamically adjust gas fees using percentile-based scaling for a more accurate estimation.
- Historical Data: Utilizes recent blocks and transaction data to provide an accurate estimation of gas prices.
Supported Networks
| Network | Chain ID |
|---|---|
| Arbitrum One | 42161 |
| Arbitrum Nova | 42170 |
| BNB Smart Chain Mainnet | 56 |
| BNB Smart Chain Testnet | 97 |
| BNB opBNB (layer 2) | 204 |
| Catena Chain Testnet | 9000 |
| Cronos Mainnet | 25 |
| Ethereum Mainnet | 1 |
| Ethereum Sepolia | 11155111 |
| Fantom Mainnet | 250 |
| Filecoin Mainnet | 314 |
| Linea Mainnet | 59144 |
| Linea Sepolia | 59141 |
| Neon EVM Devnet | 245022926 |
| Optimism Mainnet | 10 |
| Polygon Mainnet | 137 |
| Polygon Amoy | 80002 |
| ZKsync Era Mainnet | 324 |
Installation
You can install this package using npm:
npm install @magnusmage/gasmateor using yarn:
yarn add @magnusmage/gasmateUsage
- Import the getGasFeeEstimates function in your project:
const getGasFeeEstimates = require('@magnusmage/gasmate');or
import getGasFeeEstimates from '@magnusmage/gasmate';- Call the function, passing the desired network's RPC URL:
(async () => {
try {
const gasFeeEstimates = await getGasFeeEstimates('https://bsc-dataseed.binance.org/');
console.log(gasFeeEstimates);
} catch (error) {
console.error(error.message);
}
})();Example Output
The function returns an object containing gas fee estimates for low, medium, and high priority transactions:
{
"low": {
"suggestedMaxPriorityFeePerGas": "1.2",
"suggestedMaxFeePerGas": "12.34",
"minWaitTimeEstimate": 15000,
"maxWaitTimeEstimate": 60000
},
"medium": {
"suggestedMaxPriorityFeePerGas": "1.5",
"suggestedMaxFeePerGas": "15.67",
"minWaitTimeEstimate": 15000,
"maxWaitTimeEstimate": 45000
},
"high": {
"suggestedMaxPriorityFeePerGas": "1.8",
"suggestedMaxFeePerGas": "18.90",
"minWaitTimeEstimate": 15000,
"maxWaitTimeEstimate": 30000
},
"estimatedBaseFee": "12.34"
}Error Handling
- Invalid RPC URLs will result in an error.
- If there are no gas prices found in recent blocks, the function throws an appropriate error message.