aboutsummaryrefslogtreecommitdiffstats
path: root/trie
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-03-01 03:52:10 +0800
committerobscuren <geffobscura@gmail.com>2015-03-01 03:52:29 +0800
commitae45a39dc1cddac885090872cefc6799b4a4c1d9 (patch)
tree58a36925e67557d24743ccb5fd5072644996dc25 /trie
parent7ab13e0f17e9d1b783d93bd4952cc6d7cc77ea7f (diff)
downloaddexon-ae45a39dc1cddac885090872cefc6799b4a4c1d9.tar.gz
dexon-ae45a39dc1cddac885090872cefc6799b4a4c1d9.tar.zst
dexon-ae45a39dc1cddac885090872cefc6799b4a4c1d9.zip
Secure trie
Diffstat (limited to 'trie')
-rw-r--r--trie/secure_trie.go32
-rw-r--r--trie/trie_test.go1
2 files changed, 32 insertions, 1 deletions
diff --git a/trie/secure_trie.go b/trie/secure_trie.go
new file mode 100644
index 000000000..c6ef90351
--- /dev/null
+++ b/trie/secure_trie.go
@@ -0,0 +1,32 @@
+package trie
+
+import "github.com/ethereum/go-ethereum/crypto"
+
+type SecureTrie struct {
+ *Trie
+}
+
+func NewSecure(root []byte, backend Backend) *SecureTrie {
+ return &SecureTrie{New(root, backend)}
+}
+
+func (self *SecureTrie) Update(key, value []byte) Node {
+ return self.Trie.Update(crypto.Sha3(key), value)
+}
+func (self *SecureTrie) UpdateString(key, value string) Node {
+ return self.Update([]byte(key), []byte(value))
+}
+
+func (self *SecureTrie) Get(key []byte) []byte {
+ return self.Trie.Get(crypto.Sha3(key))
+}
+func (self *SecureTrie) GetString(key string) []byte {
+ return self.Get([]byte(key))
+}
+
+func (self *SecureTrie) Delete(key []byte) Node {
+ return self.Trie.Delete(crypto.Sha3(key))
+}
+func (self *SecureTrie) DeletString(key string) Node {
+ return self.Delete([]byte(key))
+}
diff --git a/trie/trie_test.go b/trie/trie_test.go
index 4b185f355..4b0243bcf 100644
--- a/trie/trie_test.go
+++ b/trie/trie_test.go
@@ -274,7 +274,6 @@ func TestLargeData(t *testing.T) {
trie.Update(value2.k, value2.v)
vals[string(value.k)] = value
vals[string(value2.k)] = value2
- fmt.Println(value, "\n", value2)
}
it := trie.Iterator()