Skip to content

Commit 3d8efbf

Browse files
committed
Borrow instead of moving transaction when broadcasting
There's no need to take ownership of the transaction for a broadcast.
1 parent d75d221 commit 3d8efbf

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

src/testutils/blockchain_tests.rs

+11-11
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ macro_rules! bdk_blockchain_tests {
598598
assert!(finalized, "Cannot finalize transaction");
599599
let tx = psbt.extract_tx();
600600
println!("{}", bitcoin::consensus::encode::serialize_hex(&tx));
601-
wallet.broadcast(tx).unwrap();
601+
wallet.broadcast(&tx).unwrap();
602602
wallet.sync(noop_progress(), None).unwrap();
603603
assert_eq!(wallet.get_balance().unwrap(), details.received, "incorrect balance after send");
604604

@@ -649,7 +649,7 @@ macro_rules! bdk_blockchain_tests {
649649

650650
let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
651651
assert!(finalized, "Cannot finalize transaction");
652-
let sent_txid = wallet.broadcast(psbt.extract_tx()).unwrap();
652+
let sent_txid = wallet.broadcast(&psbt.extract_tx()).unwrap();
653653

654654
wallet.sync(noop_progress(), None).unwrap();
655655
assert_eq!(wallet.get_balance().unwrap(), details.received, "incorrect balance after receive");
@@ -692,7 +692,7 @@ macro_rules! bdk_blockchain_tests {
692692
let (mut psbt, details) = builder.finish().unwrap();
693693
let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
694694
assert!(finalized, "Cannot finalize transaction");
695-
wallet.broadcast(psbt.extract_tx()).unwrap();
695+
wallet.broadcast(&psbt.extract_tx()).unwrap();
696696

697697
wallet.sync(noop_progress(), None).unwrap();
698698

@@ -731,7 +731,7 @@ macro_rules! bdk_blockchain_tests {
731731
let (mut psbt, details) = builder.finish().unwrap();
732732
let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
733733
assert!(finalized, "Cannot finalize transaction");
734-
wallet.broadcast(psbt.extract_tx()).unwrap();
734+
wallet.broadcast(&psbt.extract_tx()).unwrap();
735735
wallet.sync(noop_progress(), None).unwrap();
736736
assert_eq!(wallet.get_balance().unwrap(), 50_000 - details.fee.unwrap_or(0) - 5_000, "incorrect balance from fees");
737737
assert_eq!(wallet.get_balance().unwrap(), details.received, "incorrect balance from received");
@@ -741,7 +741,7 @@ macro_rules! bdk_blockchain_tests {
741741
let (mut new_psbt, new_details) = builder.finish().unwrap();
742742
let finalized = wallet.sign(&mut new_psbt, Default::default()).unwrap();
743743
assert!(finalized, "Cannot finalize transaction");
744-
wallet.broadcast(new_psbt.extract_tx()).unwrap();
744+
wallet.broadcast(&new_psbt.extract_tx()).unwrap();
745745
wallet.sync(noop_progress(), None).unwrap();
746746
assert_eq!(wallet.get_balance().unwrap(), 50_000 - new_details.fee.unwrap_or(0) - 5_000, "incorrect balance from fees after bump");
747747
assert_eq!(wallet.get_balance().unwrap(), new_details.received, "incorrect balance from received after bump");
@@ -766,7 +766,7 @@ macro_rules! bdk_blockchain_tests {
766766
let (mut psbt, details) = builder.finish().unwrap();
767767
let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
768768
assert!(finalized, "Cannot finalize transaction");
769-
wallet.broadcast(psbt.extract_tx()).unwrap();
769+
wallet.broadcast(&psbt.extract_tx()).unwrap();
770770
wallet.sync(noop_progress(), None).unwrap();
771771
assert_eq!(wallet.get_balance().unwrap(), 1_000 - details.fee.unwrap_or(0), "incorrect balance after send");
772772
assert_eq!(wallet.get_balance().unwrap(), details.received, "incorrect received after send");
@@ -776,7 +776,7 @@ macro_rules! bdk_blockchain_tests {
776776
let (mut new_psbt, new_details) = builder.finish().unwrap();
777777
let finalized = wallet.sign(&mut new_psbt, Default::default()).unwrap();
778778
assert!(finalized, "Cannot finalize transaction");
779-
wallet.broadcast(new_psbt.extract_tx()).unwrap();
779+
wallet.broadcast(&new_psbt.extract_tx()).unwrap();
780780
wallet.sync(noop_progress(), None).unwrap();
781781
assert_eq!(wallet.get_balance().unwrap(), 0, "incorrect balance after change removal");
782782
assert_eq!(new_details.received, 0, "incorrect received after change removal");
@@ -801,7 +801,7 @@ macro_rules! bdk_blockchain_tests {
801801
let (mut psbt, details) = builder.finish().unwrap();
802802
let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
803803
assert!(finalized, "Cannot finalize transaction");
804-
wallet.broadcast(psbt.extract_tx()).unwrap();
804+
wallet.broadcast(&psbt.extract_tx()).unwrap();
805805
wallet.sync(noop_progress(), None).unwrap();
806806
assert_eq!(wallet.get_balance().unwrap(), 26_000 - details.fee.unwrap_or(0), "incorrect balance after send");
807807
assert_eq!(details.received, 1_000 - details.fee.unwrap_or(0), "incorrect received after send");
@@ -811,7 +811,7 @@ macro_rules! bdk_blockchain_tests {
811811
let (mut new_psbt, new_details) = builder.finish().unwrap();
812812
let finalized = wallet.sign(&mut new_psbt, Default::default()).unwrap();
813813
assert!(finalized, "Cannot finalize transaction");
814-
wallet.broadcast(new_psbt.extract_tx()).unwrap();
814+
wallet.broadcast(&new_psbt.extract_tx()).unwrap();
815815
wallet.sync(noop_progress(), None).unwrap();
816816
assert_eq!(new_details.sent, 75_000, "incorrect sent");
817817
assert_eq!(wallet.get_balance().unwrap(), new_details.received, "incorrect balance after add input");
@@ -834,7 +834,7 @@ macro_rules! bdk_blockchain_tests {
834834
let (mut psbt, details) = builder.finish().unwrap();
835835
let finalized = wallet.sign(&mut psbt, Default::default()).unwrap();
836836
assert!(finalized, "Cannot finalize transaction");
837-
wallet.broadcast(psbt.extract_tx()).unwrap();
837+
wallet.broadcast(&psbt.extract_tx()).unwrap();
838838
wallet.sync(noop_progress(), None).unwrap();
839839
assert_eq!(wallet.get_balance().unwrap(), 26_000 - details.fee.unwrap_or(0), "incorrect balance after send");
840840
assert_eq!(details.received, 1_000 - details.fee.unwrap_or(0), "incorrect received after send");
@@ -846,7 +846,7 @@ macro_rules! bdk_blockchain_tests {
846846

847847
let finalized = wallet.sign(&mut new_psbt, Default::default()).unwrap();
848848
assert!(finalized, "Cannot finalize transaction");
849-
wallet.broadcast(new_psbt.extract_tx()).unwrap();
849+
wallet.broadcast(&new_psbt.extract_tx()).unwrap();
850850
wallet.sync(noop_progress(), None).unwrap();
851851
assert_eq!(new_details.sent, 75_000, "incorrect sent");
852852
assert_eq!(wallet.get_balance().unwrap(), 0, "incorrect balance after add input");

src/wallet/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1559,8 +1559,8 @@ where
15591559

15601560
/// Broadcast a transaction to the network
15611561
#[maybe_async]
1562-
pub fn broadcast(&self, tx: Transaction) -> Result<Txid, Error> {
1563-
maybe_await!(self.client.broadcast(&tx))?;
1562+
pub fn broadcast(&self, tx: &Transaction) -> Result<Txid, Error> {
1563+
maybe_await!(self.client.broadcast(tx))?;
15641564

15651565
Ok(tx.txid())
15661566
}

0 commit comments

Comments
 (0)