Bugfixes
Tracing a historical transaction (debug_traceTransaction / debug_traceBlock / debug_traceCall) replays it through the EVM keeper, which deducts the gas fee upfront. A legacy gas-accounting bug can make the recomputed fee differ from what was originally charged, so the deduction fails and the trace aborts with an error, even though the transaction was successfully included on chain. Affected transactions become impossible to trace.
A new optional traceReplay boolean in the trace config tells the keeper it is replaying an already-included tx. When set and the upfront fee deduction fails, the keeper logs a warning, continues the trace without charging the fee, and skips the matching gas refund. It is off by default.
How to use it: Add "traceReplay": true to the trace config object of any debug_trace* call:
{
"jsonrpc": "2.0",
"method": "debug_traceTransaction",
"params": ["0x<tx-hash>", { "tracer": "callTracer", "traceReplay": true }],
"id": 1
}
Enable it only when a debug_trace* call against an already-committed tx fails with a gas/balance error (node log: debug trace: gas computation failed, continuing trace without charging gas fee). Because no fee is charged in that case, the reported balance/gas deltas are approximate