| 
									
										
										
										
											2015-07-07 02:54:22 +02:00
										 |  |  | // Copyright 2014 The go-ethereum Authors | 
					
						
							| 
									
										
										
										
											2015-07-22 18:48:40 +02:00
										 |  |  | // This file is part of the go-ethereum library. | 
					
						
							| 
									
										
										
										
											2015-07-07 02:54:22 +02:00
										 |  |  | // | 
					
						
							| 
									
										
										
										
											2015-07-23 18:35:11 +02:00
										 |  |  | // The go-ethereum library is free software: you can redistribute it and/or modify | 
					
						
							| 
									
										
										
										
											2015-07-07 02:54:22 +02:00
										 |  |  | // it under the terms of the GNU Lesser General Public License as published by | 
					
						
							|  |  |  | // the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  | // (at your option) any later version. | 
					
						
							|  |  |  | // | 
					
						
							| 
									
										
										
										
											2015-07-22 18:48:40 +02:00
										 |  |  | // The go-ethereum library is distributed in the hope that it will be useful, | 
					
						
							| 
									
										
										
										
											2015-07-07 02:54:22 +02:00
										 |  |  | // but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							| 
									
										
										
										
											2015-07-22 18:48:40 +02:00
										 |  |  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
					
						
							| 
									
										
										
										
											2015-07-07 02:54:22 +02:00
										 |  |  | // GNU Lesser General Public License for more details. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | // You should have received a copy of the GNU Lesser General Public License | 
					
						
							| 
									
										
										
										
											2015-07-22 18:48:40 +02:00
										 |  |  | // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. | 
					
						
							| 
									
										
										
										
											2015-07-07 02:54:22 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-04 10:28:02 +01:00
										 |  |  | package core | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"container/list" | 
					
						
							|  |  |  | 	"fmt" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-04 10:53:49 +01:00
										 |  |  | 	"github.com/ethereum/go-ethereum/core/types" | 
					
						
							| 
									
										
										
										
											2015-06-10 13:54:43 +02:00
										 |  |  | 	"github.com/ethereum/go-ethereum/ethdb" | 
					
						
							| 
									
										
										
										
											2014-10-23 15:01:27 +02:00
										 |  |  | 	"github.com/ethereum/go-ethereum/event" | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Implement our EthTest Manager | 
					
						
							|  |  |  | type TestManager struct { | 
					
						
							| 
									
										
										
										
											2014-11-14 20:58:09 -06:00
										 |  |  | 	// stateManager *StateManager | 
					
						
							|  |  |  | 	eventMux *event.TypeMux | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-14 09:35:57 +02:00
										 |  |  | 	db         ethdb.Database | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | 	txPool     *TxPool | 
					
						
							| 
									
										
										
										
											2015-08-31 17:09:50 +02:00
										 |  |  | 	blockChain *BlockChain | 
					
						
							| 
									
										
										
										
											2014-11-18 19:52:45 +01:00
										 |  |  | 	Blocks     []*types.Block | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-11 09:55:48 +08:00
										 |  |  | func (tm *TestManager) IsListening() bool { | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | 	return false | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-11 09:55:48 +08:00
										 |  |  | func (tm *TestManager) IsMining() bool { | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | 	return false | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-11 09:55:48 +08:00
										 |  |  | func (tm *TestManager) PeerCount() int { | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | 	return 0 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-11 09:55:48 +08:00
										 |  |  | func (tm *TestManager) Peers() *list.List { | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | 	return list.New() | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-11 09:55:48 +08:00
										 |  |  | func (tm *TestManager) BlockChain() *BlockChain { | 
					
						
							|  |  |  | 	return tm.blockChain | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func (tm *TestManager) TxPool() *TxPool { | 
					
						
							|  |  |  | 	return tm.txPool | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-14 20:58:09 -06:00
										 |  |  | // func (tm *TestManager) StateManager() *StateManager { | 
					
						
							|  |  |  | // 	return tm.stateManager | 
					
						
							|  |  |  | // } | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-14 02:01:46 +02:00
										 |  |  | func (tm *TestManager) EventMux() *event.TypeMux { | 
					
						
							|  |  |  | 	return tm.eventMux | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2015-03-11 14:43:39 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | // func (tm *TestManager) KeyManager() *crypto.KeyManager { | 
					
						
							|  |  |  | // 	return nil | 
					
						
							|  |  |  | // } | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-14 09:35:57 +02:00
										 |  |  | func (tm *TestManager) Db() ethdb.Database { | 
					
						
							| 
									
										
										
										
											2014-10-14 02:01:46 +02:00
										 |  |  | 	return tm.db | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | func NewTestManager() *TestManager { | 
					
						
							|  |  |  | 	db, err := ethdb.NewMemDatabase() | 
					
						
							|  |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		fmt.Println("Could not create mem-db, failing") | 
					
						
							|  |  |  | 		return nil | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	testManager := &TestManager{} | 
					
						
							| 
									
										
										
										
											2014-10-14 02:01:46 +02:00
										 |  |  | 	testManager.eventMux = new(event.TypeMux) | 
					
						
							|  |  |  | 	testManager.db = db | 
					
						
							| 
									
										
										
										
											2014-11-14 20:58:09 -06:00
										 |  |  | 	// testManager.txPool = NewTxPool(testManager) | 
					
						
							| 
									
										
										
										
											2015-08-31 17:09:50 +02:00
										 |  |  | 	// testManager.blockChain = NewBlockChain(testManager) | 
					
						
							| 
									
										
										
										
											2014-11-14 20:58:09 -06:00
										 |  |  | 	// testManager.stateManager = NewStateManager(testManager) | 
					
						
							| 
									
										
										
										
											2014-09-29 12:57:51 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	return testManager | 
					
						
							|  |  |  | } |