Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions src/electrum_aionostr/event.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,14 @@
from hashlib import sha256
from typing import Optional

import electrum_ecc as ecc
from electrum_ecc import ECPrivkey, ECPubkey


try:
import rapidjson
import orjson

loads = rapidjson.loads
dumps = functools.partial(rapidjson.dumps, ensure_ascii=False)
loads = orjson.loads
dumps = lambda obj: orjson.dumps(obj).decode() # orjson.dumps returns bytes
except ImportError:
import json

Expand Down
18 changes: 13 additions & 5 deletions src/electrum_aionostr/relay.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import asyncio
import secrets
import logging
import json
from collections import defaultdict, namedtuple
from collections import namedtuple
from typing import Optional, Iterable, Dict, List, Set, Any, TYPE_CHECKING, AsyncGenerator
from dataclasses import dataclass
import time
Expand All @@ -13,6 +12,15 @@
from .event import Event
from .util import normalize_url

try:
import orjson
loads = orjson.loads
dumps = lambda obj: orjson.dumps(obj).decode() # orjson.dumps returns bytes
except ImportError:
import json
loads = json.loads
dumps = json.dumps

if TYPE_CHECKING:
from logging import Logger
from ssl import SSLContext
Expand Down Expand Up @@ -126,7 +134,7 @@ async def _receive_messages(self):
if len(message) > 64000:
self.log.debug(f"got too long message from {self.url=}: {len(message)=}")
continue # not storing or handling msg > this limit
message = json.loads(message)
message = loads(message)

self.log.debug(message) # FIXME spammy (or at least log which relay it's coming from)
if message[0] == 'EVENT':
Expand Down Expand Up @@ -167,10 +175,10 @@ async def _receive_messages(self):

async def send(self, message):
try:
await self.ws.send_str(json.dumps(message))
await self.ws.send_str(dumps(message))
except client_exceptions.ClientConnectionError:
await self.reconnect()
await self.ws.send_str(json.dumps(message))
await self.ws.send_str(dumps(message))

async def add_event(self, event, check_response=False):
if isinstance(event, Event):
Expand Down