// The funded wallet contains a tx with a 76_000 sats input and two outputs, one spending 25_000
// to a foreign address and one returning 50_000 back to the wallet as change. The remaining 1000
// sats are the transaction fee.
- assert_eq!(tx_fee, 1000)
+ assert_eq!(tx_fee, Amount::from_sat(1000))
}
#[test]
let fee_amount = psbt
.inputs
.iter()
- .fold(0, |acc, i| acc + i.witness_utxo.as_ref().unwrap().value.to_sat())
+ .fold(Amount::ZERO, |acc, i| acc + i.witness_utxo.as_ref().unwrap().value)
- psbt
.unsigned_tx
.output
.iter()
- .fold(0, |acc, o| acc + o.value.to_sat());
+ .fold(Amount::ZERO, |acc, o| acc + o.value);
assert_eq!(fee_amount, $fees);
- let tx_fee_rate = (Amount::from_sat(fee_amount) / tx.weight())
+ let tx_fee_rate = (fee_amount / tx.weight())
.to_sat_per_kwu();
let fee_rate = $fee_rate.to_sat_per_kwu();
let half_default = FeeRate::BROADCAST_MIN.checked_div(2)
assert_eq!(psbt.unsigned_tx.output.len(), 1);
assert_eq!(
- psbt.unsigned_tx.output[0].value.to_sat(),
- 50_000 - fee.unwrap_or(0)
+ psbt.unsigned_tx.output[0].value,
+ Amount::from_sat(50_000) - fee.unwrap_or(Amount::ZERO)
);
}
.iter()
.find(|x| x.script_pubkey == drain_addr.script_pubkey())
.unwrap();
- assert_eq!(main_output.value.to_sat(), 20_000,);
- assert_eq!(drain_output.value.to_sat(), 30_000 - fee.unwrap_or(0));
+ assert_eq!(main_output.value, Amount::from_sat(20_000));
+ assert_eq!(
+ drain_output.value,
+ Amount::from_sat(30_000) - fee.unwrap_or(Amount::ZERO)
+ );
}
#[test]
assert_eq!(psbt.unsigned_tx.output.len(), 1);
assert_eq!(
- psbt.unsigned_tx.output[0].value.to_sat(),
- 50_000 - fee.unwrap_or(0)
+ psbt.unsigned_tx.output[0].value,
+ Amount::from_sat(50_000) - fee.unwrap_or(Amount::ZERO)
);
}
let psbt = builder.finish().unwrap();
let fee = check_fee!(wallet, psbt);
- assert_fee_rate!(psbt, fee.unwrap_or(0), FeeRate::BROADCAST_MIN, @add_signature);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), FeeRate::BROADCAST_MIN, @add_signature);
}
#[test]
let psbt = builder.finish().unwrap();
let fee = check_fee!(wallet, psbt);
- assert_fee_rate!(psbt, fee.unwrap_or(0), FeeRate::from_sat_per_vb_unchecked(5), @add_signature);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), FeeRate::from_sat_per_vb_unchecked(5), @add_signature);
}
#[test]
let psbt = builder.finish().unwrap();
let fee = check_fee!(wallet, psbt);
- assert_eq!(fee.unwrap_or(0), 100);
+ assert_eq!(fee.unwrap_or(Amount::ZERO), Amount::from_sat(100));
assert_eq!(psbt.unsigned_tx.output.len(), 1);
assert_eq!(
- psbt.unsigned_tx.output[0].value.to_sat(),
- 50_000 - fee.unwrap_or(0)
+ psbt.unsigned_tx.output[0].value,
+ Amount::from_sat(50_000) - fee.unwrap_or(Amount::ZERO)
);
}
let psbt = builder.finish().unwrap();
let fee = check_fee!(wallet, psbt);
- assert_eq!(fee.unwrap_or(0), 0);
+ assert_eq!(fee.unwrap_or(Amount::ZERO), Amount::ZERO);
assert_eq!(psbt.unsigned_tx.output.len(), 1);
assert_eq!(
- psbt.unsigned_tx.output[0].value.to_sat(),
- 50_000 - fee.unwrap_or(0)
+ psbt.unsigned_tx.output[0].value,
+ Amount::from_sat(50_000) - fee.unwrap_or(Amount::ZERO)
);
}
let fee = check_fee!(wallet, psbt);
assert_eq!(psbt.unsigned_tx.output.len(), 2);
- assert_eq!(psbt.unsigned_tx.output[0].value.to_sat(), 25_000);
+ assert_eq!(psbt.unsigned_tx.output[0].value, Amount::from_sat(25_000));
assert_eq!(
- psbt.unsigned_tx.output[1].value.to_sat(),
- 25_000 - fee.unwrap_or(0)
+ psbt.unsigned_tx.output[1].value,
+ Amount::from_sat(25_000) - fee.unwrap_or(Amount::ZERO)
);
}
assert_eq!(psbt.unsigned_tx.output.len(), 1);
assert_eq!(psbt.unsigned_tx.output[0].value.to_sat(), 49_800);
- assert_eq!(fee.unwrap_or(0), 200);
+ assert_eq!(fee.unwrap_or(Amount::ZERO), Amount::from_sat(200));
}
#[test]
assert_eq!(psbt.unsigned_tx.output.len(), 3);
assert_eq!(
- psbt.unsigned_tx.output[0].value.to_sat(),
- 10_000 - fee.unwrap_or(0)
+ psbt.unsigned_tx.output[0].value,
+ Amount::from_sat(10_000) - fee.unwrap_or(Amount::ZERO)
);
- assert_eq!(psbt.unsigned_tx.output[1].value.to_sat(), 10_000);
- assert_eq!(psbt.unsigned_tx.output[2].value.to_sat(), 30_000);
+ assert_eq!(psbt.unsigned_tx.output[1].value, Amount::from_sat(10_000));
+ assert_eq!(psbt.unsigned_tx.output[2].value, Amount::from_sat(30_000));
}
#[test]
wallet1.sent_and_received(&psbt.clone().extract_tx().expect("failed to extract tx"));
assert_eq!(
- (sent_received.0 - sent_received.1).to_sat(),
- 10_000 + fee.unwrap_or(0),
+ (sent_received.0 - sent_received.1),
+ Amount::from_sat(10_000) + fee.unwrap_or(Amount::ZERO),
"we should have only net spent ~10_000"
);
assert_eq!(sent_received.0, original_sent_received.0);
assert_eq!(
- sent_received.1 + Amount::from_sat(fee.unwrap_or(0)),
- original_sent_received.1 + Amount::from_sat(original_fee.unwrap_or(0))
+ sent_received.1 + fee.unwrap_or(Amount::ZERO),
+ original_sent_received.1 + original_fee.unwrap_or(Amount::ZERO)
);
- assert!(fee.unwrap_or(0) > original_fee.unwrap_or(0));
+ assert!(fee.unwrap_or(Amount::ZERO) > original_fee.unwrap_or(Amount::ZERO));
let tx = &psbt.unsigned_tx;
assert_eq!(tx.output.len(), 2);
sent_received.1
);
- assert_fee_rate!(psbt, fee.unwrap_or(0), feerate, @add_signature);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), feerate, @add_signature);
let mut builder = wallet.build_fee_bump(txid).unwrap();
builder.fee_absolute(Amount::from_sat(200));
assert_eq!(sent_received.0, original_sent_received.0);
assert_eq!(
- sent_received.1 + Amount::from_sat(fee.unwrap_or(0)),
- original_sent_received.1 + Amount::from_sat(original_fee.unwrap_or(0))
+ sent_received.1 + fee.unwrap_or(Amount::ZERO),
+ original_sent_received.1 + original_fee.unwrap_or(Amount::ZERO)
);
assert!(
- fee.unwrap_or(0) > original_fee.unwrap_or(0),
+ fee.unwrap_or(Amount::ZERO) > original_fee.unwrap_or(Amount::ZERO),
"{} > {}",
- fee.unwrap_or(0),
- original_fee.unwrap_or(0)
+ fee.unwrap_or(Amount::ZERO),
+ original_fee.unwrap_or(Amount::ZERO)
);
let tx = &psbt.unsigned_tx;
sent_received.1
);
- assert_eq!(fee.unwrap_or(0), 200);
+ assert_eq!(fee.unwrap_or(Amount::ZERO), Amount::from_sat(200));
}
#[test]
let fee = check_fee!(wallet, psbt);
assert_eq!(sent_received.0, original_sent_received.0);
- assert!(fee.unwrap_or(0) > original_fee.unwrap_or(0));
+ assert!(fee.unwrap_or(Amount::ZERO) > original_fee.unwrap_or(Amount::ZERO));
let tx = &psbt.unsigned_tx;
assert_eq!(tx.output.len(), 1);
assert_eq!(
- tx.output[0].value + Amount::from_sat(fee.unwrap_or(0)),
+ tx.output[0].value + fee.unwrap_or(Amount::ZERO),
sent_received.0
);
- assert_fee_rate!(psbt, fee.unwrap_or(0), feerate, @add_signature);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), feerate, @add_signature);
}
#[test]
let fee = check_fee!(wallet, psbt);
assert_eq!(sent_received.0, original_sent_received.0);
- assert!(fee.unwrap_or(0) > original_fee.unwrap_or(0));
+ assert!(fee.unwrap_or(Amount::ZERO) > original_fee.unwrap_or(Amount::ZERO));
assert_eq!(tx.output.len(), 1);
assert_eq!(
- tx.output[0].value + Amount::from_sat(fee.unwrap_or(0)),
+ tx.output[0].value + fee.unwrap_or(Amount::ZERO),
sent_received.0
);
- assert_eq!(fee.unwrap_or(0), 300);
+ assert_eq!(fee.unwrap_or(Amount::ZERO), Amount::from_sat(300));
}
#[test]
original_details.0 + Amount::from_sat(25_000)
);
assert_eq!(
- Amount::from_sat(fee.unwrap_or(0)) + sent_received.1,
+ fee.unwrap_or(Amount::ZERO) + sent_received.1,
Amount::from_sat(30_000)
);
sent_received.1
);
- assert_fee_rate!(psbt, fee.unwrap_or(0), FeeRate::from_sat_per_vb_unchecked(50), @add_signature);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), FeeRate::from_sat_per_vb_unchecked(50), @add_signature);
}
#[test]
original_sent_received.0 + Amount::from_sat(25_000)
);
assert_eq!(
- Amount::from_sat(fee.unwrap_or(0)) + sent_received.1,
+ fee.unwrap_or(Amount::ZERO) + sent_received.1,
Amount::from_sat(30_000)
);
sent_received.1
);
- assert_eq!(fee.unwrap_or(0), 6_000);
+ assert_eq!(fee.unwrap_or(Amount::ZERO), Amount::from_sat(6_000));
}
#[test]
wallet.sent_and_received(&psbt.clone().extract_tx().expect("failed to extract tx"));
let fee = check_fee!(wallet, psbt);
- let original_send_all_amount =
- original_sent_received.0 - Amount::from_sat(original_fee.unwrap_or(0));
+ let original_send_all_amount = original_sent_received.0 - original_fee.unwrap_or(Amount::ZERO);
assert_eq!(
sent_received.0,
original_sent_received.0 + Amount::from_sat(50_000)
);
assert_eq!(
sent_received.1,
- Amount::from_sat(75_000) - original_send_all_amount - Amount::from_sat(fee.unwrap_or(0))
+ Amount::from_sat(75_000) - original_send_all_amount - fee.unwrap_or(Amount::ZERO)
);
let tx = &psbt.unsigned_tx;
.find(|txout| txout.script_pubkey != addr.script_pubkey())
.unwrap()
.value,
- Amount::from_sat(75_000) - original_send_all_amount - Amount::from_sat(fee.unwrap_or(0))
+ Amount::from_sat(75_000) - original_send_all_amount - fee.unwrap_or(Amount::ZERO)
);
- assert_fee_rate!(psbt, fee.unwrap_or(0), FeeRate::from_sat_per_vb_unchecked(50), @add_signature);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), FeeRate::from_sat_per_vb_unchecked(50), @add_signature);
}
#[test]
assert_eq!(
original_sent_received.1,
- Amount::from_sat(5_000 - original_fee.unwrap_or(0))
+ Amount::from_sat(5_000) - original_fee.unwrap_or(Amount::ZERO)
);
assert_eq!(
sent_received.0,
original_sent_received.0 + Amount::from_sat(25_000)
);
- assert_eq!(fee.unwrap_or(0), 30_000);
+ assert_eq!(fee.unwrap_or(Amount::ZERO), Amount::from_sat(30_000));
assert_eq!(sent_received.1, Amount::ZERO);
let tx = &psbt.unsigned_tx;
Amount::from_sat(45_000)
);
- assert_fee_rate!(psbt, fee.unwrap_or(0), FeeRate::from_sat_per_vb_unchecked(140), @dust_change, @add_signature);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), FeeRate::from_sat_per_vb_unchecked(140), @dust_change, @add_signature);
}
#[test]
original_sent_received.0 + Amount::from_sat(25_000)
);
assert_eq!(
- Amount::from_sat(fee.unwrap_or(0)) + sent_received.1,
+ fee.unwrap_or(Amount::ZERO) + sent_received.1,
Amount::from_sat(30_000)
);
sent_received.1
);
- assert_fee_rate!(psbt, fee.unwrap_or(0), FeeRate::from_sat_per_vb_unchecked(5), @add_signature);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), FeeRate::from_sat_per_vb_unchecked(5), @add_signature);
}
#[test]
original_sent_received.0 + Amount::from_sat(25_000)
);
assert_eq!(
- Amount::from_sat(fee.unwrap_or(0)) + sent_received.1,
+ fee.unwrap_or(Amount::ZERO) + sent_received.1,
Amount::from_sat(30_000)
);
sent_received.1
);
- assert_eq!(fee.unwrap_or(0), 250);
+ assert_eq!(fee.unwrap_or(Amount::ZERO), Amount::from_sat(250));
}
#[test]
let fee = check_fee!(wallet, psbt);
assert_eq!(psbt.inputs.len(), 1);
- assert_fee_rate!(psbt, fee.unwrap_or(0), fee_rate, @add_signature);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), fee_rate, @add_signature);
}
#[test]
assert_eq!(
sent_received.0 - sent_received.1,
- Amount::from_sat(10_000 + fee.unwrap_or(0)),
+ Amount::from_sat(10_000) + fee.unwrap_or(Amount::ZERO),
"we should have only net spent ~10_000"
);
)
.unwrap();
// ...and checking that everything is fine
- assert_fee_rate!(psbt, fee.unwrap_or(0), fee_rate);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), fee_rate);
}
#[test]
let key = psbt.inputs[0].partial_sigs.keys().next().unwrap();
let sig_len = psbt.inputs[0].partial_sigs[key].sig.serialize_der().len();
assert_eq!(sig_len, 70);
- assert_fee_rate!(psbt, fee.unwrap_or(0), fee_rate);
+ assert_fee_rate!(psbt, fee.unwrap_or(Amount::ZERO), fee_rate);
}
#[test]