Skip to content

Commit 9589a57

Browse files
committed
f Take GetMerkleRes by value
1 parent 746e8d5 commit 9589a57

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

lightning-transaction-sync/src/electrum.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)