diff --git a/pkg/core/blockchain.go b/pkg/core/blockchain.go index 1f3866ee2..e88cdd08b 100644 --- a/pkg/core/blockchain.go +++ b/pkg/core/blockchain.go @@ -659,7 +659,7 @@ func processTXWithValidatorsSubtract(account *state.Account, dao *cachedDao, toS return err } validator.Votes -= toSubtract - if !validator.RegisteredAndHasVotes() { + if validator.UnregisteredAndHasNoVotes() { if err := dao.DeleteValidatorState(validator); err != nil { return err } diff --git a/pkg/core/state/validator.go b/pkg/core/state/validator.go index bd3414a1f..3f8ba51d8 100644 --- a/pkg/core/state/validator.go +++ b/pkg/core/state/validator.go @@ -18,6 +18,11 @@ func (vs *Validator) RegisteredAndHasVotes() bool { return vs.Registered && vs.Votes > util.Fixed8(0) } +// UnregisteredAndHasNoVotes returns true when Validator is not registered and has no votes. +func (vs *Validator) UnregisteredAndHasNoVotes() bool { + return !vs.Registered && vs.Votes == 0 +} + // EncodeBinary encodes Validator to the given BinWriter. func (vs *Validator) EncodeBinary(bw *io.BinWriter) { vs.PublicKey.EncodeBinary(bw)