@@ -180,11 +180,11 @@ fn main() -> anyhow::Result<()> {
180180 let mut once = BTreeSet :: new ( ) ;
181181 move |k, spk_i, _| {
182182 if once. insert ( k) {
183- eprint ! ( "\n Scanning {}: " , k) ;
183+ eprint ! ( "\n Scanning {}: {} " , k, spk_i ) ;
184184 } else {
185185 eprint ! ( "{} " , spk_i) ;
186186 }
187- let _ = io:: stdout ( ) . flush ( ) ;
187+ io:: stdout ( ) . flush ( ) . expect ( "must flush" ) ;
188188 }
189189 } )
190190 } ;
@@ -229,7 +229,7 @@ fn main() -> anyhow::Result<()> {
229229 . map ( |( k, i, spk) | ( k. to_owned ( ) , i, spk. to_owned ( ) ) )
230230 . collect :: < Vec < _ > > ( ) ;
231231 request = request. chain_spks ( all_spks. into_iter ( ) . map ( |( k, spk_i, spk) | {
232- eprintln ! ( "scanning {}: {}" , k, spk_i) ;
232+ eprint ! ( "Scanning {}: {}" , k, spk_i) ;
233233 spk
234234 } ) ) ;
235235 }
@@ -241,7 +241,7 @@ fn main() -> anyhow::Result<()> {
241241 . collect :: < Vec < _ > > ( ) ;
242242 request =
243243 request. chain_spks ( unused_spks. into_iter ( ) . map ( move |( k, spk_i, spk) | {
244- eprintln ! (
244+ eprint ! (
245245 "Checking if address {} {}:{} has been used" ,
246246 Address :: from_script( & spk, args. network) . unwrap( ) ,
247247 k,
@@ -260,7 +260,7 @@ fn main() -> anyhow::Result<()> {
260260 . map ( |( _, utxo) | utxo)
261261 . collect :: < Vec < _ > > ( ) ;
262262 request = request. chain_outpoints ( utxos. into_iter ( ) . map ( |utxo| {
263- eprintln ! (
263+ eprint ! (
264264 "Checking if outpoint {} (value: {}) has been spent" ,
265265 utxo. outpoint, utxo. txout. value
266266 ) ;
@@ -279,10 +279,36 @@ fn main() -> anyhow::Result<()> {
279279 request = request. chain_txids (
280280 unconfirmed_txids
281281 . into_iter ( )
282- . inspect ( |txid| eprintln ! ( "Checking if {} is confirmed yet" , txid) ) ,
282+ . inspect ( |txid| eprint ! ( "Checking if {} is confirmed yet" , txid) ) ,
283283 ) ;
284284 }
285285
286+ let total_spks = request. spks . len ( ) ;
287+ let total_txids = request. txids . len ( ) ;
288+ let total_ops = request. outpoints . len ( ) ;
289+ request = request
290+ . inspect_spks ( {
291+ let mut visited = 0 ;
292+ move |_| {
293+ visited += 1 ;
294+ eprintln ! ( " [ {:>6.2}% ]" , ( visited * 100 ) as f32 / total_spks as f32 )
295+ }
296+ } )
297+ . inspect_txids ( {
298+ let mut visited = 0 ;
299+ move |_| {
300+ visited += 1 ;
301+ eprintln ! ( " [ {:>6.2}% ]" , ( visited * 100 ) as f32 / total_txids as f32 )
302+ }
303+ } )
304+ . inspect_outpoints ( {
305+ let mut visited = 0 ;
306+ move |_| {
307+ visited += 1 ;
308+ eprintln ! ( " [ {:>6.2}% ]" , ( visited * 100 ) as f32 / total_ops as f32 )
309+ }
310+ } ) ;
311+
286312 let res = client
287313 . sync ( request, scan_options. batch_size )
288314 . context ( "scanning the blockchain" ) ?;
0 commit comments