aboutsummaryrefslogtreecommitdiffstats
path: root/test/stub/provider.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/stub/provider.js')
-rw-r--r--test/stub/provider.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/stub/provider.js b/test/stub/provider.js
new file mode 100644
index 000000000..e77db4e28
--- /dev/null
+++ b/test/stub/provider.js
@@ -0,0 +1,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 }
+}