@@ -320,26 +320,30 @@ function once(func) {
320
320
return wrapped
321
321
}
322
322
323
+ function getStakedEthTVL ( { withdrawalAddress, withdrawalAddresses, skipValidators = 0 , size = 200 , sleepTime = 10000 } ) {
324
+ return async ( api ) => {
325
+ const addresses = withdrawalAddresses ?? [ withdrawalAddress ] ;
326
+
327
+ for ( const addr of addresses ) {
328
+ let fetchedValidators = skipValidators ;
329
+
330
+ api . sumTokens ( { owner : addr , tokens : [ nullAddress ] } ) ;
331
+
332
+ do {
333
+ const validators = (
334
+ await http . get (
335
+ `https://beaconcha.in/api/v1/validator/withdrawalCredentials/${ addr } ?limit=${ size } &offset=${ fetchedValidators } `
336
+ )
337
+ ) . data . map ( ( i ) => i . publickey ) ;
338
+
339
+ fetchedValidators += validators . length ;
340
+ api . log ( `Fetching balances for validators (${ addr } )` , validators . length ) ;
341
+ await addValidatorBalance ( validators ) ;
342
+ if ( sleepTime > 0 ) await sleep ( sleepTime ) ;
343
+ } while ( fetchedValidators % size === 0 ) ;
344
+ }
323
345
324
- function getStakedEthTVL ( { withdrawalAddress, skipValidators = 0 } ) {
325
- return async ( api ) => {
326
- let fetchedValidators = skipValidators ;
327
- let size = 200 ;
328
- api . sumTokens ( { owner : withdrawalAddress , tokens : [ nullAddress ] } )
329
- do {
330
- const validators = (
331
- await http . get (
332
- `https://beaconcha.in/api/v1/validator/withdrawalCredentials/${ withdrawalAddress } ?limit=${ size } &offset=${ fetchedValidators } `
333
- )
334
- ) . data . map ( ( i ) => i . publickey ) ;
335
- fetchedValidators += validators . length ;
336
- api . log ( "Fetching balances for validators" , validators . length ) ;
337
- await addValidatorBalance ( validators ) ;
338
- await sleep ( 10000 ) ;
339
- } while ( fetchedValidators % size === 0 ) ;
340
-
341
- return api . getBalances ( )
342
-
346
+ return api . getBalances ( ) ;
343
347
344
348
async function addValidatorBalance ( validators ) {
345
349
if ( validators . length > 100 ) {
@@ -352,10 +356,9 @@ function getStakedEthTVL({ withdrawalAddress, skipValidators = 0 }) {
352
356
indicesOrPubkey : validators . join ( "," ) ,
353
357
} ) ;
354
358
355
-
356
359
data . forEach ( ( i ) => api . addGasToken ( i . balance * 1e9 ) ) ;
357
360
}
358
- }
361
+ } ;
359
362
}
360
363
361
364
0 commit comments