From 5eb3d5d485b17b98b19443d8def2f03dec9b38ef Mon Sep 17 00:00:00 2001
From: Dan Finlay <dan@danfinlay.com>
Date: Mon, 3 Jul 2017 15:39:25 -0700
Subject: Make folder for responsive UI

---
 app/scripts/responsive-core.js | 54 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 app/scripts/responsive-core.js

(limited to 'app/scripts/responsive-core.js')

diff --git a/app/scripts/responsive-core.js b/app/scripts/responsive-core.js
new file mode 100644
index 000000000..3760facfa
--- /dev/null
+++ b/app/scripts/responsive-core.js
@@ -0,0 +1,54 @@
+const EventEmitter = require('events').EventEmitter
+const async = require('async')
+const Dnode = require('dnode')
+const EthQuery = require('eth-query')
+const launchMetamaskUi = require('../../ui/responsive')
+const StreamProvider = require('web3-stream-provider')
+const setupMultiplex = require('./lib/stream-utils.js').setupMultiplex
+
+
+module.exports = initializePopup
+
+
+function initializePopup ({ container, connectionStream }, cb) {
+  // setup app
+  async.waterfall([
+    (cb) => connectToAccountManager(connectionStream, cb),
+    (accountManager, cb) => launchMetamaskUi({ container, accountManager }, cb),
+  ], cb)
+}
+
+function connectToAccountManager (connectionStream, cb) {
+  // setup communication with background
+  // setup multiplexing
+  var mx = setupMultiplex(connectionStream)
+  // 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.ethereumProvider = providerStream
+  global.ethQuery = new EthQuery(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)
+  })
+}
-- 
cgit 

 action='/~lantw44/cgit/freebsd-ports-graphics/log/german/dict/distinfo'>
<select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/~lantw44/cgit/freebsd-ports-graphics/log/'>root</a>/<a href='/~lantw44/cgit/freebsd-ports-graphics/log/german'>german</a>/<a href='/~lantw44/cgit/freebsd-ports-graphics/log/german/dict'>dict</a>/<a href='/~lantw44/cgit/freebsd-ports-graphics/log/german/dict/distinfo'>distinfo</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/freebsd-ports-graphics/log/german/dict/distinfo?showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
s/ini-1.3.8'>dependabot/npm_and_yarn/devel/electron6/files/ini-1.3.8</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/lodash-4.17.19'>dependabot/npm_and_yarn/devel/electron6/files/lodash-4.17.19</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2' selected='selected'>dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/node-fetch-2.6.1'>dependabot/npm_and_yarn/devel/electron6/files/node-fetch-2.6.1</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/serve-10.1.2'>dependabot/npm_and_yarn/devel/electron6/files/serve-10.1.2</option>
<option value='gnome-3.22'>gnome-3.22</option>
<option value='gnome-3.24'>gnome-3.24</option>
<option value='gnome-3.26'>gnome-3.26</option>
<option value='gnome-3.28'>gnome-3.28</option>
<option value='gnome-3.32'>gnome-3.32</option>
<option value='gnome-3.36'>gnome-3.36</option>
<option value='gstreamer'>gstreamer</option>
<option value='gstreamer-1.16'>gstreamer-1.16</option>
<option value='gstreamer0.10-removal'>gstreamer0.10-removal</option>
<option value='main'>main</option>
<option value='master'>master</option>
<option value='mate-1.16'>mate-1.16</option>
<option value='mate-1.18'>mate-1.18</option>
<option value='mate-1.20'>mate-1.20</option>
<option value='mate-1.22'>mate-1.22</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>FreeBSD GNOME current development ports (https://github.com/freebsd/freebsd-ports-gnome)</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/~lantw44/cgit/freebsd-ports-gnome/about/?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>about</a><a href='/~lantw44/cgit/freebsd-ports-gnome/?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>summary</a><a href='/~lantw44/cgit/freebsd-ports-gnome/refs/?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>refs</a><a class='active' href='/~lantw44/cgit/freebsd-ports-gnome/log/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>log</a><a href='/~lantw44/cgit/freebsd-ports-gnome/tree/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>tree</a><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>commit</a><a href='/~lantw44/cgit/freebsd-ports-gnome/diff/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>diff</a><a href='/~lantw44/cgit/freebsd-ports-gnome/stats/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/freebsd-ports-gnome/log/UPDATING'>
<input type='hidden' name='h' value='dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'/><input type='hidden' name='id' value='dab5a9cde2a0e74ce48d0a8d137584562bc5678b'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/~lantw44/cgit/freebsd-ports-gnome/log/?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>root</a>/<a href='/~lantw44/cgit/freebsd-ports-gnome/log/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>UPDATING</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/freebsd-ports-gnome/log/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=377cfb12e0ae03857351d55b73cf2826c9394997'>net-mgmt/netbox: Update to 2.7.7</a></td><td>kai</td><td><span title='2020-02-26 06:19:07 +0800'>2020-02-26</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+59</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=2e48539303a28af39de246a69b053d3dd903e7c9'>UPDATING: improve xorg-server entry</a></td><td>zeising</td><td><span title='2020-02-23 18:51:48 +0800'>2020-02-23</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+5</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=7be14185c33df3b17accdd2a054477514457fbee'>Document the split of GNU SASL (gsasl)</a></td><td>sunpoet</td><td><span title='2020-02-23 16:08:03 +0800'>2020-02-23</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+10</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=304010210c9e5ba7a7d51c1d7a3d2817477e6053'>Add UPDATING entry for xorg-server</a></td><td>zeising</td><td><span title='2020-02-21 06:26:53 +0800'>2020-02-21</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+12</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=d25bc02871b6fba1ae7a6530bba426163cd3821c'>Reduce the duplicated 'nss' in include and lib path</a></td><td>lwhsu</td><td><span title='2020-02-07 21:32:00 +0800'>2020-02-07</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+7</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&amp;id=d88cb36e2bbc1ba286c15d291589a36f3611a46d'>vim: Update to patchlevel 205 and add PYTHON option</a></td><td>adamw</td><td><span title='2020-02-04 22:03:00 +0800'>2020-02-04</span>