message: use bitcoinfees.earn.com (draft)
diff: @@ -127,6 +127,7 @@ const calculateTxSize = async ({ speed, unspents, address, txOut = 2, method = '
  )
  const mstxSize = txIn * msSize + txOut * 33 + (15 + txIn - txOut)
  + console.log('calculateTxSize', mstxSize)
  return mstxSize
  }
  @@ -174,7 +175,34 @@ const estimateFeeValue = async ({ feeRate, inSatoshis, speed, address, txSize, f
  return finalFeeValue
  }
  -const estimateFeeRate = async ({ speed = 'fast' } = {}) => {
  +const estimateFeeRateBitcoinfees = async ({ speed = 'fast' } = {}) => {
  + const defaultRate = constants.defaultFeeRates.btc.rate
  +
  + let apiResult
  +
  + try {
  + apiResult = await request.get(`https://bitcoinfees.earn.com/api/v1/fees/recommended`, { cacheResponse: 60000 })
  + } catch (err) {
  + console.error(`EstimateFeeRate: ${err.message}`)
  + return defaultRate[speed]
  + }
  +
  + const apiSpeeds = {
  + slow: `hourFee`,
  + normal: `halfHourFee`,
  + fast: `fastestFee`,
  + }
  +
  + const apiSpeed = apiSpeeds[speed] || apiSpeed.normal
  +
  + const apiRate = BigNumber(apiResult[apiSpeed]).multipliedBy(1024)
  +
  + return apiRate.isGreaterThanOrEqualTo(DUST)
  + ? apiRate.toString()
  + : defaultRate[speed]
  +}
  +
  +const estimateFeeRateBlockcypher = async ({ speed = 'fast' } = {}) => {
  const link = config.feeRates.btc
  const defaultRate = constants.defaultFeeRates.btc.rate
  @@ -206,6 +234,8 @@ const estimateFeeRate = async ({ speed = 'fast' } = {}) => {
  : defaultRate[speed]
  }
  +const estimateFeeRate = estimateFeeRateBlockcypher
  +
  export default {
  calculateTxSize,
  estimateFeeValue,
  