Gas Price Oracle library for Ethereum dApps
1dbd778166
Bumps [axios](https://github.com/axios/axios) from 0.19.2 to 0.21.2. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v0.19.2...v0.21.2) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> |
||
---|---|---|
.github/workflows | ||
src | ||
tests | ||
.editiorconfig | ||
.eslintrc.js | ||
.gitignore | ||
.prettierrc | ||
LICENSE | ||
package.json | ||
README.md | ||
tsconfig.json | ||
yarn.lock |
Gas Price Oracle library for Ethereum dApps
A library that has a collection of onchain and offchain gas price oracle URLs
Supported networks
Ethereum Mainnet
Current offchain list:
- https://ethgasstation.info/json/ethgasAPI.json
- https://etherchain.org/api/gasnow
- https://blockscout.com/eth/mainnet/api/v1/gas-price-oracle
Current onchain list:
Binance Smart Chain
Current offchain list:
xDAI Chain
Current offchain list:
Polygon (Matic) Network
Current offchain list:
Arbitrum One
Current offchain list:
Avalanche Mainnet
Current offchain list:
Installation
npm i gas-price-oracle
Import
const { GasPriceOracle } = require('gas-price-oracle');
Usage
Basic
const options = {
chainId: 1,
defaultRpc: 'https://api.mycryptoapi.com/eth',
timeout: 10000,
defaultFallbackGasPrices: {
instant: 28,
fast: 22,
standard: 17,
low: 11,
},
};
const oracle = new GasPriceOracle(options);
// optional fallbackGasPrices
const fallbackGasPrices = {
instant: 70,
fast: 31,
standard: 20,
low: 7,
};
oracle.gasPrices(fallbackGasPrices).then(gasPrices => {
console.log(gasPrices); // { instant: 50, fast: 21, standard: 10, low: 3 }
});
The gasPrices
method also accepts median
argument (true
) by default. For more details see below.
Under the hood it's a combination of fetchMedianGasPriceOffChain
(fetchGasPricesOffChain
) and fetchGasPricesOnChain
methods.
Offchain oracles only
const oracle = new GasPriceOracle();
oracle.fetchGasPricesOffChain().then(gasPrices => {
console.log(gasPrices); // { instant: 50, fast: 21, standard: 10, low: 3 }
});
Offchain oracles only (get median price)
const oracle = new GasPriceOracle();
oracle.fetchMedianGasPriceOffChain().then(gasPrices => {
console.log(gasPrices); // { instant: 50, fast: 21, standard: 10, low: 3 }
});
it returns the median gas price of all the oracles configured.
Custom RPC URL for onchain oracles
const defaultRpc = 'https://mainnet.infura.io/v3/<API_KEY>';
const oracle = new GasPriceOracle({ defaultRpc });
oracle.fetchGasPricesOnChain().then(gasPrices => {
console.log(gasPrices); // 21
});