cmd, eth, node, rpc, xeth: use single-instance services

This commit is contained in:
Péter Szilágyi
2015-11-26 18:35:44 +02:00
parent 1e806c4c77
commit 3e1000fda3
17 changed files with 330 additions and 295 deletions

View File

@ -19,7 +19,6 @@ package xeth
import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/eth"
)
type State struct {
@ -46,7 +45,7 @@ func (self *State) SafeGet(addr string) *Object {
func (self *State) safeGet(addr string) *state.StateObject {
object := self.state.GetStateObject(common.HexToAddress(addr))
if object == nil {
object = state.NewStateObject(common.HexToAddress(addr), self.xeth.backend.Service("eth").(*eth.Ethereum).ChainDb())
object = state.NewStateObject(common.HexToAddress(addr), self.xeth.EthereumService().ChainDb())
}
return object
}

View File

@ -100,8 +100,8 @@ func New(stack *node.Node, frontend Frontend) *XEth {
ethereum *eth.Ethereum
whisper *whisper.Whisper
)
stack.SingletonService(&ethereum)
stack.SingletonService(&whisper)
stack.Service(&ethereum)
stack.Service(&whisper)
xeth := &XEth{
backend: stack,
@ -130,7 +130,7 @@ func New(stack *node.Node, frontend Frontend) *XEth {
func (self *XEth) EthereumService() *eth.Ethereum {
var ethereum *eth.Ethereum
if _, err := self.backend.SingletonService(&ethereum); err != nil {
if err := self.backend.Service(&ethereum); err != nil {
return nil
}
return ethereum
@ -138,7 +138,7 @@ func (self *XEth) EthereumService() *eth.Ethereum {
func (self *XEth) WhisperService() *whisper.Whisper {
var whisper *whisper.Whisper
if _, err := self.backend.SingletonService(&whisper); err != nil {
if err := self.backend.Service(&whisper); err != nil {
return nil
}
return whisper