Browse Source

swapserver: small clean-up

master
SomberNight 2 years ago
parent
commit
e94d45edd8
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 9
      electrum/plugins/swapserver/server.py
  2. 25
      electrum/plugins/swapserver/swapserver.py

9
electrum/plugins/swapserver/server.py

@ -1,19 +1,14 @@
import os import os
import asyncio import asyncio
import attr
import random
from collections import defaultdict from collections import defaultdict
from aiohttp import ClientResponse from aiohttp import web
from aiohttp import web, client_exceptions
from aiorpcx import timeout_after, TaskTimeout, ignore_after
from aiorpcx import NetAddress from aiorpcx import NetAddress
from electrum.util import log_exceptions, ignore_exceptions from electrum.util import log_exceptions, ignore_exceptions
from electrum.logging import Logger from electrum.logging import Logger
from electrum.util import EventListener, event_listener from electrum.util import EventListener
from electrum.invoices import PR_PAID, PR_EXPIRED
class SwapServer(Logger, EventListener): class SwapServer(Logger, EventListener):

25
electrum/plugins/swapserver/swapserver.py

@ -25,34 +25,37 @@
import asyncio import asyncio
import os from typing import TYPE_CHECKING
import random
from electrum.plugin import BasePlugin, hook from electrum.plugin import BasePlugin, hook
from electrum.util import log_exceptions, ignore_exceptions
from electrum import ecc
from .server import SwapServer from .server import SwapServer
if TYPE_CHECKING:
from electrum.simple_config import SimpleConfig
from electrum.daemon import Daemon
from electrum.wallet import Abstract_Wallet
class SwapServerPlugin(BasePlugin): class SwapServerPlugin(BasePlugin):
def __init__(self, parent, config, name): def __init__(self, parent, config: 'SimpleConfig', name):
BasePlugin.__init__(self, parent, config, name) BasePlugin.__init__(self, parent, config, name)
self.config = config self.config = config
self.server = None self.server = None
@hook @hook
def daemon_wallet_loaded(self, daemon, wallet): def daemon_wallet_loaded(self, daemon: 'Daemon', wallet: 'Abstract_Wallet'):
# we use the first wallet loaded # we use the first wallet loaded
if self.server is not None: if self.server is not None:
return return
if self.config.get('offline'): if self.config.NETWORK_OFFLINE:
return return
self.server = SwapServer(self.config, wallet) self.server = SwapServer(self.config, wallet)
sm = wallet.lnworker.swap_manager sm = wallet.lnworker.swap_manager
jobs = [ for coro in [
sm.pay_pending_invoices(), sm.pay_pending_invoices(), # FIXME this method can raise, which is not properly handled...?
self.server.run(), self.server.run(),
] ]:
asyncio.run_coroutine_threadsafe(daemon._run(jobs=jobs), daemon.asyncio_loop) asyncio.run_coroutine_threadsafe(daemon.taskgroup.spawn(coro), daemon.asyncio_loop)

Loading…
Cancel
Save