From 3386925a52da97f64ecc03cdd76a68f0612e594e Mon Sep 17 00:00:00 2001 From: Kamen Stoykov <24619432+kstoykov@users.noreply.github.com> Date: Wed, 4 Sep 2024 18:20:01 +0300 Subject: [PATCH] txpool-respect-parse-transaction-result (#1103) --- zk/txpool/txpool_grpc_server.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/zk/txpool/txpool_grpc_server.go b/zk/txpool/txpool_grpc_server.go index bd3f0eb928c..c0e96d8f47b 100644 --- a/zk/txpool/txpool_grpc_server.go +++ b/zk/txpool/txpool_grpc_server.go @@ -187,10 +187,11 @@ func (s *GrpcServer) Add(ctx context.Context, in *txpool_proto.AddRequest) (*txp j := 0 for i := 0; i < len(in.RlpTxs); i++ { // some incoming txs may be rejected, so - need secnod index - slots.Resize(uint(j + 1)) - slots.Txs[j] = &types.TxSlot{} - slots.IsLocal[j] = true - if _, err := parseCtx.ParseTransaction(in.RlpTxs[i], 0, slots.Txs[j], slots.Senders.At(j), false /* hasEnvelope */, func(hash []byte) error { + txSlot := &types.TxSlot{} + sender := common.Address{} + senderSlice := sender[:] + + if _, err := parseCtx.ParseTransaction(in.RlpTxs[i], 0, txSlot, senderSlice, false /* hasEnvelope */, func(hash []byte) error { if known, _ := s.txPool.IdHashKnown(tx, hash); known { return types.ErrAlreadyKnown } @@ -208,6 +209,11 @@ func (s *GrpcServer) Add(ctx context.Context, in *txpool_proto.AddRequest) (*txp } continue } + + slots.Resize(uint(j + 1)) + slots.Txs[j] = txSlot + copy(slots.Senders.At(j), senderSlice) + slots.IsLocal[j] = true j++ }