@@ -13,7 +13,7 @@ use bdk_wallet::test_utils::*;
1313use bdk_wallet:: { KeychainKind :: * , Update , Wallet } ;
1414use bitcoin:: FeeRate ;
1515use 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