diff --git a/trie/visual.go b/trie/visual.go index 50eb000b9b976303e7c0c55b4eddd3ed3dd66587..d465c655997b6b8124ba1019f34b4e519abea898 100644 --- a/trie/visual.go +++ b/trie/visual.go @@ -24,6 +24,7 @@ import ( "math/big" "github.com/ledgerwatch/turbo-geth/common" + "github.com/ledgerwatch/turbo-geth/core/types/accounts" "github.com/ledgerwatch/turbo-geth/visual" ) @@ -438,10 +439,14 @@ func hexToQuad(nd node, hex []byte, newTrie *Trie) { case nil: return case valueNode: - _, newTrie.root = newTrie.insert(newTrie.root, keyHexToQuad(hex), 0, n) + nCopy := make(valueNode, len(n)) + copy(nCopy, n) + _, newTrie.root = newTrie.insert(newTrie.root, keyHexToQuad(hex), 0, nCopy) return case *accountNode: - _, newTrie.root = newTrie.insert(newTrie.root, keyHexToQuad(hex), 0, &accountNode{n.Account, nil, true}) + accountCopy := accounts.NewAccount() + accountCopy.Copy(&n.Account) + _, newTrie.root = newTrie.insert(newTrie.root, keyHexToQuad(hex), 0, &accountNode{accountCopy, nil, true}) aHex := hex if aHex[len(aHex)-1] == 16 { aHex = aHex[:len(aHex)-1]