Skip to content

Commit a8d5879

Browse files
committed
more compatibility changes for typescript compatibility. edge hash now created by concatenating source and target strings, null values excluded from payload.
1 parent e0ae070 commit a8d5879

File tree

4 files changed

+12
-8
lines changed

4 files changed

+12
-8
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "koi-net"
7-
version = "1.1.0-beta.6"
7+
version = "1.1.0-beta.7"
88
description = "Implementation of KOI-net protocol in Python"
99
authors = [
1010
{name = "Luke Miller", email = "[email protected]"}

src/koi_net/protocol/edge.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from pydantic import BaseModel
33
from rid_lib import RIDType
44
from rid_lib.ext.bundle import Bundle
5+
from rid_lib.ext.utils import sha256_hash
56
from rid_lib.types import KoiNetEdge, KoiNetNode
67

78

@@ -27,7 +28,9 @@ def generate_edge_bundle(
2728
rid_types: list[RIDType],
2829
edge_type: EdgeType
2930
) -> Bundle:
30-
edge_rid = KoiNetEdge.generate(source, target)
31+
edge_rid = KoiNetEdge(sha256_hash(
32+
str(source) + str(target)
33+
))
3134
edge_profile = EdgeProfile(
3235
source=source,
3336
target=target,

src/koi_net/protocol/envelope.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import logging
22
from typing import Generic, TypeVar
3-
from pydantic import BaseModel
3+
from pydantic import BaseModel, ConfigDict
44
from rid_lib.types import KoiNetNode
55

66
from .secure import PrivateKey, PublicKey
@@ -13,6 +13,8 @@
1313
T = TypeVar("T", bound=RequestModels | ResponseModels)
1414

1515
class SignedEnvelope(BaseModel, Generic[T]):
16+
model_config = ConfigDict(exclude_none=True)
17+
1618
payload: T
1719
source_node: KoiNetNode
1820
target_node: KoiNetNode
@@ -30,10 +32,12 @@ def verify_with(self, pub_key: PublicKey):
3032

3133
pub_key.verify(
3234
self.signature,
33-
unsigned_envelope.model_dump_json().encode()
35+
unsigned_envelope.model_dump_json(exclude_none=True).encode()
3436
)
3537

3638
class UnsignedEnvelope(BaseModel, Generic[T]):
39+
model_config = ConfigDict(exclude_none=True)
40+
3741
payload: T
3842
source_node: KoiNetNode
3943
target_node: KoiNetNode
@@ -43,7 +47,7 @@ def sign_with(self, priv_key: PrivateKey) -> SignedEnvelope[T]:
4347
logger.debug(f"Type: [{type(self.payload)}]")
4448

4549
signature = priv_key.sign(
46-
self.model_dump_json().encode()
50+
self.model_dump_json(exclude_none=True).encode()
4751
)
4852

4953
return SignedEnvelope(

src/koi_net/protocol/event.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ class Event(BaseModel):
1515
manifest: Manifest | None = None
1616
contents: dict | None = None
1717

18-
class Config:
19-
exclude_none = True
20-
2118
def __repr__(self):
2219
return f"<Event '{self.rid}' event type: '{self.event_type}'>"
2320

0 commit comments

Comments
 (0)