diff options
author | obscuren <geffobscura@gmail.com> | 2014-10-31 17:59:17 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-10-31 17:59:17 +0800 |
commit | 3ee0461cb5b6e4a5e2d287180afbdb681805a662 (patch) | |
tree | f245667a9e3f5f0ff23bb1c89f4f7cc783f4949c /chain/derive_sha.go | |
parent | 8e0a39f33f9d24ebeca9cc88edf24cc6294552d7 (diff) | |
download | dexon-3ee0461cb5b6e4a5e2d287180afbdb681805a662.tar dexon-3ee0461cb5b6e4a5e2d287180afbdb681805a662.tar.gz dexon-3ee0461cb5b6e4a5e2d287180afbdb681805a662.tar.bz2 dexon-3ee0461cb5b6e4a5e2d287180afbdb681805a662.tar.lz dexon-3ee0461cb5b6e4a5e2d287180afbdb681805a662.tar.xz dexon-3ee0461cb5b6e4a5e2d287180afbdb681805a662.tar.zst dexon-3ee0461cb5b6e4a5e2d287180afbdb681805a662.zip |
Moved ethchain to chain
Diffstat (limited to 'chain/derive_sha.go')
-rw-r--r-- | chain/derive_sha.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/chain/derive_sha.go b/chain/derive_sha.go new file mode 100644 index 000000000..92db90d95 --- /dev/null +++ b/chain/derive_sha.go @@ -0,0 +1,20 @@ +package chain + +import ( + "github.com/ethereum/go-ethereum/ethtrie" + "github.com/ethereum/go-ethereum/ethutil" +) + +type DerivableList interface { + Len() int + GetRlp(i int) []byte +} + +func DeriveSha(list DerivableList) []byte { + trie := ethtrie.New(ethutil.Config.Db, "") + for i := 0; i < list.Len(); i++ { + trie.Update(string(ethutil.NewValue(i).Encode()), string(list.GetRlp(i))) + } + + return trie.GetRoot() +} |