diff --git a/bin/sealerwatch.pl b/bin/sealerwatch.pl index c3c77eafaa17d768a223eb5d29b0fa8b7e5670ab..12d11ebccfb97e010cab2ed4769183964d52ac44 100755 --- a/bin/sealerwatch.pl +++ b/bin/sealerwatch.pl @@ -329,13 +329,18 @@ chdir "$ENV{BFAHOME}" or die $!; my $number = shift || 'latest'; my $tools = tools->new; my %cache; -my $lastblock; +my $latestvalidblock; my %signers; +# If we started with 'latest' then subtract 100, +# so we get an updated list of recent signers faster. +my $subtract = $number eq 'latest' ? 100 : 0; $libbfa = libbfa->new(); my $block = block->new( $libbfa )->get( $number ); die if not defined $block; $number = $block->number; +my $run_to = $number; +$number -= $subtract; print ansi::CUP().ansi::ED(); sub determine_colour @@ -409,14 +414,12 @@ sub presentation_top while ( defined $block || sleep 1 ) { my $parent = undef; - $block = block->new( $libbfa )->get( $number ); - if ( not defined $block ) - { - presentation_top( $lastblock ); - next; - } + my $prospect = block->new( $libbfa )->get( $number ); + $block = $prospect + if defined $prospect; presentation_top( $block ); - $lastblock = $block; + next + if not defined $prospect; $cache{$number}{'block'} = $block; $number = $block->number; if ( exists $cache{ $number - 1 }{'block'} ) @@ -488,5 +491,6 @@ while ( defined $block || sleep 1 ) print ansi::ED(0), ansi::CUP($maxy, 1); # $number = $block->number + 1; - select( undef, undef,undef, 0.2 ); + select( undef, undef,undef, 0.1 ) + if $number >= $run_to; }