Use more accurate gas estimates for very high message gas limits (#611)
This commit is contained in:
parent
bd21cc163e
commit
d543dbb339
@ -15,7 +15,7 @@ async function estimateGas({ web3, homeBridge, validatorContract, message, addre
|
||||
const gasEstimate = await homeBridge.methods.executeAffirmation(message).estimateGas({
|
||||
from: address
|
||||
})
|
||||
const msgGasLimit = parseAMBHeader(message).gasLimit
|
||||
const msgGasLimit = Math.ceil((parseAMBHeader(message).gasLimit * 64) / 63)
|
||||
// message length in bytes
|
||||
const len = strip0x(message).length / 2 - MIN_AMB_HEADER_LENGTH
|
||||
|
||||
|
@ -24,7 +24,8 @@ async function estimateGas({
|
||||
// message length in bytes
|
||||
const len = strip0x(result).length / 2
|
||||
|
||||
const callbackGasLimit = parseInt(await homeBridge.methods.maxGasPerTx().call(), 10)
|
||||
let callbackGasLimit = parseInt(await homeBridge.methods.maxGasPerTx().call(), 10)
|
||||
callbackGasLimit = Math.ceil((callbackGasLimit * 64) / 63)
|
||||
|
||||
return gasEstimate + callbackGasLimit + estimateExtraGas(len)
|
||||
} catch (e) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
module.exports = {
|
||||
EXTRA_GAS_PERCENTAGE: 4,
|
||||
EXTRA_GAS_ABSOLUTE: 200000,
|
||||
EXTRA_GAS_ABSOLUTE: 250000,
|
||||
AMB_AFFIRMATION_REQUEST_EXTRA_GAS_ESTIMATOR: len => Math.floor(0.0035 * len ** 2 + 40 * len),
|
||||
MIN_AMB_HEADER_LENGTH: 32 + 20 + 20 + 4 + 2 + 1 + 2,
|
||||
MAX_GAS_LIMIT: 10000000,
|
||||
|
Loading…
Reference in New Issue
Block a user