UNPKG

giveth-bridge

Version:

Mainnet -> sidechain Giveth Bridge.

48 lines (34 loc) 1.45 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _requestPromise = require('request-promise'); var _requestPromise2 = _interopRequireDefault(_requestPromise); var _web = require('web3'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var FIVE_MINUTES = 1000 * 60 * 5; var lastChecked = Date.now() - FIVE_MINUTES - 1; var lastPrice = 1000000000; var queryGasStation = function queryGasStation() { if (Date.now() > lastChecked + FIVE_MINUTES) { return (0, _requestPromise2.default)('https://ethgasstation.info/json/ethgasAPI.json').then(function (resp) { var _JSON$parse = JSON.parse(resp), average = _JSON$parse.average; lastPrice = _web.utils.toWei('' + average / 10, 'gwei'); // response in gwei * 10 lastChecked = Date.now(); return lastPrice; }).catch(function (e) { console.error('could not fetch gas from ethgasstation', e); return lastPrice; }); } return Promise.resolve(lastPrice); }; exports.default = function (config) { var homeNetwork = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var gasPrice = homeNetwork ? config.homeGasPrice : config.foreignGasPrice; if (gasPrice === 'ethGasStation') { return queryGasStation(); } return Promise.resolve(gasPrice); };