diff options
author | obscuren <geffobscura@gmail.com> | 2014-09-29 18:57:51 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-09-29 18:57:51 +0800 |
commit | ab6ede51d7fedb9270cab08ee732a834be34dab2 (patch) | |
tree | d8252f27d51c456e637140a312cadfe2ced71528 /ethchain/helper_test.go | |
parent | ea0357bf02b61db94bd0ad8806ba7337a55a4f79 (diff) | |
download | go-tangerine-ab6ede51d7fedb9270cab08ee732a834be34dab2.tar.gz go-tangerine-ab6ede51d7fedb9270cab08ee732a834be34dab2.tar.zst go-tangerine-ab6ede51d7fedb9270cab08ee732a834be34dab2.zip |
Working on new (blocking) event machine.
The new event machine will be used for loose coupling and handle the
communications between the services:
1) Block pool finds blocks which "links" with our current canonical
chain
2) Posts the blocks on to the event machine
3) State manager receives blocks & processes them
4) Broadcasts new post block event
Diffstat (limited to 'ethchain/helper_test.go')
-rw-r--r-- | ethchain/helper_test.go | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/ethchain/helper_test.go b/ethchain/helper_test.go new file mode 100644 index 000000000..75d7771fc --- /dev/null +++ b/ethchain/helper_test.go @@ -0,0 +1,88 @@ +package ethchain + +import ( + "container/list" + "fmt" + + "github.com/ethereum/eth-go/ethcrypto" + "github.com/ethereum/eth-go/ethdb" + "github.com/ethereum/eth-go/ethreact" + "github.com/ethereum/eth-go/ethutil" + "github.com/ethereum/eth-go/ethwire" +) + +// Implement our EthTest Manager +type TestManager struct { + stateManager *StateManager + reactor *ethreact.ReactorEngine + + txPool *TxPool + blockChain *BlockChain + Blocks []*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) BlockChain() *BlockChain { + return s.blockChain +} + +func (tm *TestManager) TxPool() *TxPool { + return tm.txPool +} + +func (tm *TestManager) StateManager() *StateManager { + return tm.stateManager +} + +func (tm *TestManager) Reactor() *ethreact.ReactorEngine { + return tm.reactor +} +func (tm *TestManager) Broadcast(msgType ethwire.MsgType, data []interface{}) { + fmt.Println("Broadcast not implemented") +} + +func (tm *TestManager) ClientIdentity() ethwire.ClientIdentity { + return nil +} +func (tm *TestManager) KeyManager() *ethcrypto.KeyManager { + return nil +} + +func (tm *TestManager) Db() ethutil.Database { return nil } +func NewTestManager() *TestManager { + ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "ETH") + + db, err := ethdb.NewMemDatabase() + if err != nil { + fmt.Println("Could not create mem-db, failing") + return nil + } + ethutil.Config.Db = db + + testManager := &TestManager{} + testManager.reactor = ethreact.New() + + testManager.txPool = NewTxPool(testManager) + testManager.blockChain = NewBlockChain(testManager) + testManager.stateManager = NewStateManager(testManager) + + // Start the tx pool + testManager.txPool.Start() + + return testManager +} |