From 4bb925258de0519b60070c79fc67c60c2fa61509 Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Wed, 12 Nov 2025 06:32:43 +0800 Subject: [PATCH] params: fix type `V2` not equal bug, close XFN-45 (#1737) --- params/config.go | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/params/config.go b/params/config.go index 5c3f389130..a420680c6f 100644 --- a/params/config.go +++ b/params/config.go @@ -18,7 +18,9 @@ package params import ( "fmt" + "maps" "math/big" + "slices" "strings" "sync" @@ -530,22 +532,15 @@ func V2Equal(a, b *V2) bool { if a == nil || b == nil { return a == b } - if a.SwitchEpoch != b.SwitchEpoch || a.SkipV2Validation != b.SkipV2Validation || !configNumEqual(a.SwitchBlock, b.SwitchBlock) || len(a.configIndex) != len(b.configIndex) || len(a.configIndex) != len(a.AllConfigs) || len(b.configIndex) != len(b.AllConfigs) { - return false - } - for i, idx := range a.configIndex { - if idx != b.configIndex[i] { - return false - } - if !V2ConfigEqual(a.AllConfigs[idx], b.AllConfigs[idx]) { - return false - } - } - return true + + return a.SwitchEpoch == b.SwitchEpoch && configNumEqual(a.SwitchBlock, b.SwitchBlock) && slices.Equal(a.configIndex, b.configIndex) && maps.EqualFunc(a.AllConfigs, b.AllConfigs, V2ConfigEqual) } func V2ConfigEqual(a, b *V2Config) bool { - return a != nil && b != nil && *a == *b + if a == nil || b == nil { + return a == b + } + return *a == *b } func (c *XDPoSConfig) String() string {