1
0

swaps: add some type hints, and force kwargs

This commit is contained in:
SomberNight
2025-06-10 16:18:42 +00:00
parent 2fb4debc7c
commit 47e76b25b1
5 changed files with 28 additions and 16 deletions

View File

@@ -1910,7 +1910,7 @@ class Commands(Logger):
lightning_amount_sat = satoshis(lightning_amount)
onchain_amount_sat = satoshis(onchain_amount)
txid = await wallet.lnworker.swap_manager.normal_swap(
transport,
transport=transport,
lightning_amount_sat=lightning_amount_sat,
expected_onchain_amount_sat=onchain_amount_sat,
password=password,
@@ -1946,7 +1946,7 @@ class Commands(Logger):
claim_fee = sm.get_fee_for_txbatcher()
onchain_amount_sat = satoshis(onchain_amount) + claim_fee
funding_txid = await wallet.lnworker.swap_manager.reverse_swap(
transport,
transport=transport,
lightning_amount_sat=lightning_amount_sat,
expected_onchain_amount_sat=onchain_amount_sat,
)

View File

@@ -623,13 +623,14 @@ class QESwapHelper(AuthMixin, QObject, QtEventListener):
self.userinfo = _('Performing swap...')
self.state = QESwapHelper.State.Started
self._swap, invoice = await self._wallet.wallet.lnworker.swap_manager.request_normal_swap(
self.swap_transport,
transport=self.swap_transport,
lightning_amount_sat=lightning_amount,
expected_onchain_amount_sat=onchain_amount,
)
tx = self._wallet.wallet.lnworker.swap_manager.create_funding_tx(self._swap, dummy_tx, password=self._wallet.password)
coro2 = self._wallet.wallet.lnworker.swap_manager.wait_for_htlcs_and_broadcast(self.swap_transport, swap=self._swap, invoice=invoice, tx=tx)
coro2 = self._wallet.wallet.lnworker.swap_manager.wait_for_htlcs_and_broadcast(
transport=self.swap_transport, swap=self._swap, invoice=invoice, tx=tx)
self._fut_htlc_wait = fut = asyncio.create_task(coro2)
self.canCancel = True
@@ -703,7 +704,7 @@ class QESwapHelper(AuthMixin, QObject, QtEventListener):
self.state = QESwapHelper.State.Started
await swap_manager.is_initialized.wait()
txid = await swap_manager.reverse_swap(
self.swap_transport,
transport=self.swap_transport,
lightning_amount_sat=lightning_amount,
expected_onchain_amount_sat=onchain_amount + swap_manager.get_fee_for_txbatcher(),
)

View File

@@ -336,7 +336,7 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
with self.window.create_sm_transport() as transport:
if not self.window.initialize_swap_manager(transport):
return
coro = sm.request_swap_for_amount(transport, swap_dummy_output.value)
coro = sm.request_swap_for_amount(transport=transport, onchain_amount=swap_dummy_output.value)
try:
swap, swap_invoice = self.window.run_coroutine_dialog(coro, _('Requesting swap invoice...'))
except SwapServerError as e:
@@ -726,7 +726,8 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
sm = self.wallet.lnworker.swap_manager
swap = sm.get_swap(tx.swap_payment_hash)
with sm.create_transport() as transport:
coro = sm.wait_for_htlcs_and_broadcast(transport, swap=swap, invoice=tx.swap_invoice, tx=tx)
coro = sm.wait_for_htlcs_and_broadcast(
transport=transport, swap=swap, invoice=tx.swap_invoice, tx=tx)
try:
funding_txid = self.window.run_coroutine_dialog(coro, _('Awaiting lightning payment...'))
except UserCancelled:

View File

@@ -304,7 +304,7 @@ class SwapDialog(WindowModalDialog, QtEventListener):
return
sm = self.swap_manager
coro = sm.reverse_swap(
transport,
transport=transport,
lightning_amount_sat=lightning_amount,
expected_onchain_amount_sat=onchain_amount + self.swap_manager.get_fee_for_txbatcher(),
)

View File

@@ -687,8 +687,8 @@ class SwapManager(Logger):
async def normal_swap(
self,
transport: 'SwapServerTransport',
*,
transport: 'SwapServerTransport',
lightning_amount_sat: int,
expected_onchain_amount_sat: int,
password,
@@ -726,7 +726,9 @@ class SwapManager(Logger):
return await self.wait_for_htlcs_and_broadcast(transport=transport, swap=swap, invoice=invoice, tx=tx)
async def request_normal_swap(
self, transport, *,
self,
*,
transport: 'SwapServerTransport',
lightning_amount_sat: int,
expected_onchain_amount_sat: int,
channels: Optional[Sequence['Channel']] = None,
@@ -782,7 +784,9 @@ class SwapManager(Logger):
return swap, invoice
async def wait_for_htlcs_and_broadcast(
self, transport, *,
self,
*,
transport: 'SwapServerTransport',
swap: SwapData,
invoice: str,
tx: Transaction,
@@ -839,7 +843,12 @@ class SwapManager(Logger):
return tx
@log_exceptions
async def request_swap_for_amount(self, transport, onchain_amount) -> Optional[Tuple[SwapData, str]]:
async def request_swap_for_amount(
self,
*,
transport: 'SwapServerTransport',
onchain_amount: int,
) -> Optional[Tuple[SwapData, str]]:
await self.is_initialized.wait()
lightning_amount_sat = self.get_recv_amount(onchain_amount, is_reverse=False)
if lightning_amount_sat is None:
@@ -847,7 +856,7 @@ class SwapManager(Logger):
+ _("min") + f": {self.get_min_amount()}\n"
+ _("max") + f": {self.get_provider_max_reverse_amount()}")
swap, invoice = await self.request_normal_swap(
transport,
transport=transport,
lightning_amount_sat=lightning_amount_sat,
expected_onchain_amount_sat=onchain_amount)
return swap, invoice
@@ -858,8 +867,9 @@ class SwapManager(Logger):
await self.network.broadcast_transaction(tx)
async def reverse_swap(
self, transport,
self,
*,
transport: 'SwapServerTransport',
lightning_amount_sat: int,
expected_onchain_amount_sat: int,
channels: Optional[Sequence['Channel']] = None,
@@ -1422,7 +1432,7 @@ class NostrTransport(SwapServerTransport):
self.nostr_pubkey = keypair.pubkey.hex()[2:]
self.dm_replies = defaultdict(asyncio.Future) # type: Dict[str, asyncio.Future]
self.ssl_context = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH, cafile=ca_path)
self.relay_manager = None
self.relay_manager = None # type: Optional[aionostr.Manager]
self.taskgroup = OldTaskGroup()
self._last_swapserver_relays = self._load_last_swapserver_relays() # type: Optional[Sequence[str]]
@@ -1486,7 +1496,7 @@ class NostrTransport(SwapServerTransport):
last_swapserver_relays = self._last_swapserver_relays or []
return list(set(our_relays + last_swapserver_relays))
def get_relay_manager(self):
def get_relay_manager(self) -> aionostr.Manager:
assert get_running_loop() == get_asyncio_loop(), f"this must be run on the asyncio thread!"
if not self.relay_manager:
if self.uses_proxy: