@@ -13,7 +13,7 @@ use crate::rlpx::{message::RLPxMessage, utils::snappy_encode};
13
13
14
14
pub const HASH_FIRST_BYTE_DECODER : u8 = 160 ;
15
15
16
- #[ derive( Debug , PartialEq , Eq ) ]
16
+ #[ derive( Debug , PartialEq , Eq , Clone ) ]
17
17
pub enum HashOrNumber {
18
18
Hash ( BlockHash ) ,
19
19
Number ( BlockNumber ) ,
@@ -112,12 +112,12 @@ impl GetBlockHeaders {
112
112
impl RLPxMessage for GetBlockHeaders {
113
113
fn encode ( & self , buf : & mut dyn BufMut ) -> Result < ( ) , RLPEncodeError > {
114
114
let mut encoded_data = vec ! [ ] ;
115
+ let limit = self . limit ;
116
+ let skip = self . skip ;
117
+ let reverse = self . reverse as u8 ;
115
118
Encoder :: new ( & mut encoded_data)
116
119
. encode_field ( & self . id )
117
- . encode_field ( & self . startblock )
118
- . encode_field ( & self . limit )
119
- . encode_field ( & self . skip )
120
- . encode_field ( & self . reverse )
120
+ . encode_field ( & ( self . startblock . clone ( ) , limit, skip, reverse) )
121
121
. finish ( ) ;
122
122
let msg_data = snappy_encode ( encoded_data) ?;
123
123
buf. put_slice ( & msg_data) ;
@@ -158,7 +158,6 @@ impl RLPxMessage for BlockHeaders {
158
158
// Each message is encoded with its own
159
159
// message identifier (code).
160
160
// Go ethereum reference: https://github.com/ethereum/go-ethereum/blob/20bf543a64d7c2a590b18a1e1d907cae65707013/p2p/transport.go#L94
161
- 0x14_u8 . encode ( buf) ;
162
161
Encoder :: new ( & mut encoded_data)
163
162
. encode_field ( & self . id )
164
163
. encode_field ( & self . block_headers )
0 commit comments