URI: 
       tswaps: check_invoice_amount (fixes #6217) - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit abac4a4340dc1aa82989ebea4032005bee048d6f
   DIR parent 5f40414bd2418d19f1d83b1164edc765cfc0650d
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Fri, 26 Jun 2020 09:19:40 +0200
       
       swaps: check_invoice_amount (fixes #6217)
       
       Diffstat:
         M electrum/submarine_swaps.py         |      15 +++++++++++----
       
       1 file changed, 11 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/electrum/submarine_swaps.py b/electrum/submarine_swaps.py
       t@@ -387,21 +387,24 @@ class SwapManager(Logger):
            def get_max_amount(self):
                return min(self._max_amount, LN_MAX_HTLC_VALUE_MSAT // 1000)
        
       +    def check_invoice_amount(self, x):
       +        return x >= self.min_amount and x <= self._max_amount
       +
            def get_recv_amount(self, send_amount: Optional[int], is_reverse: bool) -> Optional[int]:
                if send_amount is None:
                    return
       -        if send_amount < self.min_amount or send_amount > self._max_amount:
       -            return
                x = send_amount
                if is_reverse:
       +            if not self.check_invoice_amount(x):
       +                return
                    x = int(x * (100 - self.percentage) / 100)
                    x -= self.lockup_fee
                    x -= self.get_claim_fee()
                else:
                    x -= self.normal_fee
                    x = int(x * (100 - self.percentage) / 100)
       -        if x < 0:
       -            return
       +            if not self.check_invoice_amount(x):
       +                return
                return x
        
            def get_send_amount(self, recv_amount: Optional[int], is_reverse: bool) -> Optional[int]:
       t@@ -412,7 +415,11 @@ class SwapManager(Logger):
                    x += self.lockup_fee
                    x += self.get_claim_fee()
                    x = int(x * 100 / (100 - self.percentage)) + 1
       +            if not self.check_invoice_amount(x):
       +                return
                else:
       +            if not self.check_invoice_amount(x):
       +                return
                    x = int(x * 100 / (100 - self.percentage)) + 1
                    x += self.normal_fee
                return x