package core import ( "container/list" "fmt" "github.com/ethereum/go-ethereum/core/types" // "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/event" ) // Implement our EthTest Manager type TestManager struct { // stateManager *StateManager eventMux *event.TypeMux db common.Database txPool *TxPool blockChain *ChainManager Blocks []*types.Block } func (s *TestManager) IsListening() bool { return false } func (s *TestManager) IsMining() bool { return false } func (s *TestManager) PeerCount() int { return 0 } func (s *TestManager) Peers() *list.List { return list.New() } func (s *TestManager) ChainManager() *ChainManager { return s.blockChain } func (tm *TestManager) TxPool() *TxPool { return tm.txPool } // func (tm *TestManager) StateManager() *StateManager { // return tm.stateManager // } func (tm *TestManager) EventMux() *event.TypeMux { return tm.eventMux } // func (tm *TestManager) KeyManager() *crypto.KeyManager { // return nil // } func (tm *TestManager) Db() common.Database { return tm.db } func NewTestManager() *TestManager { db, err := ethdb.NewMemDatabase() if err != nil { fmt.Println("Could not create mem-db, failing") return nil } testManager := &TestManager{} testManager.eventMux = new(event.TypeMux) testManager.db = db // testManager.txPool = NewTxPool(testManager) // testManager.blockChain = NewChainManager(testManager) // testManager.stateManager = NewStateManager(testManager) // Start the tx pool testManager.txPool.Start() return testManager }