diff options
author | Felix Lange <fjl@twurst.com> | 2015-07-06 07:19:48 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2015-09-23 04:53:49 +0800 |
commit | 565d9f2306d19f63be6a6e1b8fc480af8dca9617 (patch) | |
tree | 5474c7c534aaeff2b82c84346e53d899f7551555 /core/types | |
parent | 6b91a4abe529ea4f01771209e080b118ab847fe9 (diff) | |
download | dexon-565d9f2306d19f63be6a6e1b8fc480af8dca9617.tar dexon-565d9f2306d19f63be6a6e1b8fc480af8dca9617.tar.gz dexon-565d9f2306d19f63be6a6e1b8fc480af8dca9617.tar.bz2 dexon-565d9f2306d19f63be6a6e1b8fc480af8dca9617.tar.lz dexon-565d9f2306d19f63be6a6e1b8fc480af8dca9617.tar.xz dexon-565d9f2306d19f63be6a6e1b8fc480af8dca9617.tar.zst dexon-565d9f2306d19f63be6a6e1b8fc480af8dca9617.zip |
core, trie: new trie
Diffstat (limited to 'core/types')
-rw-r--r-- | core/types/derive_sha.go | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/core/types/derive_sha.go b/core/types/derive_sha.go index 478edb0e8..00c42c5bc 100644 --- a/core/types/derive_sha.go +++ b/core/types/derive_sha.go @@ -17,8 +17,9 @@ package types import ( + "bytes" + "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/trie" ) @@ -29,12 +30,12 @@ type DerivableList interface { } func DeriveSha(list DerivableList) common.Hash { - db, _ := ethdb.NewMemDatabase() - trie := trie.New(nil, db) + keybuf := new(bytes.Buffer) + trie := new(trie.Trie) for i := 0; i < list.Len(); i++ { - key, _ := rlp.EncodeToBytes(uint(i)) - trie.Update(key, list.GetRlp(i)) + keybuf.Reset() + rlp.Encode(keybuf, uint(i)) + trie.Update(keybuf.Bytes(), list.GetRlp(i)) } - - return common.BytesToHash(trie.Root()) + return trie.Hash() } |