diff options
Diffstat (limited to 'trie/trie.go')
-rw-r--r-- | trie/trie.go | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/trie/trie.go b/trie/trie.go index 93e189e2e..55598af98 100644 --- a/trie/trie.go +++ b/trie/trie.go @@ -22,7 +22,7 @@ import ( "fmt" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/crypto/sha3" "github.com/ethereum/go-ethereum/logger" "github.com/ethereum/go-ethereum/logger/glog" ) @@ -30,11 +30,14 @@ import ( var ( // This is the known root hash of an empty trie. emptyRoot = common.HexToHash("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") - // This is the known hash of an empty state trie entry. - emptyState = crypto.Keccak256Hash(nil) + emptyState common.Hash ) +func init() { + sha3.NewKeccak256().Sum(emptyState[:0]) +} + // Database must be implemented by backing stores for the trie. type Database interface { DatabaseWriter @@ -374,6 +377,9 @@ func (t *Trie) delete(n node, prefix, key []byte) (bool, node, error) { // n still contains at least two values and cannot be reduced. return true, n, nil + case valueNode: + return true, nil, nil + case nil: return false, nil, nil |