diff options
| author | Yuval Adam <_@yuv.al> | 2022-01-10 15:05:04 +0200 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2022-01-10 15:05:10 +0200 |
| commit | b1125785fe78362fe71db4b2cccd2077113fb0e9 (patch) | |
| tree | 9756d1e88be0598ffed67ad3239d2edab64b999b | |
| parent | de1515dee374f96698681320f88c29cdd1e323bb (diff) | |
Initial Event class with id hash
| -rw-r--r-- | nostr/event.py | 27 | ||||
| -rw-r--r-- | tests/test_event.py | 6 |
2 files changed, 33 insertions, 0 deletions
diff --git a/nostr/event.py b/nostr/event.py new file mode 100644 index 0000000..17008a9 --- /dev/null +++ b/nostr/event.py @@ -0,0 +1,27 @@ +import hashlib +import json + +from enum import Enum +from time import time + + +class EventKind(Enum): + SET_METADATA = 0 + TEXT_NOTE = 1 + RECOMMEND_SERVER = 2 + + +class Event: + def __init__(self, pubkey, content, tags=None, created_at=None): + self.pubkey = pubkey.lower() + self.created_at = created_at or int(time()) + self.kind = 0 + self.tags = tags or [] + self.content = content + self.sig = 0 + self.id = self.get_event_id() + + def get_event_id(self): + data = [0, self.pubkey, self.created_at, self.kind, self.tags, self.content] + jd = json.dumps(data).encode("utf-8") + return hashlib.sha256(jd).hexdigest() diff --git a/tests/test_event.py b/tests/test_event.py new file mode 100644 index 0000000..f7645ad --- /dev/null +++ b/tests/test_event.py @@ -0,0 +1,6 @@ +from nostr.event import Event + + +def test_event_id(): + e = Event("1q", "asd", created_at=1641819738) + assert e.id == "bbe84e5f88993ad461f0ee82f746ed5f1aa023c53187185c54d95561deb2651f" |
