trie.go 733 B

12345678910111213141516171819202122232425262728293031
  1. package helper
  2. import "github.com/ethereum/go-ethereum/trie"
  3. type MemDatabase struct {
  4. db map[string][]byte
  5. }
  6. func NewMemDatabase() (*MemDatabase, error) {
  7. db := &MemDatabase{db: make(map[string][]byte)}
  8. return db, nil
  9. }
  10. func (db *MemDatabase) Put(key []byte, value []byte) {
  11. db.db[string(key)] = value
  12. }
  13. func (db *MemDatabase) Get(key []byte) ([]byte, error) {
  14. return db.db[string(key)], nil
  15. }
  16. func (db *MemDatabase) Delete(key []byte) error {
  17. delete(db.db, string(key))
  18. return nil
  19. }
  20. func (db *MemDatabase) Print() {}
  21. func (db *MemDatabase) Close() {}
  22. func (db *MemDatabase) LastKnownTD() []byte { return nil }
  23. func NewTrie() *trie.Trie {
  24. db, _ := NewMemDatabase()
  25. return trie.New(nil, db)
  26. }