@@ -62,24 +62,31 @@ func getNodeID() string {
62
62
63
63
func getUptimePercentage () float64 {
64
64
response , err := http .Post ("http://127.0.0.1:9650/ext/info" , "application/json" , strings .NewReader (`{"jsonrpc":"2.0","id":1,"method":"info.uptime"}` ))
65
-
66
65
if err != nil {
67
66
return 0.0
68
67
}
69
-
70
68
defer response .Body .Close ()
71
69
72
70
var result map [string ]interface {}
73
-
74
71
if err := json .NewDecoder (response .Body ).Decode (& result ); err != nil {
75
72
return 0.0
76
73
}
77
74
78
- if rewardingStakePercentage , ok := result ["result" ].(map [string ]interface {})["rewardingStakePercentage" ].(string ); ok {
79
- if weightedAveragePercentage , ok := result ["result" ].(map [string ]interface {})["weightedAveragePercentage" ].(string ); ok {
80
- rewardingStakePercentageFloat , _ := strconv .ParseFloat (rewardingStakePercentage , 64 )
81
- weightedAveragePercentageFloat , _ := strconv .ParseFloat (weightedAveragePercentage , 64 )
75
+ if _ , ok := result ["error" ]; ok {
76
+ return 0.0
77
+ }
78
+
79
+ resultData , ok := result ["result" ].(map [string ]interface {})
80
+ if ! ok {
81
+ return 0.0
82
+ }
82
83
84
+ rewardingStakePercentageStr , ok1 := resultData ["rewardingStakePercentage" ].(string )
85
+ weightedAveragePercentageStr , ok2 := resultData ["weightedAveragePercentage" ].(string )
86
+ if ok1 && ok2 {
87
+ rewardingStakePercentageFloat , err1 := strconv .ParseFloat (rewardingStakePercentageStr , 64 )
88
+ weightedAveragePercentageFloat , err2 := strconv .ParseFloat (weightedAveragePercentageStr , 64 )
89
+ if err1 == nil && err2 == nil {
83
90
return float64 (int ((rewardingStakePercentageFloat + weightedAveragePercentageFloat )/ 2 * 100 )) / 100
84
91
}
85
92
}
0 commit comments