aboutsummaryrefslogtreecommitdiffstats
path: root/contracts/release/release.go
diff options
context:
space:
mode:
Diffstat (limited to 'contracts/release/release.go')
-rw-r--r--contracts/release/release.go74
1 files changed, 38 insertions, 36 deletions
diff --git a/contracts/release/release.go b/contracts/release/release.go
index 613e62aa9..28a35381d 100644
--- a/contracts/release/release.go
+++ b/contracts/release/release.go
@@ -20,6 +20,7 @@ package release
//go:generate abigen --sol ./contract.sol --pkg release --out ./contract.go
import (
+ "context"
"fmt"
"strings"
"time"
@@ -33,7 +34,6 @@ import (
"github.com/ethereum/go-ethereum/node"
"github.com/ethereum/go-ethereum/p2p"
"github.com/ethereum/go-ethereum/rpc"
- "golang.org/x/net/context"
)
// Interval to check for new releases
@@ -116,47 +116,49 @@ func (r *ReleaseService) checker() {
for {
select {
- // If the time arrived, check for a new release
case <-timer.C:
// Rechedule the timer before continuing
timer.Reset(releaseRecheckInterval)
-
- // Retrieve the current version, and handle missing contracts gracefully
- ctx, _ := context.WithTimeout(context.Background(), time.Second*5)
- opts := &bind.CallOpts{Context: ctx}
- version, err := r.oracle.CurrentVersion(opts)
- if err != nil {
- if err == bind.ErrNoCode {
- log.Debug("Release oracle not found", "contract", r.config.Oracle)
- continue
- }
- log.Error("Failed to retrieve current release", "err", err)
- continue
- }
- // Version was successfully retrieved, notify if newer than ours
- if version.Major > r.config.Major ||
- (version.Major == r.config.Major && version.Minor > r.config.Minor) ||
- (version.Major == r.config.Major && version.Minor == r.config.Minor && version.Patch > r.config.Patch) {
-
- warning := fmt.Sprintf("Client v%d.%d.%d-%x seems older than the latest upstream release v%d.%d.%d-%x",
- r.config.Major, r.config.Minor, r.config.Patch, r.config.Commit[:4], version.Major, version.Minor, version.Patch, version.Commit[:4])
- howtofix := fmt.Sprintf("Please check https://github.com/ethereum/go-ethereum/releases for new releases")
- separator := strings.Repeat("-", len(warning))
-
- log.Warn(separator)
- log.Warn(warning)
- log.Warn(howtofix)
- log.Warn(separator)
- } else {
- log.Debug("Client seems up to date with upstream",
- "local", fmt.Sprintf("v%d.%d.%d-%x", r.config.Major, r.config.Minor, r.config.Patch, r.config.Commit[:4]),
- "upstream", fmt.Sprintf("v%d.%d.%d-%x", version.Major, version.Minor, version.Patch, version.Commit[:4]))
- }
-
- // If termination was requested, return
+ r.checkVersion()
case errc := <-r.quit:
errc <- nil
return
}
}
}
+
+func (r *ReleaseService) checkVersion() {
+ // Retrieve the current version, and handle missing contracts gracefully
+ ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
+ opts := &bind.CallOpts{Context: ctx}
+ defer cancel()
+
+ version, err := r.oracle.CurrentVersion(opts)
+ if err != nil {
+ if err == bind.ErrNoCode {
+ log.Debug("Release oracle not found", "contract", r.config.Oracle)
+ } else {
+ log.Error("Failed to retrieve current release", "err", err)
+ }
+ return
+ }
+ // Version was successfully retrieved, notify if newer than ours
+ if version.Major > r.config.Major ||
+ (version.Major == r.config.Major && version.Minor > r.config.Minor) ||
+ (version.Major == r.config.Major && version.Minor == r.config.Minor && version.Patch > r.config.Patch) {
+
+ warning := fmt.Sprintf("Client v%d.%d.%d-%x seems older than the latest upstream release v%d.%d.%d-%x",
+ r.config.Major, r.config.Minor, r.config.Patch, r.config.Commit[:4], version.Major, version.Minor, version.Patch, version.Commit[:4])
+ howtofix := fmt.Sprintf("Please check https://github.com/ethereum/go-ethereum/releases for new releases")
+ separator := strings.Repeat("-", len(warning))
+
+ log.Warn(separator)
+ log.Warn(warning)
+ log.Warn(howtofix)
+ log.Warn(separator)
+ } else {
+ log.Debug("Client seems up to date with upstream",
+ "local", fmt.Sprintf("v%d.%d.%d-%x", r.config.Major, r.config.Minor, r.config.Patch, r.config.Commit[:4]),
+ "upstream", fmt.Sprintf("v%d.%d.%d-%x", version.Major, version.Minor, version.Patch, version.Commit[:4]))
+ }
+}