1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-23 02:10:12 +01:00

Add new blockGasLimit property to txMeta object.

This commit is contained in:
Kevin Serrano 2017-05-24 16:17:03 -07:00
parent 1ffc6ea0b3
commit 26fd016b63
No known key found for this signature in database
GPG Key ID: BF999DEFC7371BA1

View File

@ -21,19 +21,30 @@ module.exports = class txProviderUtils {
this.query.getBlockByNumber('latest', true, (err, block) => {
if (err) return cb(err)
async.waterfall([
self.setBlockGasLimit.bind(self, txMeta, block.gasLimit),
self.estimateTxGas.bind(self, txMeta, block.gasLimit),
self.setTxGas.bind(self, txMeta, block.gasLimit),
], cb)
})
}
setBlockGasLimit (txMeta, blockGasLimitHex, cb) {
const blockGasLimitBN = hexToBn(blockGasLimitHex)
const saferGasLimitBN = blockGasLimitBN.muln(0.95)
txMeta.blockGasLimit = bnToHex(saferGasLimitBN)
cb()
return
}
estimateTxGas (txMeta, blockGasLimitHex, cb) {
const txParams = txMeta.txParams
// check if gasLimit is already specified
txMeta.gasLimitSpecified = Boolean(txParams.gas)
// if not, fallback to block gasLimit
if (!txMeta.gasLimitSpecified) {
txParams.gas = blockGasLimitHex
const blockGasLimitBN = hexToBn(blockGasLimitHex)
const saferGasLimitBN = blockGasLimitBN.muln(0.95)
txParams.gas = bnToHex(saferGasLimitBN)
}
// run tx, see if it will OOG
this.query.estimateGas(txParams, cb)