Gas Price Oracle library for Ethereum dApps
Go to file
2020-10-19 11:04:20 -07:00
.github/workflows remove tslint (using eslint now) 2020-10-19 15:02:47 +03:00
src eslint - dont be quiet. Fix warnings 2020-10-19 16:14:07 +03:00
tests remove tslint (using eslint now) 2020-10-19 15:02:47 +03:00
.editiorconfig init 2020-05-27 18:52:57 +03:00
.eslintrc.js remove tslint (using eslint now) 2020-10-19 15:02:47 +03:00
.gitignore init 2020-05-27 18:52:57 +03:00
.prettierrc remove tslint (using eslint now) 2020-10-19 15:02:47 +03:00
LICENSE Create LICENSE 2020-06-03 14:11:01 -07:00
package.json eslint - dont be quiet. Fix warnings 2020-10-19 16:14:07 +03:00
README.md gasnow gas price orace 2020-10-19 16:08:19 +03:00
tsconfig.json remove tslint (using eslint now) 2020-10-19 15:02:47 +03:00
yarn.lock remove tslint (using eslint now) 2020-10-19 15:02:47 +03:00

Gas Price Oracle library for Ethereum dApps GitHub Workflow Status npm

A library that has a collection of onchain and offchain gas price oracle URLs

Current offchain list:

Current onchain list:

Installation

npm i gas-price-oracle

Import

const { GasPriceOracle } = require('gas-price-oracle');

Usage

Basic

const options = {
  defaultRpc: 'https://api.mycryptoapi.com/eth',
  timeout: 10000,
};
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
});