@@ -16,13 +16,16 @@ import { ResponseValidatorsData, Validator } from './validators.types';
16
16
import { parseGweiToWei } from '../../common/utils/parse-gwei-to-big-number' ;
17
17
import { ValidatorsCacheService } from 'storage/validators/validators-cache.service' ;
18
18
import { CronExpression } from '@nestjs/schedule' ;
19
+ import { PrometheusService } from '../../common/prometheus' ;
20
+ import { stringifyFrameBalances } from '../../common/validators/strigify-frame-balances' ;
19
21
20
22
export class ValidatorsService {
21
23
static SERVICE_LOG_NAME = 'validators' ;
22
24
23
25
constructor (
24
26
@Inject ( LOGGER_PROVIDER ) protected readonly logger : LoggerService ,
25
27
28
+ protected readonly prometheusService : PrometheusService ,
26
29
protected readonly consensusProviderService : ConsensusProviderService ,
27
30
protected readonly configService : ConfigService ,
28
31
protected readonly jobService : JobService ,
@@ -78,23 +81,34 @@ export class ValidatorsService {
78
81
79
82
await unblock ( ) ;
80
83
}
81
- await this . setLidoValidatorsWithdrawableBalances ( data ) ;
82
84
this . validatorsStorageService . setTotal ( totalValidators ) ;
83
85
this . validatorsStorageService . setMaxExitEpoch ( latestEpoch ) ;
84
86
this . validatorsStorageService . setLastUpdate ( Math . floor ( Date . now ( ) / 1000 ) ) ;
85
87
88
+ const frameBalances = await this . getLidoValidatorsWithdrawableBalances ( data ) ;
89
+ this . validatorsStorageService . setFrameBalances ( frameBalances ) ;
86
90
await this . validatorsCacheService . saveDataToCache ( ) ;
87
91
88
92
this . logger . log ( 'End update validators' , {
89
93
service : ValidatorsService . SERVICE_LOG_NAME ,
90
94
totalValidators,
91
95
latestEpoch,
96
+ frameBalances : stringifyFrameBalances ( frameBalances ) ,
97
+ } ) ;
98
+
99
+ Object . keys ( frameBalances ) . forEach ( ( frame ) => {
100
+ this . prometheusService . validatorsState
101
+ . labels ( {
102
+ frame,
103
+ balance : frameBalances [ frame ] ,
104
+ } )
105
+ . inc ( ) ;
92
106
} ) ;
93
107
} ,
94
108
) ;
95
109
}
96
110
97
- protected async setLidoValidatorsWithdrawableBalances ( validators : Validator [ ] ) {
111
+ protected async getLidoValidatorsWithdrawableBalances ( validators : Validator [ ] ) {
98
112
const keysData = await this . lidoKeys . fetchLidoKeysData ( ) ;
99
113
const lidoValidators = await this . lidoKeys . getLidoValidatorsByKeys ( keysData . data , validators ) ;
100
114
@@ -111,6 +125,6 @@ export class ValidatorsService {
111
125
await unblock ( ) ;
112
126
}
113
127
114
- this . validatorsStorageService . setFrameBalances ( frameBalances ) ;
128
+ return frameBalances ;
115
129
}
116
130
}
0 commit comments