aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-05-13 22:38:47 +0800
committerobscuren <geffobscura@gmail.com>2014-05-13 22:38:47 +0800
commitb0798e0a72fef9823053b064f64a1a49681b10ca (patch)
tree0ff11c295033631379d8570b9f2dc2c8db632e2a
parent9831ba20b234a38f779af9aa49ee88d571d57c6e (diff)
parentc9ac5b0f74e3b1b3026fa1351e682916bf8f7c71 (diff)
downloadgo-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.go3
-rw-r--r--ethereum.go15
-rw-r--r--ethpub/pub.go23
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()
}