);
}
#[test]
fn change_addresses_must_be_unique() {
pretty_assert_eq!(
TransactionBuilder::new(
satpoint(1, 0),
BTreeMap::new(),
vec![(outpoint(1), Amount::from_sat(1000))]
.into_iter()
.collect(),
BTreeSet::new(),
recipient(),
[change(0), change(0)],
FeeRate::try_from(0.0).unwrap(),
Target::Value(Amount::from_sat(1000))
)
.build_transaction(),
Err(Error::DuplicateAddress(change(0)))
);
}
#[test]
fn output_over_value_because_fees_prevent_excess_value_stripping() {
pretty_assert_eq!(
TransactionBuilder::new(
satpoint(1, 0),
BTreeMap::new(),
vec![(outpoint(1), Amount::from_sat(2000))]
.into_iter()
.collect(),
BTreeSet::new(),
recipient(),
[change(0), change(1)],
FeeRate::try_from(2.0).unwrap(),
Target::Value(Amount::from_sat(1500))
)
.build_transaction(),
Ok(Transaction {