From 811a9a79a20e5a3f038fa578c57950347a02fd75 Mon Sep 17 00:00:00 2001 From: hayzamjs Date: Tue, 2 Jul 2024 20:33:06 +0530 Subject: [PATCH] juneo: handle bad responses (uptime check), version: bump to 1.1.6 --- services/config/config.go | 2 +- services/juneo/juneo.go | 21 ++++++++++++++------- utils/utils.go | 2 +- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/services/config/config.go b/services/config/config.go index 4bab683..5c4ef84 100644 --- a/services/config/config.go +++ b/services/config/config.go @@ -12,7 +12,7 @@ import ( "time" ) -const version = "1.1.5" +const version = "1.1.6" type Config struct { Node string `json:"node"` diff --git a/services/juneo/juneo.go b/services/juneo/juneo.go index 6ddba80..8d4c719 100644 --- a/services/juneo/juneo.go +++ b/services/juneo/juneo.go @@ -62,24 +62,31 @@ func getNodeID() string { func getUptimePercentage() float64 { response, err := http.Post("http://127.0.0.1:9650/ext/info", "application/json", strings.NewReader(`{"jsonrpc":"2.0","id":1,"method":"info.uptime"}`)) - if err != nil { return 0.0 } - defer response.Body.Close() var result map[string]interface{} - if err := json.NewDecoder(response.Body).Decode(&result); err != nil { return 0.0 } - if rewardingStakePercentage, ok := result["result"].(map[string]interface{})["rewardingStakePercentage"].(string); ok { - if weightedAveragePercentage, ok := result["result"].(map[string]interface{})["weightedAveragePercentage"].(string); ok { - rewardingStakePercentageFloat, _ := strconv.ParseFloat(rewardingStakePercentage, 64) - weightedAveragePercentageFloat, _ := strconv.ParseFloat(weightedAveragePercentage, 64) + if _, ok := result["error"]; ok { + return 0.0 + } + + resultData, ok := result["result"].(map[string]interface{}) + if !ok { + return 0.0 + } + rewardingStakePercentageStr, ok1 := resultData["rewardingStakePercentage"].(string) + weightedAveragePercentageStr, ok2 := resultData["weightedAveragePercentage"].(string) + if ok1 && ok2 { + rewardingStakePercentageFloat, err1 := strconv.ParseFloat(rewardingStakePercentageStr, 64) + weightedAveragePercentageFloat, err2 := strconv.ParseFloat(weightedAveragePercentageStr, 64) + if err1 == nil && err2 == nil { return float64(int((rewardingStakePercentageFloat+weightedAveragePercentageFloat)/2*100)) / 100 } } diff --git a/utils/utils.go b/utils/utils.go index 311194c..97a4181 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -45,7 +45,7 @@ func SecondsToReadable(seconds int) string { func InstallService() { hostname, _ := os.Hostname() - if hostname == "hayzam-pc" || hostname == "nodebox-xally" || hostname == "nodebox-juneo" { + if hostname == "hayzam-pc" || hostname == "nodebox-xally" { return }