mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-19 21:31:37 +00:00
fix new masternode bug
This commit is contained in:
parent
92857e50e5
commit
d0cde5c51e
2 changed files with 11 additions and 7 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue