mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #326 from MetaMask/conf-tx-refactor
Tx/Msg Conf page + notifcation refactor
This commit is contained in:
commit
36a183db94
@ -1,7 +1,7 @@
|
|||||||
const LocalMessageDuplexStream = require('./lib/local-message-stream.js')
|
const LocalMessageDuplexStream = require('./lib/local-message-stream.js')
|
||||||
const PortStream = require('./lib/port-stream.js')
|
const PortStream = require('./lib/port-stream.js')
|
||||||
const ObjectMultiplex = require('./lib/obj-multiplex')
|
const ObjectMultiplex = require('./lib/obj-multiplex')
|
||||||
const urlUtil = require('url')
|
// const urlUtil = require('url')
|
||||||
|
|
||||||
if (shouldInjectWeb3()) {
|
if (shouldInjectWeb3()) {
|
||||||
setupInjection()
|
setupInjection()
|
||||||
@ -45,8 +45,6 @@ function setupInjection(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function shouldInjectWeb3(){
|
function shouldInjectWeb3(){
|
||||||
var urlData = urlUtil.parse(window.location.href)
|
var shouldInject = (window.location.href.indexOf('.pdf') === -1)
|
||||||
var extension = urlData.pathname.split('.').slice(-1)[0]
|
|
||||||
var shouldInject = (extension !== 'pdf')
|
|
||||||
return shouldInject
|
return shouldInject
|
||||||
}
|
}
|
@ -1,10 +1,11 @@
|
|||||||
const createId = require('hat')
|
const createId = require('hat')
|
||||||
|
const extend = require('xtend')
|
||||||
const unmountComponentAtNode = require('react-dom').unmountComponentAtNode
|
const unmountComponentAtNode = require('react-dom').unmountComponentAtNode
|
||||||
const findDOMNode = require('react-dom').findDOMNode
|
const findDOMNode = require('react-dom').findDOMNode
|
||||||
const render = require('react-dom').render
|
const render = require('react-dom').render
|
||||||
const h = require('react-hyperscript')
|
const h = require('react-hyperscript')
|
||||||
const uiUtils = require('../../../ui/app/util')
|
const PendingTxDetails = require('../../../ui/app/components/pending-tx-details')
|
||||||
const renderPendingTx = require('../../../ui/app/components/pending-tx').prototype.renderGeneric
|
const PendingMsgDetails = require('../../../ui/app/components/pending-msg-details')
|
||||||
const MetaMaskUiCss = require('../../../ui/css')
|
const MetaMaskUiCss = require('../../../ui/css')
|
||||||
var notificationHandlers = {}
|
var notificationHandlers = {}
|
||||||
|
|
||||||
@ -56,65 +57,9 @@ function createTxNotification (opts) {
|
|||||||
// guard for chrome bug https://github.com/MetaMask/metamask-plugin/issues/236
|
// guard for chrome bug https://github.com/MetaMask/metamask-plugin/issues/236
|
||||||
if (!chrome.notifications) return console.error('Chrome notifications API missing...')
|
if (!chrome.notifications) return console.error('Chrome notifications API missing...')
|
||||||
|
|
||||||
renderTransactionNotificationSVG(opts, function(err, source){
|
|
||||||
if (err) throw err
|
|
||||||
|
|
||||||
var imageUrl = 'data:image/svg+xml;utf8,' + encodeURIComponent(source)
|
|
||||||
|
|
||||||
var id = createId()
|
|
||||||
chrome.notifications.create(id, {
|
|
||||||
type: 'image',
|
|
||||||
// requireInteraction: true,
|
|
||||||
iconUrl: '/images/icon-128.png',
|
|
||||||
imageUrl: imageUrl,
|
|
||||||
title: opts.title,
|
|
||||||
message: '',
|
|
||||||
buttons: [{
|
|
||||||
title: 'confirm',
|
|
||||||
}, {
|
|
||||||
title: 'cancel',
|
|
||||||
}],
|
|
||||||
})
|
|
||||||
notificationHandlers[id] = {
|
|
||||||
confirm: opts.confirm,
|
|
||||||
cancel: opts.cancel,
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function createMsgNotification (opts) {
|
|
||||||
// guard for chrome bug https://github.com/MetaMask/metamask-plugin/issues/236
|
|
||||||
if (!chrome.notifications) return console.error('Chrome notifications API missing...')
|
|
||||||
var message = [
|
|
||||||
'Submitted by ' + opts.msgParams.origin,
|
|
||||||
'to be signed by: ' + uiUtils.addressSummary(opts.msgParams.from),
|
|
||||||
'message:\n' + opts.msgParams.data,
|
|
||||||
].join('\n')
|
|
||||||
|
|
||||||
var id = createId()
|
|
||||||
chrome.notifications.create(id, {
|
|
||||||
type: 'basic',
|
|
||||||
requireInteraction: true,
|
|
||||||
iconUrl: '/images/icon-128.png',
|
|
||||||
title: opts.title,
|
|
||||||
message: message,
|
|
||||||
buttons: [{
|
|
||||||
title: 'confirm',
|
|
||||||
}, {
|
|
||||||
title: 'cancel',
|
|
||||||
}],
|
|
||||||
})
|
|
||||||
notificationHandlers[id] = {
|
|
||||||
confirm: opts.confirm,
|
|
||||||
cancel: opts.cancel,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function renderTransactionNotificationSVG(opts, cb){
|
|
||||||
var state = {
|
var state = {
|
||||||
nonInteractive: true,
|
title: 'New Unsigned Transaction',
|
||||||
inlineIdenticons: true,
|
imageifyIdenticons: false,
|
||||||
txData: {
|
txData: {
|
||||||
txParams: opts.txParams,
|
txParams: opts.txParams,
|
||||||
time: (new Date()).getTime(),
|
time: (new Date()).getTime(),
|
||||||
@ -125,8 +70,87 @@ function renderTransactionNotificationSVG(opts, cb){
|
|||||||
accounts: {
|
accounts: {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
onConfirm: opts.confirm,
|
||||||
|
onCancel: opts.cancel,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderTxNotificationSVG(state, function(err, notificationSvgSource){
|
||||||
|
if (err) throw err
|
||||||
|
|
||||||
|
showNotification(extend(state, {
|
||||||
|
imageUrl: toSvgUri(notificationSvgSource),
|
||||||
|
}))
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function createMsgNotification (opts) {
|
||||||
|
// guard for chrome bug https://github.com/MetaMask/metamask-plugin/issues/236
|
||||||
|
if (!chrome.notifications) return console.error('Chrome notifications API missing...')
|
||||||
|
|
||||||
|
var state = {
|
||||||
|
title: 'New Unsigned Message',
|
||||||
|
imageifyIdenticons: false,
|
||||||
|
txData: {
|
||||||
|
msgParams: opts.msgParams,
|
||||||
|
time: (new Date()).getTime(),
|
||||||
|
},
|
||||||
|
identities: {
|
||||||
|
|
||||||
|
},
|
||||||
|
accounts: {
|
||||||
|
|
||||||
|
},
|
||||||
|
onConfirm: opts.confirm,
|
||||||
|
onCancel: opts.cancel,
|
||||||
|
}
|
||||||
|
|
||||||
|
renderMsgNotificationSVG(state, function(err, notificationSvgSource){
|
||||||
|
if (err) throw err
|
||||||
|
|
||||||
|
showNotification(extend(state, {
|
||||||
|
imageUrl: toSvgUri(notificationSvgSource),
|
||||||
|
}))
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function showNotification (state) {
|
||||||
|
// guard for chrome bug https://github.com/MetaMask/metamask-plugin/issues/236
|
||||||
|
if (!chrome.notifications) return console.error('Chrome notifications API missing...')
|
||||||
|
|
||||||
|
var id = createId()
|
||||||
|
chrome.notifications.create(id, {
|
||||||
|
type: 'image',
|
||||||
|
requireInteraction: true,
|
||||||
|
iconUrl: '/images/icon-128.png',
|
||||||
|
imageUrl: state.imageUrl,
|
||||||
|
title: state.title,
|
||||||
|
message: '',
|
||||||
|
buttons: [{
|
||||||
|
title: 'confirm',
|
||||||
|
}, {
|
||||||
|
title: 'cancel',
|
||||||
|
}],
|
||||||
|
})
|
||||||
|
notificationHandlers[id] = {
|
||||||
|
confirm: state.onConfirm,
|
||||||
|
cancel: state.onCancel,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderTxNotificationSVG(state, cb){
|
||||||
|
var content = h(PendingTxDetails, state)
|
||||||
|
renderNotificationSVG(content, cb)
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderMsgNotificationSVG(state, cb){
|
||||||
|
var content = h(PendingMsgDetails, state)
|
||||||
|
renderNotificationSVG(content, cb)
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderNotificationSVG(content, cb){
|
||||||
var container = document.createElement('div')
|
var container = document.createElement('div')
|
||||||
var confirmView = h('div.app-primary', {
|
var confirmView = h('div.app-primary', {
|
||||||
style: {
|
style: {
|
||||||
@ -138,7 +162,7 @@ function renderTransactionNotificationSVG(opts, cb){
|
|||||||
},
|
},
|
||||||
}, [
|
}, [
|
||||||
h('style', MetaMaskUiCss()),
|
h('style', MetaMaskUiCss()),
|
||||||
renderPendingTx(h, state),
|
content,
|
||||||
])
|
])
|
||||||
|
|
||||||
render(confirmView, container, function ready(){
|
render(confirmView, container, function ready(){
|
||||||
@ -160,4 +184,8 @@ function svgWrapper(content){
|
|||||||
</svg>
|
</svg>
|
||||||
`
|
`
|
||||||
return wrapperSource.split('{{content}}').join(content)
|
return wrapperSource.split('{{content}}').join(content)
|
||||||
|
}
|
||||||
|
|
||||||
|
function toSvgUri(content){
|
||||||
|
return 'data:image/svg+xml;utf8,' + encodeURIComponent(content)
|
||||||
}
|
}
|
@ -46,7 +46,7 @@ AccountPanel.prototype.render = function () {
|
|||||||
h('.identicon-wrapper.flex-column.select-none', [
|
h('.identicon-wrapper.flex-column.select-none', [
|
||||||
h(Identicon, {
|
h(Identicon, {
|
||||||
address: panelState.identiconKey,
|
address: panelState.identiconKey,
|
||||||
imageify: !state.inlineIdenticons,
|
imageify: state.imageifyIdenticons,
|
||||||
}),
|
}),
|
||||||
h('span.font-small', panelState.identiconLabel),
|
h('span.font-small', panelState.identiconLabel),
|
||||||
]),
|
]),
|
||||||
|
53
ui/app/components/pending-msg-details.js
Normal file
53
ui/app/components/pending-msg-details.js
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
const Component = require('react').Component
|
||||||
|
const h = require('react-hyperscript')
|
||||||
|
const inherits = require('util').inherits
|
||||||
|
|
||||||
|
const AccountPanel = require('./account-panel')
|
||||||
|
const readableDate = require('../util').readableDate
|
||||||
|
|
||||||
|
module.exports = PendingMsgDetails
|
||||||
|
|
||||||
|
inherits(PendingMsgDetails, Component)
|
||||||
|
function PendingMsgDetails () {
|
||||||
|
Component.call(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
PendingMsgDetails.prototype.render = function () {
|
||||||
|
var state = this.props
|
||||||
|
var msgData = state.txData
|
||||||
|
|
||||||
|
var msgParams = msgData.msgParams || {}
|
||||||
|
var address = msgParams.from || state.selectedAddress
|
||||||
|
var identity = state.identities[address] || { address: address }
|
||||||
|
var account = state.accounts[address] || { address: address }
|
||||||
|
|
||||||
|
return (
|
||||||
|
h('div', {
|
||||||
|
key: msgData.id,
|
||||||
|
}, [
|
||||||
|
|
||||||
|
// account that will sign
|
||||||
|
h(AccountPanel, {
|
||||||
|
showFullAddress: true,
|
||||||
|
identity: identity,
|
||||||
|
account: account,
|
||||||
|
imageifyIdenticons: state.imageifyIdenticons,
|
||||||
|
}),
|
||||||
|
|
||||||
|
// message data
|
||||||
|
h('.tx-data.flex-column.flex-justify-center.flex-grow.select-none', [
|
||||||
|
h('.flex-row.flex-space-between', [
|
||||||
|
h('label.font-small', 'DATE'),
|
||||||
|
h('span.font-small', readableDate(msgData.time)),
|
||||||
|
]),
|
||||||
|
|
||||||
|
h('.flex-row.flex-space-between', [
|
||||||
|
h('label.font-small', 'MESSAGE'),
|
||||||
|
h('span.font-small', msgParams.data),
|
||||||
|
]),
|
||||||
|
]),
|
||||||
|
|
||||||
|
])
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
@ -1,9 +1,7 @@
|
|||||||
const Component = require('react').Component
|
const Component = require('react').Component
|
||||||
const h = require('react-hyperscript')
|
const h = require('react-hyperscript')
|
||||||
const inherits = require('util').inherits
|
const inherits = require('util').inherits
|
||||||
|
const PendingTxDetails = require('./pending-msg-details')
|
||||||
const AccountPanel = require('./account-panel')
|
|
||||||
const readableDate = require('../util').readableDate
|
|
||||||
|
|
||||||
module.exports = PendingMsg
|
module.exports = PendingMsg
|
||||||
|
|
||||||
@ -16,16 +14,13 @@ PendingMsg.prototype.render = function () {
|
|||||||
var state = this.props
|
var state = this.props
|
||||||
var msgData = state.txData
|
var msgData = state.txData
|
||||||
|
|
||||||
var msgParams = msgData.msgParams || {}
|
|
||||||
var address = msgParams.from || state.selectedAddress
|
|
||||||
var identity = state.identities[address] || { address: address }
|
|
||||||
var account = state.accounts[address] || { address: address }
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
h('.transaction', {
|
|
||||||
|
h('div', {
|
||||||
key: msgData.id,
|
key: msgData.id,
|
||||||
}, [
|
}, [
|
||||||
|
|
||||||
|
// header
|
||||||
h('h3', {
|
h('h3', {
|
||||||
style: {
|
style: {
|
||||||
fontWeight: 'bold',
|
fontWeight: 'bold',
|
||||||
@ -33,27 +28,10 @@ PendingMsg.prototype.render = function () {
|
|||||||
},
|
},
|
||||||
}, 'Sign Message'),
|
}, 'Sign Message'),
|
||||||
|
|
||||||
// account that will sign
|
// message details
|
||||||
h(AccountPanel, {
|
h(PendingTxDetails, state),
|
||||||
showFullAddress: true,
|
|
||||||
identity: identity,
|
|
||||||
account: account,
|
|
||||||
}),
|
|
||||||
|
|
||||||
// tx data
|
// sign + cancel
|
||||||
h('.tx-data.flex-column.flex-justify-center.flex-grow.select-none', [
|
|
||||||
h('.flex-row.flex-space-between', [
|
|
||||||
h('label.font-small', 'DATE'),
|
|
||||||
h('span.font-small', readableDate(msgData.time)),
|
|
||||||
]),
|
|
||||||
|
|
||||||
h('.flex-row.flex-space-between', [
|
|
||||||
h('label.font-small', 'MESSAGE'),
|
|
||||||
h('span.font-small', msgParams.data),
|
|
||||||
]),
|
|
||||||
]),
|
|
||||||
|
|
||||||
// send + cancel
|
|
||||||
h('.flex-row.flex-space-around', [
|
h('.flex-row.flex-space-around', [
|
||||||
h('button', {
|
h('button', {
|
||||||
onClick: state.cancelMessage,
|
onClick: state.cancelMessage,
|
||||||
@ -63,6 +41,7 @@ PendingMsg.prototype.render = function () {
|
|||||||
}, 'Sign'),
|
}, 'Sign'),
|
||||||
]),
|
]),
|
||||||
])
|
])
|
||||||
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
65
ui/app/components/pending-tx-details.js
Normal file
65
ui/app/components/pending-tx-details.js
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
const Component = require('react').Component
|
||||||
|
const h = require('react-hyperscript')
|
||||||
|
const inherits = require('util').inherits
|
||||||
|
|
||||||
|
const AccountPanel = require('./account-panel')
|
||||||
|
const addressSummary = require('../util').addressSummary
|
||||||
|
const readableDate = require('../util').readableDate
|
||||||
|
const formatBalance = require('../util').formatBalance
|
||||||
|
|
||||||
|
module.exports = PendingTxDetails
|
||||||
|
|
||||||
|
inherits(PendingTxDetails, Component)
|
||||||
|
function PendingTxDetails () {
|
||||||
|
Component.call(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
PendingTxDetails.prototype.render = function () {
|
||||||
|
var state = this.props
|
||||||
|
return this.renderGeneric(h, state)
|
||||||
|
}
|
||||||
|
|
||||||
|
PendingTxDetails.prototype.renderGeneric = function (h, state) {
|
||||||
|
var txData = state.txData
|
||||||
|
|
||||||
|
var txParams = txData.txParams || {}
|
||||||
|
var address = txParams.from || state.selectedAddress
|
||||||
|
var identity = state.identities[address] || { address: address }
|
||||||
|
var account = state.accounts[address] || { address: address }
|
||||||
|
|
||||||
|
return (
|
||||||
|
|
||||||
|
h('div', [
|
||||||
|
|
||||||
|
// account that will sign
|
||||||
|
h(AccountPanel, {
|
||||||
|
showFullAddress: true,
|
||||||
|
identity: identity,
|
||||||
|
account: account,
|
||||||
|
imageifyIdenticons: state.imageifyIdenticons,
|
||||||
|
}),
|
||||||
|
|
||||||
|
// tx data
|
||||||
|
h('.tx-data.flex-column.flex-justify-center.flex-grow.select-none', [
|
||||||
|
|
||||||
|
h('.flex-row.flex-space-between', [
|
||||||
|
h('label.font-small', 'TO ADDRESS'),
|
||||||
|
h('span.font-small', addressSummary(txParams.to)),
|
||||||
|
]),
|
||||||
|
|
||||||
|
h('.flex-row.flex-space-between', [
|
||||||
|
h('label.font-small', 'DATE'),
|
||||||
|
h('span.font-small', readableDate(txData.time)),
|
||||||
|
]),
|
||||||
|
|
||||||
|
h('.flex-row.flex-space-between', [
|
||||||
|
h('label.font-small', 'AMOUNT'),
|
||||||
|
h('span.font-small', formatBalance(txParams.value)),
|
||||||
|
]),
|
||||||
|
]),
|
||||||
|
|
||||||
|
])
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
}
|
@ -1,11 +1,8 @@
|
|||||||
const Component = require('react').Component
|
const Component = require('react').Component
|
||||||
const h = require('react-hyperscript')
|
const h = require('react-hyperscript')
|
||||||
const inherits = require('util').inherits
|
const inherits = require('util').inherits
|
||||||
|
const PendingTxDetails = require('./pending-tx-details')
|
||||||
|
|
||||||
const AccountPanel = require('./account-panel')
|
|
||||||
const addressSummary = require('../util').addressSummary
|
|
||||||
const readableDate = require('../util').readableDate
|
|
||||||
const formatBalance = require('../util').formatBalance
|
|
||||||
|
|
||||||
module.exports = PendingTx
|
module.exports = PendingTx
|
||||||
|
|
||||||
@ -16,23 +13,15 @@ function PendingTx () {
|
|||||||
|
|
||||||
PendingTx.prototype.render = function () {
|
PendingTx.prototype.render = function () {
|
||||||
var state = this.props
|
var state = this.props
|
||||||
return this.renderGeneric(h, state)
|
|
||||||
}
|
|
||||||
|
|
||||||
PendingTx.prototype.renderGeneric = function (h, state) {
|
|
||||||
var txData = state.txData
|
var txData = state.txData
|
||||||
|
|
||||||
var txParams = txData.txParams || {}
|
|
||||||
var address = txParams.from || state.selectedAddress
|
|
||||||
var identity = state.identities[address] || { address: address }
|
|
||||||
var account = state.accounts[address] || { address: address }
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
||||||
h('.transaction', {
|
h('div', {
|
||||||
key: txData.id,
|
key: txData.id,
|
||||||
}, [
|
}, [
|
||||||
|
|
||||||
|
// header
|
||||||
h('h3', {
|
h('h3', {
|
||||||
style: {
|
style: {
|
||||||
fontWeight: 'bold',
|
fontWeight: 'bold',
|
||||||
@ -40,53 +29,21 @@ PendingTx.prototype.renderGeneric = function (h, state) {
|
|||||||
},
|
},
|
||||||
}, 'Submit Transaction'),
|
}, 'Submit Transaction'),
|
||||||
|
|
||||||
// account that will sign
|
// tx info
|
||||||
h(AccountPanel, {
|
h(PendingTxDetails, state),
|
||||||
showFullAddress: true,
|
|
||||||
identity: identity,
|
|
||||||
account: account,
|
|
||||||
inlineIdenticons: state.inlineIdenticons,
|
|
||||||
}),
|
|
||||||
|
|
||||||
// tx data
|
|
||||||
h('.tx-data.flex-column.flex-justify-center.flex-grow.select-none', [
|
|
||||||
|
|
||||||
h('.flex-row.flex-space-between', [
|
|
||||||
h('label.font-small', 'TO ADDRESS'),
|
|
||||||
h('span.font-small', addressSummary(txParams.to)),
|
|
||||||
]),
|
|
||||||
|
|
||||||
h('.flex-row.flex-space-between', [
|
|
||||||
h('label.font-small', 'DATE'),
|
|
||||||
h('span.font-small', readableDate(txData.time)),
|
|
||||||
]),
|
|
||||||
|
|
||||||
h('.flex-row.flex-space-between', [
|
|
||||||
h('label.font-small', 'AMOUNT'),
|
|
||||||
h('span.font-small', formatBalance(txParams.value)),
|
|
||||||
]),
|
|
||||||
]),
|
|
||||||
|
|
||||||
// send + cancel
|
// send + cancel
|
||||||
state.nonInteractive ? null : actionButtons(state),
|
h('.flex-row.flex-space-around', [
|
||||||
|
h('button', {
|
||||||
|
onClick: state.cancelTransaction,
|
||||||
|
}, 'Cancel'),
|
||||||
|
h('button', {
|
||||||
|
onClick: state.sendTransaction,
|
||||||
|
}, 'Send'),
|
||||||
|
]),
|
||||||
|
|
||||||
])
|
])
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function actionButtons(state){
|
|
||||||
return (
|
|
||||||
|
|
||||||
h('.flex-row.flex-space-around', [
|
|
||||||
h('button', {
|
|
||||||
onClick: state.cancelTransaction,
|
|
||||||
}, 'Cancel'),
|
|
||||||
h('button', {
|
|
||||||
onClick: state.sendTransaction,
|
|
||||||
}, 'Send'),
|
|
||||||
])
|
|
||||||
|
|
||||||
)
|
|
||||||
}
|
|
@ -6,7 +6,7 @@ const connect = require('react-redux').connect
|
|||||||
const actions = require('./actions')
|
const actions = require('./actions')
|
||||||
const txHelper = require('../lib/tx-helper')
|
const txHelper = require('../lib/tx-helper')
|
||||||
|
|
||||||
const ConfirmTx = require('./components/pending-tx')
|
const PendingTx = require('./components/pending-tx')
|
||||||
const PendingMsg = require('./components/pending-msg')
|
const PendingMsg = require('./components/pending-msg')
|
||||||
|
|
||||||
module.exports = connect(mapStateToProps)(ConfirmTxScreen)
|
module.exports = connect(mapStateToProps)(ConfirmTxScreen)
|
||||||
@ -101,7 +101,7 @@ ConfirmTxScreen.prototype.render = function () {
|
|||||||
function currentTxView (opts) {
|
function currentTxView (opts) {
|
||||||
if ('txParams' in opts.txData) {
|
if ('txParams' in opts.txData) {
|
||||||
// This is a pending transaction
|
// This is a pending transaction
|
||||||
return h(ConfirmTx, opts)
|
return h(PendingTx, opts)
|
||||||
} else if ('msgParams' in opts.txData) {
|
} else if ('msgParams' in opts.txData) {
|
||||||
// This is a pending message to sign
|
// This is a pending message to sign
|
||||||
return h(PendingMsg, opts)
|
return h(PendingMsg, opts)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user