From bb449e5763219eb325a410eaa574fb9647085ea0 Mon Sep 17 00:00:00 2001 From: healthykim Date: Thu, 19 Mar 2026 02:00:03 +0900 Subject: [PATCH] extract shared logic from handleReceipts --- eth/protocols/eth/handlers.go | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/eth/protocols/eth/handlers.go b/eth/protocols/eth/handlers.go index 74d96d8da7..6f432941a4 100644 --- a/eth/protocols/eth/handlers.go +++ b/eth/protocols/eth/handlers.go @@ -538,28 +538,7 @@ func handleReceipts69(backend Backend, msg Decoder, peer *Peer) error { return fmt.Errorf("Receipts: %w", err) } - metadata := func() interface{} { - hasher := trie.NewStackTrie(nil) - hashes := make([]common.Hash, len(receiptLists)) - for i := range receiptLists { - hashes[i] = types.DeriveSha(receiptLists[i].Derivable(), hasher) - } - return hashes - } - - var enc ReceiptsRLPResponse - for i := range receiptLists { - encReceipts, err := receiptLists[i].EncodeForStorage() - if err != nil { - return fmt.Errorf("Receipts: invalid list %d: %v", i, err) - } - enc = append(enc, encReceipts) - } - return peer.dispatchResponse(&Response{ - id: res.RequestId, - code: ReceiptsMsg, - Res: &enc, - }, metadata) + return dispatchReceipts(res.RequestId, receiptLists, peer) } func handleReceipts70(backend Backend, msg Decoder, peer *Peer) error { @@ -588,6 +567,10 @@ func handleReceipts70(backend Backend, msg Decoder, peer *Peer) error { receiptLists = complete } + return dispatchReceipts(res.RequestId, receiptLists, peer) +} + +func dispatchReceipts(requestId uint64, receiptLists []*ReceiptList, peer *Peer) error { metadata := func() interface{} { hasher := trie.NewStackTrie(nil) hashes := make([]common.Hash, len(receiptLists)) @@ -596,6 +579,7 @@ func handleReceipts70(backend Backend, msg Decoder, peer *Peer) error { } return hashes } + var enc ReceiptsRLPResponse for i := range receiptLists { encReceipts, err := receiptLists[i].EncodeForStorage() @@ -605,7 +589,7 @@ func handleReceipts70(backend Backend, msg Decoder, peer *Peer) error { enc = append(enc, encReceipts) } return peer.dispatchResponse(&Response{ - id: res.RequestId, + id: requestId, code: ReceiptsMsg, Res: &enc, }, metadata)