//! fn coin_select(
//! &self,
//! database: &D,
-//! must_use_utxos: Vec<(UTXO, usize)>,
+//! required_utxos: Vec<(UTXO, usize)>,
//! may_use_utxos: Vec<(UTXO, usize)>,
//! fee_rate: FeeRate,
//! amount_needed: u64,
//! ) -> Result<CoinSelectionResult, bdk::Error> {
//! let mut selected_amount = 0;
//! let mut additional_weight = 0;
-//! let all_utxos_selected = must_use_utxos
+//! let all_utxos_selected = required_utxos
//! .into_iter().chain(may_use_utxos)
//! .scan((&mut selected_amount, &mut additional_weight), |(selected_amount, additional_weight), (utxo, weight)| {
//! let txin = TxIn {
///
/// - `database`: a reference to the wallet's database that can be used to lookup additional
/// details for a specific UTXO
- /// - `must_use_utxos`: the utxos that must be spent regardless of `amount_needed` with their
+ /// - `required_utxos`: the utxos that must be spent regardless of `amount_needed` with their
/// weight cost
/// - `may_be_spent`: the utxos that may be spent to satisfy `amount_needed` with their weight
/// cost
fn coin_select(
&self,
database: &D,
- must_use_utxos: Vec<(UTXO, usize)>,
+ required_utxos: Vec<(UTXO, usize)>,
may_use_utxos: Vec<(UTXO, usize)>,
fee_rate: FeeRate,
amount_needed: u64,
fn coin_select(
&self,
_database: &D,
- must_use_utxos: Vec<(UTXO, usize)>,
+ required_utxos: Vec<(UTXO, usize)>,
mut may_use_utxos: Vec<(UTXO, usize)>,
fee_rate: FeeRate,
amount_needed: u64,
// smallest to largest, before being reversed with `.rev()`.
let utxos = {
may_use_utxos.sort_unstable_by_key(|(utxo, _)| utxo.txout.value);
- must_use_utxos
+ required_utxos
.into_iter()
.map(|utxo| (true, utxo))
.chain(may_use_utxos.into_iter().rev().map(|utxo| (false, utxo)))
));
}
- let (must_use_utxos, may_use_utxos) = self.get_must_may_use_utxos(
+ let (required_utxos, may_use_utxos) = self.get_must_may_use_utxos(
builder.change_policy,
&builder.unspendable,
&builder.utxos,
mut fee_amount,
} = builder.coin_selection.coin_select(
self.database.borrow().deref(),
- must_use_utxos,
+ required_utxos,
may_use_utxos,
fee_rate,
outgoing,
.cloned()
.collect::<Vec<_>>();
- let (mut must_use_utxos, may_use_utxos) = self.get_must_may_use_utxos(
+ let (mut required_utxos, may_use_utxos) = self.get_must_may_use_utxos(
builder.change_policy,
&builder.unspendable,
&builder_extra_utxos[..],
true, // we only want confirmed transactions for RBF
)?;
- must_use_utxos.append(&mut original_utxos);
+ required_utxos.append(&mut original_utxos);
let amount_needed = tx.output.iter().fold(0, |acc, out| acc + out.value);
let (new_feerate, initial_fee) = match builder
fee_amount,
} = builder.coin_selection.coin_select(
self.database.borrow().deref(),
- must_use_utxos,
+ required_utxos,
may_use_utxos,
new_feerate,
amount_needed,