forked from cerc-io/laconicd-deprecated
Fill out a bit more
This commit is contained in:
parent
1756896894
commit
e70d247dfb
25
main.go
25
main.go
@ -93,23 +93,44 @@ func (od *OurDatabase) TrieDB() *eth_trie.Database {
|
|||||||
// Implementation of eth_state.Trie
|
// Implementation of eth_state.Trie
|
||||||
type OurTrie struct {
|
type OurTrie struct {
|
||||||
// This is essentially part of the KVStore for a specific prefix
|
// This is essentially part of the KVStore for a specific prefix
|
||||||
st store.KVStore
|
st store.CommitKVStore
|
||||||
prefix []byte
|
prefix []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ot *OurTrie) makePrefix(key []byte) []byte {
|
||||||
|
kk := make([]byte, len(ot.prefix)+len(key))
|
||||||
|
copy(kk, ot.prefix)
|
||||||
|
copy(kk[len(ot.prefix):], key)
|
||||||
|
return kk
|
||||||
|
}
|
||||||
|
|
||||||
func (ot *OurTrie) TryGet(key []byte) ([]byte, error) {
|
func (ot *OurTrie) TryGet(key []byte) ([]byte, error) {
|
||||||
return nil, nil
|
if ot.prefix == nil {
|
||||||
|
return ot.st.Get(key), nil
|
||||||
|
}
|
||||||
|
return ot.st.Get(ot.makePrefix(key)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ot *OurTrie) TryUpdate(key, value []byte) error {
|
func (ot *OurTrie) TryUpdate(key, value []byte) error {
|
||||||
|
if ot.prefix == nil {
|
||||||
|
ot.st.Set(key, value)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
ot.st.Set(ot.makePrefix(key), value)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ot *OurTrie) TryDelete(key []byte) error {
|
func (ot *OurTrie) TryDelete(key []byte) error {
|
||||||
|
if ot.prefix == nil {
|
||||||
|
ot.st.Delete(key)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
ot.st.Delete(ot.makePrefix(key))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ot *OurTrie) Commit(onleaf eth_trie.LeafCallback) (eth_common.Hash, error) {
|
func (ot *OurTrie) Commit(onleaf eth_trie.LeafCallback) (eth_common.Hash, error) {
|
||||||
|
ot.st.Commit() // TODO save commitID
|
||||||
return eth_common.Hash{}, nil
|
return eth_common.Hash{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user