diff --git a/cmd/rpcdaemon/services/eth_backend.go b/cmd/rpcdaemon/services/eth_backend.go index e939acd0d129eeff37c9b718211bd1b956a3d367..758343d80c7bf598c418dbb69ecf5691f1129ddc 100644 --- a/cmd/rpcdaemon/services/eth_backend.go +++ b/cmd/rpcdaemon/services/eth_backend.go @@ -182,11 +182,16 @@ func (back *RemoteBackend) NodeInfo(ctx context.Context, limit uint32) ([]p2p.No ret := make([]p2p.NodeInfo, 0, len(nodes.NodesInfo)) for _, node := range nodes.NodesInfo { - var protocols map[string]interface{} - if err = json.Unmarshal(node.Protocols, &protocols); err != nil { + var rawProtocols map[string]json.RawMessage + if err = json.Unmarshal(node.Protocols, &rawProtocols); err != nil { return nil, fmt.Errorf("cannot decode protocols metadata: %w", err) } + protocols := make(map[string]interface{}, len(rawProtocols)) + for k, v := range rawProtocols { + protocols[k] = v + } + ret = append(ret, p2p.NodeInfo{ Enode: node.Enode, ID: node.Id,