diff options
author | obscuren <geffobscura@gmail.com> | 2014-05-13 22:38:47 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-05-13 22:38:47 +0800 |
commit | b0798e0a72fef9823053b064f64a1a49681b10ca (patch) | |
tree | 0ff11c295033631379d8570b9f2dc2c8db632e2a | |
parent | 9831ba20b234a38f779af9aa49ee88d571d57c6e (diff) | |
parent | c9ac5b0f74e3b1b3026fa1351e682916bf8f7c71 (diff) | |
download | go-tangerine-b0798e0a72fef9823053b064f64a1a49681b10ca.tar go-tangerine-b0798e0a72fef9823053b064f64a1a49681b10ca.tar.gz go-tangerine-b0798e0a72fef9823053b064f64a1a49681b10ca.tar.bz2 go-tangerine-b0798e0a72fef9823053b064f64a1a49681b10ca.tar.lz go-tangerine-b0798e0a72fef9823053b064f64a1a49681b10ca.tar.xz go-tangerine-b0798e0a72fef9823053b064f64a1a49681b10ca.tar.zst go-tangerine-b0798e0a72fef9823053b064f64a1a49681b10ca.zip |
Merge branch 'develop' of github.com-obscure:ethereum/eth-go into develop
-rw-r--r-- | ethchain/state_manager.go | 3 | ||||
-rw-r--r-- | ethereum.go | 15 | ||||
-rw-r--r-- | ethpub/pub.go | 23 |
3 files changed, 40 insertions, 1 deletions
diff --git a/ethchain/state_manager.go b/ethchain/state_manager.go index dd21a31b1..bc8b46831 100644 --- a/ethchain/state_manager.go +++ b/ethchain/state_manager.go @@ -20,6 +20,9 @@ type EthManager interface { TxPool() *TxPool Broadcast(msgType ethwire.MsgType, data []interface{}) Reactor() *ethutil.ReactorEngine + PeerCount() int + IsMining() bool + IsListening() bool } type StateManager struct { diff --git a/ethereum.go b/ethereum.go index 92c4e4ba1..94e338c56 100644 --- a/ethereum.go +++ b/ethereum.go @@ -65,6 +65,10 @@ type Ethereum struct { // Specifies the desired amount of maximum peers MaxPeers int + Mining bool + + listening bool + reactor *ethutil.ReactorEngine RpcServer *ethrpc.JsonRpcServer @@ -128,6 +132,15 @@ func (s *Ethereum) TxPool() *ethchain.TxPool { func (s *Ethereum) ServerCaps() Caps { return s.serverCaps } +func (s *Ethereum) IsMining() bool { + return s.Mining +} +func (s *Ethereum) PeerCount() int { + return s.peers.Len() +} +func (s *Ethereum) IsListening() bool { + return s.listening +} func (s *Ethereum) AddPeer(conn net.Conn) { peer := NewPeer(conn, s, true) @@ -305,7 +318,9 @@ func (s *Ethereum) Start(seed bool) { ln, err := net.Listen("tcp", ":"+s.Port) if err != nil { log.Println("Connection listening disabled. Acting as client") + s.listening = false } else { + s.listening = true // Starting accepting connections ethutil.Config.Log.Infoln("Ready and accepting connections") // Start the peer handler diff --git a/ethpub/pub.go b/ethpub/pub.go index 4ced632f5..4d1536368 100644 --- a/ethpub/pub.go +++ b/ethpub/pub.go @@ -1,6 +1,7 @@ package ethpub import ( + "encoding/hex" "github.com/ethereum/eth-go/ethchain" "github.com/ethereum/eth-go/ethutil" ) @@ -56,11 +57,31 @@ func (lib *PEthereum) GetStateObject(address string) *PStateObject { return NewPStateObject(nil) } +func (lib *PEthereum) GetPeerCount() int { + return lib.manager.PeerCount() +} + +func (lib *PEthereum) GetIsMining() bool { + return lib.manager.IsMining() +} + +func (lib *PEthereum) GetIsListening() bool { + return lib.manager.IsListening() +} + +func (lib *PEthereum) GetCoinBase() string { + data, _ := ethutil.Config.Db.Get([]byte("KeyRing")) + keyRing := ethutil.NewValueFromBytes(data) + key := keyRing.Get(0).Bytes() + + return lib.SecretToAddress(hex.EncodeToString(key)) +} + func (lib *PEthereum) GetStorage(address, storageAddress string) string { return lib.GetStateObject(address).GetStorage(storageAddress) } -func (lib *PEthereum) GetTxCount(address string) int { +func (lib *PEthereum) GetTxCountAt(address string) int { return lib.GetStateObject(address).Nonce() } |