From 98127cc5da4a6ca2fc01a9023c69928b8725b216 Mon Sep 17 00:00:00 2001 From: Richard Ulrich Date: Mon, 12 Apr 2021 15:44:53 +0200 Subject: [PATCH] Allow setting RBF when bumping the fee of a transaction. This enables to further bump the fee. --- src/wallet/tx_builder.rs | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/wallet/tx_builder.rs b/src/wallet/tx_builder.rs index 0a62da90..eb413490 100644 --- a/src/wallet/tx_builder.rs +++ b/src/wallet/tx_builder.rs @@ -523,6 +523,26 @@ impl<'a, B, D: BatchDatabase, Cs: CoinSelectionAlgorithm, Ctx: TxBuilderConte pub fn finish(self) -> Result<(PSBT, TransactionDetails), Error> { self.wallet.create_tx(self.coin_selection, self.params) } + + /// Enable signaling RBF + /// + /// This will use the default nSequence value of `0xFFFFFFFD`. + pub fn enable_rbf(&mut self) -> &mut Self { + self.params.rbf = Some(RbfValue::Default); + self + } + + /// Enable signaling RBF with a specific nSequence value + /// + /// This can cause conflicts if the wallet's descriptors contain an "older" (OP_CSV) operator + /// and the given `nsequence` is lower than the CSV value. + /// + /// If the `nsequence` is higher than `0xFFFFFFFD` an error will be thrown, since it would not + /// be a valid nSequence to signal RBF. + pub fn enable_rbf_with_sequence(&mut self, nsequence: u32) -> &mut Self { + self.params.rbf = Some(RbfValue::Value(nsequence)); + self + } } impl<'a, B, D: BatchDatabase, Cs: CoinSelectionAlgorithm> TxBuilder<'a, B, D, Cs, CreateTx> { @@ -558,26 +578,6 @@ impl<'a, B, D: BatchDatabase, Cs: CoinSelectionAlgorithm> TxBuilder<'a, B, D, self } - - /// Enable signaling RBF - /// - /// This will use the default nSequence value of `0xFFFFFFFD`. - pub fn enable_rbf(&mut self) -> &mut Self { - self.params.rbf = Some(RbfValue::Default); - self - } - - /// Enable signaling RBF with a specific nSequence value - /// - /// This can cause conflicts if the wallet's descriptors contain an "older" (OP_CSV) operator - /// and the given `nsequence` is lower than the CSV value. - /// - /// If the `nsequence` is higher than `0xFFFFFFFD` an error will be thrown, since it would not - /// be a valid nSequence to signal RBF. - pub fn enable_rbf_with_sequence(&mut self, nsequence: u32) -> &mut Self { - self.params.rbf = Some(RbfValue::Value(nsequence)); - self - } } // methods supported only by bump_fee