@@ -382,39 +382,42 @@ contract SFC is SFCBase, Version {
382
382
for (uint256 i = 0 ; i < validatorIDs.length ; i++ ) {
383
383
uint256 validatorID = validatorIDs[i];
384
384
// compute normalised uptime as a percentage in the Q1.30 fixed-point format
385
- uint256 normalisedUptime = uptimes[i] * (1 << 30 )/ epochDuration;
385
+ uint256 normalisedUptime = ( uptimes[i] * (1 << 30 )) / epochDuration;
386
386
if (normalisedUptime < 0 ) {
387
387
normalisedUptime = 0 ;
388
388
} else if (normalisedUptime > 1 << 30 ) {
389
389
normalisedUptime = 1 << 30 ;
390
390
}
391
- // update average uptime data structure
391
+ // update average uptime data structure
392
392
// Assumes that if in the previous snapshot the validator
393
393
// does not exist, the map returns zero.
394
394
int32 n = prevSnapshot.averageData[validatorID].numEpochsAlive;
395
395
int64 tmp;
396
- if (n > 0 ) {
397
- tmp = int64 (n-1 ) * int64 (snapshot.averageData[validatorID].averageUptime) + int64 (uint64 (normalisedUptime));
398
- if (n > 1 ) {
399
- tmp += (int64 (n) * int64 (prevSnapshot.averageData[validatorID].averageUptimeError)) / int64 (n-1 );
396
+ if (n > 0 ) {
397
+ tmp =
398
+ int64 (n - 1 ) *
399
+ int64 (snapshot.averageData[validatorID].averageUptime) +
400
+ int64 (uint64 (normalisedUptime));
401
+ if (n > 1 ) {
402
+ tmp += (int64 (n) * int64 (prevSnapshot.averageData[validatorID].averageUptimeError)) / int64 (n - 1 );
400
403
}
401
404
snapshot.averageData[validatorID].averageUptimeError = int32 (tmp % int64 (n));
402
405
tmp /= int64 (n);
403
406
} else {
404
407
tmp = int64 (uint64 (normalisedUptime));
405
408
}
406
409
if (tmp < 0 ) {
407
- tmp = 0 ;
408
- } else if (tmp > 1 << 30 ){
409
- tmp = 1 << 30 ;
410
+ tmp = 0 ;
411
+ } else if (tmp > 1 << 30 ) {
412
+ tmp = 1 << 30 ;
410
413
}
411
414
snapshot.averageData[validatorID].averageUptime = int32 (tmp);
412
415
if (n < c.numEpochsAliveThreshold ()) {
413
416
snapshot.averageData[validatorID].numEpochsAlive = n + 1 ;
414
417
}
415
418
// remove validator if average uptime drops below min average uptime
416
419
// (by setting minAverageUptime to zero, this check is ignored)
417
- if (int32 (tmp) < c.minAverageUptime () && n >= c.numEpochsAliveThreshold () ) {
420
+ if (int32 (tmp) < c.minAverageUptime () && n >= c.numEpochsAliveThreshold ()) {
418
421
_setValidatorDeactivated (validatorIDs[i], OFFLINE_BIT);
419
422
_syncValidator (validatorIDs[i], false );
420
423
}
0 commit comments