46
46
//! let mut selected_amount = 0;
47
47
//! let mut additional_weight = 0;
48
48
//! let all_utxos_selected = required_utxos
49
- //! .clone()
50
49
//! .into_iter()
51
- //! .chain(optional_utxos.clone ())
50
+ //! .chain(optional_utxos.into_iter ())
52
51
//! .scan(
53
52
//! (&mut selected_amount, &mut additional_weight),
54
53
//! |(selected_amount, additional_weight), weighted_utxo| {
55
54
//! **selected_amount += weighted_utxo.utxo.txout().value;
56
55
//! **additional_weight += TXIN_BASE_WEIGHT + weighted_utxo.satisfaction_weight;
57
- //! Some(weighted_utxo.utxo )
56
+ //! Some(weighted_utxo)
58
57
//! },
59
58
//! )
60
59
//! .collect::<Vec<_>>();
69
68
//!
70
69
//! let calculated_waste = Some(
71
70
//! calculate_waste(
72
- //! required_utxos
73
- //! .into_iter()
74
- //! .chain(optional_utxos)
75
- //! .collect::<Vec<WeightedUtxo>>(),
71
+ //! &all_utxos_selected,
76
72
//! None,
77
73
//! amount_needed,
78
74
//! fee_rate,
82
78
//! );
83
79
//!
84
80
//! Ok(CoinSelectionResult::new(
85
- //! all_utxos_selected,
81
+ //! all_utxos_selected.into_iter().map(|u| u.utxo).collect() ,
86
82
//! fee_amount + additional_fees,
87
83
//! calculated_waste,
88
84
//! ))
@@ -167,7 +163,7 @@ impl CoinSelectionResult {
167
163
168
164
pub fn get_waste (
169
165
& self ,
170
- selected : Vec < WeightedUtxo > ,
166
+ selected : & [ WeightedUtxo ] ,
171
167
cost_of_change : Option < u64 > ,
172
168
target : u64 ,
173
169
fee_rate : FeeRate ,
@@ -192,14 +188,14 @@ impl CoinSelectionResult {
192
188
}
193
189
194
190
pub fn calculate_waste (
195
- selected : Vec < WeightedUtxo > ,
191
+ selected : & [ WeightedUtxo ] ,
196
192
cost_of_change : Option < u64 > ,
197
193
target : u64 ,
198
194
fee_rate : FeeRate ,
199
195
long_term_fee_rate : FeeRate ,
200
196
) -> Result < Waste , Error > {
201
197
// Always consider the cost of spending an input now vs in the future.
202
- let utxo_groups: Vec < OutputGroup > = selected
198
+ let utxo_groups: Vec < _ > = selected
203
199
. iter ( )
204
200
. map ( |u| OutputGroup :: new ( u, fee_rate) )
205
201
. collect ( ) ;
0 commit comments