test(wallet): add check_fee!(wallet,psbt) macro and use it in place of psbt.fee_amount()
- removed test_calculate_fee_with_inserted_foreign_utxo() since it now duplicates test in test_add_foreign_utxo()
This commit is contained in:
parent
465d53cc88
commit
dd5b8d7599
@ -436,6 +436,15 @@ fn test_create_tx_change_policy_no_internal() {
|
|||||||
builder.finish().unwrap();
|
builder.finish().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
macro_rules! check_fee {
|
||||||
|
($wallet:expr, $psbt: expr) => {{
|
||||||
|
let tx = $psbt.clone().extract_tx();
|
||||||
|
let tx_fee = $wallet.calculate_fee(&tx).ok();
|
||||||
|
assert_eq!(tx_fee, $psbt.fee_amount());
|
||||||
|
tx_fee
|
||||||
|
}};
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_create_tx_drain_wallet_and_drain_to() {
|
fn test_create_tx_drain_wallet_and_drain_to() {
|
||||||
let (mut wallet, _) = get_funded_wallet(get_test_wpkh());
|
let (mut wallet, _) = get_funded_wallet(get_test_wpkh());
|
||||||
@ -443,7 +452,7 @@ fn test_create_tx_drain_wallet_and_drain_to() {
|
|||||||
let mut builder = wallet.build_tx();
|
let mut builder = wallet.build_tx();
|
||||||
builder.drain_to(addr.script_pubkey()).drain_wallet();
|
builder.drain_to(addr.script_pubkey()).drain_wallet();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(psbt.unsigned_tx.output.len(), 1);
|
assert_eq!(psbt.unsigned_tx.output.len(), 1);
|
||||||
assert_eq!(psbt.unsigned_tx.output[0].value, 50_000 - fee.unwrap_or(0));
|
assert_eq!(psbt.unsigned_tx.output[0].value, 50_000 - fee.unwrap_or(0));
|
||||||
@ -462,7 +471,7 @@ fn test_create_tx_drain_wallet_and_drain_to_and_with_recipient() {
|
|||||||
.drain_to(drain_addr.script_pubkey())
|
.drain_to(drain_addr.script_pubkey())
|
||||||
.drain_wallet();
|
.drain_wallet();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
let outputs = psbt.unsigned_tx.output;
|
let outputs = psbt.unsigned_tx.output;
|
||||||
|
|
||||||
assert_eq!(outputs.len(), 2);
|
assert_eq!(outputs.len(), 2);
|
||||||
@ -489,7 +498,7 @@ fn test_create_tx_drain_to_and_utxos() {
|
|||||||
.add_utxos(&utxos)
|
.add_utxos(&utxos)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(psbt.unsigned_tx.output.len(), 1);
|
assert_eq!(psbt.unsigned_tx.output.len(), 1);
|
||||||
assert_eq!(psbt.unsigned_tx.output[0].value, 50_000 - fee.unwrap_or(0));
|
assert_eq!(psbt.unsigned_tx.output[0].value, 50_000 - fee.unwrap_or(0));
|
||||||
@ -512,7 +521,7 @@ fn test_create_tx_default_fee_rate() {
|
|||||||
let mut builder = wallet.build_tx();
|
let mut builder = wallet.build_tx();
|
||||||
builder.add_recipient(addr.script_pubkey(), 25_000);
|
builder.add_recipient(addr.script_pubkey(), 25_000);
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_fee_rate!(psbt, fee.unwrap_or(0), FeeRate::default(), @add_signature);
|
assert_fee_rate!(psbt, fee.unwrap_or(0), FeeRate::default(), @add_signature);
|
||||||
}
|
}
|
||||||
@ -526,7 +535,7 @@ fn test_create_tx_custom_fee_rate() {
|
|||||||
.add_recipient(addr.script_pubkey(), 25_000)
|
.add_recipient(addr.script_pubkey(), 25_000)
|
||||||
.fee_rate(FeeRate::from_sat_per_vb(5.0));
|
.fee_rate(FeeRate::from_sat_per_vb(5.0));
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_fee_rate!(psbt, fee.unwrap_or(0), FeeRate::from_sat_per_vb(5.0), @add_signature);
|
assert_fee_rate!(psbt, fee.unwrap_or(0), FeeRate::from_sat_per_vb(5.0), @add_signature);
|
||||||
}
|
}
|
||||||
@ -541,7 +550,7 @@ fn test_create_tx_absolute_fee() {
|
|||||||
.drain_wallet()
|
.drain_wallet()
|
||||||
.fee_absolute(100);
|
.fee_absolute(100);
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(fee.unwrap_or(0), 100);
|
assert_eq!(fee.unwrap_or(0), 100);
|
||||||
assert_eq!(psbt.unsigned_tx.output.len(), 1);
|
assert_eq!(psbt.unsigned_tx.output.len(), 1);
|
||||||
@ -558,7 +567,7 @@ fn test_create_tx_absolute_zero_fee() {
|
|||||||
.drain_wallet()
|
.drain_wallet()
|
||||||
.fee_absolute(0);
|
.fee_absolute(0);
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(fee.unwrap_or(0), 0);
|
assert_eq!(fee.unwrap_or(0), 0);
|
||||||
assert_eq!(psbt.unsigned_tx.output.len(), 1);
|
assert_eq!(psbt.unsigned_tx.output.len(), 1);
|
||||||
@ -589,7 +598,7 @@ fn test_create_tx_add_change() {
|
|||||||
.add_recipient(addr.script_pubkey(), 25_000)
|
.add_recipient(addr.script_pubkey(), 25_000)
|
||||||
.ordering(TxOrdering::Untouched);
|
.ordering(TxOrdering::Untouched);
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(psbt.unsigned_tx.output.len(), 2);
|
assert_eq!(psbt.unsigned_tx.output.len(), 2);
|
||||||
assert_eq!(psbt.unsigned_tx.output[0].value, 25_000);
|
assert_eq!(psbt.unsigned_tx.output[0].value, 25_000);
|
||||||
@ -603,7 +612,7 @@ fn test_create_tx_skip_change_dust() {
|
|||||||
let mut builder = wallet.build_tx();
|
let mut builder = wallet.build_tx();
|
||||||
builder.add_recipient(addr.script_pubkey(), 49_800);
|
builder.add_recipient(addr.script_pubkey(), 49_800);
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(psbt.unsigned_tx.output.len(), 1);
|
assert_eq!(psbt.unsigned_tx.output.len(), 1);
|
||||||
assert_eq!(psbt.unsigned_tx.output[0].value, 49_800);
|
assert_eq!(psbt.unsigned_tx.output[0].value, 49_800);
|
||||||
@ -634,7 +643,7 @@ fn test_create_tx_ordering_respected() {
|
|||||||
.add_recipient(addr.script_pubkey(), 10_000)
|
.add_recipient(addr.script_pubkey(), 10_000)
|
||||||
.ordering(bdk::wallet::tx_builder::TxOrdering::Bip69Lexicographic);
|
.ordering(bdk::wallet::tx_builder::TxOrdering::Bip69Lexicographic);
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(psbt.unsigned_tx.output.len(), 3);
|
assert_eq!(psbt.unsigned_tx.output.len(), 3);
|
||||||
assert_eq!(psbt.unsigned_tx.output[0].value, 10_000 - fee.unwrap_or(0));
|
assert_eq!(psbt.unsigned_tx.output[0].value, 10_000 - fee.unwrap_or(0));
|
||||||
@ -1050,7 +1059,8 @@ fn test_add_foreign_utxo() {
|
|||||||
.add_foreign_utxo(utxo.outpoint, psbt_input, foreign_utxo_satisfaction)
|
.add_foreign_utxo(utxo.outpoint, psbt_input, foreign_utxo_satisfaction)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let mut psbt = builder.finish().unwrap();
|
let mut psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
wallet1.insert_txout(utxo.outpoint, utxo.txout);
|
||||||
|
let fee = check_fee!(wallet1, psbt);
|
||||||
let sent_received = wallet1.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet1.sent_and_received(&psbt.clone().extract_tx());
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@ -1129,42 +1139,6 @@ fn test_calculate_fee_with_missing_foreign_utxo() {
|
|||||||
wallet1.calculate_fee(&tx).unwrap();
|
wallet1.calculate_fee(&tx).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_calculate_fee_with_inserted_foreign_utxo() {
|
|
||||||
let (mut wallet1, _) = get_funded_wallet(get_test_wpkh());
|
|
||||||
let (wallet2, _) =
|
|
||||||
get_funded_wallet("wpkh(cVbZ8ovhye9AoAHFsqobCf7LxbXDAECy9Kb8TZdfsDYMZGBUyCnm)");
|
|
||||||
|
|
||||||
let addr = Address::from_str("2N1Ffz3WaNzbeLFBb51xyFMHYSEUXcbiSoX")
|
|
||||||
.unwrap()
|
|
||||||
.assume_checked();
|
|
||||||
let utxo = wallet2.list_unspent().next().expect("must take!");
|
|
||||||
#[allow(deprecated)]
|
|
||||||
let foreign_utxo_satisfaction = wallet2
|
|
||||||
.get_descriptor_for_keychain(KeychainKind::External)
|
|
||||||
.max_satisfaction_weight()
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let psbt_input = psbt::Input {
|
|
||||||
witness_utxo: Some(utxo.txout.clone()),
|
|
||||||
..Default::default()
|
|
||||||
};
|
|
||||||
|
|
||||||
let mut builder = wallet1.build_tx();
|
|
||||||
builder
|
|
||||||
.add_recipient(addr.script_pubkey(), 60_000)
|
|
||||||
.only_witness_utxo()
|
|
||||||
.add_foreign_utxo(utxo.outpoint, psbt_input, foreign_utxo_satisfaction)
|
|
||||||
.unwrap();
|
|
||||||
let psbt = builder.finish().unwrap();
|
|
||||||
let psbt_fee = psbt.fee_amount().expect("psbt fee");
|
|
||||||
let tx = psbt.extract_tx();
|
|
||||||
|
|
||||||
wallet1.insert_txout(utxo.outpoint, utxo.txout);
|
|
||||||
let wallet1_fee = wallet1.calculate_fee(&tx).expect("wallet fee");
|
|
||||||
assert_eq!(psbt_fee, wallet1_fee);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic(expected = "Generic(\"Foreign utxo missing witness_utxo or non_witness_utxo\")")]
|
#[should_panic(expected = "Generic(\"Foreign utxo missing witness_utxo or non_witness_utxo\")")]
|
||||||
fn test_add_foreign_utxo_invalid_psbt_input() {
|
fn test_add_foreign_utxo_invalid_psbt_input() {
|
||||||
@ -1463,7 +1437,7 @@ fn test_bump_fee_reduce_change() {
|
|||||||
.enable_rbf();
|
.enable_rbf();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let original_sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let original_sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let original_fee = psbt.fee_amount();
|
let original_fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
let tx = psbt.extract_tx();
|
let tx = psbt.extract_tx();
|
||||||
let txid = tx.txid();
|
let txid = tx.txid();
|
||||||
@ -1475,7 +1449,7 @@ fn test_bump_fee_reduce_change() {
|
|||||||
builder.fee_rate(FeeRate::from_sat_per_vb(2.5)).enable_rbf();
|
builder.fee_rate(FeeRate::from_sat_per_vb(2.5)).enable_rbf();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(sent_received.0, original_sent_received.0);
|
assert_eq!(sent_received.0, original_sent_received.0);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@ -1510,7 +1484,7 @@ fn test_bump_fee_reduce_change() {
|
|||||||
builder.enable_rbf();
|
builder.enable_rbf();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(sent_received.0, original_sent_received.0);
|
assert_eq!(sent_received.0, original_sent_received.0);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@ -1560,7 +1534,7 @@ fn test_bump_fee_reduce_single_recipient() {
|
|||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let tx = psbt.clone().extract_tx();
|
let tx = psbt.clone().extract_tx();
|
||||||
let original_sent_received = wallet.sent_and_received(&tx);
|
let original_sent_received = wallet.sent_and_received(&tx);
|
||||||
let original_fee = psbt.fee_amount();
|
let original_fee = check_fee!(wallet, psbt);
|
||||||
let txid = tx.txid();
|
let txid = tx.txid();
|
||||||
wallet
|
wallet
|
||||||
.insert_tx(tx, ConfirmationTime::Unconfirmed { last_seen: 0 })
|
.insert_tx(tx, ConfirmationTime::Unconfirmed { last_seen: 0 })
|
||||||
@ -1573,7 +1547,7 @@ fn test_bump_fee_reduce_single_recipient() {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(sent_received.0, original_sent_received.0);
|
assert_eq!(sent_received.0, original_sent_received.0);
|
||||||
assert!(fee.unwrap_or(0) > original_fee.unwrap_or(0));
|
assert!(fee.unwrap_or(0) > original_fee.unwrap_or(0));
|
||||||
@ -1597,7 +1571,7 @@ fn test_bump_fee_absolute_reduce_single_recipient() {
|
|||||||
.drain_wallet()
|
.drain_wallet()
|
||||||
.enable_rbf();
|
.enable_rbf();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let original_fee = psbt.fee_amount();
|
let original_fee = check_fee!(wallet, psbt);
|
||||||
let tx = psbt.extract_tx();
|
let tx = psbt.extract_tx();
|
||||||
let original_sent_received = wallet.sent_and_received(&tx);
|
let original_sent_received = wallet.sent_and_received(&tx);
|
||||||
let txid = tx.txid();
|
let txid = tx.txid();
|
||||||
@ -1613,7 +1587,7 @@ fn test_bump_fee_absolute_reduce_single_recipient() {
|
|||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let tx = &psbt.unsigned_tx;
|
let tx = &psbt.unsigned_tx;
|
||||||
let sent_received = wallet.sent_and_received(tx);
|
let sent_received = wallet.sent_and_received(tx);
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(sent_received.0, original_sent_received.0);
|
assert_eq!(sent_received.0, original_sent_received.0);
|
||||||
assert!(fee.unwrap_or(0) > original_fee.unwrap_or(0));
|
assert!(fee.unwrap_or(0) > original_fee.unwrap_or(0));
|
||||||
@ -1784,7 +1758,7 @@ fn test_bump_fee_add_input() {
|
|||||||
builder.fee_rate(FeeRate::from_sat_per_vb(50.0));
|
builder.fee_rate(FeeRate::from_sat_per_vb(50.0));
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
assert_eq!(sent_received.0, original_details.0 + 25_000);
|
assert_eq!(sent_received.0, original_details.0 + 25_000);
|
||||||
assert_eq!(fee.unwrap_or(0) + sent_received.1, 30_000);
|
assert_eq!(fee.unwrap_or(0) + sent_received.1, 30_000);
|
||||||
|
|
||||||
@ -1834,7 +1808,7 @@ fn test_bump_fee_absolute_add_input() {
|
|||||||
builder.fee_absolute(6_000);
|
builder.fee_absolute(6_000);
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(sent_received.0, original_sent_received.0 + 25_000);
|
assert_eq!(sent_received.0, original_sent_received.0 + 25_000);
|
||||||
assert_eq!(fee.unwrap_or(0) + sent_received.1, 30_000);
|
assert_eq!(fee.unwrap_or(0) + sent_received.1, 30_000);
|
||||||
@ -1880,7 +1854,7 @@ fn test_bump_fee_no_change_add_input_and_change() {
|
|||||||
.enable_rbf();
|
.enable_rbf();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let original_sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let original_sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let original_fee = psbt.fee_amount();
|
let original_fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
let tx = psbt.extract_tx();
|
let tx = psbt.extract_tx();
|
||||||
let txid = tx.txid();
|
let txid = tx.txid();
|
||||||
@ -1894,7 +1868,7 @@ fn test_bump_fee_no_change_add_input_and_change() {
|
|||||||
builder.fee_rate(FeeRate::from_sat_per_vb(50.0));
|
builder.fee_rate(FeeRate::from_sat_per_vb(50.0));
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
let original_send_all_amount = original_sent_received.0 - original_fee.unwrap_or(0);
|
let original_send_all_amount = original_sent_received.0 - original_fee.unwrap_or(0);
|
||||||
assert_eq!(sent_received.0, original_sent_received.0 + 50_000);
|
assert_eq!(sent_received.0, original_sent_received.0 + 50_000);
|
||||||
@ -1939,7 +1913,7 @@ fn test_bump_fee_add_input_change_dust() {
|
|||||||
.enable_rbf();
|
.enable_rbf();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let original_sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let original_sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let original_fee = psbt.fee_amount();
|
let original_fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
let mut tx = psbt.extract_tx();
|
let mut tx = psbt.extract_tx();
|
||||||
for txin in &mut tx.input {
|
for txin in &mut tx.input {
|
||||||
@ -1971,7 +1945,7 @@ fn test_bump_fee_add_input_change_dust() {
|
|||||||
builder.fee_rate(FeeRate::from_wu(fee_abs, new_tx_weight));
|
builder.fee_rate(FeeRate::from_wu(fee_abs, new_tx_weight));
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(original_sent_received.1, 5_000 - original_fee.unwrap_or(0));
|
assert_eq!(original_sent_received.1, 5_000 - original_fee.unwrap_or(0));
|
||||||
|
|
||||||
@ -2025,7 +1999,7 @@ fn test_bump_fee_force_add_input() {
|
|||||||
.fee_rate(FeeRate::from_sat_per_vb(5.0));
|
.fee_rate(FeeRate::from_sat_per_vb(5.0));
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(sent_received.0, original_sent_received.0 + 25_000);
|
assert_eq!(sent_received.0, original_sent_received.0 + 25_000);
|
||||||
assert_eq!(fee.unwrap_or(0) + sent_received.1, 30_000);
|
assert_eq!(fee.unwrap_or(0) + sent_received.1, 30_000);
|
||||||
@ -2083,7 +2057,7 @@ fn test_bump_fee_absolute_force_add_input() {
|
|||||||
builder.add_utxo(incoming_op).unwrap().fee_absolute(250);
|
builder.add_utxo(incoming_op).unwrap().fee_absolute(250);
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(sent_received.0, original_sent_received.0 + 25_000);
|
assert_eq!(sent_received.0, original_sent_received.0 + 25_000);
|
||||||
assert_eq!(fee.unwrap_or(0) + sent_received.1, 30_000);
|
assert_eq!(fee.unwrap_or(0) + sent_received.1, 30_000);
|
||||||
@ -2212,7 +2186,7 @@ fn test_fee_amount_negative_drain_val() {
|
|||||||
.enable_rbf()
|
.enable_rbf()
|
||||||
.fee_rate(fee_rate);
|
.fee_rate(fee_rate);
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
assert_eq!(psbt.inputs.len(), 1);
|
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(0), fee_rate, @add_signature);
|
||||||
@ -2951,7 +2925,8 @@ fn test_taproot_foreign_utxo() {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
let psbt = builder.finish().unwrap();
|
let psbt = builder.finish().unwrap();
|
||||||
let sent_received = wallet1.sent_and_received(&psbt.clone().extract_tx());
|
let sent_received = wallet1.sent_and_received(&psbt.clone().extract_tx());
|
||||||
let fee = psbt.fee_amount();
|
wallet1.insert_txout(utxo.outpoint, utxo.txout);
|
||||||
|
let fee = check_fee!(wallet1, psbt);
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
sent_received.0 - sent_received.1,
|
sent_received.0 - sent_received.1,
|
||||||
@ -3403,7 +3378,7 @@ fn test_fee_rate_sign_no_grinding_high_r() {
|
|||||||
.fee_rate(fee_rate)
|
.fee_rate(fee_rate)
|
||||||
.add_data(&data);
|
.add_data(&data);
|
||||||
let mut psbt = builder.finish().unwrap();
|
let mut psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
let (op_return_vout, _) = psbt
|
let (op_return_vout, _) = psbt
|
||||||
.unsigned_tx
|
.unsigned_tx
|
||||||
.output
|
.output
|
||||||
@ -3467,7 +3442,7 @@ fn test_fee_rate_sign_grinding_low_r() {
|
|||||||
.drain_wallet()
|
.drain_wallet()
|
||||||
.fee_rate(fee_rate);
|
.fee_rate(fee_rate);
|
||||||
let mut psbt = builder.finish().unwrap();
|
let mut psbt = builder.finish().unwrap();
|
||||||
let fee = psbt.fee_amount();
|
let fee = check_fee!(wallet, psbt);
|
||||||
|
|
||||||
wallet
|
wallet
|
||||||
.sign(
|
.sign(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user