swaps: add some type hints, and force kwargs
This commit is contained in:
@@ -1910,7 +1910,7 @@ class Commands(Logger):
|
|||||||
lightning_amount_sat = satoshis(lightning_amount)
|
lightning_amount_sat = satoshis(lightning_amount)
|
||||||
onchain_amount_sat = satoshis(onchain_amount)
|
onchain_amount_sat = satoshis(onchain_amount)
|
||||||
txid = await wallet.lnworker.swap_manager.normal_swap(
|
txid = await wallet.lnworker.swap_manager.normal_swap(
|
||||||
transport,
|
transport=transport,
|
||||||
lightning_amount_sat=lightning_amount_sat,
|
lightning_amount_sat=lightning_amount_sat,
|
||||||
expected_onchain_amount_sat=onchain_amount_sat,
|
expected_onchain_amount_sat=onchain_amount_sat,
|
||||||
password=password,
|
password=password,
|
||||||
@@ -1946,7 +1946,7 @@ class Commands(Logger):
|
|||||||
claim_fee = sm.get_fee_for_txbatcher()
|
claim_fee = sm.get_fee_for_txbatcher()
|
||||||
onchain_amount_sat = satoshis(onchain_amount) + claim_fee
|
onchain_amount_sat = satoshis(onchain_amount) + claim_fee
|
||||||
funding_txid = await wallet.lnworker.swap_manager.reverse_swap(
|
funding_txid = await wallet.lnworker.swap_manager.reverse_swap(
|
||||||
transport,
|
transport=transport,
|
||||||
lightning_amount_sat=lightning_amount_sat,
|
lightning_amount_sat=lightning_amount_sat,
|
||||||
expected_onchain_amount_sat=onchain_amount_sat,
|
expected_onchain_amount_sat=onchain_amount_sat,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -623,13 +623,14 @@ class QESwapHelper(AuthMixin, QObject, QtEventListener):
|
|||||||
self.userinfo = _('Performing swap...')
|
self.userinfo = _('Performing swap...')
|
||||||
self.state = QESwapHelper.State.Started
|
self.state = QESwapHelper.State.Started
|
||||||
self._swap, invoice = await self._wallet.wallet.lnworker.swap_manager.request_normal_swap(
|
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,
|
lightning_amount_sat=lightning_amount,
|
||||||
expected_onchain_amount_sat=onchain_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)
|
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._fut_htlc_wait = fut = asyncio.create_task(coro2)
|
||||||
|
|
||||||
self.canCancel = True
|
self.canCancel = True
|
||||||
@@ -703,7 +704,7 @@ class QESwapHelper(AuthMixin, QObject, QtEventListener):
|
|||||||
self.state = QESwapHelper.State.Started
|
self.state = QESwapHelper.State.Started
|
||||||
await swap_manager.is_initialized.wait()
|
await swap_manager.is_initialized.wait()
|
||||||
txid = await swap_manager.reverse_swap(
|
txid = await swap_manager.reverse_swap(
|
||||||
self.swap_transport,
|
transport=self.swap_transport,
|
||||||
lightning_amount_sat=lightning_amount,
|
lightning_amount_sat=lightning_amount,
|
||||||
expected_onchain_amount_sat=onchain_amount + swap_manager.get_fee_for_txbatcher(),
|
expected_onchain_amount_sat=onchain_amount + swap_manager.get_fee_for_txbatcher(),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -336,7 +336,7 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
|
|||||||
with self.window.create_sm_transport() as transport:
|
with self.window.create_sm_transport() as transport:
|
||||||
if not self.window.initialize_swap_manager(transport):
|
if not self.window.initialize_swap_manager(transport):
|
||||||
return
|
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:
|
try:
|
||||||
swap, swap_invoice = self.window.run_coroutine_dialog(coro, _('Requesting swap invoice...'))
|
swap, swap_invoice = self.window.run_coroutine_dialog(coro, _('Requesting swap invoice...'))
|
||||||
except SwapServerError as e:
|
except SwapServerError as e:
|
||||||
@@ -726,7 +726,8 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
|
|||||||
sm = self.wallet.lnworker.swap_manager
|
sm = self.wallet.lnworker.swap_manager
|
||||||
swap = sm.get_swap(tx.swap_payment_hash)
|
swap = sm.get_swap(tx.swap_payment_hash)
|
||||||
with sm.create_transport() as transport:
|
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:
|
try:
|
||||||
funding_txid = self.window.run_coroutine_dialog(coro, _('Awaiting lightning payment...'))
|
funding_txid = self.window.run_coroutine_dialog(coro, _('Awaiting lightning payment...'))
|
||||||
except UserCancelled:
|
except UserCancelled:
|
||||||
|
|||||||
@@ -304,7 +304,7 @@ class SwapDialog(WindowModalDialog, QtEventListener):
|
|||||||
return
|
return
|
||||||
sm = self.swap_manager
|
sm = self.swap_manager
|
||||||
coro = sm.reverse_swap(
|
coro = sm.reverse_swap(
|
||||||
transport,
|
transport=transport,
|
||||||
lightning_amount_sat=lightning_amount,
|
lightning_amount_sat=lightning_amount,
|
||||||
expected_onchain_amount_sat=onchain_amount + self.swap_manager.get_fee_for_txbatcher(),
|
expected_onchain_amount_sat=onchain_amount + self.swap_manager.get_fee_for_txbatcher(),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -687,8 +687,8 @@ class SwapManager(Logger):
|
|||||||
|
|
||||||
async def normal_swap(
|
async def normal_swap(
|
||||||
self,
|
self,
|
||||||
transport: 'SwapServerTransport',
|
|
||||||
*,
|
*,
|
||||||
|
transport: 'SwapServerTransport',
|
||||||
lightning_amount_sat: int,
|
lightning_amount_sat: int,
|
||||||
expected_onchain_amount_sat: int,
|
expected_onchain_amount_sat: int,
|
||||||
password,
|
password,
|
||||||
@@ -726,7 +726,9 @@ class SwapManager(Logger):
|
|||||||
return await self.wait_for_htlcs_and_broadcast(transport=transport, swap=swap, invoice=invoice, tx=tx)
|
return await self.wait_for_htlcs_and_broadcast(transport=transport, swap=swap, invoice=invoice, tx=tx)
|
||||||
|
|
||||||
async def request_normal_swap(
|
async def request_normal_swap(
|
||||||
self, transport, *,
|
self,
|
||||||
|
*,
|
||||||
|
transport: 'SwapServerTransport',
|
||||||
lightning_amount_sat: int,
|
lightning_amount_sat: int,
|
||||||
expected_onchain_amount_sat: int,
|
expected_onchain_amount_sat: int,
|
||||||
channels: Optional[Sequence['Channel']] = None,
|
channels: Optional[Sequence['Channel']] = None,
|
||||||
@@ -782,7 +784,9 @@ class SwapManager(Logger):
|
|||||||
return swap, invoice
|
return swap, invoice
|
||||||
|
|
||||||
async def wait_for_htlcs_and_broadcast(
|
async def wait_for_htlcs_and_broadcast(
|
||||||
self, transport, *,
|
self,
|
||||||
|
*,
|
||||||
|
transport: 'SwapServerTransport',
|
||||||
swap: SwapData,
|
swap: SwapData,
|
||||||
invoice: str,
|
invoice: str,
|
||||||
tx: Transaction,
|
tx: Transaction,
|
||||||
@@ -839,7 +843,12 @@ class SwapManager(Logger):
|
|||||||
return tx
|
return tx
|
||||||
|
|
||||||
@log_exceptions
|
@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()
|
await self.is_initialized.wait()
|
||||||
lightning_amount_sat = self.get_recv_amount(onchain_amount, is_reverse=False)
|
lightning_amount_sat = self.get_recv_amount(onchain_amount, is_reverse=False)
|
||||||
if lightning_amount_sat is None:
|
if lightning_amount_sat is None:
|
||||||
@@ -847,7 +856,7 @@ class SwapManager(Logger):
|
|||||||
+ _("min") + f": {self.get_min_amount()}\n"
|
+ _("min") + f": {self.get_min_amount()}\n"
|
||||||
+ _("max") + f": {self.get_provider_max_reverse_amount()}")
|
+ _("max") + f": {self.get_provider_max_reverse_amount()}")
|
||||||
swap, invoice = await self.request_normal_swap(
|
swap, invoice = await self.request_normal_swap(
|
||||||
transport,
|
transport=transport,
|
||||||
lightning_amount_sat=lightning_amount_sat,
|
lightning_amount_sat=lightning_amount_sat,
|
||||||
expected_onchain_amount_sat=onchain_amount)
|
expected_onchain_amount_sat=onchain_amount)
|
||||||
return swap, invoice
|
return swap, invoice
|
||||||
@@ -858,8 +867,9 @@ class SwapManager(Logger):
|
|||||||
await self.network.broadcast_transaction(tx)
|
await self.network.broadcast_transaction(tx)
|
||||||
|
|
||||||
async def reverse_swap(
|
async def reverse_swap(
|
||||||
self, transport,
|
self,
|
||||||
*,
|
*,
|
||||||
|
transport: 'SwapServerTransport',
|
||||||
lightning_amount_sat: int,
|
lightning_amount_sat: int,
|
||||||
expected_onchain_amount_sat: int,
|
expected_onchain_amount_sat: int,
|
||||||
channels: Optional[Sequence['Channel']] = None,
|
channels: Optional[Sequence['Channel']] = None,
|
||||||
@@ -1422,7 +1432,7 @@ class NostrTransport(SwapServerTransport):
|
|||||||
self.nostr_pubkey = keypair.pubkey.hex()[2:]
|
self.nostr_pubkey = keypair.pubkey.hex()[2:]
|
||||||
self.dm_replies = defaultdict(asyncio.Future) # type: Dict[str, asyncio.Future]
|
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.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.taskgroup = OldTaskGroup()
|
||||||
self._last_swapserver_relays = self._load_last_swapserver_relays() # type: Optional[Sequence[str]]
|
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 []
|
last_swapserver_relays = self._last_swapserver_relays or []
|
||||||
return list(set(our_relays + last_swapserver_relays))
|
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!"
|
assert get_running_loop() == get_asyncio_loop(), f"this must be run on the asyncio thread!"
|
||||||
if not self.relay_manager:
|
if not self.relay_manager:
|
||||||
if self.uses_proxy:
|
if self.uses_proxy:
|
||||||
|
|||||||
Reference in New Issue
Block a user