tminor qt send tab fixes. notably 'send max' was broken - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 0b87ce426f1bb2e4debf6810f7ec362d23a14af4 DIR parent 5e04f084b7505e6c352189354f7ebecbe9c834fe HTML Author: SomberNight <somber.night@protonmail.com> Date: Mon, 16 Sep 2019 02:54:32 +0200 minor qt send tab fixes. notably 'send max' was broken follow-up aaed594772dde4b6240267e21f067e89bed5fa15 Diffstat: M electrum/gui/qt/main_window.py | 6 +++--- M electrum/util.py | 6 ++++-- M electrum/wallet.py | 7 +++++-- 3 files changed, 12 insertions(+), 7 deletions(-) --- DIR diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py t@@ -148,6 +148,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): self.app = gui_object.app self.cleaned_up = False self.payment_request = None # type: Optional[paymentrequest.PaymentRequest] + self.payto_URI = None self.checking_accounts = False self.qr_window = None self.not_enough_funds = False t@@ -1734,9 +1735,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): elif invoice['type'] == PR_TYPE_ONCHAIN: message = invoice['message'] outputs = invoice['outputs'] - amount = sum(map(lambda x:x[2], outputs)) else: - raise Exception('unknowwn invoicce type') + raise Exception('unknown invoice type') if run_hook('abort_send', self): return t@@ -1760,7 +1760,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): self.show_message(str(e)) return - amount = tx.output_value() if self.max_button.isChecked() else sum(map(lambda x:x[2], outputs)) + amount = tx.output_value() if self.max_button.isChecked() else sum(map(lambda x: x.value, outputs)) fee = tx.get_fee() use_rbf = bool(self.config.get('use_rbf', True)) DIR diff --git a/electrum/util.py b/electrum/util.py t@@ -585,12 +585,14 @@ def format_satoshis_plain(x, decimal_point = 8): return "{:.8f}".format(Decimal(x) / scale_factor).rstrip('0').rstrip('.') -DECIMAL_POINT = localeconv()['decimal_point'] +DECIMAL_POINT = localeconv()['decimal_point'] # type: str -def format_satoshis(x, num_zeros=0, decimal_point=8, precision=None, is_diff=False, whitespaces=False): +def format_satoshis(x, num_zeros=0, decimal_point=8, precision=None, is_diff=False, whitespaces=False) -> str: if x is None: return 'unknown' + if x == '!': + return 'max' if precision is None: precision = decimal_point # format string DIR diff --git a/electrum/wallet.py b/electrum/wallet.py t@@ -512,8 +512,11 @@ class Abstract_Wallet(AddressSynchronizer): 'txpos_in_block': hist_item.tx_mined_status.txpos, } - def create_invoice(self, outputs, message, pr, URI): - amount = sum(x[2] for x in outputs) + def create_invoice(self, outputs: List[TxOutput], message, pr, URI): + if '!' in (x.value for x in outputs): + amount = '!' + else: + amount = sum(x.value for x in outputs) invoice = { 'type': PR_TYPE_ONCHAIN, 'message': message,