check slashed status in GetCandidateStatus

This commit is contained in:
Daniel Liu 2023-07-14 16:30:47 +08:00
parent e17a0869e5
commit f32c66ebc1

View file

@ -819,7 +819,7 @@ func (s *PublicBlockChainAPI) GetCandidateStatus(ctx context.Context, coinbaseAd
}) })
} }
// Third, Get penalties list // Get penalties list
penalties = append(penalties, header.Penalties...) penalties = append(penalties, header.Penalties...)
// check last 5 epochs to find penalize masternodes // check last 5 epochs to find penalize masternodes
for i := 1; i <= common.LimitPenaltyEpoch; i++ { for i := 1; i <= common.LimitPenaltyEpoch; i++ {
@ -837,12 +837,22 @@ func (s *PublicBlockChainAPI) GetCandidateStatus(ctx context.Context, coinbaseAd
penaltyList = common.ExtractAddressFromBytes(penalties) penaltyList = common.ExtractAddressFromBytes(penalties)
// map slashing status // map slashing status
total := len(masternodes)
for _, candidate := range candidates {
for _, pen := range penaltyList { for _, pen := range penaltyList {
if candidate.Address == pen {
if coinbaseAddress == pen { if coinbaseAddress == pen {
result[fieldStatus] = statusSlashed result[fieldStatus] = statusSlashed
return result, nil return result, nil
} }
total++
if total >= maxMasternodes {
return result, nil
} }
}
}
}
return result, nil return result, nil
} }