Skip to content

Commit 515309e

Browse files
committed
test(wallet): test build_fee_bump with single descriptor wallet
1 parent 53d16e1 commit 515309e

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

crates/wallet/src/wallet/tx_builder.rs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,4 +1052,50 @@ mod test {
10521052
assert_eq!(filtered.len(), 1);
10531053
assert_eq!(filtered[0].keychain, KeychainKind::Internal);
10541054
}
1055+
1056+
#[test]
1057+
fn test_build_fee_bump_remove_change_output_single_desc() {
1058+
use crate::test_utils::*;
1059+
use bdk_chain::BlockId;
1060+
use bitcoin::{hashes::Hash, BlockHash, Network};
1061+
1062+
let mut wallet = Wallet::create_single(get_test_tr_single_sig())
1063+
.network(Network::Regtest)
1064+
.create_wallet_no_persist()
1065+
.unwrap();
1066+
1067+
insert_checkpoint(
1068+
&mut wallet,
1069+
BlockId {
1070+
height: 1,
1071+
hash: BlockHash::all_zeros(),
1072+
},
1073+
);
1074+
1075+
receive_output_in_latest_block(&mut wallet, Amount::ONE_BTC.to_sat());
1076+
1077+
// tx1 sending 15k sat to a recipient
1078+
let recip = ScriptBuf::from_hex(
1079+
"5120e8f5c4dc2f5d6a7595e7b108cb063da9c7550312da1e22875d78b9db62b59cd5",
1080+
)
1081+
.unwrap();
1082+
let mut builder = wallet.build_tx();
1083+
builder.add_recipient(recip.clone(), Amount::from_sat(15_000));
1084+
builder.fee_absolute(Amount::from_sat(1_000));
1085+
let psbt = builder.finish().unwrap();
1086+
1087+
let tx = psbt.extract_tx().unwrap();
1088+
let txid = tx.compute_txid();
1089+
let feerate = wallet.calculate_fee_rate(&tx).unwrap().to_sat_per_kwu();
1090+
insert_tx(&mut wallet, tx);
1091+
1092+
// build fee bump
1093+
let mut builder = wallet.build_fee_bump(txid).unwrap();
1094+
assert_eq!(
1095+
builder.params.recipients,
1096+
vec![(recip, Amount::from_sat(15_000))]
1097+
);
1098+
builder.fee_rate(FeeRate::from_sat_per_kwu(feerate + 250));
1099+
let _ = builder.finish().unwrap();
1100+
}
10551101
}

0 commit comments

Comments
 (0)