File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -461,6 +461,7 @@ async fn fetch_ssv_pubkeys_from_public_api(
461461
462462 let mut pubkeys: Vec < BlsPublicKey > = vec ! [ ] ;
463463 let mut page = 1 ;
464+ let mut expected_total: Option < usize > = None ;
464465
465466 loop {
466467 let route = format ! (
@@ -470,21 +471,22 @@ async fn fetch_ssv_pubkeys_from_public_api(
470471
471472 let response = request_ssv_pubkeys_from_public_api ( url, http_timeout) . await ?;
472473 let fetched = response. validators . len ( ) ;
474+ if expected_total. is_none ( ) && fetched > 0 {
475+ expected_total = Some ( response. pagination . total ) ;
476+ }
473477 pubkeys. extend (
474478 response. validators . into_iter ( ) . map ( |v| v. pubkey ) . collect :: < Vec < BlsPublicKey > > ( ) ,
475479 ) ;
476480 page += 1 ;
477481
478482 if fetched < MAX_PER_PAGE {
479- ensure ! (
480- pubkeys. len( ) == response. pagination. total,
481- "expected {} keys, got {}" ,
482- response. pagination. total,
483- pubkeys. len( )
484- ) ;
485483 break ;
486484 }
487485 }
488486
487+ if let Some ( expected) = expected_total {
488+ ensure ! ( pubkeys. len( ) == expected, "expected {expected} keys, got {}" , pubkeys. len( ) ) ;
489+ }
490+
489491 Ok ( pubkeys)
490492}
You can’t perform that action at this time.
0 commit comments