aboutsummaryrefslogtreecommitdiffstats
path: root/test/stub/provider.js
blob: e77db4e28ba05765ef899d9dd35606836d0c27e2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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 }
}