Improve efficiency of estimateGasPriceFromRecentBlocks

feature/default_network_editable
Dan 7 years ago
parent 64aa56b5a6
commit 1bde2892ec
  1. 15
      ui/app/components/send_/send.utils.js

@ -221,26 +221,21 @@ function generateTokenTransferData (selectedAddress, selectedToken) {
).join('')
}
function hexComparator (a, b) {
return conversionGreaterThan(
{ value: a, fromNumericBase: 'hex' },
{ value: b, fromNumericBase: 'hex' },
) ? 1 : -1
}
function estimateGasPriceFromRecentBlocks (recentBlocks) {
// Return 1 gwei if no blocks have been observed:
if (!recentBlocks || recentBlocks.length === 0) {
return ONE_GWEI_IN_WEI_HEX
}
const lowestPrices = recentBlocks.map((block) => {
if (!block.gasPrices || block.gasPrices.length < 1) {
return ONE_GWEI_IN_WEI_HEX
}
return block.gasPrices
.sort(hexComparator)[0]
return block.gasPrices.reduce((currentLowest, next) => {
return parseInt(next, 16) < parseInt(currentLowest, 16) ? next : currentLowest
})
})
.sort(hexComparator)
.sort((a, b) => parseInt(a, 16) > parseInt(b, 16) ? 1 : -1)
return lowestPrices[Math.floor(lowestPrices.length / 2)]
}

Loading…
Cancel
Save