tracers/callflat: fix the nil receipt crash

Signed-off-by: jsvisa <delweng@gmail.com>
This commit is contained in:
jsvisa 2024-11-06 10:33:58 +08:00
parent c8dfa31422
commit 0099e5e2b8

View file

@ -224,13 +224,18 @@ func (t *flatCallTracer) OnTxEnd(receipt *types.Receipt, err error) {
if t.interrupt.Load() { if t.interrupt.Load() {
return return
} }
// Always set context with receipt data. if receipt != nil {
// Reset context with receipt data.
t.ctx = &tracers.Context{ t.ctx = &tracers.Context{
BlockHash: receipt.BlockHash, BlockHash: receipt.BlockHash,
BlockNumber: receipt.BlockNumber, BlockNumber: receipt.BlockNumber,
TxHash: receipt.TxHash, TxHash: receipt.TxHash,
TxIndex: int(receipt.TransactionIndex), TxIndex: int(receipt.TransactionIndex),
} }
} else {
// Set to nil if receipt is nil.
t.ctx = nil
}
t.tracer.OnTxEnd(receipt, err) t.tracer.OnTxEnd(receipt, err)
} }