@@ -124,7 +124,15 @@ use bdk::bitcoin::secp256k1::Secp256k1;
124
124
use bdk:: bitcoin:: util:: bip32:: { DerivationPath , ExtendedPrivKey , KeySource } ;
125
125
use bdk:: bitcoin:: util:: psbt:: PartiallySignedTransaction ;
126
126
use bdk:: bitcoin:: { Address , Network , OutPoint , Script , Txid } ;
127
- #[ cfg( feature = "reserves" ) ]
127
+ #[ cfg( all(
128
+ feature = "reserves" ,
129
+ any(
130
+ feature = "electrum" ,
131
+ feature = "esplora" ,
132
+ feature = "compact_filters" ,
133
+ feature = "rpc"
134
+ )
135
+ ) ) ]
128
136
use bdk:: blockchain:: Capability ;
129
137
#[ cfg( any(
130
138
feature = "electrum" ,
@@ -1136,12 +1144,11 @@ where
1136
1144
} => {
1137
1145
let psbt = base64:: decode ( & psbt) . unwrap ( ) ;
1138
1146
let psbt: PartiallySignedTransaction = deserialize ( & psbt) . unwrap ( ) ;
1139
- let current_height = wallet . client ( ) . get_height ( ) ?;
1147
+ let current_height = blockchain . get_height ( ) ?;
1140
1148
let max_confirmation_height = if confirmations == 0 {
1141
1149
None
1142
1150
} else {
1143
- if !wallet
1144
- . client ( )
1151
+ if !blockchain
1145
1152
. get_capabilities ( )
1146
1153
. contains ( & Capability :: GetAnyTx )
1147
1154
{
@@ -1421,14 +1428,14 @@ mod test {
1421
1428
use bdk:: miniscript:: bitcoin:: network:: constants:: Network :: Testnet ;
1422
1429
#[ cfg( all( feature = "reserves" , feature = "electrum" ) ) ]
1423
1430
use bdk:: {
1424
- blockchain:: { noop_progress, ElectrumBlockchain } ,
1425
- database:: MemoryDatabase ,
1426
- electrum_client:: Client ,
1427
- Wallet ,
1431
+ blockchain:: ElectrumBlockchain , database:: MemoryDatabase , electrum_client:: Client , Wallet ,
1428
1432
} ;
1429
1433
use std:: str:: { self , FromStr } ;
1430
1434
use structopt:: StructOpt ;
1431
1435
1436
+ #[ cfg( all( feature = "reserves" , feature = "electrum" , ) ) ]
1437
+ use crate :: bdk:: SyncOptions ;
1438
+
1432
1439
#[ test]
1433
1440
fn test_parse_wallet_get_new_address ( ) {
1434
1441
let cli_args = vec ! [ "bdk-cli" , "--network" , "bitcoin" , "wallet" ,
@@ -2279,16 +2286,16 @@ mod test {
2279
2286
let message = "Those coins belong to Satoshi Nakamoto" ;
2280
2287
2281
2288
let client = Client :: new ( "ssl://electrum.blockstream.info:60002" ) . unwrap ( ) ;
2289
+ let blockchain = ElectrumBlockchain :: from ( client) ;
2282
2290
let wallet = Wallet :: new (
2283
2291
& descriptor,
2284
2292
None ,
2285
2293
Network :: Testnet ,
2286
2294
MemoryDatabase :: default ( ) ,
2287
- ElectrumBlockchain :: from ( client) ,
2288
2295
)
2289
2296
. unwrap ( ) ;
2290
2297
2291
- wallet. sync ( noop_progress ( ) , None ) . unwrap ( ) ;
2298
+ wallet. sync ( & blockchain , SyncOptions :: default ( ) ) . unwrap ( ) ;
2292
2299
let balance = wallet. get_balance ( ) . unwrap ( ) ;
2293
2300
2294
2301
let addr = wallet. get_address ( bdk:: wallet:: AddressIndex :: New ) . unwrap ( ) ;
@@ -2317,7 +2324,7 @@ mod test {
2317
2324
} => online_subcommand,
2318
2325
_ => panic ! ( "unexpected subcommand" ) ,
2319
2326
} ;
2320
- let result = handle_online_wallet_subcommand ( & wallet, wallet_subcmd) . unwrap ( ) ;
2327
+ let result = handle_online_wallet_subcommand ( & wallet, & blockchain , wallet_subcmd) . unwrap ( ) ;
2321
2328
let psbt: PartiallySignedTransaction =
2322
2329
serde_json:: from_str ( & result. as_object ( ) . unwrap ( ) . get ( "psbt" ) . unwrap ( ) . to_string ( ) )
2323
2330
. unwrap ( ) ;
@@ -2355,7 +2362,7 @@ mod test {
2355
2362
} => online_subcommand,
2356
2363
_ => panic ! ( "unexpected subcommand" ) ,
2357
2364
} ;
2358
- let result = handle_online_wallet_subcommand ( & wallet, wallet_subcmd) . unwrap ( ) ;
2365
+ let result = handle_online_wallet_subcommand ( & wallet, & blockchain , wallet_subcmd) . unwrap ( ) ;
2359
2366
let spendable = result
2360
2367
. as_object ( )
2361
2368
. unwrap ( )
0 commit comments