@@ -358,8 +358,9 @@ where
358358 debug_assert_eq ! ( prob_conf_height, merkle_res. block_height as u32 ) ;
359359 match self . client . block_header ( prob_conf_height as usize ) {
360360 Ok ( block_header) => {
361+ let pos = merkle_res. pos ;
361362 if !self . validate_merkle_proof ( & txid,
362- & block_header. merkle_root , & merkle_res) ?
363+ & block_header. merkle_root , merkle_res) ?
363364 {
364365 log_trace ! ( self . logger,
365366 "Inconsistency: Block {} was unconfirmed during syncing." ,
@@ -369,7 +370,7 @@ where
369370 let confirmed_tx = ConfirmedTx {
370371 tx : tx. clone ( ) ,
371372 block_header, block_height : prob_conf_height,
372- pos : merkle_res . pos
373+ pos,
373374 } ;
374375 Ok ( confirmed_tx)
375376 }
@@ -396,14 +397,13 @@ where
396397 }
397398
398399 fn validate_merkle_proof ( & self , txid : & Txid , merkle_root : & TxMerkleNode ,
399- merkle_res : & GetMerkleRes ) -> Result < bool , InternalError >
400+ merkle_res : GetMerkleRes ) -> Result < bool , InternalError >
400401 {
401402 let mut index = merkle_res. pos ;
402403 let mut cur = txid. as_hash ( ) ;
403- for bytes in & merkle_res. merkle {
404- let mut reversed = Vec :: with_capacity ( 32 ) ;
405- reversed. extend ( bytes. iter ( ) . rev ( ) ) ;
406- let next_hash = Sha256d :: from_slice ( & reversed) . map_err ( |_| {
404+ for mut bytes in merkle_res. merkle {
405+ bytes. reverse ( ) ;
406+ let next_hash = Sha256d :: from_slice ( & bytes) . map_err ( |_| {
407407 log_error ! ( self . logger,
408408 "Failed due to the server sending us bogus transaction data. This should not happen. Please verify server integrity."
409409 ) ;
0 commit comments