11use crate :: bitcoin:: { OutPoint , PartiallySignedTransaction , Transaction } ;
22use crate :: descriptor:: Descriptor ;
3- use crate :: types:: Balance ;
3+ use crate :: types:: { Balance , RbfValue } ;
44use crate :: types:: ScriptAmount ;
55use crate :: Script ;
66use crate :: { AddressIndex , AddressInfo , Network } ;
7- use std:: collections:: HashSet ;
87
98use bdk:: bitcoin:: blockdata:: script:: ScriptBuf as BdkScriptBuf ;
10- use bdk:: bitcoin:: OutPoint as BdkOutPoint ;
9+ use bdk:: bitcoin:: { OutPoint as BdkOutPoint , Sequence } ;
1110use bdk:: wallet:: Update as BdkUpdate ;
1211use bdk:: { Error as BdkError , FeeRate } ;
1312use bdk:: { SignOptions , Wallet as BdkWallet } ;
14-
1513use bdk:: wallet:: tx_builder:: ChangeSpendPolicy ;
1614
15+ use std:: collections:: HashSet ;
1716use std:: sync:: { Arc , Mutex , MutexGuard } ;
1817
1918#[ derive( Debug ) ]
@@ -302,7 +301,7 @@ pub struct TxBuilder {
302301 pub ( crate ) fee_absolute : Option < u64 > ,
303302 pub ( crate ) drain_wallet : bool ,
304303 pub ( crate ) drain_to : Option < BdkScriptBuf > ,
305- // pub(crate) rbf: Option<RbfValue>,
304+ pub ( crate ) rbf : Option < RbfValue > ,
306305 // pub(crate) data: Vec<u8>,
307306}
308307
@@ -318,7 +317,7 @@ impl TxBuilder {
318317 fee_absolute : None ,
319318 drain_wallet : false ,
320319 drain_to : None ,
321- // rbf: None,
320+ rbf : None ,
322321 // data: Vec::new(),
323322 }
324323 }
@@ -453,15 +452,15 @@ impl TxBuilder {
453452 ..self . clone ( )
454453 } )
455454 }
456- //
457- // // / Enable signaling RBF. This will use the default `nsequence` value of `0xFFFFFFFD`.
458- // pub(crate) fn enable_rbf(&self) -> Arc<Self> {
459- // Arc::new(TxBuilder {
460- // rbf: Some(RbfValue::Default),
461- // ..self.clone()
462- // })
463- // }
464- //
455+
456+ /// Enable signaling RBF. This will use the default `nsequence` value of `0xFFFFFFFD`.
457+ pub ( crate ) fn enable_rbf ( & self ) -> Arc < Self > {
458+ Arc :: new ( TxBuilder {
459+ rbf : Some ( RbfValue :: Default ) ,
460+ ..self . clone ( )
461+ } )
462+ }
463+
465464 // /// Enable signaling RBF with a specific nSequence value. This can cause conflicts if the wallet's descriptors contain an
466465 // /// "older" (OP_CSV) operator and the given `nsequence` is lower than the CSV value. If the `nsequence` is higher than `0xFFFFFFFD`
467466 // /// an error will be thrown, since it would not be a valid nSequence to signal RBF.
@@ -517,16 +516,16 @@ impl TxBuilder {
517516 if let Some ( script) = & self . drain_to {
518517 tx_builder. drain_to ( script. clone ( ) ) ;
519518 }
520- // if let Some(rbf) = &self.rbf {
521- // match *rbf {
522- // RbfValue::Default => {
523- // tx_builder.enable_rbf();
524- // }
525- // RbfValue::Value(nsequence) => {
526- // tx_builder.enable_rbf_with_sequence(Sequence(nsequence));
527- // }
528- // }
529- // }
519+ if let Some ( rbf) = & self . rbf {
520+ match * rbf {
521+ RbfValue :: Default => {
522+ tx_builder. enable_rbf ( ) ;
523+ }
524+ RbfValue :: Value ( nsequence) => {
525+ tx_builder. enable_rbf_with_sequence ( Sequence ( nsequence) ) ;
526+ }
527+ }
528+ }
530529 // if !&self.data.is_empty() {
531530 // tx_builder.add_data(self.data.as_slice());
532531 // }
0 commit comments