good morning!!!!

Skip to content
Snippets Groups Projects
Commit a82b89e2 authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

Added storage root to dump

parent c8302882
No related branches found
No related tags found
No related merge requests found
......@@ -47,7 +47,6 @@ func (self *LDBDatabase) Get(key []byte) ([]byte, error) {
}
if self.comp {
//fmt.Println("get", dat)
return rle.Decompress(dat)
}
......
......@@ -10,6 +10,7 @@ import (
type Account struct {
Balance string `json:"balance"`
Nonce uint64 `json:"nonce"`
Root string `json:"root"`
CodeHash string `json:"codeHash"`
Storage map[string]string `json:"storage"`
}
......@@ -28,7 +29,7 @@ func (self *State) Dump() []byte {
self.Trie.NewIterator().Each(func(key string, value *ethutil.Value) {
stateObject := NewStateObjectFromBytes([]byte(key), value.Bytes())
account := Account{Balance: stateObject.balance.String(), Nonce: stateObject.Nonce, CodeHash: ethutil.Bytes2Hex(stateObject.codeHash)}
account := Account{Balance: stateObject.balance.String(), Nonce: stateObject.Nonce, Root: ethutil.Bytes2Hex(stateObject.Root()), CodeHash: ethutil.Bytes2Hex(stateObject.codeHash)}
account.Storage = make(map[string]string)
stateObject.EachStorage(func(key string, value *ethutil.Value) {
......
......@@ -283,6 +283,10 @@ func (self *StateObject) Object() *StateObject {
return self
}
func (self *StateObject) Root() []byte {
return self.State.Trie.GetRoot()
}
// Debug stuff
func (self *StateObject) CreateOutputForDiff() {
fmt.Printf("%x %x %x %x\n", self.Address(), self.State.Root(), self.balance.Bytes(), self.Nonce)
......@@ -297,6 +301,7 @@ func (self *StateObject) CreateOutputForDiff() {
// State object encoding methods
func (c *StateObject) RlpEncode() []byte {
fmt.Printf("%x %x\n", c.State.Trie.Root, c.CodeHash())
return ethutil.Encode([]interface{}{c.Nonce, c.balance, c.State.Trie.Root, c.CodeHash()})
}
......
......@@ -178,7 +178,7 @@ func (self *Trie) setRoot(root interface{}) {
switch t := root.(type) {
case string:
if t == "" {
root = crypto.Sha3([]byte(""))
root = crypto.Sha3(ethutil.Encode(""))
}
self.Root = root
case []byte:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment