aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/scripts/background.js19
-rw-r--r--app/scripts/lib/stream-utils.js21
-rw-r--r--app/scripts/popup.js8
3 files changed, 31 insertions, 17 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js
index 850a7bc6e..dfcdcc06c 100644
--- a/app/scripts/background.js
+++ b/app/scripts/background.js
@@ -1,6 +1,5 @@
const Dnode = require('dnode')
const Multiplex = require('multiplex')
-const Through = require('through2')
const eos = require('end-of-stream')
const combineStreams = require('pumpify')
const extend = require('xtend')
@@ -10,6 +9,8 @@ const MetaMaskProvider = require('./lib/zero.js')
const IdentityStore = require('./lib/idStore')
const createTxNotification = require('./lib/tx-notification.js')
const configManager = require('./lib/config-manager-singleton')
+const jsonParseStream = require('./lib/stream-utils.js').jsonParseStream
+const jsonStringifyStream = require('./lib/stream-utils.js').jsonStringifyStream
//
// connect to other contexts
@@ -100,7 +101,7 @@ function handleInternalCommunication(portStream){
mx.destroy()
})
var dnodeStream = mx.createSharedStream('dnode')
- var providerStream = combineStreams(
+ var providerStream = combineStreams.obj(
jsonStringifyStream(),
mx.createSharedStream('provider'),
jsonParseStream()
@@ -191,18 +192,4 @@ function useEtherscanProvider() {
// util
-function jsonParseStream(){
- return Through.obj(function(serialized){
- this.push(JSON.parse(serialized))
- cb()
- })
-}
-
-function jsonStringifyStream(){
- return Through.obj(function(obj){
- this.push(JSON.stringify(obj))
- cb()
- })
-}
-
function noop(){}
diff --git a/app/scripts/lib/stream-utils.js b/app/scripts/lib/stream-utils.js
new file mode 100644
index 000000000..12560ffd8
--- /dev/null
+++ b/app/scripts/lib/stream-utils.js
@@ -0,0 +1,21 @@
+const Through = require('through2')
+
+
+module.exports = {
+ jsonParseStream: jsonParseStream,
+ jsonStringifyStream: jsonStringifyStream,
+}
+
+function jsonParseStream(){
+ return Through.obj(function(serialized, encoding, cb){
+ this.push(JSON.parse(serialized))
+ cb()
+ })
+}
+
+function jsonStringifyStream(){
+ return Through.obj(function(obj, encoding, cb){
+ this.push(JSON.stringify(obj))
+ cb()
+ })
+}
diff --git a/app/scripts/popup.js b/app/scripts/popup.js
index cfb3c95e0..e6dae0d81 100644
--- a/app/scripts/popup.js
+++ b/app/scripts/popup.js
@@ -9,6 +9,8 @@ const MetaMaskUiCss = require('metamask-ui/css')
const injectCss = require('inject-css')
const PortStream = require('./lib/port-stream.js')
const StreamProvider = require('./lib/stream-provider.js')
+const jsonParseStream = require('./lib/stream-utils.js').jsonParseStream
+const jsonStringifyStream = require('./lib/stream-utils.js').jsonStringifyStream
// setup app
var css = MetaMaskUiCss()
@@ -42,7 +44,11 @@ function connectToAccountManager(cb){
function linkWeb3(stream){
var remoteProvider = new StreamProvider()
- remoteProvider.pipe(stream).pipe(remoteProvider)
+ remoteProvider
+ .pipe(jsonStringifyStream())
+ .pipe(stream)
+ .pipe(jsonParseStream())
+ .pipe(remoteProvider)
stream.on('error', console.error.bind(console))
remoteProvider.on('error', console.error.bind(console))
global.web3 = new Web3(remoteProvider)