@@ -172,11 +172,11 @@ fn main() -> anyhow::Result<()> {
172172 let mut once = BTreeSet :: new ( ) ;
173173 move |k, spk_i, _| {
174174 if once. insert ( k) {
175- eprint ! ( "\n Scanning {}: " , k) ;
175+ eprint ! ( "\n Scanning {}: {} " , k, spk_i ) ;
176176 } else {
177177 eprint ! ( "{} " , spk_i) ;
178178 }
179- let _ = io:: stdout ( ) . flush ( ) ;
179+ io:: stdout ( ) . flush ( ) . expect ( "must flush" ) ;
180180 }
181181 } )
182182 } ;
@@ -221,7 +221,7 @@ fn main() -> anyhow::Result<()> {
221221 . map ( |( k, i, spk) | ( k. to_owned ( ) , i, spk. to_owned ( ) ) )
222222 . collect :: < Vec < _ > > ( ) ;
223223 request = request. chain_spks ( all_spks. into_iter ( ) . map ( |( k, spk_i, spk) | {
224- eprintln ! ( "scanning {}: {}" , k, spk_i) ;
224+ eprint ! ( "Scanning {}: {}" , k, spk_i) ;
225225 spk
226226 } ) ) ;
227227 }
@@ -233,7 +233,7 @@ fn main() -> anyhow::Result<()> {
233233 . collect :: < Vec < _ > > ( ) ;
234234 request =
235235 request. chain_spks ( unused_spks. into_iter ( ) . map ( move |( k, spk_i, spk) | {
236- eprintln ! (
236+ eprint ! (
237237 "Checking if address {} {}:{} has been used" ,
238238 Address :: from_script( & spk, args. network) . unwrap( ) ,
239239 k,
@@ -252,7 +252,7 @@ fn main() -> anyhow::Result<()> {
252252 . map ( |( _, utxo) | utxo)
253253 . collect :: < Vec < _ > > ( ) ;
254254 request = request. chain_outpoints ( utxos. into_iter ( ) . map ( |utxo| {
255- eprintln ! (
255+ eprint ! (
256256 "Checking if outpoint {} (value: {}) has been spent" ,
257257 utxo. outpoint, utxo. txout. value
258258 ) ;
@@ -271,10 +271,36 @@ fn main() -> anyhow::Result<()> {
271271 request = request. chain_txids (
272272 unconfirmed_txids
273273 . into_iter ( )
274- . inspect ( |txid| eprintln ! ( "Checking if {} is confirmed yet" , txid) ) ,
274+ . inspect ( |txid| eprint ! ( "Checking if {} is confirmed yet" , txid) ) ,
275275 ) ;
276276 }
277277
278+ let total_spks = request. spks . len ( ) ;
279+ let total_txids = request. txids . len ( ) ;
280+ let total_ops = request. outpoints . len ( ) ;
281+ request = request
282+ . inspect_spks ( {
283+ let mut visited = 0 ;
284+ move |_| {
285+ visited += 1 ;
286+ eprintln ! ( " [ {:>6.2}% ]" , ( visited * 100 ) as f32 / total_spks as f32 )
287+ }
288+ } )
289+ . inspect_txids ( {
290+ let mut visited = 0 ;
291+ move |_| {
292+ visited += 1 ;
293+ eprintln ! ( " [ {:>6.2}% ]" , ( visited * 100 ) as f32 / total_txids as f32 )
294+ }
295+ } )
296+ . inspect_outpoints ( {
297+ let mut visited = 0 ;
298+ move |_| {
299+ visited += 1 ;
300+ eprintln ! ( " [ {:>6.2}% ]" , ( visited * 100 ) as f32 / total_ops as f32 )
301+ }
302+ } ) ;
303+
278304 let res = client
279305 . sync ( request, scan_options. batch_size )
280306 . context ( "scanning the blockchain" ) ?;
0 commit comments