You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Geth version: 1.14.1-unstable-86a1f0c3-20240502
CL client & version: e.g. [email protected]
OS & Version: Ubuntu 23.04
Commit hash : 86a1f0c
Expected behaviour
When doing an eth_estimateGas call of an eip4844 tx with blobs, with the account holding enough ETH but not too much (not multiple of what is necessary), it should work.
The call includes maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas.
The call fails with Failed with XXX gas: insufficient funds for gas * price + value: address 0x79E374Babb092590eD82f9A7cA5631aEAd710dea have YYY want ZZZ, with XXX looking random and way above the necessary gas, ZZZ being always a bit above YYY.
In the above example, the message was Failed with 2853958 gas: insufficient funds for gas * price + value: address 0x79E374Babb092590eD82f9A7cA5631aEAd710dea have 75833739893214239 want 82177035114105854
Steps to reproduce the behaviour
Calling eth_estimateGas with blobs with the account holding enough ETH, but not too much (not multiple of what is necessary), will trigger the bug.
Reason
I think I have identified the bug. In the gasestimator.go code, when computing the highest gas limit with the account available balance, it does not take into account the gas used to pay for blobs.
It can be seen with the example above : account has 75833739893214239 wei, maxFeePerGas is 26571425909 wei, the code compute an allowance (max gas limit) of 75833739893214239 / 26571425909 = 2853958 gas (which match the error message).
But then it tries to execute the code with a gas fee of 2853958 * 26571425909 + 131072 (blob gas) * 48395550306 (blog gas fee) = 82177035114105854 wei, which match the error message.
A PR will follow shortly.
The text was updated successfully, but these errors were encountered:
System information
Geth version: 1.14.1-unstable-86a1f0c3-20240502
CL client & version: e.g. [email protected]
OS & Version: Ubuntu 23.04
Commit hash : 86a1f0c
Expected behaviour
When doing an eth_estimateGas call of an eip4844 tx with blobs, with the account holding enough ETH but not too much (not multiple of what is necessary), it should work.
The call includes maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas.
Actual behaviour
The call fails with
Failed with XXX gas: insufficient funds for gas * price + value: address 0x79E374Babb092590eD82f9A7cA5631aEAd710dea have YYY want ZZZ
, with XXX looking random and way above the necessary gas, ZZZ being always a bit above YYY.In the above example, the message was
Failed with 2853958 gas: insufficient funds for gas * price + value: address 0x79E374Babb092590eD82f9A7cA5631aEAd710dea have 75833739893214239 want 82177035114105854
Steps to reproduce the behaviour
Calling eth_estimateGas with blobs with the account holding enough ETH, but not too much (not multiple of what is necessary), will trigger the bug.
Reason
I think I have identified the bug. In the gasestimator.go code, when computing the highest gas limit with the account available balance, it does not take into account the gas used to pay for blobs.
It can be seen with the example above : account has 75833739893214239 wei, maxFeePerGas is 26571425909 wei, the code compute an allowance (max gas limit) of 75833739893214239 / 26571425909 = 2853958 gas (which match the error message).
But then it tries to execute the code with a gas fee of 2853958 * 26571425909 + 131072 (blob gas) * 48395550306 (blog gas fee) = 82177035114105854 wei, which match the error message.
A PR will follow shortly.
The text was updated successfully, but these errors were encountered: