Skip to content

Commit

Permalink
Use more accurate gas estimates for very high message gas limits (#611)
Browse files Browse the repository at this point in the history
  • Loading branch information
k1rill-fedoseev authored Oct 7, 2021
1 parent bd21cc1 commit d543dbb
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion oracle/src/utils/constants.js
Original file line number Diff line number Diff line change
@@ -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,
Expand Down

0 comments on commit d543dbb

Please sign in to comment.