mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Input gas in gwei
Also enforces "safe low gas" minimum recommended by this article by eth-gas-station: https://medium.com/@ethgasstation/the-safe-low-gas-price-fb44fdc85b91 Fixes #1381
This commit is contained in:
parent
f17c6b4eef
commit
80d8a4e73e
@ -15,7 +15,9 @@ const addressSummary = util.addressSummary
|
|||||||
const nameForAddress = require('../../lib/contract-namer')
|
const nameForAddress = require('../../lib/contract-namer')
|
||||||
const HexInput = require('./hex-as-decimal-input')
|
const HexInput = require('./hex-as-decimal-input')
|
||||||
|
|
||||||
const MIN_GAS_PRICE_BN = new BN(20000000)
|
const MIN_GAS_PRICE_GWEI_BN = new BN(2)
|
||||||
|
const GWEI_FACTOR = new BN(Math.pow(10, 9))
|
||||||
|
const MIN_GAS_PRICE_BN = MIN_GAS_PRICE_GWEI_BN.mul(GWEI_FACTOR)
|
||||||
const MIN_GAS_LIMIT_BN = new BN(21000)
|
const MIN_GAS_LIMIT_BN = new BN(21000)
|
||||||
|
|
||||||
module.exports = connect(mapStateToProps)(PendingTx)
|
module.exports = connect(mapStateToProps)(PendingTx)
|
||||||
@ -39,16 +41,20 @@ PendingTx.prototype.render = function () {
|
|||||||
const txMeta = this.gatherTxMeta()
|
const txMeta = this.gatherTxMeta()
|
||||||
const txParams = txMeta.txParams || {}
|
const txParams = txMeta.txParams || {}
|
||||||
|
|
||||||
|
// Account Details
|
||||||
const address = txParams.from || props.selectedAddress
|
const address = txParams.from || props.selectedAddress
|
||||||
const identity = props.identities[address] || { address: address }
|
const identity = props.identities[address] || { address: address }
|
||||||
const account = props.accounts[address]
|
const account = props.accounts[address]
|
||||||
const balance = account ? account.balance : '0x0'
|
const balance = account ? account.balance : '0x0'
|
||||||
|
|
||||||
|
// Gas
|
||||||
const gas = txParams.gas
|
const gas = txParams.gas
|
||||||
const gasPrice = txParams.gasPrice
|
|
||||||
|
|
||||||
const gasBn = hexToBn(gas)
|
const gasBn = hexToBn(gas)
|
||||||
|
|
||||||
|
// Gas Price
|
||||||
|
const gasPrice = txParams.gasPrice || MIN_GAS_PRICE_BN.toString(16)
|
||||||
const gasPriceBn = hexToBn(gasPrice)
|
const gasPriceBn = hexToBn(gasPrice)
|
||||||
|
const gasPriceGweiBn = gasPriceBn.div(new BN(Math.pow(10, 9)))
|
||||||
|
|
||||||
const txFeeBn = gasBn.mul(gasPriceBn)
|
const txFeeBn = gasBn.mul(gasPriceBn)
|
||||||
const valueBn = hexToBn(txParams.value)
|
const valueBn = hexToBn(txParams.value)
|
||||||
@ -187,17 +193,18 @@ PendingTx.prototype.render = function () {
|
|||||||
}, [
|
}, [
|
||||||
h(HexInput, {
|
h(HexInput, {
|
||||||
name: 'Gas Price',
|
name: 'Gas Price',
|
||||||
value: gasPrice,
|
value: gasPriceGweiBn.toString(16),
|
||||||
suffix: 'WEI',
|
suffix: 'GWEI',
|
||||||
min: MIN_GAS_PRICE_BN.toString(10),
|
min: MIN_GAS_PRICE_GWEI_BN.toString(10),
|
||||||
style: {
|
style: {
|
||||||
position: 'relative',
|
position: 'relative',
|
||||||
top: '5px',
|
top: '5px',
|
||||||
},
|
},
|
||||||
onChange: (newHex) => {
|
onChange: (newHex) => {
|
||||||
log.info(`Gas price changed to: ${newHex}`)
|
log.info(`Gas price changed to: ${newHex}`)
|
||||||
|
const inWei = hexToBn(newHex).mul(GWEI_FACTOR)
|
||||||
const txMeta = this.gatherTxMeta()
|
const txMeta = this.gatherTxMeta()
|
||||||
txMeta.txParams.gasPrice = newHex
|
txMeta.txParams.gasPrice = inWei.toString(16)
|
||||||
this.setState({ txData: txMeta })
|
this.setState({ txData: txMeta })
|
||||||
},
|
},
|
||||||
ref: (hexInput) => { this.inputs.push(hexInput) },
|
ref: (hexInput) => { this.inputs.push(hexInput) },
|
||||||
|
Loading…
Reference in New Issue
Block a user