@@ -27,6 +27,10 @@ const (
2727 epochStartDataForEpoch = "/epoch-start/:epoch"
2828 bootstrapStatusPath = "/bootstrapstatus"
2929 connectedPeersRatingsPath = "/connected-peers-ratings"
30+ managedKeys = "/managed-keys"
31+ managedKeysCount = "/managed-keys/count"
32+ eligibleManagedKeys = "/managed-keys/eligible"
33+ waitingManagedKeys = "/managed-keys/waiting"
3034)
3135
3236// nodeFacadeHandler defines the methods to be implemented by a facade for node requests
@@ -36,7 +40,11 @@ type nodeFacadeHandler interface {
3640 GetQueryHandler (name string ) (debug.QueryHandler , error )
3741 GetEpochStartDataAPI (epoch uint32 ) (* common.EpochStartDataAPI , error )
3842 GetPeerInfo (pid string ) ([]core.QueryP2PPeerInfo , error )
39- GetConnectedPeersRatings () string
43+ GetConnectedPeersRatingsOnMainNetwork () (string , error )
44+ GetManagedKeysCount () int
45+ GetManagedKeys () []string
46+ GetEligibleManagedKeys () ([]string , error )
47+ GetWaitingManagedKeys () ([]string , error )
4048 IsInterfaceNil () bool
4149}
4250
@@ -109,6 +117,26 @@ func NewNodeGroup(facade nodeFacadeHandler) (*nodeGroup, error) {
109117 Method : http .MethodGet ,
110118 Handler : ng .connectedPeersRatings ,
111119 },
120+ {
121+ Path : managedKeysCount ,
122+ Method : http .MethodGet ,
123+ Handler : ng .managedKeysCount ,
124+ },
125+ {
126+ Path : managedKeys ,
127+ Method : http .MethodGet ,
128+ Handler : ng .managedKeys ,
129+ },
130+ {
131+ Path : eligibleManagedKeys ,
132+ Method : http .MethodGet ,
133+ Handler : ng .managedKeysEligible ,
134+ },
135+ {
136+ Path : waitingManagedKeys ,
137+ Method : http .MethodGet ,
138+ Handler : ng .managedKeysWaiting ,
139+ },
112140 }
113141 ng .endpoints = endpoints
114142
@@ -327,7 +355,19 @@ func (ng *nodeGroup) bootstrapMetrics(c *gin.Context) {
327355
328356// connectedPeersRatings returns the node's connected peers ratings
329357func (ng * nodeGroup ) connectedPeersRatings (c * gin.Context ) {
330- ratings := ng .getFacade ().GetConnectedPeersRatings ()
358+ ratings , err := ng .getFacade ().GetConnectedPeersRatingsOnMainNetwork ()
359+ if err != nil {
360+ c .JSON (
361+ http .StatusInternalServerError ,
362+ shared.GenericAPIResponse {
363+ Data : nil ,
364+ Error : err .Error (),
365+ Code : shared .ReturnCodeInternalError ,
366+ },
367+ )
368+ return
369+ }
370+
331371 c .JSON (
332372 http .StatusOK ,
333373 shared.GenericAPIResponse {
@@ -338,6 +378,68 @@ func (ng *nodeGroup) connectedPeersRatings(c *gin.Context) {
338378 )
339379}
340380
381+ // managedKeysCount returns the node's number of managed keys
382+ func (ng * nodeGroup ) managedKeysCount (c * gin.Context ) {
383+ count := ng .getFacade ().GetManagedKeysCount ()
384+ c .JSON (
385+ http .StatusOK ,
386+ shared.GenericAPIResponse {
387+ Data : gin.H {"count" : count },
388+ Error : "" ,
389+ Code : shared .ReturnCodeSuccess ,
390+ },
391+ )
392+ }
393+
394+ // managedKeys returns all keys managed by the current node
395+ func (ng * nodeGroup ) managedKeys (c * gin.Context ) {
396+ keys := ng .getFacade ().GetManagedKeys ()
397+ c .JSON (
398+ http .StatusOK ,
399+ shared.GenericAPIResponse {
400+ Data : gin.H {"managedKeys" : keys },
401+ Error : "" ,
402+ Code : shared .ReturnCodeSuccess ,
403+ },
404+ )
405+ }
406+
407+ // managedKeysEligible returns the node's eligible managed keys
408+ func (ng * nodeGroup ) managedKeysEligible (c * gin.Context ) {
409+ keys , err := ng .getFacade ().GetEligibleManagedKeys ()
410+ if err != nil {
411+ shared .RespondWithInternalError (c , errors .ErrGetEligibleManagedKeys , err )
412+ return
413+ }
414+
415+ c .JSON (
416+ http .StatusOK ,
417+ shared.GenericAPIResponse {
418+ Data : gin.H {"eligibleKeys" : keys },
419+ Error : "" ,
420+ Code : shared .ReturnCodeSuccess ,
421+ },
422+ )
423+ }
424+
425+ // managedKeysWaiting returns the node's waiting managed keys
426+ func (ng * nodeGroup ) managedKeysWaiting (c * gin.Context ) {
427+ keys , err := ng .getFacade ().GetWaitingManagedKeys ()
428+ if err != nil {
429+ shared .RespondWithInternalError (c , errors .ErrGetWaitingManagedKeys , err )
430+ return
431+ }
432+
433+ c .JSON (
434+ http .StatusOK ,
435+ shared.GenericAPIResponse {
436+ Data : gin.H {"waitingKeys" : keys },
437+ Error : "" ,
438+ Code : shared .ReturnCodeSuccess ,
439+ },
440+ )
441+ }
442+
341443func (ng * nodeGroup ) getFacade () nodeFacadeHandler {
342444 ng .mutFacade .RLock ()
343445 defer ng .mutFacade .RUnlock ()
0 commit comments