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 }