aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/scripts/controllers/transactions.js3
-rw-r--r--app/scripts/metamask-controller.js11
-rw-r--r--test/unit/metamask-controller-test.js8
3 files changed, 16 insertions, 6 deletions
diff --git a/app/scripts/controllers/transactions.js b/app/scripts/controllers/transactions.js
index be7e7221f..469deb670 100644
--- a/app/scripts/controllers/transactions.js
+++ b/app/scripts/controllers/transactions.js
@@ -180,7 +180,8 @@ module.exports = class TransactionController extends EventEmitter {
// ensure value
txMeta.gasPriceSpecified = Boolean(txParams.gasPrice)
txMeta.nonceSpecified = Boolean(txParams.nonce)
- const gasPrice = txParams.gasPrice || this.getGasPrice()
+ const gasPrice = txParams.gasPrice || this.getGasPrice ? this.getGasPrice()
+ : await this.query.gasPrice()
txParams.gasPrice = ethUtil.addHexPrefix(gasPrice.toString(16))
txParams.value = txParams.value || '0x0'
// set gasLimit
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index 79ad2ff05..1b13f6567 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -491,13 +491,20 @@ module.exports = class MetamaskController extends EventEmitter {
const { recentBlocksController } = this
const { recentBlocks } = recentBlocksController.store.getState()
const lowestPrices = recentBlocks.map((block) => {
- return block.transactions
+ if (!block.gasPrices) {
+ return new BN(0)
+ }
+ return block.gasPrices
+ .map(hexPrefix => hexPrefix.substr(2))
+ .map(hex => new BN(hex, 16))
.sort((a, b) => {
return a.gt(b) ? 1 : -1
})[0]
})
.map(number => number.div(GWEI_BN).toNumber())
- return percentile(50, lowestPrices)
+ const percentileNum = percentile(50, lowestPrices)
+ const percentileNumBn = new BN(percentileNum)
+ return '0x' + percentileNumBn.mul(GWEI_BN).toString(16)
}
//
diff --git a/test/unit/metamask-controller-test.js b/test/unit/metamask-controller-test.js
index 293a45eef..3deb5a1c7 100644
--- a/test/unit/metamask-controller-test.js
+++ b/test/unit/metamask-controller-test.js
@@ -55,8 +55,10 @@ describe('MetaMaskController', function () {
getState: () => {
return {
recentBlocks: [
- { transactions: [ new BN('50000000000'), new BN('100000000000') ] },
- { transactions: [ new BN('60000000000'), new BN('100000000000') ] },
+ { gasPrices: [ '0x3b9aca00', '0x174876e800'] },
+ { gasPrices: [ '0x3b9aca00', '0x174876e800'] },
+ { gasPrices: [ '0x174876e800', '0x174876e800' ]},
+ { gasPrices: [ '0x174876e800', '0x174876e800' ]},
]
}
}
@@ -64,7 +66,7 @@ describe('MetaMaskController', function () {
}
const gasPrice = metamaskController.getGasPrice()
- assert.equal(gasPrice, 50, 'accurately estimates 50th percentile accepted gas price')
+ assert.equal(gasPrice, '0x3b9aca00', 'accurately estimates 50th percentile accepted gas price')
metamaskController.recentBlocksController = realRecentBlocksController
})