aboutsummaryrefslogblamecommitdiffstats
path: root/test/stub/provider.js
blob: e77db4e28ba05765ef899d9dd35606836d0c27e2 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                                                      
                                                                                 




                          
                          











                                                            
                                              
                                          






                                                      
 
const JsonRpcEngine = require('json-rpc-engine')
const scaffoldMiddleware = require('eth-json-rpc-middleware/scaffold')
const TestBlockchain = require('eth-block-tracker/test/util/testBlockMiddleware')

module.exports = {
  createEngineForTestData,
  providerFromEngine,
  scaffoldMiddleware,
  createTestProviderTools,
}


function createEngineForTestData () {
  return new JsonRpcEngine()
}

function providerFromEngine (engine) {
  const provider = { sendAsync: engine.handle.bind(engine) }
  return provider
}

function createTestProviderTools (opts = {}) {
  const engine = createEngineForTestData()
  const testBlockchain = new TestBlockchain()
  // handle provided hooks
  engine.push(scaffoldMiddleware(opts.scaffold || {}))
  // handle block tracker methods
  engine.push(testBlockchain.createMiddleware())
  const provider = providerFromEngine(engine)
  return { provider, engine, testBlockchain }
}