Skip to content

Commit 77e1d20

Browse files
committed
example: Change psbt example to sign using bip32::Xpriv
1 parent 51d2e66 commit 77e1d20

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

wallet/examples/psbt.rs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use bdk_wallet::test_utils::*;
1313
use bdk_wallet::{KeychainKind::*, Update, Wallet};
1414
use bitcoin::FeeRate;
1515
use bitcoin::{
16-
consensus,
16+
bip32, consensus,
1717
secp256k1::{self, rand},
1818
Address, Amount, OutPoint, TxIn, TxOut,
1919
};
@@ -33,12 +33,8 @@ fn main() -> anyhow::Result<()> {
3333
let secp = secp256k1::Secp256k1::new();
3434
let mut rng = rand::thread_rng();
3535

36-
// Assuming these are private descriptors, parse the KeyMap now which will come
37-
// in handy when it comes to signing the PSBT.
38-
let keymap: KeyMap = [desc.to_string(), change_desc.to_string()]
39-
.iter()
40-
.flat_map(|s| Descriptor::parse_descriptor(&secp, s).unwrap().1)
41-
.collect();
36+
// Xpriv to be used for signing the PSBT
37+
let xprv = bip32::Xpriv::from_str("tprv8ZgxMBicQKsPdy6LMhUtFHAgpocR8GC6QmwMSFpZs7h6Eziw3SpThFfczTDh5rW2krkqffa11UpX3XkeTTB2FvzZKWXqPY54Y6Rq4AQ5R8L")?;
4238

4339
// Create wallet and fund it.
4440
let mut wallet = Wallet::create(desc, change_desc)
@@ -64,7 +60,7 @@ fn main() -> anyhow::Result<()> {
6460
// Create PSBT (which also returns the Finalizer).
6561
let (mut psbt, finalizer) = wallet.create_psbt(params, &mut rng)?;
6662

67-
// dbg!(&psbt);
63+
dbg!(&psbt);
6864

6965
let tx = &psbt.unsigned_tx;
7066
for txin in &tx.input {
@@ -76,8 +72,7 @@ fn main() -> anyhow::Result<()> {
7672
println!("TxOut: {}", txout.value);
7773
}
7874

79-
let signer = bdk_tx::Signer(keymap);
80-
let sign_res = psbt.sign(&signer, &secp);
75+
let sign_res = psbt.sign(&xprv, &secp);
8176
println!("Signed: {}", sign_res.is_ok());
8277

8378
let finalize_res = finalizer.finalize(&mut psbt);
@@ -88,7 +83,7 @@ fn main() -> anyhow::Result<()> {
8883
let feerate = wallet.calculate_fee_rate(&tx)?;
8984
println!("Feerate: {} sat/vb", bdk_wallet::floating_rate!(feerate));
9085

91-
// println!("{}", consensus::encode::serialize_hex(&tx));
86+
println!("{}", consensus::encode::serialize_hex(&tx));
9287

9388
Ok(())
9489
}

0 commit comments

Comments
 (0)