mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #2045 from MetaMask/rejectallunapproved
Feature - Reject all unapproved transactions button (MM Submission: feat. @davidp94)
This commit is contained in:
commit
e7159f0e48
@ -5,6 +5,7 @@
|
||||
- Remove cryptonator from chrome permissions.
|
||||
- Add info on token contract addresses.
|
||||
- Add validation preventing users from inputting their own addresses as token tracking addresses.
|
||||
- Added button to reject all transactions (thanks to davidp94! https://github.com/davidp94)
|
||||
|
||||
## 3.9.13 2017-9-8
|
||||
|
||||
|
@ -104,6 +104,7 @@ var actions = {
|
||||
txError: txError,
|
||||
nextTx: nextTx,
|
||||
previousTx: previousTx,
|
||||
cancelAllTx: cancelAllTx,
|
||||
viewPendingTx: viewPendingTx,
|
||||
VIEW_PENDING_TX: 'VIEW_PENDING_TX',
|
||||
// app messages
|
||||
@ -457,6 +458,16 @@ function cancelTx (txData) {
|
||||
}
|
||||
}
|
||||
|
||||
function cancelAllTx (txsData) {
|
||||
return (dispatch) => {
|
||||
txsData.forEach((txData, i) => {
|
||||
background.cancelTransaction(txData.id, () => {
|
||||
dispatch(actions.completedTx(txData.id))
|
||||
i === txsData.length - 1 ? dispatch(actions.goHome()) : null
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
//
|
||||
// initialize screen
|
||||
//
|
||||
|
@ -66,6 +66,8 @@ PendingTx.prototype.render = function () {
|
||||
|
||||
const balanceBn = hexToBn(balance)
|
||||
const insufficientBalance = balanceBn.lt(maxCost)
|
||||
const buyDisabled = insufficientBalance || !this.state.valid || !isValidAddress || this.state.submitting
|
||||
const showRejectAll = props.unconfTxListLength > 1
|
||||
|
||||
this.inputs = []
|
||||
|
||||
@ -297,14 +299,6 @@ PendingTx.prototype.render = function () {
|
||||
margin: '14px 25px',
|
||||
},
|
||||
}, [
|
||||
|
||||
|
||||
insufficientBalance ?
|
||||
h('button.btn-green', {
|
||||
onClick: props.buyEth,
|
||||
}, 'Buy Ether')
|
||||
: null,
|
||||
|
||||
h('button', {
|
||||
onClick: (event) => {
|
||||
this.resetGasFields()
|
||||
@ -312,18 +306,30 @@ PendingTx.prototype.render = function () {
|
||||
},
|
||||
}, 'Reset'),
|
||||
|
||||
// Accept Button
|
||||
h('input.confirm.btn-green', {
|
||||
type: 'submit',
|
||||
value: 'SUBMIT',
|
||||
style: { marginLeft: '10px' },
|
||||
disabled: insufficientBalance || !this.state.valid || !isValidAddress || this.state.submitting,
|
||||
}),
|
||||
// Accept Button or Buy Button
|
||||
insufficientBalance ? h('button.btn-green', { onClick: props.buyEth }, 'Buy Ether') :
|
||||
h('input.confirm.btn-green', {
|
||||
type: 'submit',
|
||||
value: 'SUBMIT',
|
||||
style: { marginLeft: '10px' },
|
||||
disabled: buyDisabled,
|
||||
}),
|
||||
|
||||
h('button.cancel.btn-red', {
|
||||
onClick: props.cancelTransaction,
|
||||
}, 'Reject'),
|
||||
]),
|
||||
showRejectAll ? h('.flex-row.flex-space-around.conf-buttons', {
|
||||
style: {
|
||||
display: 'flex',
|
||||
justifyContent: 'flex-end',
|
||||
margin: '14px 25px',
|
||||
},
|
||||
}, [
|
||||
h('button.cancel.btn-red', {
|
||||
onClick: props.cancelAllTransactions,
|
||||
}, 'Reject All'),
|
||||
]) : null,
|
||||
]),
|
||||
])
|
||||
)
|
||||
|
@ -52,6 +52,8 @@ ConfirmTxScreen.prototype.render = function () {
|
||||
log.info(`rendering a combined ${unconfTxList.length} unconf msg & txs`)
|
||||
if (unconfTxList.length === 0) return h(Loading, { isLoading: true })
|
||||
|
||||
const unconfTxListLength = unconfTxList.length
|
||||
|
||||
return (
|
||||
|
||||
h('.flex-column.flex-grow', [
|
||||
@ -101,10 +103,12 @@ ConfirmTxScreen.prototype.render = function () {
|
||||
conversionRate,
|
||||
currentCurrency,
|
||||
blockGasLimit,
|
||||
unconfTxListLength,
|
||||
// Actions
|
||||
buyEth: this.buyEth.bind(this, txParams.from || props.selectedAddress),
|
||||
sendTransaction: this.sendTransaction.bind(this),
|
||||
cancelTransaction: this.cancelTransaction.bind(this, txData),
|
||||
cancelAllTransactions: this.cancelAllTransactions.bind(this, unconfTxList),
|
||||
signMessage: this.signMessage.bind(this, txData),
|
||||
signPersonalMessage: this.signPersonalMessage.bind(this, txData),
|
||||
cancelMessage: this.cancelMessage.bind(this, txData),
|
||||
@ -151,6 +155,12 @@ ConfirmTxScreen.prototype.cancelTransaction = function (txData, event) {
|
||||
this.props.dispatch(actions.cancelTx(txData))
|
||||
}
|
||||
|
||||
ConfirmTxScreen.prototype.cancelAllTransactions = function (unconfTxList, event) {
|
||||
this.stopPropagation(event)
|
||||
event.preventDefault()
|
||||
this.props.dispatch(actions.cancelAllTx(unconfTxList))
|
||||
}
|
||||
|
||||
ConfirmTxScreen.prototype.signMessage = function (msgData, event) {
|
||||
log.info('conf-tx.js: signing message')
|
||||
var params = msgData.msgParams
|
||||
|
Loading…
Reference in New Issue
Block a user