11use bdk_esplora:: EsploraExt ;
2+ use electrsd:: bitcoind:: anyhow;
23use electrsd:: bitcoind:: bitcoincore_rpc:: RpcApi ;
3- use electrsd:: bitcoind:: { self , anyhow, BitcoinD } ;
4- use electrsd:: { Conf , ElectrsD } ;
5- use esplora_client:: { self , BlockingClient , Builder } ;
4+ use esplora_client:: { self , Builder } ;
65use std:: str:: FromStr ;
76use std:: thread:: sleep;
87use std:: time:: Duration ;
98
10- use bdk_chain:: bitcoin:: { Address , Amount , BlockHash , Txid } ;
11-
12- struct TestEnv {
13- bitcoind : BitcoinD ,
14- #[ allow( dead_code) ]
15- electrsd : ElectrsD ,
16- client : BlockingClient ,
17- }
18-
19- impl TestEnv {
20- fn new ( ) -> Result < Self , anyhow:: Error > {
21- let bitcoind_exe =
22- bitcoind:: downloaded_exe_path ( ) . expect ( "bitcoind version feature must be enabled" ) ;
23- let bitcoind = BitcoinD :: new ( bitcoind_exe) . unwrap ( ) ;
24-
25- let mut electrs_conf = Conf :: default ( ) ;
26- electrs_conf. http_enabled = true ;
27- let electrs_exe =
28- electrsd:: downloaded_exe_path ( ) . expect ( "electrs version feature must be enabled" ) ;
29- let electrsd = ElectrsD :: with_conf ( electrs_exe, & bitcoind, & electrs_conf) ?;
30-
31- let base_url = format ! ( "http://{}" , & electrsd. esplora_url. clone( ) . unwrap( ) ) ;
32- let client = Builder :: new ( base_url. as_str ( ) ) . build_blocking ( ) ?;
33-
34- Ok ( Self {
35- bitcoind,
36- electrsd,
37- client,
38- } )
39- }
40-
41- fn mine_blocks (
42- & self ,
43- count : usize ,
44- address : Option < Address > ,
45- ) -> anyhow:: Result < Vec < BlockHash > > {
46- let coinbase_address = match address {
47- Some ( address) => address,
48- None => self
49- . bitcoind
50- . client
51- . get_new_address ( None , None ) ?
52- . assume_checked ( ) ,
53- } ;
54- let block_hashes = self
55- . bitcoind
56- . client
57- . generate_to_address ( count as _ , & coinbase_address) ?;
58- Ok ( block_hashes)
59- }
60- }
9+ use bdk_chain:: bitcoin:: { Address , Amount , Txid } ;
10+ use testenv:: TestEnv ;
6111
6212#[ test]
6313pub fn test_update_tx_graph_without_keychain ( ) -> anyhow:: Result < ( ) > {
6414 let env = TestEnv :: new ( ) ?;
15+ let base_url = format ! ( "http://{}" , & env. electrsd. esplora_url. clone( ) . unwrap( ) ) ;
16+ let client = Builder :: new ( base_url. as_str ( ) ) . build_blocking ( ) ?;
17+
6518 let receive_address0 =
6619 Address :: from_str ( "bcrt1qc6fweuf4xjvz4x3gx3t9e0fh4hvqyu2qw4wvxm" ) ?. assume_checked ( ) ;
6720 let receive_address1 =
@@ -72,7 +25,7 @@ pub fn test_update_tx_graph_without_keychain() -> anyhow::Result<()> {
7225 receive_address1. script_pubkey ( ) ,
7326 ] ;
7427
75- let _block_hashes = env. mine_blocks ( 101 , None ) ?;
28+ let _block_hashes = env. mine_blocks ( 101 , None , & env . bitcoind ) ?;
7629 let txid1 = env. bitcoind . client . send_to_address (
7730 & receive_address1,
7831 Amount :: from_sat ( 10000 ) ,
@@ -93,12 +46,12 @@ pub fn test_update_tx_graph_without_keychain() -> anyhow::Result<()> {
9346 Some ( 1 ) ,
9447 None ,
9548 ) ?;
96- let _block_hashes = env. mine_blocks ( 1 , None ) ?;
97- while env . client . get_height ( ) . unwrap ( ) < 102 {
49+ let _block_hashes = env. mine_blocks ( 1 , None , & env . bitcoind ) ?;
50+ while client. get_height ( ) . unwrap ( ) < 102 {
9851 sleep ( Duration :: from_millis ( 10 ) )
9952 }
10053
101- let graph_update = env . client . scan_txs (
54+ let graph_update = client. scan_txs (
10255 misc_spks. into_iter ( ) ,
10356 vec ! [ ] . into_iter ( ) ,
10457 vec ! [ ] . into_iter ( ) ,
0 commit comments