aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/popup.js
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2016-09-13 14:28:07 +0800
committerkumavis <aaron@kumavis.me>2016-09-13 14:28:07 +0800
commitb4e3b83f0467ebd1610c18d318b5d1b54d8863bb (patch)
tree3ba79483bb8348a5e8c5bf961a0c8b9d255898d7 /app/scripts/popup.js
parented11ab6d18d798896db1f991ec80105c22074d0a (diff)
downloadtangerine-wallet-browser-b4e3b83f0467ebd1610c18d318b5d1b54d8863bb.tar
tangerine-wallet-browser-b4e3b83f0467ebd1610c18d318b5d1b54d8863bb.tar.gz
tangerine-wallet-browser-b4e3b83f0467ebd1610c18d318b5d1b54d8863bb.tar.bz2
tangerine-wallet-browser-b4e3b83f0467ebd1610c18d318b5d1b54d8863bb.tar.lz
tangerine-wallet-browser-b4e3b83f0467ebd1610c18d318b5d1b54d8863bb.tar.xz
tangerine-wallet-browser-b4e3b83f0467ebd1610c18d318b5d1b54d8863bb.tar.zst
tangerine-wallet-browser-b4e3b83f0467ebd1610c18d318b5d1b54d8863bb.zip
popup - breakout popup-core
Diffstat (limited to 'app/scripts/popup.js')
-rw-r--r--app/scripts/popup.js69
1 files changed, 8 insertions, 61 deletions
diff --git a/app/scripts/popup.js b/app/scripts/popup.js
index 012ced951..8485b5081 100644
--- a/app/scripts/popup.js
+++ b/app/scripts/popup.js
@@ -1,75 +1,22 @@
-const EventEmitter = require('events').EventEmitter
-const Dnode = require('dnode')
-const Web3 = require('web3')
-const MetaMaskUi = require('../../ui')
-const MetaMaskUiCss = require('../../ui/css')
const injectCss = require('inject-css')
+const MetaMaskUiCss = require('../../ui/css')
const PortStream = require('./lib/port-stream.js')
-const StreamProvider = require('web3-stream-provider')
-const setupMultiplex = require('./lib/stream-utils.js').setupMultiplex
+const startPopup = require('./popup-core')
const isPopupOrNotification = require('./lib/is-popup-or-notification')
const extension = require('./lib/extension')
const notification = require('./lib/notifications')
-// setup app
var css = MetaMaskUiCss()
injectCss(css)
-connectToAccountManager(setupApp)
-
-function connectToAccountManager (cb) {
- // setup communication with background
-
- var name = isPopupOrNotification()
- closePopupIfOpen(name)
- window.METAMASK_UI_TYPE = name
- var pluginPort = extension.runtime.connect({ name })
- var portStream = new PortStream(pluginPort)
- // setup multiplexing
- var mx = setupMultiplex(portStream)
- // connect features
- setupControllerConnection(mx.createStream('controller'), cb)
- setupWeb3Connection(mx.createStream('provider'))
-}
-
-function setupWeb3Connection (connectionStream) {
- var providerStream = new StreamProvider()
- providerStream.pipe(connectionStream).pipe(providerStream)
- connectionStream.on('error', console.error.bind(console))
- providerStream.on('error', console.error.bind(console))
- global.web3 = new Web3(providerStream)
-}
-
-function setupControllerConnection (connectionStream, cb) {
- // this is a really sneaky way of adding EventEmitter api
- // to a bi-directional dnode instance
- var eventEmitter = new EventEmitter()
- var accountManagerDnode = Dnode({
- sendUpdate: function (state) {
- eventEmitter.emit('update', state)
- },
- })
- connectionStream.pipe(accountManagerDnode).pipe(connectionStream)
- accountManagerDnode.once('remote', function (accountManager) {
- // setup push events
- accountManager.on = eventEmitter.on.bind(eventEmitter)
- cb(null, accountManager)
- })
-}
+var name = isPopupOrNotification()
+closePopupIfOpen(name)
+window.METAMASK_UI_TYPE = name
-function setupApp (err, accountManager) {
- if (err) {
- alert(err.stack)
- throw err
- }
-
- var container = document.getElementById('app-content')
+var pluginPort = extension.runtime.connect({ name })
+var portStream = new PortStream(pluginPort)
- MetaMaskUi({
- container: container,
- accountManager: accountManager,
- })
-}
+startPopup(portStream)
function closePopupIfOpen(name) {
if (name !== 'notification') {