fix new masternode bug

This commit is contained in:
Liam Lai 2022-04-14 02:07:26 -06:00
parent 92857e50e5
commit d0cde5c51e
2 changed files with 11 additions and 7 deletions

View file

@ -279,19 +279,23 @@ func (a UnprefixedAddress) MarshalText() ([]byte, error) {
// Extract validators from byte array.
func RemoveItemFromArray(array []Address, items []Address) []Address {
// Create newArray to stop append change array value
newArray := make([]Address, len(array))
copy(newArray, array)
if len(items) == 0 {
return array
return newArray
}
for _, item := range items {
for i := len(array) - 1; i >= 0; i-- {
if array[i] == item {
array = append(array[:i], array[i+1:]...)
for i := len(newArray) - 1; i >= 0; i-- {
if newArray[i] == item {
newArray = append(newArray[:i], newArray[i+1:]...)
}
}
}
return array
return newArray
}
// Extract validators from byte array.

View file

@ -88,12 +88,12 @@ func (x *XDPoS_v2) isEpochSwitchAtRound(round utils.Round, parentHeader *types.H
return true, epochNum, nil
}
_, round, _, err := x.getExtraFields(parentHeader)
_, parentRound, _, err := x.getExtraFields(parentHeader)
if err != nil {
log.Error("[IsEpochSwitch] decode header error", "err", err, "header", parentHeader, "extra", common.Bytes2Hex(parentHeader.Extra))
return false, 0, err
}
parentRound := round
epochStartRound := round - round%utils.Round(x.config.Epoch)
return parentRound < epochStartRound, epochNum, nil
}