Skip to content

Commit

Permalink
test(wallet): Add SignOptions test for remove_taproot_extras
Browse files Browse the repository at this point in the history
that checks various fields have been cleared for taproot
Psbt `Input`s and `Output`s according to BIP371.
  • Loading branch information
ValuedMammal committed Feb 4, 2024
1 parent 6226128 commit 188ba36
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions crates/bdk/tests/wallet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2813,6 +2813,33 @@ fn test_get_address_no_reuse_single_descriptor() {
});
}

#[test]
fn test_taproot_remove_tapfields_after_finalize_sign_option() {
let (mut wallet, _) = get_funded_wallet(get_test_tr_with_taptree());

let addr = wallet.get_address(New);
let mut builder = wallet.build_tx();
builder.drain_to(addr.script_pubkey()).drain_wallet();
let mut psbt = builder.finish().unwrap();
let finalized = wallet.sign(&mut psbt, SignOptions::default()).unwrap();
assert!(finalized);

// removes tap_* and bip32_derivation from inputs
for input in &psbt.inputs {
assert!(input.bip32_derivation.is_empty());
assert!(input.tap_key_sig.is_none());
assert!(input.tap_script_sigs.is_empty());
assert!(input.tap_scripts.is_empty());
assert!(input.tap_key_origins.is_empty());
assert!(input.tap_internal_key.is_none());
assert!(input.tap_merkle_root.is_none());
}
// removes bip32_derivation from outputs
for output in &psbt.outputs {
assert!(output.bip32_derivation.is_empty());
}
}

#[test]
fn test_taproot_psbt_populate_tap_key_origins() {
let (mut wallet, _) = get_funded_wallet(get_test_tr_single_sig_xprv());
Expand Down

0 comments on commit 188ba36

Please sign in to comment.