cmd, eth, node, rpc, xeth: use single-instance services
This commit is contained in:
@ -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
|
||||
}
|
||||
|
@ -100,8 +100,8 @@ func New(stack *node.Node, frontend Frontend) *XEth {
|
||||
ethereum *eth.Ethereum
|
||||
whisper *whisper.Whisper
|
||||
)
|
||||
stack.SingletonService(ðereum)
|
||||
stack.SingletonService(&whisper)
|
||||
stack.Service(ðereum)
|
||||
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(ðereum); err != nil {
|
||||
if err := self.backend.Service(ðereum); 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
|
||||
|
Reference in New Issue
Block a user