aboutsummaryrefslogtreecommitdiffstats
path: root/contracts
diff options
context:
space:
mode:
Diffstat (limited to 'contracts')
-rw-r--r--contracts/chequebook/cheque.go2
-rw-r--r--contracts/chequebook/cheque_test.go10
-rw-r--r--contracts/ens/ens_test.go2
-rw-r--r--contracts/release/contract_test.go6
-rw-r--r--contracts/release/release.go74
5 files changed, 48 insertions, 46 deletions
diff --git a/contracts/chequebook/cheque.go b/contracts/chequebook/cheque.go
index 945e56e86..7e0f7eafc 100644
--- a/contracts/chequebook/cheque.go
+++ b/contracts/chequebook/cheque.go
@@ -26,6 +26,7 @@ package chequebook
import (
"bytes"
+ "context"
"crypto/ecdsa"
"encoding/json"
"fmt"
@@ -43,7 +44,6 @@ import (
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/swarm/services/swap/swap"
- "golang.org/x/net/context"
)
// TODO(zelig): watch peer solvency and notify of bouncing cheques
diff --git a/contracts/chequebook/cheque_test.go b/contracts/chequebook/cheque_test.go
index 4029fd549..d5b343024 100644
--- a/contracts/chequebook/cheque_test.go
+++ b/contracts/chequebook/cheque_test.go
@@ -42,11 +42,11 @@ var (
)
func newTestBackend() *backends.SimulatedBackend {
- return backends.NewSimulatedBackend(
- core.GenesisAccount{Address: addr0, Balance: big.NewInt(1000000000)},
- core.GenesisAccount{Address: addr1, Balance: big.NewInt(1000000000)},
- core.GenesisAccount{Address: addr2, Balance: big.NewInt(1000000000)},
- )
+ return backends.NewSimulatedBackend(core.GenesisAlloc{
+ addr0: {Balance: big.NewInt(1000000000)},
+ addr1: {Balance: big.NewInt(1000000000)},
+ addr2: {Balance: big.NewInt(1000000000)},
+ })
}
func deploy(prvKey *ecdsa.PrivateKey, amount *big.Int, backend *backends.SimulatedBackend) (common.Address, error) {
diff --git a/contracts/ens/ens_test.go b/contracts/ens/ens_test.go
index 373ce2e30..5faa9b1ad 100644
--- a/contracts/ens/ens_test.go
+++ b/contracts/ens/ens_test.go
@@ -34,7 +34,7 @@ var (
)
func TestENS(t *testing.T) {
- contractBackend := backends.NewSimulatedBackend(core.GenesisAccount{Address: addr, Balance: big.NewInt(1000000000)})
+ contractBackend := backends.NewSimulatedBackend(core.GenesisAlloc{addr: {Balance: big.NewInt(1000000000)}})
transactOpts := bind.NewKeyedTransactor(key)
// Workaround for bug estimating gas in the call to Register
transactOpts.GasLimit = big.NewInt(1000000)
diff --git a/contracts/release/contract_test.go b/contracts/release/contract_test.go
index 11a039992..348e9aabe 100644
--- a/contracts/release/contract_test.go
+++ b/contracts/release/contract_test.go
@@ -35,11 +35,11 @@ func setupReleaseTest(t *testing.T, prefund ...*ecdsa.PrivateKey) (*ecdsa.Privat
key, _ := crypto.GenerateKey()
auth := bind.NewKeyedTransactor(key)
- accounts := []core.GenesisAccount{{Address: auth.From, Balance: big.NewInt(10000000000)}}
+ alloc := core.GenesisAlloc{auth.From: {Balance: big.NewInt(10000000000)}}
for _, key := range prefund {
- accounts = append(accounts, core.GenesisAccount{Address: crypto.PubkeyToAddress(key.PublicKey), Balance: big.NewInt(10000000000)})
+ alloc[crypto.PubkeyToAddress(key.PublicKey)] = core.GenesisAccount{Balance: big.NewInt(10000000000)}
}
- sim := backends.NewSimulatedBackend(accounts...)
+ sim := backends.NewSimulatedBackend(alloc)
// Deploy a version oracle contract, commit and return
_, _, oracle, err := DeployReleaseOracle(auth, sim, []common.Address{auth.From})
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]))
+ }
+}