@@ -2,19 +2,25 @@ mod regtestenv;
22use bdk_electrum:: electrum_client:: { Client , ElectrumApi } ;
33use bdk_electrum:: { electrum_client, BdkElectrumClient } ;
44use bdk_reserves:: reserves:: * ;
5+ use bdk_tx:: Signer ;
56use bdk_wallet:: bitcoin:: { Amount , FeeRate , Network } ;
6- use bdk_wallet:: { KeychainKind , SignOptions , Wallet } ;
7+ use bdk_wallet:: descriptor:: Descriptor ;
8+ use bdk_wallet:: { KeychainKind , Wallet } ;
79use regtestenv:: RegTestEnv ;
10+ use secp256k1:: Secp256k1 ;
811
912#[ test]
1013fn unconfirmed ( ) -> Result < ( ) , ProofError > {
11- let mut wallet =
12- Wallet :: create_single ( "wpkh(cTTgG6x13nQjAeECaCaDrjrUdcjReZBGspcmNavsnSRyXq7zXT7r)" )
13- . network ( Network :: Regtest )
14- . create_wallet_no_persist ( ) ?;
14+ let descriptor = "wpkh(cTTgG6x13nQjAeECaCaDrjrUdcjReZBGspcmNavsnSRyXq7zXT7r)" ;
15+ let mut wallet = Wallet :: create_single ( descriptor)
16+ . network ( Network :: Regtest )
17+ . create_wallet_no_persist ( ) ?;
18+ let secp = Secp256k1 :: new ( ) ;
19+ let ( _, keymap) = Descriptor :: parse_descriptor ( & secp, descriptor) . unwrap ( ) ;
20+ let signer = Signer ( keymap. into_iter ( ) . collect ( ) ) ;
1521
1622 let regtestenv = RegTestEnv :: new ( ) ;
17- regtestenv. generate ( & mut [ & mut wallet] ) ;
23+ regtestenv. generate ( & mut [ & mut wallet] , & [ & signer ] ) ;
1824
1925 let client: BdkElectrumClient < Client > =
2026 BdkElectrumClient :: new ( electrum_client:: Client :: new ( regtestenv. electrum_url ( ) ) . unwrap ( ) ) ;
@@ -37,12 +43,7 @@ fn unconfirmed() -> Result<(), ProofError> {
3743 . add_recipient ( addr. script_pubkey ( ) , Amount :: from_sat ( 1_000 ) )
3844 . fee_rate ( FeeRate :: from_sat_per_vb ( 2 ) . unwrap ( ) ) ;
3945 let mut psbt = builder. finish ( ) . unwrap ( ) ;
40- let signopts = SignOptions {
41- trust_witness_utxo : true ,
42- ..Default :: default ( )
43- } ;
44- let finalized = wallet. sign ( & mut psbt, signopts. clone ( ) ) ?;
45- assert ! ( finalized) ;
46+ psbt. sign ( & signer, & secp) . unwrap ( ) ;
4647 client
4748 . transaction_broadcast ( & psbt. extract_tx ( ) . unwrap ( ) )
4849 . unwrap ( ) ;
@@ -53,8 +54,7 @@ fn unconfirmed() -> Result<(), ProofError> {
5354
5455 let message = "This belongs to me." ;
5556 let mut psbt = wallet. create_proof ( message) ?;
56- let finalized = wallet. sign ( & mut psbt, signopts) ?;
57- assert ! ( finalized) ;
57+ psbt. sign ( & signer, & secp) . unwrap ( ) ;
5858
5959 let spendable = wallet. verify_proof ( & psbt, message, None ) ?;
6060 dbg ! ( & new_balance) ;
@@ -71,14 +71,17 @@ fn unconfirmed() -> Result<(), ProofError> {
7171#[ test]
7272#[ should_panic( expected = "NonSpendableInput" ) ]
7373fn confirmed ( ) {
74- let mut wallet =
75- Wallet :: create_single ( "wpkh(cTTgG6x13nQjAeECaCaDrjrUdcjReZBGspcmNavsnSRyXq7zXT7r)" )
76- . network ( Network :: Regtest )
77- . create_wallet_no_persist ( )
78- . unwrap ( ) ;
74+ let descriptor = "wpkh(cTTgG6x13nQjAeECaCaDrjrUdcjReZBGspcmNavsnSRyXq7zXT7r)" ;
75+ let mut wallet = Wallet :: create_single ( descriptor)
76+ . network ( Network :: Regtest )
77+ . create_wallet_no_persist ( )
78+ . unwrap ( ) ;
79+ let secp = Secp256k1 :: new ( ) ;
80+ let ( _, keymap) = Descriptor :: parse_descriptor ( & secp, descriptor) . unwrap ( ) ;
81+ let signer = Signer ( keymap. into_iter ( ) . collect ( ) ) ;
7982
8083 let regtestenv = RegTestEnv :: new ( ) ;
81- regtestenv. generate ( & mut [ & mut wallet] ) ;
84+ regtestenv. generate ( & mut [ & mut wallet] , & [ & signer ] ) ;
8285
8386 let client: BdkElectrumClient < Client > =
8487 BdkElectrumClient :: new ( electrum_client:: Client :: new ( regtestenv. electrum_url ( ) ) . unwrap ( ) ) ;
@@ -101,12 +104,7 @@ fn confirmed() {
101104 . add_recipient ( addr. script_pubkey ( ) , Amount :: from_sat ( 1_000 ) )
102105 . fee_rate ( FeeRate :: from_sat_per_vb ( 2 ) . unwrap ( ) ) ;
103106 let mut psbt = builder. finish ( ) . unwrap ( ) ;
104- let signopts = SignOptions {
105- trust_witness_utxo : true ,
106- ..Default :: default ( )
107- } ;
108- let finalized = wallet. sign ( & mut psbt, signopts. clone ( ) ) . unwrap ( ) ;
109- assert ! ( finalized) ;
107+ psbt. sign ( & signer, & secp) . unwrap ( ) ;
110108 client
111109 . transaction_broadcast ( & psbt. extract_tx ( ) . unwrap ( ) )
112110 . unwrap ( ) ;
@@ -117,8 +115,7 @@ fn confirmed() {
117115
118116 let message = "This belongs to me." ;
119117 let mut psbt = wallet. create_proof ( message) . unwrap ( ) ;
120- let finalized = wallet. sign ( & mut psbt, signopts) . unwrap ( ) ;
121- assert ! ( finalized) ;
118+ psbt. sign ( & signer, & secp) . unwrap ( ) ;
122119
123120 const CONFIRMATIONS : usize = 2 ;
124121 let current_height = client. inner . block_headers_subscribe ( ) . unwrap ( ) . height ;
0 commit comments