submarine_swaps: fix bugs and create method for max_amount_forward_swap
This commit is contained in:
@@ -138,10 +138,11 @@ class SwapDialog(WindowModalDialog):
|
|||||||
self._update_tx('!')
|
self._update_tx('!')
|
||||||
if self.tx:
|
if self.tx:
|
||||||
amount = self.tx.output_value_for_address(ln_dummy_address())
|
amount = self.tx.output_value_for_address(ln_dummy_address())
|
||||||
max_swap_amt = self.swap_manager.get_max_amount()
|
max_amt = self.swap_manager.max_amount_forward_swap()
|
||||||
max_recv_amt_ln = int(self.swap_manager.num_sats_can_receive())
|
if max_amt is None:
|
||||||
max_recv_amt_oc = self.swap_manager.get_send_amount(max_recv_amt_ln, is_reverse=False) or float('inf')
|
self.send_amount_e.setAmount(None)
|
||||||
max_amt = int(min(max_swap_amt, max_recv_amt_oc))
|
self.max_button.setChecked(False)
|
||||||
|
return
|
||||||
if amount > max_amt:
|
if amount > max_amt:
|
||||||
amount = max_amt
|
amount = max_amt
|
||||||
self._update_tx(amount)
|
self._update_tx(amount)
|
||||||
|
|||||||
@@ -639,3 +639,12 @@ class SwapManager(Logger):
|
|||||||
sig = bytes.fromhex(tx.sign_txin(0, swap.privkey))
|
sig = bytes.fromhex(tx.sign_txin(0, swap.privkey))
|
||||||
witness = [sig, preimage, witness_script]
|
witness = [sig, preimage, witness_script]
|
||||||
txin.witness = bytes.fromhex(construct_witness(witness))
|
txin.witness = bytes.fromhex(construct_witness(witness))
|
||||||
|
|
||||||
|
def max_amount_forward_swap(self) -> Optional[int]:
|
||||||
|
""" returns None if we cannot swap """
|
||||||
|
max_swap_amt_ln = self.get_max_amount()
|
||||||
|
max_recv_amt_ln = int(self.num_sats_can_receive())
|
||||||
|
max_amt_ln = int(min(max_swap_amt_ln, max_recv_amt_ln))
|
||||||
|
max_amt_oc = self.get_send_amount(max_amt_ln, is_reverse=False) or 0
|
||||||
|
min_amt_oc = self.get_send_amount(self.min_amount, is_reverse=False) or 0
|
||||||
|
return max_amt_oc if max_amt_oc >= min_amt_oc else None
|
||||||
|
|||||||
Reference in New Issue
Block a user