Backend no longer needed to resolve import cycle
This commit is contained in:
parent
9de1ad6546
commit
6d41402dce
34
xeth/xeth.go
34
xeth/xeth.go
@ -15,12 +15,10 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/core/state"
|
"github.com/ethereum/go-ethereum/core/state"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/ethereum/go-ethereum/crypto"
|
||||||
"github.com/ethereum/go-ethereum/event"
|
"github.com/ethereum/go-ethereum/eth"
|
||||||
"github.com/ethereum/go-ethereum/event/filter"
|
"github.com/ethereum/go-ethereum/event/filter"
|
||||||
"github.com/ethereum/go-ethereum/logger"
|
"github.com/ethereum/go-ethereum/logger"
|
||||||
"github.com/ethereum/go-ethereum/miner"
|
"github.com/ethereum/go-ethereum/miner"
|
||||||
"github.com/ethereum/go-ethereum/p2p"
|
|
||||||
"github.com/ethereum/go-ethereum/whisper"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -30,30 +28,6 @@ var (
|
|||||||
defaultGas = big.NewInt(90000) //500000
|
defaultGas = big.NewInt(90000) //500000
|
||||||
)
|
)
|
||||||
|
|
||||||
// to resolve the import cycle
|
|
||||||
type Backend interface {
|
|
||||||
BlockProcessor() *core.BlockProcessor
|
|
||||||
ChainManager() *core.ChainManager
|
|
||||||
AccountManager() *accounts.Manager
|
|
||||||
TxPool() *core.TxPool
|
|
||||||
PeerCount() int
|
|
||||||
IsListening() bool
|
|
||||||
Peers() []*p2p.Peer
|
|
||||||
BlockDb() common.Database
|
|
||||||
StateDb() common.Database
|
|
||||||
ExtraDb() common.Database
|
|
||||||
EventMux() *event.TypeMux
|
|
||||||
Whisper() *whisper.Whisper
|
|
||||||
Miner() *miner.Miner
|
|
||||||
|
|
||||||
IsMining() bool
|
|
||||||
StartMining() error
|
|
||||||
StopMining()
|
|
||||||
Version() string
|
|
||||||
ProtocolVersion() int
|
|
||||||
NetworkId() int
|
|
||||||
}
|
|
||||||
|
|
||||||
// Frontend should be implemented by users of XEth. Its methods are
|
// Frontend should be implemented by users of XEth. Its methods are
|
||||||
// called whenever XEth makes a decision that requires user input.
|
// called whenever XEth makes a decision that requires user input.
|
||||||
type Frontend interface {
|
type Frontend interface {
|
||||||
@ -82,7 +56,7 @@ func (dummyFrontend) UnlockAccount([]byte) bool { return false
|
|||||||
func (dummyFrontend) ConfirmTransaction(*types.Transaction) bool { return true }
|
func (dummyFrontend) ConfirmTransaction(*types.Transaction) bool { return true }
|
||||||
|
|
||||||
type XEth struct {
|
type XEth struct {
|
||||||
eth Backend
|
eth *eth.Ethereum
|
||||||
blockProcessor *core.BlockProcessor
|
blockProcessor *core.BlockProcessor
|
||||||
chainManager *core.ChainManager
|
chainManager *core.ChainManager
|
||||||
accountManager *accounts.Manager
|
accountManager *accounts.Manager
|
||||||
@ -110,7 +84,7 @@ type XEth struct {
|
|||||||
// New creates an XEth that uses the given frontend.
|
// New creates an XEth that uses the given frontend.
|
||||||
// If a nil Frontend is provided, a default frontend which
|
// If a nil Frontend is provided, a default frontend which
|
||||||
// confirms all transactions will be used.
|
// confirms all transactions will be used.
|
||||||
func New(eth Backend, frontend Frontend) *XEth {
|
func New(eth *eth.Ethereum, frontend Frontend) *XEth {
|
||||||
xeth := &XEth{
|
xeth := &XEth{
|
||||||
eth: eth,
|
eth: eth,
|
||||||
blockProcessor: eth.BlockProcessor(),
|
blockProcessor: eth.BlockProcessor(),
|
||||||
@ -195,7 +169,7 @@ func (self *XEth) AtStateNum(num int64) *XEth {
|
|||||||
return self.WithState(st)
|
return self.WithState(st)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *XEth) Backend() Backend { return self.eth }
|
func (self *XEth) Backend() *eth.Ethereum { return self.eth }
|
||||||
func (self *XEth) WithState(statedb *state.StateDB) *XEth {
|
func (self *XEth) WithState(statedb *state.StateDB) *XEth {
|
||||||
xeth := &XEth{
|
xeth := &XEth{
|
||||||
eth: self.eth,
|
eth: self.eth,
|
||||||
|
Loading…
Reference in New Issue
Block a user