mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #2093 from MetaMask/max-validation
High GasLimit Validation Warning
This commit is contained in:
commit
99856189ed
@ -7,6 +7,7 @@
|
|||||||
- Changed state logs to a file download than a clipboard copy.
|
- Changed state logs to a file download than a clipboard copy.
|
||||||
- Fixed a long standing memory leak associated with filters installed by dapps
|
- Fixed a long standing memory leak associated with filters installed by dapps
|
||||||
- Fix link to support center.
|
- Fix link to support center.
|
||||||
|
- Warn users when a dapp proposes a high gas limit (90% of blockGasLimit or higher)
|
||||||
|
|
||||||
## 3.10.0 2017-9-11
|
## 3.10.0 2017-9-11
|
||||||
|
|
||||||
|
@ -52,7 +52,9 @@ PendingTx.prototype.render = function () {
|
|||||||
const gas = txParams.gas
|
const gas = txParams.gas
|
||||||
const gasBn = hexToBn(gas)
|
const gasBn = hexToBn(gas)
|
||||||
const gasLimit = new BN(parseInt(blockGasLimit))
|
const gasLimit = new BN(parseInt(blockGasLimit))
|
||||||
const safeGasLimit = this.bnMultiplyByFraction(gasLimit, 19, 20).toString(10)
|
const safeGasLimitBN = this.bnMultiplyByFraction(gasLimit, 19, 20)
|
||||||
|
const saferGasLimitBN = this.bnMultiplyByFraction(gasLimit, 18, 20)
|
||||||
|
const safeGasLimit = safeGasLimitBN.toString(10)
|
||||||
|
|
||||||
// Gas Price
|
// Gas Price
|
||||||
const gasPrice = txParams.gasPrice || MIN_GAS_PRICE_BN.toString(16)
|
const gasPrice = txParams.gasPrice || MIN_GAS_PRICE_BN.toString(16)
|
||||||
@ -66,6 +68,8 @@ PendingTx.prototype.render = function () {
|
|||||||
|
|
||||||
const balanceBn = hexToBn(balance)
|
const balanceBn = hexToBn(balance)
|
||||||
const insufficientBalance = balanceBn.lt(maxCost)
|
const insufficientBalance = balanceBn.lt(maxCost)
|
||||||
|
const dangerousGasLimit = gasBn.gte(saferGasLimitBN)
|
||||||
|
const gasLimitSpecified = txMeta.gasLimitSpecified
|
||||||
const buyDisabled = insufficientBalance || !this.state.valid || !isValidAddress || this.state.submitting
|
const buyDisabled = insufficientBalance || !this.state.valid || !isValidAddress || this.state.submitting
|
||||||
const showRejectAll = props.unconfTxListLength > 1
|
const showRejectAll = props.unconfTxListLength > 1
|
||||||
|
|
||||||
@ -263,33 +267,44 @@ PendingTx.prototype.render = function () {
|
|||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
`),
|
`),
|
||||||
|
h('.cell.row', {
|
||||||
|
style: {
|
||||||
|
textAlign: 'center',
|
||||||
|
},
|
||||||
|
}, [
|
||||||
|
txMeta.simulationFails ?
|
||||||
|
h('.error', {
|
||||||
|
style: {
|
||||||
|
fontSize: '0.9em',
|
||||||
|
},
|
||||||
|
}, 'Transaction Error. Exception thrown in contract code.')
|
||||||
|
: null,
|
||||||
|
|
||||||
txMeta.simulationFails ?
|
!isValidAddress ?
|
||||||
h('.error', {
|
h('.error', {
|
||||||
style: {
|
style: {
|
||||||
marginLeft: 50,
|
fontSize: '0.9em',
|
||||||
fontSize: '0.9em',
|
},
|
||||||
},
|
}, 'Recipient address is invalid. Sending this transaction will result in a loss of ETH.')
|
||||||
}, 'Transaction Error. Exception thrown in contract code.')
|
: null,
|
||||||
: null,
|
|
||||||
|
|
||||||
!isValidAddress ?
|
insufficientBalance ?
|
||||||
h('.error', {
|
h('span.error', {
|
||||||
style: {
|
style: {
|
||||||
marginLeft: 50,
|
fontSize: '0.9em',
|
||||||
fontSize: '0.9em',
|
},
|
||||||
},
|
}, 'Insufficient balance for transaction')
|
||||||
}, 'Recipient address is invalid. Sending this transaction will result in a loss of ETH.')
|
: null,
|
||||||
: null,
|
|
||||||
|
(dangerousGasLimit && !gasLimitSpecified) ?
|
||||||
|
h('span.error', {
|
||||||
|
style: {
|
||||||
|
fontSize: '0.9em',
|
||||||
|
},
|
||||||
|
}, 'Gas limit set dangerously high. Approving this transaction is likely to fail.')
|
||||||
|
: null,
|
||||||
|
]),
|
||||||
|
|
||||||
insufficientBalance ?
|
|
||||||
h('span.error', {
|
|
||||||
style: {
|
|
||||||
marginLeft: 50,
|
|
||||||
fontSize: '0.9em',
|
|
||||||
},
|
|
||||||
}, 'Insufficient balance for transaction')
|
|
||||||
: null,
|
|
||||||
|
|
||||||
// send + cancel
|
// send + cancel
|
||||||
h('.flex-row.flex-space-around.conf-buttons', {
|
h('.flex-row.flex-space-around.conf-buttons', {
|
||||||
|
Loading…
Reference in New Issue
Block a user