diff options
author | kumavis <aaron@kumavis.me> | 2016-05-25 05:59:33 +0800 |
---|---|---|
committer | kumavis <aaron@kumavis.me> | 2016-05-25 05:59:33 +0800 |
commit | 1d23bf81227b86d66841db75c2efd8e5f64a68fe (patch) | |
tree | 2c10aa39c37c41a826e99de63961cb1c4056904f /app | |
parent | 9aea88da3255a470e1833de5d356a159cd9bea0e (diff) | |
download | dexon-wallet-1d23bf81227b86d66841db75c2efd8e5f64a68fe.tar.gz dexon-wallet-1d23bf81227b86d66841db75c2efd8e5f64a68fe.tar.zst dexon-wallet-1d23bf81227b86d66841db75c2efd8e5f64a68fe.zip |
signTx+Msg - show Account Unlock Request when locked
Diffstat (limited to 'app')
-rw-r--r-- | app/scripts/background.js | 29 | ||||
-rw-r--r-- | app/scripts/lib/notifications.js | 14 |
2 files changed, 41 insertions, 2 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js index 8c6adff0..313dbbc6 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -8,6 +8,7 @@ const handleRequestsFromStream = require('web3-stream-provider/handler') const ObjectMultiplex = require('./lib/obj-multiplex') const PortStream = require('./lib/port-stream.js') const IdentityStore = require('./lib/idStore') +const createUnlockRequestNotification = require('./lib/notifications.js').createUnlockRequestNotification const createTxNotification = require('./lib/notifications.js').createTxNotification const createMsgNotification = require('./lib/notifications.js').createMsgNotification const configManager = require('./lib/config-manager-singleton') @@ -65,10 +66,10 @@ var providerOpts = { cb(null, result) }, // tx signing - approveTransaction: addUnconfirmedTx, + approveTransaction: approveTransaction, signTransaction: idStore.signTransaction.bind(idStore), // msg signing - approveMessage: addUnconfirmedMsg, + approveMessage: approveMessage, signMessage: idStore.signMessage.bind(idStore), } var provider = MetaMaskProvider(providerOpts) @@ -217,6 +218,30 @@ function updateBadge(state){ // Add unconfirmed Tx + Msg // +function approveTransaction(txParams, cb){ + var state = idStore.getState() + if (!state.isUnlocked) { + createUnlockRequestNotification({ + title: 'Account Unlock Request', + }) + var txId = idStore.addUnconfirmedTransaction(txParams, cb) + } else { + addUnconfirmedTx(txParams, cb) + } +} + +function approveMessage(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, cb){ var txId = idStore.addUnconfirmedTransaction(txParams, cb) createTxNotification({ diff --git a/app/scripts/lib/notifications.js b/app/scripts/lib/notifications.js index 2b7cbfe6..0b55417b 100644 --- a/app/scripts/lib/notifications.js +++ b/app/scripts/lib/notifications.js @@ -3,6 +3,7 @@ const uiUtils = require('../../../ui/app/util') var notificationHandlers = {} module.exports = { + createUnlockRequestNotification: createUnlockRequestNotification, createTxNotification: createTxNotification, createMsgNotification: createMsgNotification, } @@ -24,6 +25,19 @@ chrome.notifications.onClosed.addListener(function(notificationId){ }) // creation helper +function createUnlockRequestNotification(opts){ + var message = 'An Ethereum app has requested a signature. Please unlock your account.' + + var id = createId() + chrome.notifications.create(id, { + type: 'basic', + iconUrl: '/images/icon-128.png', + title: opts.title, + message: message, + }) + +} + function createTxNotification(opts){ var message = [ 'to: '+uiUtils.addressSummary(opts.txParams.to), |