mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 13:28:01 -05:00
fix missing meta in resp of getPeers (#15371)
Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com>
This commit is contained in:
@@ -33,8 +33,14 @@ type GetPeerResponse struct {
|
||||
Data *Peer `json:"data"`
|
||||
}
|
||||
|
||||
// Added Meta to align with beacon-api: https://ethereum.github.io/beacon-APIs/#/Node/getPeers
|
||||
type Meta struct {
|
||||
Count int `json:"count"`
|
||||
}
|
||||
|
||||
type GetPeersResponse struct {
|
||||
Data []*Peer `json:"data"`
|
||||
Meta Meta `json:"meta"`
|
||||
}
|
||||
|
||||
type Peer struct {
|
||||
|
||||
@@ -112,7 +112,12 @@ func (s *Server) GetPeers(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
allPeers = append(allPeers, p)
|
||||
}
|
||||
resp := &structs.GetPeersResponse{Data: allPeers}
|
||||
resp := &structs.GetPeersResponse{
|
||||
Data: allPeers,
|
||||
Meta: structs.Meta{
|
||||
Count: len(allPeers),
|
||||
},
|
||||
}
|
||||
httputil.WriteJson(w, resp)
|
||||
return
|
||||
}
|
||||
@@ -177,7 +182,12 @@ func (s *Server) GetPeers(w http.ResponseWriter, r *http.Request) {
|
||||
filteredPeers = append(filteredPeers, p)
|
||||
}
|
||||
|
||||
resp := &structs.GetPeersResponse{Data: filteredPeers}
|
||||
resp := &structs.GetPeersResponse{
|
||||
Data: filteredPeers,
|
||||
Meta: structs.Meta{
|
||||
Count: len(filteredPeers),
|
||||
},
|
||||
}
|
||||
httputil.WriteJson(w, resp)
|
||||
}
|
||||
|
||||
|
||||
@@ -145,6 +145,7 @@ func TestGetPeers(t *testing.T) {
|
||||
resp := &structs.GetPeersResponse{}
|
||||
require.NoError(t, json.Unmarshal(writer.Body.Bytes(), resp))
|
||||
require.Equal(t, 1, len(resp.Data))
|
||||
assert.Equal(t, 1, resp.Meta.Count)
|
||||
returnedPeer := resp.Data[0]
|
||||
assert.Equal(t, expectedId.String(), returnedPeer.PeerId)
|
||||
expectedEnr, err := peerStatus.ENR(expectedId)
|
||||
@@ -229,6 +230,7 @@ func TestGetPeers(t *testing.T) {
|
||||
resp := &structs.GetPeersResponse{}
|
||||
require.NoError(t, json.Unmarshal(writer.Body.Bytes(), resp))
|
||||
assert.Equal(t, len(tt.wantIds), len(resp.Data), "Wrong number of peers returned")
|
||||
assert.Equal(t, len(tt.wantIds), resp.Meta.Count, "meta.count does not match number of returned peers")
|
||||
for _, id := range tt.wantIds {
|
||||
expectedId := id.String()
|
||||
found := false
|
||||
|
||||
3
changelog/Alleysira-fix-meta-in-getPeers-resp.md
Normal file
3
changelog/Alleysira-fix-meta-in-getPeers-resp.md
Normal file
@@ -0,0 +1,3 @@
|
||||
### Fixed
|
||||
|
||||
- Added missing `meta` field to the response of the endpoint `/eth/v1/node/peers` to align with the Beacon API spec (#15370)
|
||||
Reference in New Issue
Block a user