(outpoint(1), Amount::from_sat(3_003)), // 1. satpoint is selected 1st leaving us needing 7154 more (outpoint(5), Amount::from_sat(3_004)), (outpoint(4), Amount::from_sat(3_001)), // 4. smallest utxo >= 1259 is selected 4th, filling deficit (outpoint(3), Amount::from_sat(3_005)), // 3. next biggest utxo is selected 3rd leaving us needing 1259 more (outpoint(6), Amount::from_sat(3_002)), ]; let tx_builder = TransactionBuilder::new( satpoint(1, 0), BTreeMap::new(), utxos.clone().into_iter().collect(), BTreeSet::new(), recipient(), [change(0), change(1)], FeeRate::try_from(1.0).unwrap(), Target::Value(Amount::from_sat(10_000)), ) .select_outgoing() .unwrap() .add_value() .unwrap(); utxos.remove(4); utxos.remove(3); utxos.remove(1); utxos.remove(0); assert_eq!( tx_builder.utxos, utxos.iter().map(|(outpoint, _ranges)| *outpoint).collect() ); assert_eq!( tx_builder.inputs,