aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2015-11-27 00:35:44 +0800
committerPéter Szilágyi <peterke@gmail.com>2015-11-27 17:06:12 +0800
commit3e1000fda3424d880bc43ebbb16d8a33447d4182 (patch)
treefdc37470cba9af3a00e7eeaa02895b5166ddcd27 /cmd
parent1e806c4c775bd98b224eb0249007502d348e737b (diff)
downloaddexon-3e1000fda3424d880bc43ebbb16d8a33447d4182.tar.gz
dexon-3e1000fda3424d880bc43ebbb16d8a33447d4182.tar.zst
dexon-3e1000fda3424d880bc43ebbb16d8a33447d4182.zip
cmd, eth, node, rpc, xeth: use single-instance services
Diffstat (limited to 'cmd')
-rw-r--r--cmd/geth/js.go4
-rw-r--r--cmd/geth/js_test.go14
-rw-r--r--cmd/geth/main.go2
-rw-r--r--cmd/gethrpctest/main.go6
-rw-r--r--cmd/utils/flags.go10
5 files changed, 20 insertions, 16 deletions
diff --git a/cmd/geth/js.go b/cmd/geth/js.go
index a0e8bdb21..f1845d94f 100644
--- a/cmd/geth/js.go
+++ b/cmd/geth/js.go
@@ -345,7 +345,7 @@ func (self *jsre) AskPassword() (string, bool) {
func (self *jsre) ConfirmTransaction(tx string) bool {
// Retrieve the Ethereum instance from the node
var ethereum *eth.Ethereum
- if _, err := self.stack.SingletonService(&ethereum); err != nil {
+ if err := self.stack.Service(&ethereum); err != nil {
return false
}
// If natspec is enabled, ask for permission
@@ -367,7 +367,7 @@ func (self *jsre) UnlockAccount(addr []byte) bool {
}
// TODO: allow retry
var ethereum *eth.Ethereum
- if _, err := self.stack.SingletonService(&ethereum); err != nil {
+ if err := self.stack.Service(&ethereum); err != nil {
return false
}
if err := ethereum.AccountManager().Unlock(common.BytesToAddress(addr), pass); err != nil {
diff --git a/cmd/geth/js_test.go b/cmd/geth/js_test.go
index ed4d04b48..a0f3f2fb7 100644
--- a/cmd/geth/js_test.go
+++ b/cmd/geth/js_test.go
@@ -68,7 +68,7 @@ type testjethre struct {
func (self *testjethre) UnlockAccount(acc []byte) bool {
var ethereum *eth.Ethereum
- self.stack.SingletonService(&ethereum)
+ self.stack.Service(&ethereum)
err := ethereum.AccountManager().Unlock(common.BytesToAddress(acc), "")
if err != nil {
@@ -79,7 +79,7 @@ func (self *testjethre) UnlockAccount(acc []byte) bool {
func (self *testjethre) ConfirmTransaction(tx string) bool {
var ethereum *eth.Ethereum
- self.stack.SingletonService(&ethereum)
+ self.stack.Service(&ethereum)
if ethereum.NatSpec {
self.lastConfirm = natspec.GetNotice(self.xeth, tx, self.client)
@@ -118,7 +118,7 @@ func testREPL(t *testing.T, config func(*eth.Config)) (string, *testjethre, *nod
if config != nil {
config(ethConf)
}
- if err := stack.Register("ethereum", func(ctx *node.ServiceContext) (node.Service, error) { return eth.New(ctx, ethConf) }); err != nil {
+ if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { return eth.New(ctx, ethConf) }); err != nil {
t.Fatalf("failed to register ethereum protocol: %v", err)
}
// Initialize all the keys for testing
@@ -138,7 +138,7 @@ func testREPL(t *testing.T, config func(*eth.Config)) (string, *testjethre, *nod
t.Fatalf("failed to start test stack: %v", err)
}
var ethereum *eth.Ethereum
- stack.SingletonService(&ethereum)
+ stack.Service(&ethereum)
assetPath := filepath.Join(os.Getenv("GOPATH"), "src", "github.com", "ethereum", "go-ethereum", "cmd", "mist", "assets", "ext")
client := comms.NewInProcClient(codec.JSON)
@@ -202,7 +202,7 @@ func TestBlockChain(t *testing.T) {
tmpfileq := strconv.Quote(tmpfile)
var ethereum *eth.Ethereum
- node.SingletonService(&ethereum)
+ node.Service(&ethereum)
ethereum.BlockChain().Reset()
checkEvalJSON(t, repl, `admin.exportChain(`+tmpfileq+`)`, `true`)
@@ -436,7 +436,7 @@ multiply7 = Multiply7.at(contractaddress);
func pendingTransactions(repl *testjethre, t *testing.T) (txc int64, err error) {
var ethereum *eth.Ethereum
- repl.stack.SingletonService(&ethereum)
+ repl.stack.Service(&ethereum)
txs := ethereum.TxPool().GetTransactions()
return int64(len(txs)), nil
@@ -464,7 +464,7 @@ func processTxs(repl *testjethre, t *testing.T, expTxc int) bool {
return false
}
var ethereum *eth.Ethereum
- repl.stack.SingletonService(&ethereum)
+ repl.stack.Service(&ethereum)
err = ethereum.StartMining(runtime.NumCPU(), "")
if err != nil {
diff --git a/cmd/geth/main.go b/cmd/geth/main.go
index 6fac4f458..3a5471845 100644
--- a/cmd/geth/main.go
+++ b/cmd/geth/main.go
@@ -489,7 +489,7 @@ func startNode(ctx *cli.Context, stack *node.Node) {
// Unlock any account specifically requested
var ethereum *eth.Ethereum
- if _, err := stack.SingletonService(&ethereum); err != nil {
+ if err := stack.Service(&ethereum); err != nil {
utils.Fatalf("ethereum service not running: %v", err)
}
accman := ethereum.AccountManager()
diff --git a/cmd/gethrpctest/main.go b/cmd/gethrpctest/main.go
index cb4c7aece..7130980ac 100644
--- a/cmd/gethrpctest/main.go
+++ b/cmd/gethrpctest/main.go
@@ -126,11 +126,11 @@ func MakeSystemNode(keydir string, privkey string, test *tests.BlockTest) (*node
TestGenesisBlock: test.Genesis,
AccountManager: accman,
}
- if err := stack.Register("ethereum", func(ctx *node.ServiceContext) (node.Service, error) { return eth.New(ctx, ethConf) }); err != nil {
+ if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { return eth.New(ctx, ethConf) }); err != nil {
return nil, err
}
// Initialize and register the Whisper protocol
- if err := stack.Register("whisper", func(*node.ServiceContext) (node.Service, error) { return whisper.New(), nil }); err != nil {
+ if err := stack.Register(func(*node.ServiceContext) (node.Service, error) { return whisper.New(), nil }); err != nil {
return nil, err
}
return stack, nil
@@ -140,7 +140,7 @@ func MakeSystemNode(keydir string, privkey string, test *tests.BlockTest) (*node
// stack to ensure basic checks pass before running RPC tests.
func RunTest(stack *node.Node, test *tests.BlockTest) error {
var ethereum *eth.Ethereum
- stack.SingletonService(&ethereum)
+ stack.Service(&ethereum)
blockchain := ethereum.BlockChain()
// Process the blocks and verify the imported headers
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 30570d930..53126f9e5 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -686,13 +686,13 @@ func MakeSystemNode(name, version string, extra []byte, ctx *cli.Context) *node.
if err != nil {
Fatalf("Failed to create the protocol stack: %v", err)
}
- if err := stack.Register("eth", func(ctx *node.ServiceContext) (node.Service, error) {
+ if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) {
return eth.New(ctx, ethConf)
}); err != nil {
Fatalf("Failed to register the Ethereum service: %v", err)
}
if shhEnable {
- if err := stack.Register("shh", func(*node.ServiceContext) (node.Service, error) { return whisper.New(), nil }); err != nil {
+ if err := stack.Register(func(*node.ServiceContext) (node.Service, error) { return whisper.New(), nil }); err != nil {
Fatalf("Failed to register the Whisper service: %v", err)
}
}
@@ -786,7 +786,11 @@ func StartIPC(stack *node.Node, ctx *cli.Context) error {
}
initializer := func(conn net.Conn) (comms.Stopper, shared.EthereumApi, error) {
- fe := useragent.NewRemoteFrontend(conn, stack.Service("eth").(*eth.Ethereum).AccountManager())
+ var ethereum *eth.Ethereum
+ if err := stack.Service(&ethereum); err != nil {
+ return nil, nil, err
+ }
+ fe := useragent.NewRemoteFrontend(conn, ethereum.AccountManager())
xeth := xeth.New(stack, fe)
apis, err := api.ParseApiString(ctx.GlobalString(IPCApiFlag.Name), codec.JSON, xeth, stack)
if err != nil {