@@ -13,7 +13,7 @@ use bdk_wallet::test_utils::*;
13
13
use bdk_wallet:: { KeychainKind :: * , Update , Wallet } ;
14
14
use bitcoin:: FeeRate ;
15
15
use bitcoin:: {
16
- consensus,
16
+ bip32 , consensus,
17
17
secp256k1:: { self , rand} ,
18
18
Address , Amount , OutPoint , TxIn , TxOut ,
19
19
} ;
@@ -33,12 +33,8 @@ fn main() -> anyhow::Result<()> {
33
33
let secp = secp256k1:: Secp256k1 :: new ( ) ;
34
34
let mut rng = rand:: thread_rng ( ) ;
35
35
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" ) ?;
42
38
43
39
// Create wallet and fund it.
44
40
let mut wallet = Wallet :: create ( desc, change_desc)
@@ -64,7 +60,7 @@ fn main() -> anyhow::Result<()> {
64
60
// Create PSBT (which also returns the Finalizer).
65
61
let ( mut psbt, finalizer) = wallet. create_psbt ( params, & mut rng) ?;
66
62
67
- // dbg!(&psbt);
63
+ dbg ! ( & psbt) ;
68
64
69
65
let tx = & psbt. unsigned_tx ;
70
66
for txin in & tx. input {
@@ -76,8 +72,7 @@ fn main() -> anyhow::Result<()> {
76
72
println ! ( "TxOut: {}" , txout. value) ;
77
73
}
78
74
79
- let signer = bdk_tx:: Signer ( keymap) ;
80
- let sign_res = psbt. sign ( & signer, & secp) ;
75
+ let sign_res = psbt. sign ( & xprv, & secp) ;
81
76
println ! ( "Signed: {}" , sign_res. is_ok( ) ) ;
82
77
83
78
let finalize_res = finalizer. finalize ( & mut psbt) ;
@@ -88,7 +83,7 @@ fn main() -> anyhow::Result<()> {
88
83
let feerate = wallet. calculate_fee_rate ( & tx) ?;
89
84
println ! ( "Feerate: {} sat/vb" , bdk_wallet:: floating_rate!( feerate) ) ;
90
85
91
- // println!("{}", consensus::encode::serialize_hex(&tx));
86
+ println ! ( "{}" , consensus:: encode:: serialize_hex( & tx) ) ;
92
87
93
88
Ok ( ( ) )
94
89
}
0 commit comments