From e90755697cbd861a21c83d4ce4fa87d0a29ba5c5 Mon Sep 17 00:00:00 2001 From: Gary Rong Date: Tue, 4 Mar 2025 14:29:57 +0800 Subject: [PATCH] eth/tracers: fix memory logging --- eth/tracers/api.go | 2 +- eth/tracers/logger/logger.go | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/eth/tracers/api.go b/eth/tracers/api.go index fe72924828..6db1046e54 100644 --- a/eth/tracers/api.go +++ b/eth/tracers/api.go @@ -889,11 +889,11 @@ func (api *API) TraceTransaction(ctx context.Context, hash common.Hash, config * return nil, err } defer release() + msg, err := core.TransactionToMessage(tx, types.MakeSigner(api.backend.ChainConfig(), block.Number(), block.Time()), block.BaseFee()) if err != nil { return nil, err } - txctx := &Context{ BlockHash: blockHash, BlockNumber: block.Number(), diff --git a/eth/tracers/logger/logger.go b/eth/tracers/logger/logger.go index a28cecf138..824a5e0c3e 100644 --- a/eth/tracers/logger/logger.go +++ b/eth/tracers/logger/logger.go @@ -179,8 +179,12 @@ func (s *StructLog) toLegacyJSON() json.RawMessage { } if len(s.Memory) > 0 { memory := make([]string, 0, (len(s.Memory)+31)/32) - for i := 0; i+32 <= len(s.Memory); i += 32 { - memory = append(memory, fmt.Sprintf("%x", s.Memory[i:i+32])) + for i := 0; i < len(s.Memory); i += 32 { + end := i + 32 + if end > len(s.Memory) { + end = len(s.Memory) + } + memory = append(memory, fmt.Sprintf("%x", s.Memory[i:end])) } msg.Memory = &memory }