Improve efficiency of estimateGasPriceFromRecentBlocks

This commit is contained in:
Dan 2018-05-30 12:56:42 -02:30
parent 64aa56b5a6
commit 1bde2892ec
1 changed files with 5 additions and 10 deletions

View File

@ -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)]
}