diff --git a/go.mod b/go.mod index 4a118c47b..5064e9546 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/waku-org/go-waku -go 1.20 +go 1.19 replace github.com/ethereum/go-ethereum v1.10.26 => github.com/status-im/go-ethereum v1.10.25-status.4 diff --git a/waku/v2/node/wakunode2.go b/waku/v2/node/wakunode2.go index 378ac06b4..3c9dadf7f 100644 --- a/waku/v2/node/wakunode2.go +++ b/waku/v2/node/wakunode2.go @@ -11,7 +11,6 @@ import ( golog "github.com/ipfs/go-log/v2" "github.com/libp2p/go-libp2p" "go.uber.org/zap" - "golang.org/x/exp/maps" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/p2p/enode" @@ -325,13 +324,13 @@ func (w *WakuNode) watchMultiaddressChanges(ctx context.Context) { case <-ctx.Done(): return case <-first: - addr := maps.Keys(addrsSet) + addr := utils.MultiAddrFromSet(addrsSet) w.log.Info("listening", logging.MultiAddrs("multiaddr", addr...)) case <-w.addressChangesSub.Out(): newAddrs := utils.MultiAddrSet(w.ListenAddresses()...) - if !maps.Equal(addrsSet, newAddrs) { + if !utils.MultiAddrSetEquals(addrsSet, newAddrs) { addrsSet = newAddrs - addrs := maps.Keys(addrsSet) + addrs := utils.MultiAddrFromSet(addrsSet) w.log.Info("listening addresses update received", logging.MultiAddrs("multiaddr", addrs...)) err := w.setupENR(ctx, addrs) if err != nil { diff --git a/waku/v2/utils/multiaddr.go b/waku/v2/utils/multiaddr.go index b60d4a879..17aa34911 100644 --- a/waku/v2/utils/multiaddr.go +++ b/waku/v2/utils/multiaddr.go @@ -24,3 +24,26 @@ func MultiAddrSet(addr ...multiaddr.Multiaddr) map[multiaddr.Multiaddr]struct{} } return r } + +func MultiAddrSetEquals(m1 map[multiaddr.Multiaddr]struct{}, m2 map[multiaddr.Multiaddr]struct{}) bool { + if len(m1) != len(m2) { + return false + } + + for k := range m1 { + _, ok := m2[k] + if !ok { + return false + } + } + + return true +} + +func MultiAddrFromSet(m map[multiaddr.Multiaddr]struct{}) []multiaddr.Multiaddr { + var r []multiaddr.Multiaddr + for k := range m { + r = append(r, k) + } + return r +}