Skip to content
This repository was archived by the owner on May 23, 2023. It is now read-only.

Commit e3c56a1

Browse files
committed
Added ListeningDB
1 parent c4e77e1 commit e3c56a1

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

ethereum/db.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,37 @@ def __hash__(self):
3838

3939

4040
DB = EphemDB = _EphemDB
41+
42+
43+
# Used for SPV proof creation
44+
class ListeningDB(object):
45+
46+
def __init__(self, db):
47+
self.db = db
48+
self.kv = {}
49+
50+
def get(self, key):
51+
if key not in self.kv:
52+
self.kv[key] = self.db.get(key)
53+
return self.db.get(key)
54+
55+
def put(self, key, value):
56+
self.db.put(key, value)
57+
58+
def commit(self):
59+
pass
60+
61+
def delete(self, key):
62+
self.db.delete(key)
63+
64+
def _has_key(self, key):
65+
return self.db._has_key(key)
66+
67+
def __contains__(self, key):
68+
return self.db.__contains__(key)
69+
70+
def __eq__(self, other):
71+
return self.db == other
72+
73+
def __hash__(self):
74+
return self.db.__hash__()

0 commit comments

Comments
 (0)