diff options
author | Jeffrey Wilcke <obscuren@users.noreply.github.com> | 2014-10-23 22:46:18 +0800 |
---|---|---|
committer | Jeffrey Wilcke <obscuren@users.noreply.github.com> | 2014-10-23 22:46:18 +0800 |
commit | 119c5b40a7ed1aea1c871c0cb56956b8ef9303d9 (patch) | |
tree | b021423da04c9ff319a77549b473b6bad4930dd4 /ethdb/memory_database.go | |
parent | 50fd46924900869e7210217c6a07979b544991c8 (diff) | |
parent | 184055b3e2995894ccaba364484223e488730627 (diff) | |
download | go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar.gz go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar.bz2 go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar.lz go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar.xz go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.tar.zst go-tangerine-119c5b40a7ed1aea1c871c0cb56956b8ef9303d9.zip |
Merge pull request #150 from fjl/develop
Merge eth-go repo into go-ethereum
Diffstat (limited to 'ethdb/memory_database.go')
-rw-r--r-- | ethdb/memory_database.go | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/ethdb/memory_database.go b/ethdb/memory_database.go new file mode 100644 index 000000000..459373eea --- /dev/null +++ b/ethdb/memory_database.go @@ -0,0 +1,63 @@ +package ethdb + +import ( + "fmt" + + "github.com/ethereum/go-ethereum/ethutil" +) + +/* + * This is a test memory database. Do not use for any production it does not get persisted + */ +type MemDatabase struct { + db map[string][]byte +} + +func NewMemDatabase() (*MemDatabase, error) { + db := &MemDatabase{db: make(map[string][]byte)} + + return db, nil +} + +func (db *MemDatabase) Put(key []byte, value []byte) { + db.db[string(key)] = value +} + +func (db *MemDatabase) Get(key []byte) ([]byte, error) { + return db.db[string(key)], nil +} + +/* +func (db *MemDatabase) GetKeys() []*ethutil.Key { + data, _ := db.Get([]byte("KeyRing")) + + return []*ethutil.Key{ethutil.NewKeyFromBytes(data)} +} +*/ + +func (db *MemDatabase) Delete(key []byte) error { + delete(db.db, string(key)) + + return nil +} + +func (db *MemDatabase) Print() { + for key, val := range db.db { + fmt.Printf("%x(%d): ", key, len(key)) + node := ethutil.NewValueFromBytes(val) + fmt.Printf("%q\n", node.Interface()) + } +} + +func (db *MemDatabase) Close() { +} + +func (db *MemDatabase) LastKnownTD() []byte { + data, _ := db.Get([]byte("LastKnownTotalDifficulty")) + + if len(data) == 0 || data == nil { + data = []byte{0x0} + } + + return data +} |