diff --git a/crates/electrum/src/bdk_electrum_client.rs b/crates/electrum/src/bdk_electrum_client.rs index 25da3998a..689b20849 100644 --- a/crates/electrum/src/bdk_electrum_client.rs +++ b/crates/electrum/src/bdk_electrum_client.rs @@ -78,6 +78,12 @@ impl BdkElectrumClient { drop(tx_cache); let tx = Arc::new(self.inner.transaction_get(&txid)?); + let returned_txid = tx.compute_txid(); + if returned_txid != txid { + return Err(Error::Message(format!( + "electrum server returned transaction with unexpected txid: expected {txid}, got {returned_txid}" + ))); + } self.tx_cache.lock().unwrap().insert(txid, Arc::clone(&tx));