diff options
Diffstat (limited to 'app/scripts/background.js')
-rw-r--r-- | app/scripts/background.js | 108 |
1 files changed, 53 insertions, 55 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js index b07331046..09a8a18ac 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -20,7 +20,7 @@ const Web3 = require('web3') // chrome.runtime.onConnect.addListener(connectRemote) -function connectRemote(remotePort){ +function connectRemote (remotePort) { var isMetaMaskInternalProcess = (remotePort.name === 'popup') var portStream = new PortStream(remotePort) if (isMetaMaskInternalProcess) { @@ -33,7 +33,7 @@ function connectRemote(remotePort){ } } -function setupUntrustedCommunication(connectionStream, originDomain){ +function setupUntrustedCommunication (connectionStream, originDomain) { // setup multiplexing var mx = setupMultiplex(connectionStream) // connect features @@ -41,7 +41,7 @@ function setupUntrustedCommunication(connectionStream, originDomain){ setupPublicConfig(mx.createStream('publicConfig')) } -function setupTrustedCommunication(connectionStream, originDomain){ +function setupTrustedCommunication (connectionStream, originDomain) { // setup multiplexing var mx = setupMultiplex(connectionStream) // connect features @@ -58,7 +58,7 @@ var idStore = new IdentityStore() var providerOpts = { rpcUrl: configManager.getCurrentRpcAddress(), // account mgmt - getAccounts: function(cb){ + getAccounts: function (cb) { var selectedAddress = idStore.getSelectedAddress() var result = selectedAddress ? [selectedAddress] : [] cb(null, result) @@ -76,8 +76,8 @@ idStore.web3 = web3 idStore.getNetwork() // log new blocks -provider.on('block', function(block){ - console.log('BLOCK CHANGED:', '#'+block.number.toString('hex'), '0x'+block.hash.toString('hex')) +provider.on('block', function (block) { + console.log('BLOCK CHANGED:', '#' + block.number.toString('hex'), '0x' + block.hash.toString('hex')) // Check network when restoring connectivity: if (idStore._currentState.network === 'loading') { @@ -90,7 +90,7 @@ provider.on('error', idStore.getNetwork.bind(idStore)) var ethStore = new EthStore(provider) idStore.setStore(ethStore) -function getState(){ +function getState () { var state = extend( ethStore.getState(), idStore.getState(), @@ -112,45 +112,43 @@ var initPublicState = extend( var publicConfigStore = new HostStore(initPublicState) // subscribe to changes -configManager.subscribe(function(state){ +configManager.subscribe(function (state) { storeSetFromObj(publicConfigStore, configToPublic(state)) }) -idStore.on('update', function(state){ +idStore.on('update', function (state) { storeSetFromObj(publicConfigStore, idStoreToPublic(state)) }) // idStore substate -function idStoreToPublic(state){ +function idStoreToPublic (state) { return { selectedAddress: state.selectedAddress, } } // config substate -function configToPublic(state){ +function configToPublic (state) { return { provider: state.provider, } } // dump obj into store -function storeSetFromObj(store, obj){ - Object.keys(obj).forEach(function(key){ +function storeSetFromObj (store, obj) { + Object.keys(obj).forEach(function (key) { store.set(key, obj[key]) }) } - // // remote features // -function setupPublicConfig(stream){ +function setupPublicConfig (stream) { var storeStream = publicConfigStore.createStream() stream.pipe(storeStream).pipe(stream) } -function setupProviderConnection(stream, originDomain){ - - stream.on('data', function onRpcRequest(payload){ +function setupProviderConnection (stream, originDomain) { + stream.on('data', function onRpcRequest (payload) { // Append origin to rpc payload payload.origin = originDomain // Append origin to signature request @@ -160,7 +158,10 @@ function setupProviderConnection(stream, originDomain){ payload.params.push({ origin: originDomain }) } // handle rpc request - provider.sendAsync(payload, function onPayloadHandled(err, response){ + provider.sendAsync(payload, function onPayloadHandled (err, response) { + if (err) { + return logger(err) + } logger(null, payload, response) try { stream.write(response) @@ -170,54 +171,52 @@ function setupProviderConnection(stream, originDomain){ }) }) - function logger(err, request, response){ + function logger (err, request, response) { if (err) return console.error(err.stack) if (!request.isMetamaskInternal) { console.log(`RPC (${originDomain}):`, request, '->', response) - if (response.error) console.error('Error in RPC response:\n'+response.error.message) + if (response.error) console.error('Error in RPC response:\n' + response.error.message) } } } -function setupControllerConnection(stream){ +function setupControllerConnection (stream) { var dnode = Dnode({ - getState: function(cb){ cb(null, getState()) }, - setRpcTarget: setRpcTarget, - setProviderType: setProviderType, + getState: function (cb) { cb(null, getState()) }, + setRpcTarget: setRpcTarget, + setProviderType: setProviderType, useEtherscanProvider: useEtherscanProvider, - agreeToDisclaimer: agreeToDisclaimer, + agreeToDisclaimer: agreeToDisclaimer, // forward directly to idStore - createNewVault: idStore.createNewVault.bind(idStore), - recoverFromSeed: idStore.recoverFromSeed.bind(idStore), - submitPassword: idStore.submitPassword.bind(idStore), + createNewVault: idStore.createNewVault.bind(idStore), + recoverFromSeed: idStore.recoverFromSeed.bind(idStore), + submitPassword: idStore.submitPassword.bind(idStore), setSelectedAddress: idStore.setSelectedAddress.bind(idStore), approveTransaction: idStore.approveTransaction.bind(idStore), - cancelTransaction: idStore.cancelTransaction.bind(idStore), - signMessage: idStore.signMessage.bind(idStore), - cancelMessage: idStore.cancelMessage.bind(idStore), - setLocked: idStore.setLocked.bind(idStore), + cancelTransaction: idStore.cancelTransaction.bind(idStore), + signMessage: idStore.signMessage.bind(idStore), + cancelMessage: idStore.cancelMessage.bind(idStore), + setLocked: idStore.setLocked.bind(idStore), clearSeedWordCache: idStore.clearSeedWordCache.bind(idStore), - exportAccount: idStore.exportAccount.bind(idStore), - revealAccount: idStore.revealAccount.bind(idStore), - saveAccountLabel: idStore.saveAccountLabel.bind(idStore), - tryPassword: idStore.tryPassword.bind(idStore), - recoverSeed: idStore.recoverSeed.bind(idStore), + exportAccount: idStore.exportAccount.bind(idStore), + revealAccount: idStore.revealAccount.bind(idStore), + saveAccountLabel: idStore.saveAccountLabel.bind(idStore), + tryPassword: idStore.tryPassword.bind(idStore), + recoverSeed: idStore.recoverSeed.bind(idStore), }) stream.pipe(dnode).pipe(stream) - dnode.on('remote', function(remote){ - + dnode.on('remote', function (remote) { // push updates to popup ethStore.on('update', sendUpdate) idStore.on('update', sendUpdate) // teardown on disconnect - eos(stream, function unsubscribe(){ + eos(stream, function unsubscribe () { ethStore.removeListener('update', sendUpdate) }) - function sendUpdate(){ + function sendUpdate () { var state = getState() remote.sendUpdate(state) } - }) } @@ -227,7 +226,7 @@ function setupControllerConnection(stream){ idStore.on('update', updateBadge) -function updateBadge(state){ +function updateBadge (state) { var label = '' var unconfTxs = configManager.unconfirmedTxs() var unconfTxLen = Object.keys(unconfTxs).length @@ -245,7 +244,7 @@ function updateBadge(state){ // Add unconfirmed Tx + Msg // -function newUnsignedTransaction(txParams, onTxDoneCb){ +function newUnsignedTransaction (txParams, onTxDoneCb) { var state = idStore.getState() if (!state.isUnlocked) { createUnlockRequestNotification({ @@ -257,20 +256,19 @@ function newUnsignedTransaction(txParams, onTxDoneCb){ } } -function newUnsignedMessage(msgParams, cb){ +function newUnsignedMessage (msgParams, cb) { var state = idStore.getState() if (!state.isUnlocked) { createUnlockRequestNotification({ title: 'Account Unlock Request', }) - var msgId = idStore.addUnconfirmedMessage(msgParams, cb) } else { addUnconfirmedMsg(msgParams, cb) } } -function addUnconfirmedTx(txParams, onTxDoneCb){ - idStore.addUnconfirmedTransaction(txParams, onTxDoneCb, function(err, txData){ +function addUnconfirmedTx (txParams, onTxDoneCb) { + idStore.addUnconfirmedTransaction(txParams, onTxDoneCb, function (err, txData) { if (err) return onTxDoneCb(err) createTxNotification({ title: 'New Unsigned Transaction', @@ -281,7 +279,7 @@ function addUnconfirmedTx(txParams, onTxDoneCb){ }) } -function addUnconfirmedMsg(msgParams, cb){ +function addUnconfirmedMsg (msgParams, cb) { var msgId = idStore.addUnconfirmedMessage(msgParams, cb) createMsgNotification({ title: 'New Unsigned Message', @@ -295,7 +293,7 @@ function addUnconfirmedMsg(msgParams, cb){ // config // -function agreeToDisclaimer(cb) { +function agreeToDisclaimer (cb) { try { configManager.setConfirmed(true) cb() @@ -305,23 +303,23 @@ function agreeToDisclaimer(cb) { } // called from popup -function setRpcTarget(rpcTarget){ +function setRpcTarget (rpcTarget) { configManager.setRpcTarget(rpcTarget) chrome.runtime.reload() idStore.getNetwork() } -function setProviderType(type) { +function setProviderType (type) { configManager.setProviderType(type) chrome.runtime.reload() idStore.getNetwork() } -function useEtherscanProvider() { +function useEtherscanProvider () { configManager.useEtherscanProvider() chrome.runtime.reload() } // util -function noop(){} +function noop () {} |