Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
After investigating the error in
create_bdk_rbf_transaction
, I noticed the strange behavior in the BDK rbf method. When we create a transaction builder from theWallet::build_fee_bump
method with descriptor and change_descriptor, the BDK gets all outputs recipients, including "final change output", and this avoids BDK apply replace by fee policy.For example,
Suppose you have 100.000 sats and create a new transaction, sending 10.000 sats to the address; the BDK generates the following transaction:
In (1): 100.000
out (1): 10.000
out (2): 98.000
fee: 1.000
When we try to send a new transaction with descriptor and change_descriptor, the BDK retrieves both outs instead of only the first out (10.000 sats). Then, BDK raises an inflation exception.