package core import ( "github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/eth/downloader" "github.com/ethereum/go-ethereum/event" "github.com/ethereum/go-ethereum/p2p" ) // TODO move this to types? type Backend interface { AccountManager() *accounts.Manager BlockProcessor() *BlockProcessor ChainManager() *ChainManager TxPool() *TxPool PeerCount() int IsListening() bool Peers() []*p2p.Peer BlockDb() common.Database StateDb() common.Database EventMux() *event.TypeMux Downloader() *downloader.Downloader }