From 64701e388c3f603a4fad5b6ff45ba2633b3f645e Mon Sep 17 00:00:00 2001
From: obscuren <geffobscura@gmail.com>
Date: Tue, 20 May 2014 22:43:59 +0200
Subject: [PATCH] Fixed state issue
---
 ethchain/state.go | 3 ---
 ethpub/types.go   | 8 ++++++++
 2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/ethchain/state.go b/ethchain/state.go
index 63c4a32a6..db715f1cb 100644
--- a/ethchain/state.go
+++ b/ethchain/state.go
@@ -61,9 +61,6 @@ func (s *State) GetStateObject(addr []byte) *StateObject {
 	cachedStateObject := s.states[string(addr)]
 	if cachedStateObject != nil {
 		stateObject.state = cachedStateObject
-	} else {
-		// If it isn't cached, cache the state
-		s.states[string(addr)] = stateObject.state
 	}
 
 	return stateObject
diff --git a/ethpub/types.go b/ethpub/types.go
index 5d3bfcaaa..77cca78b9 100644
--- a/ethpub/types.go
+++ b/ethpub/types.go
@@ -104,6 +104,14 @@ func (c *PStateObject) Nonce() int {
 	return 0
 }
 
+func (c *PStateObject) Root() string {
+	if c.object != nil {
+		return ethutil.Hex(ethutil.NewValue(c.object.State().Root()).Bytes())
+	}
+
+	return "<err>"
+}
+
 func (c *PStateObject) IsContract() bool {
 	if c.object != nil {
 		return len(c.object.Script()) > 0
-- 
GitLab