aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/metamask-controller.js
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2017-09-08 12:17:49 +0800
committerkumavis <aaron@kumavis.me>2017-09-08 12:17:49 +0800
commit57e4805c621155cd86169064f4aaba34b73644c6 (patch)
tree8743a9621d2f4596c42df1ede748fa1b69aa8691 /app/scripts/metamask-controller.js
parent440a42bbc38ed53b64dc017fd56bd3281355df33 (diff)
downloadtangerine-wallet-browser-57e4805c621155cd86169064f4aaba34b73644c6.tar.gz
tangerine-wallet-browser-57e4805c621155cd86169064f4aaba34b73644c6.tar.zst
tangerine-wallet-browser-57e4805c621155cd86169064f4aaba34b73644c6.zip
streams - use pump and published obj-multiplex
Diffstat (limited to 'app/scripts/metamask-controller.js')
-rw-r--r--app/scripts/metamask-controller.js34
1 files changed, 27 insertions, 7 deletions
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index e4b1b5975..1a6732338 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -1,7 +1,7 @@
const EventEmitter = require('events')
const extend = require('xtend')
const promiseToCallback = require('promise-to-callback')
-const pipe = require('pump')
+const pump = require('pump')
const Dnode = require('dnode')
const ObservableStore = require('obs-store')
const EthStore = require('./lib/eth-store')
@@ -367,7 +367,14 @@ module.exports = class MetamaskController extends EventEmitter {
setupControllerConnection (outStream) {
const api = this.getApi()
const dnode = Dnode(api)
- outStream.pipe(dnode).pipe(outStream)
+ pump(
+ outStream,
+ dnode,
+ outStream,
+ (err) => {
+ if (err) console.error(err)
+ }
+ )
dnode.on('remote', (remote) => {
// push updates to popup
const sendUpdate = remote.sendUpdate.bind(remote)
@@ -376,20 +383,29 @@ module.exports = class MetamaskController extends EventEmitter {
}
setupProviderConnection (outStream, originDomain) {
+ // setup json rpc engine stack
const engine = new RpcEngine()
engine.push(originMiddleware)
engine.push(loggerMiddleware)
engine.push(createProviderMiddleware({ provider: this.provider }))
-
+
// setup connection
const providerStream = createEngineStream({ engine })
- outStream.pipe(providerStream).pipe(outStream)
-
+ pump(
+ outStream,
+ providerStream,
+ outStream,
+ (err) => {
+ if (err) console.error(err)
+ }
+ )
+
// append dapp origin domain to request
function originMiddleware (req, res, next, end) {
req.origin = originDomain
next()
}
+
// log rpc activity
function loggerMiddleware (req, res, next, end) {
next((cb) => {
@@ -401,6 +417,7 @@ module.exports = class MetamaskController extends EventEmitter {
cb()
})
}
+
// forward requests to provider
function createProviderMiddleware({ provider }) {
return (req, res, next, end) => {
@@ -414,9 +431,12 @@ module.exports = class MetamaskController extends EventEmitter {
}
setupPublicConfig (outStream) {
- pipe(
+ pump(
this.publicConfigStore,
- outStream
+ outStream,
+ (err) => {
+ if (err) console.error(err)
+ }
)
}