In the GmxProxy::getExecutionGasLimit() function when calculating executionGasLimit there is a comment that says to multiply by 1.2 to prevent transaction revert.
To do this, the multiplierFactor variable is used, which is taken from the DataStore contract using keccak256 as keccak256(abi.encode(‘ESTIMATED_GAS_FEE_MULTIPLIER_FACTOR’)). The DataStore multiplierFactor is taken from mapping(bytes32 => uint256) public uintValues. But instead of returning 1.2 it returns 1, which is inconsistent with the comment.
Now the transaction will be able to revert
Consider changing the multiplierFactor from 1e30 to 1.2e30
Likelihood: High, multiplierFactor always 1 and not 1.2 Impact: Informational/Very Low, there is no buffer for the transaction. However, this buffer does not seem to be necessary because the estimated gas limit, base gas limit, and callback gas limit are not underestimated. If it can be proven that, even with these variables being well-calculated (and no other root cause implied), the transaction will still revert, the impact could be higher.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.