go-ethereum
go-ethereum copied to clipboard
Gas Estimation using Geth v1.9.10 code fails
Describe the bug
Gas estimation using geth's v.1.9.10 DoEstimateGas function does not seem to work appropriately. The E2E test fails at:
integration_tests_1 | | 1) Queue Origin Sequencer Transactions
integration_tests_1 | | "before all" hook for "should sequencer batch append":
integration_tests_1 | | Error: transaction failed (transactionHash="0xf51191136996944dd041354cf65bf542bd3a1d91d17ffbba5d2a3a3c1257adf0", transaction={"hash":"0xf51191136996944dd041354cf65bf542bd3a1d91d17ffbba5d2a3a3c1257adf0","blockHash":"0xc40ec4212a42c2137bb51a1c539b76d54628abe6cd182900ccbaffce88c098c3","blockNumber":6,"transactionIndex":0,"confirmations":1,"from":"0x190f67608d1d777731C1d59e8A29E046FcDe8E1b","gasPrice":{"type":"BigNumber","hex":"0x00"},"gasLimit":{"type":"BigNumber","hex":"0x1a604d"},"to":null,"value":{"type":"BigNumber","hex":"0x00"},"nonce":0,"data":"0x60806040523480156200001c5760008062000019620002f6565b50505b50604051620014a7380380620014a7833981810160405260808110156200004d576000806200004a620002f6565b50505b810190808051906020019092919080516040519392919084640100000000821115620000835760008062000080620002f6565b50505b83820191506020820185811115620000a557600080620000a2620002f6565b50505b8251866001820283011164010000000082111715620000ce57600080620000cb620002f6565b50505b8083526020830192505050908051906020019080838360005b8381101562000104578082015181840152602081019050620000e7565b50505050905090810190601f168015620001325780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805160405193929190846401000000008211156200016b5760008062000168620002f6565b50505b838201915060208201858111156200018d576000806200018a620002f6565b50505b8251866001820283011164010000000082111715620001b657600080620001b3620002f6565b50505b8083526020830192505050908051906020019080838360005b83811015620001ec578082015181840152602081019050620001cf565b50505050905090810190601f1680156200021a5780820380516001836020036101000a031916815260200191505b50604052505050836000805a6200023062000366565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819062000276620003c5565b505050836005819062000288620003c5565b5050508260029080519060200190620002a39291906200042c565b5081600360006101000a81620002b8620004dd565b8160ff021916908360ff16021790620002d0620003c5565b5050508060049080519060200190620002eb9291906200042c565b505050505062000575565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156200033357808601518160408401015260208101905062000313565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015620003c057600081830152602081019050620003a4565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60005b604081101562000427576000818301526020810190506200040b565b505050565b828062000438620004dd565b600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200048357805160ff191683800117856200047b620003c5565b5050620004ca565b8280016001018562000494620003c5565b50508215620004ca579182015b82811115620004c957825182620004b7620003c5565b505091602001919060010190620004a1565b5b509050620004d9919062000542565b5090565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156200053d5760008183015260208101905062000521565b505050565b6200057291905b808211156200056e5760008160009062000562620003c5565b50505060010162000549565b5090565b90565b610f2280620005856000396000f3fe608060405234801561001957600080610016610d8f565b50505b50600436106100b25760003560e01c8063313ce5671161007a578063313ce567146102c05780635c658165146102e457806370a082311461036557806395d89b41146103c6578063a9059cbb14610449578063dd62ed3e146104b8576100b2565b806306fdde03146100c0578063095ea7b31461014357806318160ddd146101b257806323b872dd146101d057806327e235e31461025f575b6000806100bd610d8f565b50505b6100c8610539565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101085780820151818401526020810190506100ed565b50505050905090810190601f1680156101355780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610198600480360360408110156101625760008061015f610d8f565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105f3565b604051808215151515815260200191505060405180910390f35b6101ba6106fe565b6040518082815260200191505060405180910390f35b610245600480360360608110156101ef576000806101ec610d8f565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061070b565b604051808215151515815260200191505060405180910390f35b6102aa6004803603602081101561027e5760008061027b610d8f565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f7565b6040518082815260200191505060405180910390f35b6102c8610a16565b604051808260ff1660ff16815260200191505060405180910390f35b61034f6004803603604081101561030357600080610300610d8f565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a30565b6040518082815260200191505060405180910390f35b6103b06004803603602081101561038457600080610381610d8f565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a5c565b6040518082815260200191505060405180910390f35b6103ce610aab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040e5780820151818401526020810190506103f3565b50505050905090810190601f16801561043b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61049e6004803603604081101561046857600080610465610d8f565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b65565b604051808215151515815260200191505060405180910390f35b610523600480360360408110156104d7576000806104d4610d8f565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d01565b6040518082815260200191505060405180910390f35b600280610544610dfd565b600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828061057f610dfd565b600181600116156101000203166002900480156105eb5780601f106105b95761010080836105ab610dfd565b0402835291602001916105eb565b820191906000526020600020905b816105d0610dfd565b815290600101906020018083116105c757829003601f168201915b505050505081565b600081600160005a610603610e60565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190610684610ebd565b5050508273ffffffffffffffffffffffffffffffffffffffff165a6106a7610e60565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6005610708610dfd565b81565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005a610758610e60565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061079a610dfd565b9050826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206107e3610dfd565b101580156107f15750828110155b61080357600080610800610d8f565b50505b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828261084e610dfd565b01925050819061085c610ebd565b505050826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082826108aa610dfd565b0392505081906108b8610ebd565b5050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156109865782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060005a61092e610e60565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282610974610dfd565b039250508190610982610ebd565b5050505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b6000602052806000526040600020600091509050610a13610dfd565b81565b6003600090610a23610dfd565b906101000a900460ff1681565b600160205281600052604060002060205280600052604060002060009150915050610a59610dfd565b81565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020610aa4610dfd565b9050919050565b600480610ab6610dfd565b600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280610af1610dfd565b60018160011615610100020316600290048015610b5d5780601f10610b2b576101008083610b1d610dfd565b040283529160200191610b5d565b820191906000526020600020905b81610b42610dfd565b81529060010190602001808311610b3957829003601f168201915b505050505081565b6000816000805a610b74610e60565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020610bb6610dfd565b1015610bca57600080610bc7610d8f565b50505b816000805a610bd7610e60565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282610c1d610dfd565b039250508190610c2b610ebd565b505050816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282610c79610dfd565b019250508190610c87610ebd565b5050508273ffffffffffffffffffffffffffffffffffffffff165a610caa610e60565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020610d87610dfd565b905092915050565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015610dca578086015181604084010152602081019050610dac565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015610e5b57600081830152602081019050610e41565b505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015610eb857600081830152602081019050610e9e565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60005b6040811015610f1d57600081830152602081019050610f03565b5050505600000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000003466f6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003464f4f0000000000000000000000000000000000000000000000000000000000","r":"0x55f5034fe440a72ef6e12c5f6569eef8eced03c416ebce52933612c174b0230b","s":"0x74f4e216bf67d49eb715b42e57bb68170c2b6458bc8979a9b521067380f595a5","v":876,"creates":"0x291CfBa4Da1630d8a64eAc0A2051d0C43a359420","chainId":420}, receipt={"to":null,"from":"0x190f67608d1d777731C1d59e8A29E046FcDe8E1b","contractAddress":"0x291CfBa4Da1630d8a64eAc0A2051d0C43a359420","transactionIndex":0,"gasUsed":{"type":"BigNumber","hex":"0x16e4b9"},"logsBloom":"0x00000000000000000000000000000000000000000000000000040000000000000000000000000000000000100000000000000000000000000000000000000000400000000000000000000008000000000000000010000000000000000000000400000000000000000000000000008000000000000000000000000010020000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","blockHash":"0xc40ec4212a42c2137bb51a1c539b76d54628abe6cd182900ccbaffce88c098c3","transactionHash":"0xf51191136996944dd041354cf65bf542bd3a1d91d17ffbba5d2a3a3c1257adf0","logs":[{"transactionIndex":0,"blockNumber":6,"transactionHash":"0xf51191136996944dd041354cf65bf542bd3a1d91d17ffbba5d2a3a3c1257adf0","address":"0x4200000000000000000000000000000000000006","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000190f67608d1d777731c1d59e8a29e046fcde8e1b","0x0000000000000000000000004200000000000000000000000000000000000005"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","logIndex":0,"blockHash":"0xc40ec4212a42c2137bb51a1c539b76d54628abe6cd182900ccbaffce88c098c3"}],"blockNumber":6,"confirmations":1,"cumulativeGasUsed":{"type":"BigNumber","hex":"0x16e4b9"},"status":0,"byzantium":true}, code=CALL_EXCEPTION, packages/tx-ingestion/version=providers/5.0.14)
This happens during the EncodeSimulatedMessage codepath which gets called here during gas estimation. Fixing it may also require changes in the contracts repo, in the simulateMessage function.
To Reproduce
This is repro'd in https://github.com/ethereum-optimism/go-ethereum/pull/276
git checkout fix/gas-estimation- run the integration tests
Expected behavior
Gas estimation should work and tests should pass
We tried fixing this in https://github.com/ethereum-optimism/go-ethereum/pull/292 by adding some additional gas in the binary search during gas estimation, but it seemed to cause issues in the optimism-tutorials, so we ended up reverting it in https://github.com/ethereum-optimism/go-ethereum/pull/294
Original find from @platocrat:
This OVM test is failing
- Context:
- I’m running a set of EVM and OVM integration tests using the
optimism-integrationrepo. - For both EVM and OVM tests, I instantiate a pair of sender/receiver wallets using either local RPC URL (whether using Ethereum or OE) from the integrations repo and the private key of the local deployer’s account address.
- EVM tests pass as expected:
- Uses the RPC URL of the local Ethereum network to instantiate wallets
- Specified wallet has an ether balance for tests
- OVM tests: All but 1 of the tests pass:
- Uses the RPC URL of the local OE network to instantiate wallets
- Specified wallet appears to have ether balance for all but 1 test.
- Test that fails is a simple
transfercall- Error is:
Error: cannot estimate gas; transaction may fail or may require manual gas limit
- Error is:
- Some tests that pass _are also _simple
transfercalls.
- EVM tests pass as expected:
- I’m running a set of EVM and OVM integration tests using the
Repro:
git clone Waffe-ERC20-Example [email protected]:ethereum-optimism/Waffle-ERC20-Example.git
cd Waffle-ERC20-Example
git checkout refactor/use-integration-tests
yarn
yarn all