go-opera
go-opera copied to clipboard
debug_traceBlockByNumber returns insufficient funds for gas * price + value but not trace_block
Describe the bug
Hi,
calling the "debug_traceBlockByNumber" method on some blocks returns a "insufficient funds for gas * price + value" type error. However, the "trace_block" method returns a different valid response.
To Reproduce
Example block numbers affected by this: 0x1099c77, 0x1099a99, 0x1099c51 or 0x1099c6b
Example request:
curl --location --request POST 'URL' \
--header 'Content-Type: application/json' \
--data-raw '{"jsonrpc":"2.0","method":"debug_traceBlockByNumber","params":["0x1099c6b", {"tracer": "callTracer", "timeout": "119s"}],"id":0}'
Example Response:
{
"jsonrpc": "2.0",
"id": 0,
"error": {
"code": -32000,
"message": "insufficient funds for gas * price + value: address 0x8bCe919E1BDDe7a5e88f6A37eECc9835b271cE33 have 30691200000000000 want 32995780000000000"
}
}
The same request to trace_block works.
curl --location --request POST 'URL' \
--header 'Content-Type: application/json' \
--data-raw '{"jsonrpc":"2.0","id":1, "method":"trace_block", "params":["0x1099c6b"]}'
Expected behavior
I was expecting a trace result because trace_block for the same block number works. Is this a bug regarding gas calculations in traces? or something else?
thanks