go-opera icon indicating copy to clipboard operation
go-opera copied to clipboard

debug_traceBlockByNumber returns insufficient funds for gas * price + value but not trace_block

Open psousa opened this issue 2 years ago • 0 comments

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

psousa avatar Jun 09 '22 12:06 psousa