1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Merge pull request #207 from MetaMask/i168

signTx+Msg - show Account Unlock Request when locked
This commit is contained in:
Dan Finlay 2016-05-24 15:00:48 -07:00
commit b6a2d388f7
2 changed files with 41 additions and 2 deletions

View File

@ -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({

View File

@ -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),