URI: 
       tqt: handle exceptions when pressing "Max" button - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 369d972aed376a59bb21952afa16b43105724a32
   DIR parent 20bbe85bcecb454a4647b675066d6accea37bc78
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Sun,  8 Dec 2019 03:21:02 +0100
       
       qt: handle exceptions when pressing "Max" button
       
       fixes #5783
       
       Diffstat:
         M electrum/gui/qt/channels_list.py    |      10 ++++++++--
         M electrum/gui/qt/main_window.py      |      13 ++++++++++---
       
       2 files changed, 18 insertions(+), 5 deletions(-)
       ---
   DIR diff --git a/electrum/gui/qt/channels_list.py b/electrum/gui/qt/channels_list.py
       t@@ -6,7 +6,7 @@ from PyQt5 import QtCore, QtGui
        from PyQt5.QtCore import Qt
        from PyQt5.QtWidgets import QMenu, QHBoxLayout, QLabel, QVBoxLayout, QGridLayout, QLineEdit
        
       -from electrum.util import bh2u
       +from electrum.util import bh2u, NotEnoughFunds, NoDynamicFeeEstimates
        from electrum.i18n import _
        from electrum.lnchannel import Channel
        from electrum.wallet import Abstract_Wallet
       t@@ -178,7 +178,13 @@ class ChannelsList(MyTreeView):
                    if not max_button.isChecked():
                        return
                    make_tx = self.parent.mktx_for_open_channel('!')
       -            tx = make_tx(None)
       +            try:
       +                tx = make_tx(None)
       +            except (NotEnoughFunds, NoDynamicFeeEstimates) as e:
       +                max_button.setChecked(False)
       +                amount_e.setFrozen(False)
       +                self.main_window.show_error(str(e))
       +                return
                    amount = tx.output_value()
                    amount = min(amount, LN_MAX_FUNDING_SAT)
                    amount_e.setAmount(amount)
   DIR diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py
       t@@ -60,7 +60,8 @@ from electrum.util import (format_time, format_satoshis, format_fee_satoshis,
                                   decimal_point_to_base_unit_name,
                                   UnknownBaseUnit, DECIMAL_POINT_DEFAULT, UserFacingException,
                                   get_new_wallet_name, send_exception_to_crash_reporter,
       -                           InvalidBitcoinURI, maybe_extract_bolt11_invoice)
       +                           InvalidBitcoinURI, maybe_extract_bolt11_invoice, NotEnoughFunds,
       +                           NoDynamicFeeEstimates)
        from electrum.util import PR_TYPE_ONCHAIN, PR_TYPE_LN
        from electrum.transaction import (Transaction, PartialTxInput,
                                          PartialTransaction, PartialTxOutput)
       t@@ -1293,14 +1294,20 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
                outputs = self.payto_e.get_outputs(True)
                if not outputs:
                    return
       -        self.max_button.setChecked(True)
                make_tx = lambda fee_est: self.wallet.make_unsigned_transaction(
                    coins=self.get_coins(),
                    outputs=outputs,
                    fee=fee_est,
                    is_sweep=False)
        
       -        tx = make_tx(None)
       +        try:
       +            tx = make_tx(None)
       +        except (NotEnoughFunds, NoDynamicFeeEstimates) as e:
       +            self.max_button.setChecked(False)
       +            self.show_error(str(e))
       +            return
       +
       +        self.max_button.setChecked(True)
                amount = tx.output_value()
                __, x_fee_amount = run_hook('get_tx_extra_fee', self.wallet, tx) or (None, 0)
                amount_after_all_fees = amount - x_fee_amount