aboutsummaryrefslogtreecommitdiffstats
path: root/ethdb/memory_database.go
diff options
context:
space:
mode:
Diffstat (limited to 'ethdb/memory_database.go')
-rw-r--r--ethdb/memory_database.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/ethdb/memory_database.go b/ethdb/memory_database.go
index d50f8f9d4..4fcce1812 100644
--- a/ethdb/memory_database.go
+++ b/ethdb/memory_database.go
@@ -95,3 +95,26 @@ func (db *MemDatabase) LastKnownTD() []byte {
func (db *MemDatabase) Flush() error {
return nil
}
+
+func (db *MemDatabase) NewBatch() Batch {
+ return &memBatch{db: db}
+}
+
+type kv struct{ k, v []byte }
+
+type memBatch struct {
+ db *MemDatabase
+ writes []kv
+}
+
+func (w *memBatch) Put(key, value []byte) error {
+ w.writes = append(w.writes, kv{key, common.CopyBytes(value)})
+ return nil
+}
+
+func (w *memBatch) Write() error {
+ for _, kv := range w.writes {
+ w.db.db[string(kv.k)] = kv.v
+ }
+ return nil
+}