aboutsummaryrefslogtreecommitdiffstats
path: root/ethstate/state_object.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-09-15 21:42:12 +0800
committerobscuren <geffobscura@gmail.com>2014-09-15 21:42:12 +0800
commit33a0dec8a157b9687ca6038f4deb011f3f1f7bdc (patch)
tree197b792e06dc3952df93957a39fdf6e44582ac96 /ethstate/state_object.go
parent2f614900e82036e3e8f6f6a714efc43e09aca830 (diff)
downloaddexon-33a0dec8a157b9687ca6038f4deb011f3f1f7bdc.tar.gz
dexon-33a0dec8a157b9687ca6038f4deb011f3f1f7bdc.tar.zst
dexon-33a0dec8a157b9687ca6038f4deb011f3f1f7bdc.zip
Improved catching up and refactored
Diffstat (limited to 'ethstate/state_object.go')
-rw-r--r--ethstate/state_object.go15
1 files changed, 10 insertions, 5 deletions
diff --git a/ethstate/state_object.go b/ethstate/state_object.go
index 6fc0696a8..be083e80a 100644
--- a/ethstate/state_object.go
+++ b/ethstate/state_object.go
@@ -32,7 +32,7 @@ type StateObject struct {
address []byte
// Shared attributes
Balance *big.Int
- CodeHash []byte
+ codeHash []byte
Nonce uint64
// Contract related attributes
State *State
@@ -236,7 +236,7 @@ func (self *StateObject) RefundGas(gas, price *big.Int) {
func (self *StateObject) Copy() *StateObject {
stateObject := NewStateObject(self.Address())
stateObject.Balance.Set(self.Balance)
- stateObject.CodeHash = ethutil.CopyBytes(self.CodeHash)
+ stateObject.codeHash = ethutil.CopyBytes(self.codeHash)
stateObject.Nonce = self.Nonce
if self.State != nil {
stateObject.State = self.State.Copy()
@@ -297,12 +297,17 @@ func (c *StateObject) RlpEncode() []byte {
} else {
root = ""
}
+
+ return ethutil.Encode([]interface{}{c.Nonce, c.Balance, root, c.CodeHash()})
+}
+
+func (c *StateObject) CodeHash() ethutil.Bytes {
var codeHash []byte
if len(c.Code) > 0 {
codeHash = ethcrypto.Sha3Bin(c.Code)
}
- return ethutil.Encode([]interface{}{c.Nonce, c.Balance, root, codeHash})
+ return codeHash
}
func (c *StateObject) RlpDecode(data []byte) {
@@ -314,9 +319,9 @@ func (c *StateObject) RlpDecode(data []byte) {
c.storage = make(map[string]*ethutil.Value)
c.gasPool = new(big.Int)
- c.CodeHash = decoder.Get(3).Bytes()
+ c.codeHash = decoder.Get(3).Bytes()
- c.Code, _ = ethutil.Config.Db.Get(c.CodeHash)
+ c.Code, _ = ethutil.Config.Db.Get(c.codeHash)
}
// Storage change object. Used by the manifest for notifying changes to