diff options
author | obscuren <geffobscura@gmail.com> | 2014-09-08 06:50:04 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-09-08 06:50:04 +0800 |
commit | d91357d00ca080c63d81570504e5c45fb15e3841 (patch) | |
tree | 43abf8cb592bf3e59c8d99c4b027028734f9497d | |
parent | 0fea62ec6d33a83e602c804ee4b5b0a7896fd9c6 (diff) | |
download | dexon-d91357d00ca080c63d81570504e5c45fb15e3841.tar.gz dexon-d91357d00ca080c63d81570504e5c45fb15e3841.tar.zst dexon-d91357d00ca080c63d81570504e5c45fb15e3841.zip |
Added GetCode method
-rw-r--r-- | ethstate/state.go | 9 | ||||
-rw-r--r-- | ethstate/state_object.go | 6 |
2 files changed, 14 insertions, 1 deletions
diff --git a/ethstate/state.go b/ethstate/state.go index 2f7f00a32..42bbf021b 100644 --- a/ethstate/state.go +++ b/ethstate/state.go @@ -49,6 +49,15 @@ func (self *State) GetNonce(addr []byte) uint64 { return 0 } +func (self *State) GetCode(addr []byte) []byte { + stateObject := self.GetStateObject(addr) + if stateObject != nil { + return stateObject.Code + } + + return nil +} + // // Setting, updating & deleting state object methods // diff --git a/ethstate/state_object.go b/ethstate/state_object.go index bf4e92583..6fc0696a8 100644 --- a/ethstate/state_object.go +++ b/ethstate/state_object.go @@ -297,8 +297,12 @@ func (c *StateObject) RlpEncode() []byte { } else { root = "" } + var codeHash []byte + if len(c.Code) > 0 { + codeHash = ethcrypto.Sha3Bin(c.Code) + } - return ethutil.Encode([]interface{}{c.Nonce, c.Balance, root, ethcrypto.Sha3Bin(c.Code)}) + return ethutil.Encode([]interface{}{c.Nonce, c.Balance, root, codeHash}) } func (c *StateObject) RlpDecode(data []byte) { |