text: import { createAsyncMiddleware } from 'json-rpc-engine'
  import { formatTxMetaForRpcResult } from '../util'
  
  export function createPendingNonceMiddleware ({ getPendingNonce }) {
    return createAsyncMiddleware(async (req, res, next) => {
      const { method, params } = req
      if (method !== 'eth_getTransactionCount') {
        next()
        return
      }
      const [param, blockRef] = params
      if (blockRef !== 'pending') {
        next()
        return
      }
      res.result = await getPendingNonce(param)
    })
  }
  
  export function createPendingTxMiddleware ({ getPendingTransactionByHash }) {
    return createAsyncMiddleware(async (req, res, next) => {
      const { method, params } = req
      if (method !== 'eth_getTransactionByHash') {
        next()
        return
      }
      const [hash] = params
      const txMeta = getPendingTransactionByHash(hash)
      if (!txMeta) {
        next()
        return
      }
      res.result = formatTxMetaForRpcResult(txMeta)
    })
  }
  