From d473d28d8ce59fc3da3ad69171ce65f49bccbbdf Mon Sep 17 00:00:00 2001 From: cifer76 Date: Thu, 23 Feb 2023 15:55:39 +0300 Subject: [PATCH] fix trace --- core/state_processor.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/state_processor.go b/core/state_processor.go index 1f38fc283e..30fafaa1ac 100644 --- a/core/state_processor.go +++ b/core/state_processor.go @@ -88,13 +88,21 @@ func (p *StateProcessor) Process(block *types.Block, statedb *state.StateDB, cfg if err != nil { return nil, nil, 0, fmt.Errorf("could not apply tx %d [%v]: %w", i, tx.Hash().Hex(), err) } - statedb.SetTxContext(tx.Hash(), i) receipt, err := applyTransaction(msg, p.config, gp, statedb, blockNumber, blockHash, tx, usedGas, vmenv) if err != nil { return nil, nil, 0, fmt.Errorf("could not apply tx %d [%v]: %w", i, tx.Hash().Hex(), err) } receipts = append(receipts, receipt) allLogs = append(allLogs, receipt.Logs...) + + // Finalize trace logger result and save to underlying database if necessary. + switch t := cfg.Tracer.(type) { + case *txtracelib.OeTracer: + log.Debug("Persist oe-style trace result to database", "blockNumber", header.Number.Int64(), "txHash", tx.Hash()) + t.PersistTrace() + default: + } + } if tracing {