efx-api-node
Version:
<img src="https://avatars3.githubusercontent.com/u/33315316?s=200&v=4" align="right" />
32 lines (22 loc) • 733 B
JavaScript
const { get } = require('request-promise')
const _ = require('lodash')
const calculateVolume = require('../lib/bfx/calculateVolume')
/**
*
* Calculate feeRate based on deversifi feeRate rules
*/
module.exports = async (efx, symbol, amount, price) => {
const volume = await calculateVolume(symbol, amount, price)
// fetch freeRate from the api
const account = efx.get('account')
const url = efx.config['0x'].feeApiUrl + account
let feeRates = await get(url, { json: true})
// filter all fees with threshold below volume
let feeRate = _.filter(feeRates.fees, (item) => item.threshold <= volume)
// pick the cheapest one
feeRate = _.sortBy(feeRate, 'feeBps')[0]
return {
feeRate,
feeRates
}
}