aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/background.js
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2016-01-17 17:27:25 +0800
committerkumavis <aaron@kumavis.me>2016-01-17 17:27:25 +0800
commit2f079dfdd158b787659e3f87d5c5c442b2f05e7a (patch)
tree6c4a58f812898932ede58a356741cfd2eb877892 /app/scripts/background.js
parente50e1894435e47e3e23a7c97e61ca679cfa3222b (diff)
downloadtangerine-wallet-browser-2f079dfdd158b787659e3f87d5c5c442b2f05e7a.tar
tangerine-wallet-browser-2f079dfdd158b787659e3f87d5c5c442b2f05e7a.tar.gz
tangerine-wallet-browser-2f079dfdd158b787659e3f87d5c5c442b2f05e7a.tar.bz2
tangerine-wallet-browser-2f079dfdd158b787659e3f87d5c5c442b2f05e7a.tar.lz
tangerine-wallet-browser-2f079dfdd158b787659e3f87d5c5c442b2f05e7a.tar.xz
tangerine-wallet-browser-2f079dfdd158b787659e3f87d5c5c442b2f05e7a.tar.zst
tangerine-wallet-browser-2f079dfdd158b787659e3f87d5c5c442b2f05e7a.zip
refactor - push data to popup
Diffstat (limited to 'app/scripts/background.js')
-rw-r--r--app/scripts/background.js34
1 files changed, 31 insertions, 3 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js
index ca6b5abbc..3de152d0a 100644
--- a/app/scripts/background.js
+++ b/app/scripts/background.js
@@ -2,10 +2,11 @@ const Dnode = require('dnode')
const PortStream = require('./lib/port-stream.js')
const MetaMaskProvider = require('./lib/metamask-provider')
const IdentityManager = require('./lib/idmgmt')
+const eos = require('end-of-stream')
console.log('ready to roll')
-var wallet = IdentityManager()
+var wallet = new IdentityManager()
// setup provider
var zeroClient = MetaMaskProvider({
@@ -35,8 +36,35 @@ function connectRemote(remotePort){
function handleInternalCommunication(remotePort){
var duplex = new PortStream(remotePort)
- var remote = Dnode(wallet)
- duplex.pipe(remote).pipe(duplex)
+ var connection = Dnode({
+ // this is annoying, have to decompose wallet
+ getState: wallet.getState.bind(wallet),
+ submitPassword: wallet.submitPassword.bind(wallet),
+ setSelectedAddress: wallet.setSelectedAddress.bind(wallet),
+ signTransaction: wallet.signTransaction.bind(wallet),
+ setLocked: wallet.setLocked.bind(wallet),
+ getAccounts: wallet.getAccounts.bind(wallet),
+ confirmTransaction: wallet.confirmTransaction.bind(wallet),
+ newBlock: wallet.newBlock.bind(wallet),
+ setProvider: wallet.setProvider.bind(wallet),
+ })
+ duplex.pipe(connection).pipe(duplex)
+ connection.on('remote', function(remote){
+
+ // push updates to popup
+ wallet.on('update', sendUpdate)
+ eos(duplex, function unsubscribe(){
+ wallet.removeListener('update', sendUpdate)
+ })
+ function sendUpdate(state){
+ remote.sendUpdate(state)
+ }
+
+ })
+
+
+
+ // sub to metamask store
}
function handleExternalCommunication(remotePort){