-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Invalid gas computation/fork block in estimateGas #1600
Comments
This will need to be done as a patch so the state roots do not diverge |
For QA: need test transaction ('data' field) that has incorrect gas estimation. |
EvmSchedule chronology: Default: exceptionalFailedCodeDeposit=true, haveDelegateCall = true, txCreateGas = 53000 Frontier: exceptionalFailedCodeDeposit=false, haveDelegateCall = false, txCreateGas = 21000 Homestead = Default EIP150 = Homestead and: 150mode, extcodesizeGas = 700, extcodecopyGas = 700, balanceGas = 400, sloadGas = 200, callGas = 700, suicideGas = 5000 EIP158 = EIP150 and: 158mode, expByteGas = 50, maxCodeSize = 1024 * 64 Byzantium = EIP158 and: haveRevert, haveReturnData, haveStaticCall, blockRewardOverwrite = { 3 * ether }; EWASM = Byzantium and: maxCodeSize = std::numeric_limits< unsigned >::max Constantinople = Byzantium and: haveCreate2,haveBitwiseShifting,haveExtcodehash,eip1283Mode,blockRewardOverwrite = { 2 * ether }; ConstantinopleFix = Constantinople and eip1283Mode=false Istanbul = ConstantinopleFix and: txDataNonZeroGas = 16, sloadGas = 800, balanceGas = 700, extcodehashGas = 700,haveChainID = true, haveSelfbalance = true, sstoreUnchangedGas = 800; |
skaled: 3.18.0-beta.0 |
Verified on Regression network Skale chain: aged-wry-finished-skale Updated node
not updated node (3.17.1):
|
estimateGas uses DefaultSchedule:
int64_t lowerBound = Transaction::baseGasRequired( !_dest, &_data, EVMSchedule() );
(libethereum/ClientBase.cpp:118)`
This can lead to overestimation of gas for transactions with non-zero data.
Example:
See also #1745
The text was updated successfully, but these errors were encountered: