selector!: Swap ChangePolicyType for bdk_coin_select::ChangePolicy
#32
+136
−76
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
Fix #29 by removing
ChangePolicyTypefromSelectorParamsin favor ofbdk_coin_select::ChangePolicy. The idea is that this affords maximum flexibility when defining the change policy.Builds on #31 which implements absolute fee targeting. h/t aagbotemi. A test
test_absolute_fee_vs_feerate_target_valueis added that checks the expectedTargetis constructed based on the chosenFeeStrategy.Changelog
Added
FeeStrategyenum which defines the fee target as either a feerate or fee amount.Changed
BREAKING
SelectorParams::target_feeratefield is changed tofee_strategy.SelectorParams::change_policyfield is changed to have typebdk_coin_select::ChangePolicy.SelectorParams::newis changed to accept thefee_strategyandchange_policyas inputs.Removed
SelectorParams::change_weightfield is removed now that the change weights are represented in the actual change policy.SelectorParams::to_cs_change_policyas the conversion is no longer necessary.ChangePolicyTypeenum to allow the user to construct the intendedChangePolicy.